How shiphan/lilight works
Lilight is a Linux screen-brightness tool. A user invokes its CLI to read brightness or request a change; configuration supplies defaults, and changes use systemd-logind over D-Bus when available, falling back to sysfs. An optional daemon accepts IPC requests and dispatches brightness changes through the same operation. The library also exposes IIO illuminance reading. The README lists sensor-based automatic adjustment as future work; sampled code does not show it wired into brightness control. Main-source excerpts are partial, so uncertain CLI-to-daemon client details are omitted.
Main entry points: main.rs Command dispatcher · sysfs.rs Sysfs devices · daemon.rs Daemon runtime · cli.rs CLI arguments
Components 18
CLI and configuration
- CLI arguments
src/cli.rs - Command dispatcher
src/main.rs - Config loader
src/config.rs - Value parser
src/cli.rs
Brightness control
- Brightness setter
src/main.rs - Brightness reader
src/main.rs - Transition logic
src/main.rs - Sysfs devices
src/sysfs.rs - Logind proxy
src/dbus.rs
Daemon IPC
- Daemon runtime
src/daemon.rs - Set request
src/daemon.rs - IPC client
src/main.rs
Sensors and mapping
- IIO reader
src/sysfs.rs - Curve mapping
src/curve.rs
Other components
- User
- Linux sysfs
- systemd-logind
- IIO sensor
Connections 18
- User → CLI arguments: invokes
- CLI arguments → Command dispatcher: parses command
- Command dispatcher → Config loader: loads settings
- Command dispatcher → Value parser: parses value
- Command dispatcher → Brightness reader: reads brightness
- Brightness reader → Sysfs devices: reads values
- Sysfs devices → Linux sysfs: reads sysfs
- Command dispatcher → Brightness setter: sets brightness
- Brightness setter → Logind proxy: tries D-Bus
- Logind proxy → systemd-logind: sets brightness
- Brightness setter → Transition logic: applies steps
- Transition logic → Sysfs devices: writes brightness
- Command dispatcher → Daemon runtime: starts daemon
- IPC client → Set request: sends request
- Set request → Daemon runtime: dispatches
- Daemon runtime → Brightness setter: calls setter
- IIO reader → IIO sensor: reads illuminance
- Curve mapping → IIO reader: maps values