华硕 ROG 无线键盘从睡眠状态唤醒后记录 KDE(省电模式)

华硕 ROG 无线键盘从睡眠状态唤醒后记录 KDE(省电模式)

首先,这与其说是一个问题,不如说是我想到的一个解决方案,如果有人遇到这个问题,我想分享一下,因为我在网上找不到任何东西,只有一个人放弃了。我还向华硕寻求帮助,他们收费让我安装 Windows :D。

我买了一个华硕 ROG STRIC SCOPE NX 无线键盘,但出现了一个 bug,当键盘处于睡眠模式(以节省电池)时,我按下按钮将其唤醒,它会将我从 KDE 中注销并显示登录屏幕。这发生在我的个人电脑和工作笔记本电脑上,两者都安装了 Kubuntu 22.04(也尝试过 Kubuntu 23.10)

因此,在尝试从设置中禁用所有睡眠按钮命令并从/etc/systemd/logind.conf信号中禁用无济于事后,我在 xev 中注意到,当发生这种情况时,此消息会被发送:

KeyRelease event, serial 41, synthetic NO, window 0x400001,
    root 0x1f1, subw 0x0, time 39552, (-385,-158), root:(1446,1215),
    state 0x10, keycode 151 (keysym 0x0, XF86WakeUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

因此,出于某种原因,键盘发出了奇怪的信号。运行 xinput 时,我还注意到有一些奇怪的键盘 15 和 12:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=9    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver Keyboard            id=10   [slave  pointer  (2)]
⎜   ↳ ASUSTeK ROG STRIX SCOPE NX WIRELESS DELUXE Mouse  id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ ASUSTeK ROG STRIX SCOPE NX WIRELESS DELUXE        id=11   [slave  keyboard (3)]
    ↳ ASUSTeK ROG STRIX SCOPE NX WIRELESS DELUXE Consumer Control       id=14   [slave  keyboard (3)]
    ↳ Logitech G560 Gaming Speaker Consumer Control     id=16   [slave  keyboard (3)]
    ↳ Logitech G560 Gaming Speaker              id=17   [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                          id=18   [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                        id=19   [slave  keyboard (3)]
    ↳ Logitech USB Receiver Keyboard            id=20   [slave  keyboard (3)]
∼ ASUSTeK ROG STRIX SCOPE NX WIRELESS DELUXE    id=15   [floating slave]
∼ ASUSTeK ROG STRIX SCOPE NX WIRELESS DELUXE System Control     id=12   [floating slave]

禁用它们之后xinput disable 15xinput disable 12问题就消失了。

所以我的解决方案是编写一个包含两行内容的“脚本”:):

#!/bin/bash

xinput disable 12
xinput disable 15

并创建一个简单的 .desktop 条目,~/.config/autostart在 KDE 启动时执行 cmds:

[Desktop Entry]
Exec=~/scripts/keyboard-fix.sh # The location for the script (don't forget chmod +x script) 
Icon=dialog-scripts
Name[en_US]=Unlock KeePassXC database
Name=Unlock KeePassXC database
StartupNotify=true
Terminal=false
Type=Application
X-KDE-AutostartScript=true
X-KDE-SubstituteUID=false

禁用这些输入后,我没有发现键盘上缺少任何功能(所有媒体和特​​殊键均能正常工作)。

希望这对某些人有帮助,如果有人有更好的解决方案,请分享:)。

相关内容