如何重新映射键盘键?

我正在寻找重新映射密钥的一般说明。

有人能告诉我如何将F9重新映射到PrtScrF10ScrollLock按钮吗?

我在这里查看了每个post,没有一个建议有效。

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

这个答案主要是使用这个Ask Ubuntu答案的前三个步骤中的信息以及它链接/引用的这个Ubuntu论坛主题 。 这个其他Ask Ubuntu的回答非常有帮助。 所以归功于NES,llazarte,bodhi.zazen和Argusvision。

简单地交换两个键function:从终端运行xev然后按F9 ,这将给出类似的东西

终端窗口显示F9 KeyPress事件

PrtSc做同样的事情并没有为我提供xev任何输出(或者我找不到“KeyPress事件”)所以我使用了Argusvision的建议在所有设置中使用自定义快捷键,但这样做是为了禁用PrtSc作为截图按钮通过重新分配为Shift + Alt,然后再次按下,这给了我xev PrtSc的键码107,就像这样

显示PrtSc KeyPress事件的终端窗口

重复所有四个键的过程给了我

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

要更改键function,我们需要知道正在按下的NEW键的键码以及OLD的“动作”或该function的现有键。

现在我们已经拥有了用于识别密钥的密钥代码,我们现在通过使用xmodmap使系统完成我们想要的xmodmap ,因为我们知道F9具有“密钥代码75”而PrtSc具有“打印”function,我们需要做的就是

 xmodmap -e "keycode 75 = Print" 

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

使用带有Scroll Lock的 xev也给出了

显示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" 

应该将F9交换到PrtSc再次保留修改后的SysReqAlt + PrtSc )的位置,我们可以使用xev来帮助validation这一点。

交换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并将其保存在主目录中将允许您只需在重新启动后登录即可运行更改。

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

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

 key  { [Print] }; key  { [Scroll_Lock] }; 

然后清除xkb设置缓存:

 rm -rf /var/lib/xkb/* 

重启后,您的密钥将被核心映射。 如果您需要更多帮助,请参阅我在Ubuntu 15.04中重新映射密钥的post

进入System Settings > keyboard > Custom Shortcuts 。 在这里,您可以为任何键或一组键分配命令。 单击添加(+)按钮。 在弹出的窗口中,Name = Print Screen ; Command = gnome-screenshot 。 创建它之后,单击名称右侧显示“已禁用”的行。 这应该改为“新的Accelorator”只需按F9。

仍在寻找滚动锁定。

看了一会儿后,我找到了滚动锁定的答案。 我从这里找到的答案开始了。 您应该能够使用终端中的xmodmap将其应用于任何密钥集。 编辑:您还可以在此处阅读有关Xmodmap的更多信息

看一下xmodmap -pke | grep F10的输出 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将键映射表列为表达式。 这样,您也可以找到分配给其他键的表达式。