假设我A在文本编辑器中按下键,这会a
在文档中插入字符并将其显示在屏幕上。我知道编辑器应用程序没有直接与硬件通信(中间有内核和其他东西),那么我的计算机内部发生了什么?
我想用 XKB 随机播放几个键。(为什么?在某些按键不方便的笔记本电脑上。)我目前使用 xmodmap:
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Run Code Online (Sandbox Code Playgroud)
相反,我想使用 XKB 并为某些物理键分配不同的符号名称,而不是为某些键码分配不同的键符。(这就是为什么。)我希望发送 keycode 110PGUP
而不是 ,发送HOME
keycode 115DELE
而不是END
等等。其余的配置必须不受影响(所以PGUP
要继续发送 keysymPrior
等,并且所有其他键都保留像他们那样)。
如何更改这些特定键码的分配?我将加载一个文件xkbcomp somefile.xkb $DISPLAY
,我需要放入somefile.xkb
什么?
我有一台运行 Sabayon(基于 Gentoo 的发行版)的 Thinkpad Edge E130,我正在与众所周知的错误Xorg 255 keycodes limit 作斗争。
我的笔记本电脑有Mic Mute/Unmute的 Fn+F4 热键。这就是问题:
showkey -k
在 Fn+F4 按键上显示键码248showkey -s
按键上不显示任何内容xev
按键上不显示任何内容(因为 248+8 [由内核添加] 大于 255)如果一个键有一个键码,它也必须有一个扫描码。使用getscancodes程序确实我得到了 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)
Run Code Online (Sandbox Code Playgroud)
根据此线程,我的猜测只是将热键的键码更改为较小的、未使用的键码。例如,根据我的说法,120 似乎未使用$ xmodmap -pke
我试过
# setkeycodes 0x1a 120 …
Run Code Online (Sandbox Code Playgroud)