Daemon that synchronizes the Scroll Lock key with the keyboard LED on Linux.
Project description
Scroll Lock LED Daemon
Daemon for Linux that synchronizes a key press with the keyboard LED.
Features
- Auto-detects keyboard and Scroll Lock LED
- Listens for key presses and toggles the LED
- Runs as a systemd service (
Type=notify) - Auto-reconnects if the keyboard is disconnected
- One-shot mode:
--set on/offand--togglefor scripts - Configurable key (
--key) and LED (--led) - Configuration file support
- Very low CPU usage (event driven, not polling)
--doctorfor system diagnostics
Requirements
- Linux
- Python 3.10+
- python3-evdev
Installation
Pacote .deb (Debian/Ubuntu — recomendado)
Baixe o .deb da página de releases:
sudo apt install ./scrolllock-led-daemon_*.deb
Instala automaticamente como serviço systemd com start imediato.
PyPI (pip)
pip install scrolllock-led-daemon
Apenas o binário — você precisa configurar o systemd e udev manualmente.
Script manual (desenvolvimento)
git clone https://github.com/alan-n7x/scrolllock-led-daemon.git
cd scrolllock-led-daemon
./scripts/install.sh
Instala em /usr/local/:
/usr/local/bin/scrolllock-led-daemon/etc/systemd/system/scrolllock-led-daemon.service/usr/local/share/man/man8/scrolllock-led-daemon.8/etc/udev/rules.d/99-scrolllock-led-daemon.rules/usr/share/bash-completion/completions/scrolllock-led-daemon.bash/etc/scrolllock-led-daemon.conf
Dependências
sudo apt install python3-evdev
Usage
Usage: scrolllock-led-daemon [OPTIONS]
Options:
--device PATH Keyboard device path (overrides auto-detection)
--led PATH|NAME LED brightness file or name (scrolllock, capslock, numlock)
--key NAME Key to listen for (default: KEY_SCROLLLOCK)
--set on|off Set LED state and exit (one-shot mode)
--toggle Toggle LED state and exit (one-shot mode)
--list List available input devices and exit
--doctor Run system diagnostics
--config PATH Path to configuration file
--verbose Enable debug logs
--version Show version
--help Show help
Daemon mode (default)
sudo systemctl start scrolllock-led-daemon
One-shot mode
scrolllock-led-daemon --set on
scrolllock-led-daemon --set off
scrolllock-led-daemon --toggle
List devices
scrolllock-led-daemon --list
Diagnostics
Run a system health check:
scrolllock-led-daemon --doctor
Custom device
scrolllock-led-daemon --device /dev/input/event9 --led scrolllock
Custom key
scrolllock-led-daemon --key KEY_F12 --led capslock
Configuration
Settings can be persisted in /etc/scrolllock-led-daemon.conf
or ~/.config/scrolllock-led-daemon/scrolllock-led-daemon.conf:
[daemon]
device = /dev/input/event4
led = scrolllock
key = KEY_SCROLLLOCK
verbose = false
CLI arguments override config file values.
Troubleshooting
Permission denied
If you see:
Permission denied while accessing /dev/input/event*
Run with sudo or install the udev rules:
sudo ./scripts/install.sh
The udev rules give your user access to input devices without root.
No keyboard found
If auto-detection fails, list available devices:
scrolllock-led-daemon --list
Then use the exact path:
scrolllock-led-daemon --device /dev/input/event4
Development
Dependencies
pip install ".[test]"
Tests
make test # or: python -m pytest tests/ -v
Syntax check
make lint # or: python -m py_compile src/scrolllock_led_daemon.py
Uninstall
Via .deb
sudo apt remove scrolllock-led-daemon
Via script manual
./scripts/uninstall.sh
License
GNU General Public License v3.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scrolllock_led_daemon-1.0.14.tar.gz.
File metadata
- Download URL: scrolllock_led_daemon-1.0.14.tar.gz
- Upload date:
- Size: 22.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47a58b05fac920d0b0635a2f93c91e895cc14b88e5f2213a34b27005bbb6005c
|
|
| MD5 |
dbbe39f0bbb54c38266d1ff37776bc2a
|
|
| BLAKE2b-256 |
6ad1f9553654823e4b3d81f1dddd482e52dcba5f8c42d1a57481ac4c31ecdc32
|
File details
Details for the file scrolllock_led_daemon-1.0.14-py3-none-any.whl.
File metadata
- Download URL: scrolllock_led_daemon-1.0.14-py3-none-any.whl
- Upload date:
- Size: 20.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7c1ad071a9810ac4c7a872cf0c68c7453586f73d368cff4b3888e6a092dd264
|
|
| MD5 |
72c3c9b27bce1261e980209ab9fa0a1c
|
|
| BLAKE2b-256 |
aa5285ef24383ec58702318b22adfc89cd45b723aecf33bfeaa34fa0decf65fe
|