add post on bluetooth keyboard input interception
This commit is contained in:
parent
d6071bb3d2
commit
d3982513d6
1 changed files with 65 additions and 0 deletions
|
@ -0,0 +1,65 @@
|
||||||
|
+++
|
||||||
|
title: Intercepting Bluetooth Keyboard Events
|
||||||
|
date: 2023-12-14
|
||||||
|
[taxonomies]
|
||||||
|
tags = ["linux"]
|
||||||
|
categories = ["keyboard", "bluetooth"]
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Intercepting Bluetooth Keyboard Events
|
||||||
|
|
||||||
|
I like keyboards and I like custom keyboards. However many do not allow sufficient configuration to let
|
||||||
|
a key be Ctrl on hold and Esc on top. Notably the HHKB.
|
||||||
|
|
||||||
|
USB devices are nicely listed in */dev/input/by-id/* folder but on my system the event device is anonymously placed in */dev/input/*.
|
||||||
|
|
||||||
|
|
||||||
|
## Figuring out the name
|
||||||
|
|
||||||
|
```
|
||||||
|
❯ for dev in /dev/input/*; do udevadm info --attribute-walk $dev; done | grep -A10 -B10 Keyboard
|
||||||
|
Unknown device "/dev/input/by-id": No such device
|
||||||
|
Unknown device "/dev/input/by-path": No such device
|
||||||
|
ATTRS{capabilities/led}=="1f"
|
||||||
|
ATTRS{capabilities/msc}=="10"
|
||||||
|
ATTRS{capabilities/rel}=="0"
|
||||||
|
ATTRS{capabilities/snd}=="0"
|
||||||
|
ATTRS{capabilities/sw}=="0"
|
||||||
|
ATTRS{id/bustype}=="0005"
|
||||||
|
ATTRS{id/product}=="0021"
|
||||||
|
ATTRS{id/vendor}=="04fe"
|
||||||
|
ATTRS{id/version}=="0001"
|
||||||
|
ATTRS{inhibited}=="0"
|
||||||
|
ATTRS{name}=="HHKB-Hybrid_1 Keyboard"
|
||||||
|
ATTRS{phys}=="04:33:c2:f4:e9:70"
|
||||||
|
ATTRS{power/control}=="auto"
|
||||||
|
ATTRS{power/runtime_active_time}=="0"
|
||||||
|
ATTRS{power/runtime_status}=="unsupported"
|
||||||
|
ATTRS{power/runtime_suspended_time}=="0"
|
||||||
|
ATTRS{properties}=="0"
|
||||||
|
ATTRS{uniq}=="cb:7a:7c:03:2d:f2"
|
||||||
|
```
|
||||||
|
|
||||||
|
for other keyboards a bit of finagling for searching with grep might be needed or pipe into *less* and scroll till you find it.
|
||||||
|
|
||||||
|
Now I can add it to my */etc/interception/udevmon.d/ctrl_tap_esc.yaml :
|
||||||
|
|
||||||
|
```
|
||||||
|
- JOB: "intercept -g $DEVNODE | dual-function-keys -c /etc/interception/dual-function-keys.yaml | uinput -d $DEVNODE"
|
||||||
|
DEVICE:
|
||||||
|
NAME: "PFU Limited HHKB-Hybrid"
|
||||||
|
EVENTS:
|
||||||
|
EV_KEY: [KEY_LEFTCTRL]
|
||||||
|
- JOB: "intercept -g $DEVNODE | dual-function-keys -c /etc/interception/dual-function-keys.yaml | uinput -d $DEVNODE"
|
||||||
|
DEVICE:
|
||||||
|
NAME: "PFU Limited HHKB-Hybrid Keyboard"
|
||||||
|
EVENTS:
|
||||||
|
EV_KEY: [KEY_LEFTCTRL]
|
||||||
|
- JOB: "intercept -g $DEVNODE | dual-function-keys -c /etc/interception/dual-function-keys.yaml | uinput -d $DEVNODE"
|
||||||
|
DEVICE:
|
||||||
|
NAME: "HHKB-Hybrid_1 Keyboard"
|
||||||
|
EVENTS:
|
||||||
|
EV_KEY: [KEY_LEFTCTRL]
|
||||||
|
```
|
||||||
|
|
||||||
|
The first 2 are for USB but that is still a work in progress
|
Loading…
Reference in a new issue