kernc / kernc/logkeys

Ergodox EZ

Open
#190 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
834
Forks
254
PR merge metrics
No merged PRs in 30d

Description

As requested in the readme. Device `event9` works. Here's `/proc/bus/input/devices`.

The Ergodox presents itself as a keyboard with multiple "layers". It also has mouse keys on one of those layers.

# cat /proc/bus/input/devices
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input2
U: Uniq=
H: Handlers=kbd event2
B: PROP=0
B: EV=3
B: KEY=4000 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input4
U: Uniq=
H: Handlers=sysrq kbd event4 leds
B: PROP=0
B: EV=120013
B: KEY=1100f02902000 8380307cf910f001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input7
U: Uniq=
H: Handlers=kbd event5
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:0a/LNXVIDEO:01/input/input8
U: Uniq=
H: Handlers=kbd event6
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0011 Vendor=0002 Product=0008 Version=0800
N: Name="AlpsPS/2 ALPS DualPoint Stick"
P: Phys=isa0060/serio1/input1
S: Sysfs=/devices/platform/i8042/serio1/input/input9
U: Uniq=
H: Handlers=mouse0 event7
B: PROP=21
B: EV=f
B: KEY=70000 0 0 0 0
B: REL=3
B: ABS=1000000

I: Bus=0011 Vendor=0002 Product=0008 Version=0800
N: Name="AlpsPS/2 ALPS DualPoint TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/devices/platform/i8042/serio1/input/input6
U: Uniq=
H: Handlers=mouse1 event8
B: PROP=1
B: EV=b
B: KEY=e520 70000 0 0 0 0
B: ABS=260800001000003

I: Bus=0003 Vendor=feed Product=1307 Version=0111
N: Name="ErgoDox EZ ErgoDox EZ"
P: Phys=usb-0000:00:14.0-1.3/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.0/0003:FEED:1307.0001/input/input10
U: Uniq=0
H: Handlers=sysrq kbd event9 leds
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=feed Product=1307 Version=0111
N: Name="ErgoDox EZ ErgoDox EZ"
P: Phys=usb-0000:00:14.0-1.3/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.1/0003:FEED:1307.0002/input/input11
U: Uniq=0
H: Handlers=mouse2 event10
B: PROP=0
B: EV=17
B: KEY=1f0000 0 0 0 0
B: REL=143
B: MSC=10

I: Bus=0003 Vendor=feed Product=1307 Version=0111
N: Name="ErgoDox EZ ErgoDox EZ System Control"
P: Phys=usb-0000:00:14.0-1.3/input2
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.2/0003:FEED:1307.0003/input/input12
U: Uniq=0
H: Handlers=kbd event11
B: PROP=0
B: EV=13
B: KEY=c000 10000000000000 0
B: MSC=10

I: Bus=0003 Vendor=feed Product=1307 Version=0111
N: Name="ErgoDox EZ ErgoDox EZ Consumer Control"
P: Phys=usb-0000:00:14.0-1.3/input2
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.2/0003:FEED:1307.0003/input/input13
U: Uniq=0
H: Handlers=kbd event12
B: PROP=0
B: EV=1f
B: KEY=3007f 0 0 483ffff17aff32d bf54444600000000 1 130f938b17c000 677bfad9415fed 9ed68000004400 10000002
B: REL=40
B: ABS=100000000
B: MSC=10

I: Bus=0003 Vendor=feed Product=1307 Version=0111
N: Name="ErgoDox EZ ErgoDox EZ"
P: Phys=usb-0000:00:14.0-1.3/input3
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.3/1-1.3:1.3/0003:FEED:1307.0004/input/input14
U: Uniq=0
H: Handlers=sysrq kbd event13 leds
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f007ac04007ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=1a7c Product=0192 Version=0111
N: Name="Kingsis Peripherals Evoluent VerticalMouse 4 Left"
P: Phys=usb-0000:00:14.0-1.4/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:1A7C:0192.0005/input/input15
U: Uniq=
H: Handlers=mouse3 event14
B: PROP=0
B: EV=17
B: KEY=3f0000 0 0 0 0
B: REL=103
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="DELL Wireless hotkeys"
P: Phys=dellabce/input0
S: Sysfs=/devices/virtual/input/input16
U: Uniq=
H: Handlers=rfkill kbd event15
B: PROP=0
B: EV=3
B: KEY=80000000000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Dell WMI hotkeys"
P: Phys=
S: Sysfs=/devices/platform/PNP0C14:01/wmi_bus/wmi_bus-PNP0C14:01/9DBB5994-A997-11DA-B012-B622A1EF5492/input/input17
U: Uniq=
H: Handlers=rfkill kbd event16
B: PROP=0
B: EV=13
B: KEY=800000000000 0 0 1500b00000c00 4000000200300000 e000000000000 0
B: MSC=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input18
U: Uniq=
H: Handlers=event17
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Dock Line Out"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input19
U: Uniq=
H: Handlers=event18
B: PROP=0
B: EV=21
B: SW=40

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input20
U: Uniq=
H: Handlers=event19
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input21
U: Uniq=
H: Handlers=event20
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input22
U: Uniq=
H: Handlers=event21
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=9"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input23
U: Uniq=
H: Handlers=event22
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=10"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input24
U: Uniq=
H: Handlers=event23
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA ATI HDMI HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input25
U: Uniq=
H: Handlers=event24
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA ATI HDMI HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input26
U: Uniq=
H: Handlers=event25
B: PROP=0
B: EV=21
B: SW=140

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the README request and the reported /proc/bus/input/devices entry for event9, then examine how the Ergodox EZ keyboard and its mouse-key layer are represented. Done means the device's keyboard layers and mouse keys are handled by logkeys without breaking ordinary input.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
operating-systems, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.