问题描述
我正在寻找重新映射密钥的一般说明。
有人能告诉我如何将F9
重新映射到PrtScr
和F10
到ScrollLock
按钮吗?
我在这里查看了每个帖子,没有一个建议有效。
我正在使用瑞典语键盘设置和Ubuntu 12.04。
最佳解决思路
这个答案主要是使用此Ask Ubuntu answer的前三个步骤以及它链接/引用的Ubuntu Forums thread中的信息来构成的。这个other Ask Ubuntu answer非常有帮助。所以归功于NES,llazarte,bodhi.zazen和Argusvision。
简单地交换两个键功能:从终端运行xev
,然后按F9
,这将给出类似的东西
为PrtSc做同样的事情并没有为我提供xev中的任何输出(或者我找不到”KeyPress event”)所以我使用了Argusvision的建议在所有设置中使用自定义快捷键,但这样做是为了通过重新分配为禁用PrtSc作为屏幕截图按钮Shift + Alt然后再次尝试按下,这给了我xev中PrtSc的键码107,就像这样
重复所有四个键的过程给了我
-
F9
=键码75 -
PrtSc
=键码107,动作打印 -
F10
=键码76 -
Scroll Lock
=键码127,动作暂停
要更改按键功能,我们需要知道按下的NEW键的键码和OLD的”action”或该功能的现有键。
现在我们已经有了用于识别密钥的密钥代码,我们现在通过使用xmodmap
使系统完成我们想要的工作,因为我们知道F9
具有“密钥代码75”而PrtSc
具有”Print”的动作我们需要做的就是
xmodmap -e "keycode 75 = Print"
使F9
键的行为就像按下了PrtSc
键一样。即,键码保持不变,但按下F9
键会产生不同的结果。
使用xev
和Scroll Lock
也给出了
确认Scroll Lock
密钥的”action”为”Pause”,这样可以使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
再次保留修饰的SysReq
(Alt
+ PrtSc
),我们可以使用xev
来帮助验证这一点。
交换Scroll Lock
和F10
按钮更容易
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 <FK09> { [Print] };
key <FK10> { [Scroll_Lock] };
然后清除xkb设置缓存:
rm -rf /var/lib/xkb/*
重新启动后,您的密钥将被核心映射。如果您需要更多帮助,请参阅remapping keys in Ubuntu 15.04上的帖子
第三种解决思路
转到System Settings > keyboard > Custom Shortcuts
。在这里,您可以为任何键或一组键分配命令。单击添加(+)按钮。在弹出的窗口中,Name = Print Screen
; Command = gnome-screenshot
。创建它之后,单击名称右侧的行,其中显示”Disabled”。这应该改为”New Accelorator”只需按F9即可。
仍在寻找滚动锁定。
After a little looking, I found an answer for scroll lock. I got started on this answer from what I found here. You should be able to apply it to any set of keys using
xmodmap
from the terminal. Edit: You can also read more about Xmodmap here
看看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密钥找到的”keycode”。
您还可以通过man xmodmap
和xmodmap --help
查看其他选项。例如,xmodmap -pke
将键映射表列为表达式。这样,您也可以找到分配给其他键的表达式。