Ubuntu/Gnome/Nautilus无故屏蔽XF86LaunchA/B,请求解除以用于Guake
我之前在Ubuntu Gnome环境里也碰到过一模一样的问题!那些XF86Launch系列按键经常被Gnome或者Nautilus悄悄占用,导致没法自定义绑定。下面是我亲测有效的解决步骤,一步步来就行:
1. 先确认按键的实际keycode
首先得精准定位这两个按键对应的系统编码,避免后续操作搞错。打开终端输入:xev
弹出小窗口后,分别按下XF86LaunchA和XF86LaunchB,你会看到类似这样的输出(重点记下keycode数值):
KeyPress event, serial 37, synthetic NO, window 0x4a00001,
root 0x77a, subw 0x0, time 1234567, (123,456), root:(123,456),
state 0x0, keycode 192 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
比如我的XF86LaunchA是192,XF86LaunchB是193,你的可能不同,以实际输出为准。
2. 解除Gnome的默认绑定
Gnome的settings-daemon经常会默默占用这类特殊按键,却不在系统设置里显示。我们用命令行清空绑定:
先列出所有媒体/启动类按键的设置,确认目标按键是否被占用:gsettings list-recursively org.gnome.settings-daemon.plugins.media-keys
如果找到launch-a或launch-b的条目,执行以下命令解除绑定:
解除XF86LaunchA:gsettings set org.gnome.settings-daemon.plugins.media-keys launch-a ''
解除XF86LaunchB:gsettings set org.gnome.settings-daemon.plugins.media-keys launch-b ''
3. 检查并解除Nautilus的按键占用
有时候Nautilus也会捕获这些按键,打开Nautilus后按Ctrl+,打开偏好设置,切换到「快捷键」标签,看看有没有绑定XF86LaunchA/B的选项,如果有,点击对应条目后按Backspace取消绑定。
4. 给Guake绑定快捷键
现在按键已经解除屏蔽,接下来设置Guake的触发键:
方法一:图形界面设置
打开Guake,点击顶部菜单(或右键托盘图标)选择「首选项」,切换到「快捷键」标签,找到「显示/隐藏Guake」选项,点击右侧输入框后按下XF86LaunchA(或B),保存即可。
方法二:命令行设置(适配图形界面捕获不到按键的情况)
如果Guake图形设置没法识别按键,用命令行直接配置:
先查看Guake的快捷键配置路径:gsettings list-recursively org.gnome.guake
然后设置显示/隐藏快捷键,比如把keycode为192的XF86LaunchA绑定:gsettings set org.gnome.guake global-show-hotkey '<keycode>192</keycode>'
如果是XF86LaunchB(假设keycode是193):gsettings set org.gnome.guake global-show-hotkey '<keycode>193</keycode>'
5. 测试验证
现在按下XF86LaunchA/B,Guake应该能正常弹出/隐藏了。如果还是不行,按Alt+F2输入r回车重启Gnome,或者直接重启电脑试试。
内容的提问来源于stack exchange,提问作者Anh Quan Nguyen

