4 releases

0.2.2 Mar 7, 2024
0.2.1 Mar 6, 2024
0.2.0 Mar 6, 2024
0.1.0 Feb 24, 2024

#701 in GUI

Download history 145/week @ 2024-02-20 29/week @ 2024-02-27 398/week @ 2024-03-05 21/week @ 2024-03-12 7/week @ 2024-03-26 29/week @ 2024-04-02

130 downloads per month


587 lines


Native Wayland screen dimming tool


[!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 given with the --duration command, which is 30 by default. If dim finishes successfully before this duration, please submit an issue.

The alpha of dim may be configured with the --alpha option. For more info, please see:

dim --help


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

Fedora (COPR)

dim is available in Fedora as a COPR:

dnf copr enable marcelohdez/dim
dnf install dim-screen



  • 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.


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.


~232K SLoC