Public bug reported:

`KEY_F9` is defined as 67
https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/noble/tree/include/uapi/linux/input-event-codes.h?h=Ubuntu-6.8.0-44.44#n142
, so `libevdev.EV_KEY.KEY_F9` should be 67, however, it's 249 in Ubuntu 24.04's 
python3-libevdev.

```py
                         # Ubuntu 22.04  Ubuntu 24.04
import libevdev          #
libevdev.EV_KEY.KEY_F1   # 59            59
libevdev.EV_KEY.KEY_F2   # 60            60
libevdev.EV_KEY.KEY_F3   # 61            61
libevdev.EV_KEY.KEY_F4   # 62            62
libevdev.EV_KEY.KEY_F5   # 63            63
libevdev.EV_KEY.KEY_F6   # 64            64
libevdev.EV_KEY.KEY_F7   # 65            65
libevdev.EV_KEY.KEY_F8   # 66            66
libevdev.EV_KEY.KEY_F9   # 67            249 (!)
libevdev.EV_KEY.KEY_F10  # 68            68
libevdev.EV_KEY.KEY_F11  # 87            87
libevdev.EV_KEY.KEY_F12  # 88            88

# Ubuntu 22.04
>>> import libevdev
>>> libevdev.EV_KEY.KEY_F1
KEY_F1:59
>>> libevdev.EV_KEY.KEY_F2
KEY_F2:60
>>> libevdev.EV_KEY.KEY_F3
KEY_F3:61
>>> libevdev.EV_KEY.KEY_F4
KEY_F4:62
>>> libevdev.EV_KEY.KEY_F5
KEY_F5:63
>>> libevdev.EV_KEY.KEY_F6
KEY_F6:64
>>> libevdev.EV_KEY.KEY_F7
KEY_F7:65
>>> libevdev.EV_KEY.KEY_F8
KEY_F8:66
>>> libevdev.EV_KEY.KEY_F9
KEY_F9:67
>>> libevdev.EV_KEY.KEY_F10
KEY_F10:68
>>> libevdev.EV_KEY.KEY_F11
KEY_F11:87
>>> libevdev.EV_KEY.KEY_F12
KEY_F12:88

# Ubuntu 24.04
>>> import libevdev
>>> libevdev.EV_KEY.KEY_F1
KEY_F1:59
>>> libevdev.EV_KEY.KEY_F2
KEY_F2:60
>>> libevdev.EV_KEY.KEY_F3
KEY_F3:61
>>> libevdev.EV_KEY.KEY_F4
KEY_F4:62
>>> libevdev.EV_KEY.KEY_F5
KEY_F5:63
>>> libevdev.EV_KEY.KEY_F6
KEY_F6:64
>>> libevdev.EV_KEY.KEY_F7
KEY_F7:65
>>> libevdev.EV_KEY.KEY_F8
KEY_F8:66
>>> libevdev.EV_KEY.KEY_F9
KEY_F9:249
>>> libevdev.EV_KEY.KEY_F10
KEY_F10:68
>>> libevdev.EV_KEY.KEY_F11
KEY_F11:87
>>> libevdev.EV_KEY.KEY_F12
KEY_F12:88
```

A workaround is simply set `libevdev.EV_KEY.KEY_F9.value = 67`.

```py
import libevdev
fd = open('/dev/input/by-path/platform-i8042-serio-0-event-kbd', 'rb')
d = libevdev.Device(fd)
uinput = d.create_uinput_device()
uinput.send_events([libevdev.InputEvent(libevdev.EV_KEY.KEY_F9, 1), 
libevdev.InputEvent(libevdev.EV_SYN.SYN_REPORT, 0)])  # press F9 (not work)
uinput.send_events([libevdev.InputEvent(libevdev.EV_KEY.KEY_F9, 0), 
libevdev.InputEvent(libevdev.EV_SYN.SYN_REPORT, 0)])  # release F9 (not work)
libevdev.EV_KEY.KEY_F9.value = 67  # workaround
uinput.send_events([libevdev.InputEvent(libevdev.EV_KEY.KEY_F9, 1), 
libevdev.InputEvent(libevdev.EV_SYN.SYN_REPORT, 0)])  # press F9 (works)
uinput.send_events([libevdev.InputEvent(libevdev.EV_KEY.KEY_F9, 0), 
libevdev.InputEvent(libevdev.EV_SYN.SYN_REPORT, 0)])  # release F9 (works)
```

** Affects: python-libevdev (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2080804

Title:
  KEY_F9.value should be 67 but 249

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-libevdev/+bug/2080804/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to