我在 MSI GS60 上遇到了这个问题。在运行 Ubuntu 时第一次使用 Fn 键时就会发生这种情况(我也在 Arch 上测试过这个问题,那里的情况更糟)。
即使我没有触摸笔记本电脑的键盘,Ubuntu 似乎也会认为有人随机按下了亮度调高/调低键(Fn + 向上箭头或 Fn + 向下箭头)。当我关闭笔记本电脑时,它显示好像按下了某个键。
只要我能解决这个亮度问题,我不会介意不能使用任何 Fn 键(尽管如果启用它们会更好)。
答案1
这似乎是大多数 MSI 笔记本电脑的常见问题,包括我自己的 GP62 6QF Leopard Pro。据说,修复此问题的一种方法是更新 BIOS,但这对我来说不起作用。
我设法通过将其添加到来解决这个问题/usr/share/X11/xorg.conf.d/10-quirks.conf
:
Section "InputClass"
Identifier "Spooky Ghosts"
MatchProduct "Video Bus"
Option "Ignore" "on"
EndSection
这基本上忽略了来自视频总线的消息,该消息似乎是fn+up
fn+down
随机发送伪消息。
来源:https://ubuntuforums.org/showthread.php?t=2314161&page=2
编辑:请注意,这不是永久性修复,因为10-quirks.conf
该文件经常被操作系统更新覆盖。撰写本文时,最新的更新于 8 月 7 日发布,已覆盖此文件,并且上述脚本未保留。要再次修复它,您只需重新输入它,或提交错误报告通知他们有关此修复的信息。
仅供参考,该10-quirks.conf
文件正是用于此目的——修复由硬件不兼容导致的错误。
答案2
我最近切换到了 SwayWM/Wayland,另一个答案提供的配置对我来说不再有效(因为它仅适用于 X11)。我四处打听,被告知有一个针对 SwayWM 的修复程序,具体来说是禁用来自“视频总线”的输入事件。
首先,必须运行swaymsg -t get_inputs
以获取“视频总线”的标识符。相关部分的示例输出如下所示:
...
Input device: Video Bus
Type: Keyboard
Identifier: 0:6:Video_Bus
Product ID: 6
Vendor ID: 0
Active Keyboard Layout: English (US)
Libinput Send Events: enabled
...
您必须获取“标识符”条目,它将用于.config/sway/config
禁用“视频总线”的输入。在我的例子中,它是0:6:Video_Bus
。
最后要做的就是将以下行添加到您的.config/sway/config
:
input 0:6:Video_Bus events disabled
因此,如果您的标识符不同,您可以0:6:Video_Bus
用您的标识符替换。
剩下的就是重新加载 sway 的配置$mod+Shift+c
或者重新启动 sway,并且 sway 应该已经禁用来自“视频总线”的输入。
答案3
如果您使用带有 wayland 的 KDE Plasma,则需要使用 D-Bus 来禁用视频总线输入。
首先,您需要找到与视频总线相对应的事件,运行此命令并查看处理程序
cat /proc/bus/input/devices | grep "Video Bus" -A 5
示例输出,在此示例中为event3
:
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:14/LNXVIDEO:00/input/input4
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
然后调用 D-Bus 来禁用它(event3
用笔记本电脑上的正确事件替换)
qdbus org.kde.KWin /org/kde/KWin/InputDevice/event3 org.kde.KWin.InputDevice.enabled false
答案4
我想使用 的设备怪癖添加我的 Wayland 解决方案libinput
,请参阅https://wayland.freedesktop.org/libinput/doc/latest/device-quirks.html#device-quirks。我有带有默认 GNOME 环境的 Fedora 38,笔记本电脑是 MSI Modern 14 C7M-081CZ。
先前的答案启发了它,因此为了完整起见,您可以列出您的设备,sudo libinput list-devices
其输出将输出包含以下内容的内容
Device: Video Bus
Kernel: /dev/input/event7
Group: 1
Seat: seat0, default
Capabilities: keyboard
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: n/a
Nat.scrolling: n/a
Middle emulation: n/a
Calibration: n/a
Scroll methods: none
Click methods: none
Disable-w-typing: n/a
Disable-w-trackpointing: n/a
Accel profiles: n/a
Rotation: 0.0
您还可以使用 来查看所有事件sudo libinput debug-events
。实际亮度按钮将输出为
event2 KEYBOARD_KEY +13.879s KEY_BRIGHTNESSDOWN (224) pressed
event2 KEYBOARD_KEY +13.925s KEY_BRIGHTNESSDOWN (224) released
event2 KEYBOARD_KEY +14.324s KEY_BRIGHTNESSUP (225) pressed
event2 KEYBOARD_KEY +14.368s KEY_BRIGHTNESSUP (225) released
“假”的看上去很相似,但是事件编号不同。
我有libinput
怪癖文件,/usr/share/libinput/
因此我创建了一个新的:
[tomtom@fedora libinput]$ cat 10-generic-keyboard_video.quirks
[Video Bus Spooky Ghost]
MatchName=*Video Bus*
AttrEventCode=-EV_KEY:0xE0;-EV_KEY:0xE1;
不确定是否需要重新启动或如何使其立即工作。
如果设置正确,与特定事件相关的怪癖将使用以下命令打印libinput quirks list /dev/input/event<number>
:
[tomtom@fedora libinput]$ libinput quirks list /dev/input/event3
AttrEventCode=-KEY_BRIGHTNESSDOWN;-KEY_BRIGHTNESSUP;
在相反的情况下,sudo libinput list-devices
会在输出开始处打印警告/错误。