016.Ubuntu映射方向键到ijkl
盲打不过关,全键盘操作不流畅,需要使用Home,End,翻页,方向键时要很费神. 映射Home到H,End到;,方向键到ijkl,翻页到uo,Del到D 使用时,按下CapsLock键(切换大小写,使用Shift-CapsLock)
@史荣久 / 2013-03-01 / CC-BY-SA-3.0
1.环境工具
Ubuntu12.04LTS:桌面环境(从Gnome-shell过来体验下Unity)
xev
:终端运行,在弹出的窗口里做鼠标键盘事件,终端显示事件信息.
xmodmap
:X下的键盘映射命令.
2.操作手册
#查看下当前的映射情况,得到以下
xmodmap -pke|grep " 3[0-2]\| 4[3-7]\| 66\| 40"
#keycode 30 = u U u U
#keycode 31 = i I i I
#keycode 32 = o O o O
#keycode 40 = d D d D
#keycode 43 = h H h H
#keycode 44 = j J j J
#keycode 45 = k K k K
#keycode 46 = l L l L
#keycode 47 = semicolon colon semicolon colon
#keycode 66 = Mode_switch Caps_Lock Mode_switch Caps_Lock
###先改下试试效果###
#把大小写变成功能键,切换大小写使用Shift-CapsLock
xmodmap -e 'keycode 66 = Mode_switch Caps_Lock'
#映射方向键
xmodmap -e 'keycode 31 = i I Up'
xmodmap -e 'keycode 44 = j J Left'
xmodmap -e 'keycode 45 = k K Down'
xmodmap -e 'keycode 46 = l L Right'
#映射翻页
xmodmap -e 'keycode 30 = u U Prior'
xmodmap -e 'keycode 32 = o O Next'
#影视Home,End,Del
xmodmap -e 'keycode 40 = d D Delete'
xmodmap -e 'keycode 43 = h H Home'
xmodmap -e 'keycode 47 = semicolon colon End'
是否成功,按下CapsLock看键盘指示灯即可.
3.自动启动
上面的修改,当前会话有效,下次登录就消失了.自动启动的话,就下面一个命令即可.
cat>>~/.Xmodmap<<EOF
keycode 66 = Mode_switch Caps_Lock
keycode 31 = i I Up
keycode 44 = j J Left
keycode 45 = k K Down
keycode 46 = l L Right
keycode 30 = u U Prior
keycode 32 = o O Next
keycode 40 = d D Delete
keycode 43 = h H Home
keycode 47 = semicolon colon End
EOF
但插曲挺多的,如.rc, *.d/,autostart/.desktop,在X登录后,效果消失. 原因没深入调查,现象就是输入密码前好用,输入后登录完毕,效果丢失,应该是被覆盖了吧.
… …
周折(一个下午,lightdm,X11都调查了)后得知,是被fcitx-xkb设置覆盖了.
Fcitx-Config/Addon/X Keyboard Integratin 禁止了
4.参考资料
http://superuser.com/questions/213051/remap-arrow-keys-to-winijkl-on-linux
http://askubuntu.com/questions/13108/map-keyboard-arrows-to-shortcuts/13798
http://fcitx-im.org/wiki/FAQ/zh-cn
题图:大F圣手二代,茶轴,攻城狮高配,敲代码根本停不下来的节奏(青轴更爽,但略响)。