#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

#318 in Unix APIs

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–3MB
~62K SLoC