marcelohdez / dim

Native Wayland screen dimming tool
GNU General Public License v3.0
21 stars 1 forks source link
linux rust smithay sway wayland

dim

Native Wayland screen dimming tool

Usage

[!NOTE] A Wayland compositor supporting the single pixel buffer protocol is required e.g. Sway 1.8+, river, Hyprland.

After installing, you may run dim before you would run your locker, when you want the screen to dim for a period, e.g. in your swayidle config/command:

timeout 270 'dim && swaylock'

Would make it so that at 270 seconds, dim is run waiting for user input for the default of 30 seconds, then if no input is detected the next command will proceed, in this case swaylock will lock your screen.

dim should only finish successfully when no input is detected for the duration. If dim finishes successfully before this duration, please [submit an issue].

The alpha and duration of dim may be configured with either a config file located at ~/.config/dim/config.toml, or through arguments at call-time, for all options and their defaults please see:

dim --help

Installing

dim packages are titled as dim-screen to avoid naming conflicts.

Fedora (COPR)

dim is available in Fedora as a COPR:

sudo dnf copr enable marcelohdez/dim
sudo dnf install dim-screen

Arch (AUR)

For Arch, dim is available in the AUR. You may use your preferred AUR helper like so:

paru -S dim-screen

Others

[!IMPORTANT]

  • Ensure you have Rust installed.
  • The system libraries libxkbcommon and libwayland are required.

dim is available on crates.io:

cargo install dim-screen

Building Manually

Choose a directory for this repo, then clone and cd into it:

git clone https://github.com/marcelohdez/dim
cd dim

Lastly, cargo can build and install dim for you, placing the binary in $HOME/.cargo/bin/:

cargo install --path .

Or, if you would like to place the binary in your $PATH yourself:

cargo build -r

And the resulting binary should be in ./target/release/dim.

License

dim is licensed under the GPLv3 license, a free and open source license. For more information, please refer to the LICENSE file in the repository root.