Reading / Coding / Hacking
好久没更新 Blog 了,来篇水文充充数吧。一个多月前买了一个小键盘,手感很好,可惜就是一些键位按起来不顺手,比如 Ctrl 要整只手后退才能按到,比如我熟悉的 Win 键的位置放了一个菜单键(对 Awesome 党来说无法接受咯),于是研究了一下 xmodmap 的用法,把 Ctrl 和 Caps Lock 互换,再把菜单键映射成 Win 键。
xmodmap 用起来很简单,关键在于怎样获取 keycode 和目标键位的名称。以下内容来自 man xmodmap
+ Google + 自己的试验。
查看 keycode 可以用 xmodmap -pke | grep <键位名称>
,当然也可以用 xev
捕捉(不过这个干扰信息实在太多了)
找到 keycode 和目标键位名称之后,在 ~/.Xmodmap
里写入你想要的按键映射,最常用的语法是 keycode <actual key number>=<target key>
,比如 keycode 89 = F4
就将 PageDown 键变成了 F4 键(估计没什么人会这么干的啦)。
如果要设定在 Shift 键按下之后的映射,比如将 Shift + F4 变成 F5,可以这样写:keycode 70 = F4 F5
。第一个代表普通状态的映射,第二个是 Shift 按下后的行为。
多媒体按键(通常笔记本的键盘上有一堆)的 keycode 等信息可以在 XKeysymDB 这个文件里找到,这个文件通常是在 /usr/share/X11
(我这里不知道为什么没有)
KDE 的用户可能需要在 ~/.xprofile 里加入这段代码:
if [ -f $HOME/.Xmodmap ]; then
/usr/bin/xmodmap $HOME/.Xmodmap
fi
Emacs 特有的问题:如果你将某个键映射为 Meta 的话,在 Emacs 里 Alt 键就会失效(原因不明),解决方法是在 Emacs 里再将 Meta 映射为别的按键……