[Bug 299406] atkbd/evdev: Alt+PrintScreen on a PS/2 keyboard produces no key event (only KEY_LEFTALT); plain PrintScreen works

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 15 Oct 2026 03:49:25 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=299406

            Bug ID: 299406
           Summary: atkbd/evdev: Alt+PrintScreen on a PS/2 keyboard
                    produces no key event (only KEY_LEFTALT); plain
                    PrintScreen works
           Product: Base System
           Version: 15.1-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: ste@umrk.org

Summary
With a PS/2 keyboard on the i8042 controller, pressing Alt+PrintScreen
generates no key event for the PrintScreen/SysRq key. libinput (evdev) sees
only KEY_LEFTALT pressed and released. Plain PrintScreen arrives as KEY_SYSRQ.
The same keyboard on the same port handles Alt+PrintScreen correctly under
Debian and every other OS.

Environment
- GhostBSD 26.1-R15.0p13, based on FreeBSD 15.0-RELEASE-p13
  uname -a: FreeBSD host-ghostbsd 15.0-RELEASE-p13 FreeBSD 15.0-RELEASE-p13
n230765-65e896a6c619 GENERIC amd64
- Board: ASUS KGPE-D16, AMI BIOS 3309, "Legacy USB Support" disabled in BIOS
- Keyboard: IBM Model M, plugged directly into the board's PS/2 port (no KVM
  or adapter)
- atkbd hints: none set (default flags). dmesg: 
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]

- Xorg keymap: rules evdev, model pc105, layout gb
- I have not tried stock FreeBSD 15.0. 

Steps to reproduce
1. As root: libinput debug-events --show-keycodes --device /dev/input/event3
   (event3 is the AT keyboard on this system)
2. Press PrintScreen alone.
3. Press Alt+PrintScreen.
4. For comparison, press Alt+F4.

Observed
- PrintScreen alone: KEY_SYSRQ (99) pressed and released.
- Alt+PrintScreen: only KEY_LEFTALT (56) pressed and released. No event for
  the PrintScreen key at any point.
- Alt+F4: KEY_LEFTALT, KEY_F4 (62), as expected. So Alt itself is fine.
- Ctrl+PrintScreen is delivered and works as a shortcut.

Output of the Alt+PrintScreen capture:
  event3  KEYBOARD_KEY  +5.539s  KEY_LEFTALT (56) pressed
  event3  KEYBOARD_KEY  +6.193s  KEY_LEFTALT (56) released

Further observations
- On a text console (vt), plain PrintScreen switches to another virtual
  console. Alt+PrintScreen does nothing. I do not know whether the console
  keymap simply has no binding for it, so this is weak evidence.
- X shows the same picture: xev (with the window manager's own binding
  disabled) receives no Print or Sys_Req event for Alt+PrintScreen. The X
  keymap itself is fine (keycode 107 = Print Sys_Req Print Sys_Req).
- The MATE shortcut dialog therefore cannot record Alt+PrintScreen, and the
  desktop's built-in "screenshot of a window" shortcut cannot use it.
- Checked and ruled out: MATE/Marco settings (the binding exists and the
  command works when run by hand), and the console sysctls
  (kern.vt.kbd_*, debug.kdb.*): none are involved as far as I can tell.

Expected behaviour
Alt+PrintScreen produces a key event for the PrintScreen/SysRq key (KEY_SYSRQ)
with Alt held, as on other operating systems on the same keyboard.

Not tested
- Raw scancodes (I could not find a tool on FreeBSD that prints them;
kbdcontrol
  -d only dumps the keymap, and showkey did nothing on the console)
- Stock FreeBSD 15.0 instead of GhostBSD
- Another PS/2 keyboard, or a USB keyboard

Impact
Minor. I work around it by binding the window screenshot to Ctrl+PrintScreen.

-- 
You are receiving this mail because:
You are the assignee for the bug.