Files
acer-lighting-daemon/README.md

126 lines
3.3 KiB
Markdown

# acer-lighting
> **Fork Notice:** This is a fork of [fcrespo82/acer-lighting-daemon](https://github.com/fcrespo82/acer-lighting-daemon) with added GUI tray applet support.
**Thanks**
This project benefited greatly from the work, testing and research of several community contributors — especially: @ZoeBattleSand, @0x189D7997, and @JakeBrxwn. Their reverse-engineering, testing, tooling and discussion (see https://github.com/0x7375646F/Linuwu-Sense/pull/65) made much of this possible.
Small tools to control Acer laptop RGB zones and a daemon that persists/apply states.
> [!CAUTION]
> The code here was based on the work of others but it was written with the help of AI too
## Build
- Build the daemon only:
```sh
make acer-rgbd
```
- Build the CLI (used for manual commands and test targets):
```sh
make acer-rgb-cli
```
Or build everything with:
```sh
make build
```
## Install
Install the daemon, helper script and systemd units:
```sh
sudo make install
```
The `install` target will:
- Copy `acer-rgbd` to `/usr/local/bin/acer-rgbd` and `acer-rgb` to `/usr/local/bin/acer-rgb`.
- Install systemd unit and socket under `/etc/systemd/system/` and enable/start the service.
- Create `/var/lib/acer-rgbd/state.txt` with an initial "all green" state so the daemon applies green on first start.
If you need to undo the install:
```sh
sudo make uninstall
```
## GUI Tray Applet
A system tray applet is included for easy RGB control without using the command line.
### Dependencies
```sh
sudo apt install python3-gi gir1.2-appindicator3-0.1
```
### Running
```sh
python3 acer-rgb-tray.py
```
The applet appears in your system tray. Click it to access:
- **Color presets** (Red, Green, Blue, White, Cyan, Magenta, Yellow, Orange)
- **Custom...** - Opens a full color picker dialog
- **Effect** submenu - Static, Breathing, Neon, Wave, Ripple, Zoom, Snake, Disco, Shifting
### Autostart
To start the applet automatically on login:
```sh
cp acer-rgb-tray.desktop ~/.config/autostart/
```
Make sure the daemon is running before the applet starts:
```sh
sudo systemctl enable acer-rgbd.service
```
## Usage
- Send commands to the daemon using the `acer-rgb` helper (it talks to the daemon socket):
```sh
acer-rgb SET dev=keyboard hidraw=/dev/hidraw2 effect=static bright=100 r=0 g=255 b=0 zone=all
acer-rgb GET
```
- You can also use the CLI binary for direct HID control (for testing):
```sh
sudo ./acer-rgb-cli /dev/hidraw2 keyboard static --brightness 100 --rgb 0 255 0 --zone all
```
## State file
The daemon persists three lines (keyboard, lid, button) in `/var/lib/acer-rgbd/state.txt`. Editing that file (as root) changes the values the daemon will reapply on start.
## Logs & troubleshooting
View the daemon logs with:
```sh
journalctl -u acer-rgbd.service -f
```
If you modify the state file and want the daemon to reapply immediately, restart it:
```sh
sudo systemctl restart acer-rgbd.service
```
## Notes
- The installer writes an initial all-green state (keyboard/lid/button) to `/var/lib/acer-rgbd/state.txt` so newly installed systems show green LEDs by default.
- Running the daemon requires root privileges (or appropriate udev rules) to access the HID device.
- The GUI applet communicates with the daemon via socket (`/run/acer-rgbd.sock`) and runs as a regular user.