②话不说▼ 2013▼ 效率 键盘 映射 ubuntu xmodmap

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

《016.Ubuntu映射方向键到ijkl》 盲打不过关,全键盘操作不流畅,需要使用Home,End,翻页,方向键时要很费神,重新映射键盘。
题图:大F圣手二代,茶轴,攻城狮高配,敲代码根本停不下来的节奏(青轴更爽,但略响)。