我有一台运行 Sabayon(基于 Gentoo 的发行版)的 Thinkpad Edge E130,我正在与众所周知的错误作斗争Xorg 255 个键码限制。
我的笔记本电脑有 Fn+F4 热键麦克风静音/取消静音。这就是问题:
showkey -k
显示键码248按 Fn+F4 按键showkey -s
按键时不显示任何内容xev
按键时不显示任何内容(因为 248+8 [由内核添加] 大于 255)
如果钥匙有键码,则它也必须有扫描码。和获取扫描代码程序确实我得到了 26 作为扫描码:
# ./Sabayon/getscancodes/getscancodes /dev/input/event6
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x17aa product 0x5054 version 0x4101
Input device name: "ThinkPad Extra Buttons"
26 (0x1a)
26 (0x1a)
根据这线程,我的猜测只是将热键的键码更改为较小的未使用的键码。例如 120 根据我的说法似乎没有使用$ xmodmap -pke
我尝试过
# setkeycodes 0x1a 120
但没有成功,键码始终是 248,用showkey
.
更改键码的正确方法是什么?
答案1
用于
showkey
了解您的按键扫描码:$ sudo showkey -s 0xe0 0xXX
内核将在您的代码中添加 8,请
112
改为使用120
:$ sudo setkeycodes e0XX 112
用于
xmodmap
制作您的密钥报告XF86AudioMute
keysym:$ xmodmap -e "keycode 120 = XF86AudioMute"
选修的。在 DE 设置中创建所需内容的快捷方式时按您的键。
答案2
我想做的是,当按下“暂停”按钮时,打印字符“k”。问题是“暂停”按钮没有扫描码(showkey -s
不起作用)。我这样解决了这个问题:
- 切换到控制台
- 用于
showkey -k
了解“暂停”按钮的键码(在我的例子中为 425)
$ showkey -k
keycode 425 press
keycode 425 release
- 用于
getkeycodes
获取键码到扫描码的映射表
e0 68: 128 159 158 157 155 226 225 224
e0 70: 0 192 193 149 148 425 116 0
e0 78: 464 148 0 0 0 0 0 0
- 在此表中找到与键码 425 关联的扫描码(在我的例子中为 e075)
- 切换回X
- 用于
xmodmap -pke
查找您需要的密钥代码(您也可以修改它们)(在我的例子中为 45)
keycode 45 = k K Cyrillic_el Cyrillic_EL k K
- 减去 8 得到内核键码 (45 - 8 = 37)
- 用于
setkeycodes
添加原始扫描码 e075 和内核键码 37 之间的关联
sudo setkeycodes e075 37
- 测试一下。应该有效
答案3
第 1 步:xmodmap -pke
将列出您的密钥代码
第 2 步:xmodmap -e 'keycode 51 = backslash bar'
将该键码更改为反斜杠