#backlight #gamma #daemon #battery #screen #notebook #linux

app gamma_daemon

Changes screen brightness based on notebook battery life

3 unstable releases

0.2.1 Sep 24, 2023
0.2.0 Sep 20, 2023
0.1.0 Jun 30, 2023

#8 in #gamma

MIT license

28KB
610 lines

GammaDaemon

Auto adjusts screen gamma based on notebook battery life for Linux systems.

Compatibility

GammaDaemon should work with any Linux laptop.

Devices Tested

  • ThinkPad E15 Gen3 with ArchLinux:
    • AC detection: Working
    • Screen brightness change: Working

Installation

Cargo

Run either of the following:

cargo install gamma_daemon
cargo install --path ./

If you do the above method, it has to be in the root folder.

Without Cargo (Custom install location)

First, run

cargo build --release

Then copy the binary to where you want to put it; For example, in /usr/bin/:

$ cp target/release/gamma_daemon /usr/bin/

Udev Rules

To run GammaDaemon without running as root, create a udev rule that will allow users in a certain group to read and write to /sys/class/backlight/(backlight)/brightness. For example, udev rules for users in the video group listed in the documentation for bulbb:

ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp video /sys/class/backlight/%k/brightness"
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chmod g+w /sys/class/backlight/%k/brightness"

For more information, see the bulbb documentation.

Configuration

GammaDaemon is configured in a .toml file. You can specify where to find the config file in a command argument:


gamma_daemon /home/<USER>/config.toml

If no config path is provided, GammaDaemon will look in $USER/.config/GammaDaemon/conf.toml for gamma configurations. If GammaDaemon cannot find this file, it will use a default configuration. Here is an example config:

full = 240
low = 100
low_perc = 25 # out of 100
charging = 255
discharging = 134
unknown = 255
ac_in = 255

Contributing

Any contributions and testing are welcome. Just make a pull request with the changes you want to add.

If you tested this software on a device not listed in the Compatibility section, add the device to the Devices Tested list.

Dependencies

~2–3.5MB
~66K SLoC