我如何重新映射键盘按键?

我如何重新映射键盘按键?

我正在寻找有关重新映射键的一般说明。

有人能告诉我如何重新映射F9PrtScrF10按钮ScrollLock吗?

我浏览过这里的每一个帖子,但没有任何建议奏效。

我正在使用瑞典键盘设置和 Ubuntu 12.04。

答案1

这个答案主要是根据前三个步骤的信息得出的询问 Ubuntu 答案 还有这个 Ubuntu 论坛线它所链接/引用的。这其他 Ask Ubuntu 答案非常有帮助。所以所有功劳都归功于 NES、llazarte、bodhi.zazen 和 Argusvision。

只需交换两个键的功能:从终端运行xev,然后按下F9,将得到类似的结果

显示 F9 KeyPress 事件的终端窗口

对 执行相同的操作PrtSc没有给xev我任何输出(或者我找不到“KeyPress 事件”),因此我使用 Argusvision 的建议,在所有设置中使用自定义快捷键,但这样做是为了通过重新分配为+来禁用PrtSc屏幕截图按钮,然后尝试再次按下,这给了我键码 107,就像这样ShiftAltPrtScxev

显示 PrtSc KeyPress 事件的终端窗口

对所有四个键重复此过程,我得到了

  • F9= 键码 75
  • PrtSc= 键码 107,操作打印
  • F10= 键码 76
  • Scroll Lock= 键码 127,操作暂停

要改变键的功能,我们需要知道按下的新键的键码以及该功能的旧键或现有键的“操作”。

现在,我们已经有了识别按键的按键代码,现在我们可以通过使用按键来让系统执行我们想要的操作xmodmap,并且我们知道F9有“按键代码 75”并且PrtSc有“打印”操作,我们需要做的就是

xmodmap -e "keycode 75 = Print"

使F9按键的行为就像PrtSc按键被按下一样。即,键码保持不变,但按下F9按键会有不同的结果。

使用xevScroll Lock也给了

显示 Scroll Lock KeyPress 事件的终端窗口

这确认了该键的“动作”Scroll Lock是“暂停”,因此将该F10动作视为Scroll Lock尝试

xmodmap -e "keycode 76 = Pause"

应该会产生预期的结果。

直到你注销或关机等,所以我们在确认命令后要做什么

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 76 = Pause"

给出预期结果的方法是找出SysRec哪些按钮被修改了PrtSc,然后交换其他按钮,这样我们就不会有多个相同按键动作的实例。添加

xmodmap -e "keycode 107 mod1 = F9 Sys_Req"

应该再次交换F9PrtSc保存修改后SysReqAlt+ PrtSc)的位置,我们可以使用xev它来帮助验证这一点。

交换Scroll LockF10按钮更容易

xmodmap -e "keycode 127 = F10"

确保运行时

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 107 mod1 = F9 Sys_Req"
xmodmap -e "keycode 76 = Pause"
xmodmap -e "keycode 127 = F10"

确实做了预期的事情,剩下要做的就是在启动时完成这件事。为此,请运行

xmodmap -pke|egrep  -e '(F9|Print)'

这给了我

更多文字

我们只对键码 75 和 107 感兴趣。对

xmodmap -pke|egrep  -e '(F10|Pause)'

这给了我

更多文字

我们只对键代码 76 和 127 感兴趣。

使用您最喜欢的文本编辑器创建一个新的文本文档,复制并粘贴相关信息

keycode  75 = Print NoSymbol Print
keycode 107 = F9 Sys_Req F9 Sys_Req
keycode  76 = Pause NoSymbol Pause
keycode 127 = F10 NoSymbol F10

将文件命名为.Xmodmap并将其保存在您的主目录中,您只需在重新启动后登录即可运行更改。

答案2

对于较新版本的 Ubuntu,Xmodmap 可以工作,但重启后,您会丢失键映射!相反,我所做的是编辑 xbd 文件 (/usr/share/X11/xkb/符号/pc)。

在这种情况下,您需要添加以下条目:

key <FK09> { [Print] };
key <FK10> { [Scroll_Lock] };

然后清除 xkb 设置缓存:

rm -rf /var/lib/xkb/*

重启后您的按键就被正确映射了。

答案3

转到System Settings > keyboard > Custom Shortcuts。在这里,您可以为任何键或键组分配命令。单击添加 (+) 按钮。在弹出的窗口中,名称 = Print Screen;命令 = gnome-screenshot。创建后,单击名称右侧显示“已禁用”的行。这会将其更改为“新加速器”只需按 F9 即可。

仍在寻找滚动锁。

经过一番寻找,我找到了解决滚动锁定问题的答案。我从找到的内容开始寻找这个答案。这里。 您应该能够使用xmodmap终端将其应用于任何一组键。编辑:您还可以阅读有关 Xmodmap 的更多信息这里

看一下 的输出xmodmap -pke | grep F10
我的是:

keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10  

这意味着我的F10密钥是keycode 76。由于您使用的布局不同,您的密钥可能不同。

所以应该能够F10使用以下命令分配滚动锁定:

xmodmap -e "keycode 76 = Scroll_Lock"  

您需要输入找到的“密钥代码”你的F10 键。

您还可以查看man xmodmapxmodmap --help查找其他选项。
例如,xmodmap -pke将您的键映射表列为表达式。这样,您也可以找到分配给其他键的表达式。

相关内容