2 releases
0.1.5 | Oct 4, 2020 |
---|---|
0.1.4 | Jun 10, 2020 |
#10 in #laptop
16KB
258 lines
⌨️💡 tp-auto-kbbl
ThinkPad Auto Keyboard Backlight
tp-auto-kbbl
enables keyboard backlighting whenever you start typing. After typing ends (+ timeout), the backlight turns off automatically. It runs in the background on your Linux laptop and checks for keyboard events (default /dev/input/event3
).
It should work on any ThinkPad (tested on a 470s) and probably other laptops as well. Let me know if it runs on your device.
To keep CPU/RAM usage low and portability high, I've used Rust for development. This is my first project with it, so if spot anything weird – or plain wrong – let me know! I'm thankful for any advice.
Warning
tp-auto-kbbl
works similar to a keylogger (requires root to capture keyboard events system-wide). Always be sure to check the source code.
Usage
Usage: tp-auto-kbbl [options]
Options:
-h, --help prints this help message
-v, --version prints the version
-n, --no-dim don't dim before bg turns off
-l, --lazy don't check actual hw brightness state
-d, --device specify the device file
-b, --brightness target keyboard brightness (1-2)
-t, --timeout time before the bg light turns off
Installation
Download the latest release, or clone and build it yourself.
Copy the binary
sudo cp tp-auto-kbbl /usr/bin/
Try it out
tp-auto-kbbl
# You'll probably get an error like this
thread 'main' panicked at 'Permission denied (os error 13)', src/main.rs:44:74
# Once more as root
sudo tp-auto-kbbl
Input device ID: bus 0x11 vendor 0x1 product 0x1
Evdev version: 10001
Input device name: "AT Translated Set 2 keyboard"
Phys location: isa0060/serio0/input0
Setting brightness to 0
Your backlight should turn off immediately. Try if it turns on when you press any button.
If not, check if the input device is correct, you may adjust it via the -d
parameter.
Systemd service
# Copy the [unit file](https://raw.githubusercontent.com/saibotd/tp-auto-kbbl/master/tp-auto-kbbl.service)
sudo cp tp-auto-kbbl.service /etc/systemd/system/
# (optional) Check if the parameters are correct
sudo nano /etc/systemd/system/tp-auto-kbbl.service
# Reload daemons
sudo systemctl daemon-reload
# Start the service
sudo systemctl start tp-auto-kbbl
# Check if the service runs fine
sudo systemctl status tp-auto-kbbl
Mär 04 14:02:06 Huffer systemd[1]: Started Auto toggle keyboard back-lighting.
Mär 04 14:02:06 Huffer tp-auto-kbbl[343]: Input device ID: bus 0x11 vendor 0x1 p
Mär 04 14:02:06 Huffer tp-auto-kbbl[343]: Evdev version: 10001
Mär 04 14:02:06 Huffer tp-auto-kbbl[343]: Input device name: "AT Translated Set
Mär 04 14:02:06 Huffer tp-auto-kbbl[343]: Phys location: isa0060/serio0/input0
Mär 04 14:02:07 Huffer tp-auto-kbbl[343]: Setting brightness to 0
Mär 04 14:02:09 Huffer tp-auto-kbbl[343]: Setting brightness to 2
Mär 04 14:02:25 Huffer tp-auto-kbbl[343]: Setting brightness to 0
# Finally enable the service
sudo systemctl enable tp-auto-kbbl
Copyright © 2020 Tobias Duehr
Dependencies
~8MB
~170K SLoC