修改按键映射,ESC,CAPS_LOCK,左CTRL键值互换(linux和windows)

改键位是vim,emacs的老问题, CAPSLOCK又大又没用,ESC太远,CTRL位置太扭曲。

理想中的布局是这样:ESC=CAPS_LOCK, CAPS_LOCK=CTRL, CTRL=ESC,类似把ESC转移到左下角的HHKB。这样的布局对emacs最友好,对vim也不错。

这里提供四个方法,分别对应不同的桌面系统。注意,所有方法都只在图形界面下生效,控制台下键位不变。

Xorg

Debian 9(stretch) 以前用的是Xorg,所以只需要开机运行xmodmap就可以了。

~/.xsession内容:

[[ -f ~/.xmodmaprc ]] && xmodmap ~/.xmodmaprc

~/.xmodmaprc内容:

!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L

keysym Escape = Caps_Lock
keysym Control_L = Escape
keysym Caps_Lock = Control_L

add Lock = Caps_Lock
add Control = Control_L

Wayland

debian9以后改用了Wayland,xmodmap失效,只能用xkb这种更粗暴的方法。

/usr/share/X11/xkb/keycodes/evdev 原值如下:

<CAPS> = 66;
<LCTL> = 37;
<ESC> = 9;

修改后如下:

<CAPS> = 9;
<LCTL> = 66;
<ESC> = 37;

按照原本的交换逻辑应该是<CAPS>=37、 <LCTL>=9、 <ESC>=66,不知道为什么这么改结果却是CTRL=CAPS_LOCK,CAPS_LOCK=ESC,ESC=CTRL。

Gnome-shell

Gnome桌面的设置比较简单,在Startup Applications Preferences中添加一个启动项:

Startup Applications Preferences_009.png

启动命令:

sh -c "/usr/bin/xmodmap ~/.xmodmaprc"

重启后生效。

Windows

用惯了linux下互换的键值,进windows会非常不习惯,索性把windows下面的映射也一并改了。

windows修改映射是通过注册表,新建文件keymap.reg,用记事本打开,输入以下内容:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,3A,00,01,00,01,00,1D,00,1D,00,3A,00,00,00,00,00

保存后双击运行即可。

修改原理见 CPU藏经阁 的博客。

参考文献:

[1]. man xmodmap

[2].http://tieba.baidu.com/p/5188609921

[3].xyztony1985.blog.163.com/blog/static/3611782011752420104/

转载于:https://my.oschina.net/chenchacha/blog/1537129

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值