⌨️💡 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

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