Marko19907 / OLEDShift

A small system tray utility that moves around the windows on the screen to prevent burn-in
BSD 3-Clause "New" or "Revised" License
20 stars 1 forks source link
nwg oled rust system-tray win32-api windows

OLEDShift

Rust Cargo build GitHub all releases

A small system tray utility that moves around the windows on your screen. It's useful for OLED screens, where you want to move around the windows often to prevent burn-in and extend the lifespan of the display.

One of the main ideas behind this program is to be as minimal as possible and to use as little resources as possible so that it can run in the background with minimal impact on the system. It uses less than 2MB of RAM on my system, launch time is nearly instant.

The Win32 API is used to move the windows and Native Windows GUI (NWG) is used for the GUI as a Rust wrapper around the GUI part of the Win32 API.

Usage

GitHub Releases [Recommended]

You can download the latest release from GitHub Releases.
This is the preferred method.

GitHub Actions

The program is built automatically on every push and the executables are uploaded as artifacts, these builds are not guaranteed to be stable or functional, they expire after 90 days, and you might need to be logged in to GitHub to download them.

If you're struggling to find the artifacts here on GitHub, you can download the latest build of the main branch from nightly.link for x86_64 here and for ARM64 here.

One can also fork the repository and run the workflow manually to build the program. None of these options require you to have anything installed on your machine.

Building from source locally

You can build the program from source by running the following command on a Windows machine:

cargo build --release --target x86_64-pc-windows-msvc

or for ARM64:

cargo build --release --target aarch64-pc-windows-msvc

If everything goes well, the executable will be located in the target/release directory.

Prerequisites

Follow the Rust installation guide to install the prerequisites.

Known issues

Limitations