Swap left ctrl and alt in Linux

因为我的笔记本Ctrl被Fn键隔的大老远,必须换之!

Caps 跟 Esc 互换,左边的Ctrl 和Alt 互换,这是我个人用的映射。这样,Esc在A的左边,Ctrl在空格左边,不常用的Alt在空格右边(偶尔也用左下角),Super原样,适用一个月下来,我是蛮习惯的。

被淘汰的xmodmap就不提了,那个在有中文输入法存在的地方完全废掉。

完美解决,只能是setxkbmap.

直接放步骤了(这已经是最简化的了):

1. 在/usr/share/X11/xkb下面新增option: swap_lalt_lctrl

cd /usr/share/X11/xkb/symbols/ 
sudo vim ctrl

在末尾添加如下代码:

// swap left alt and left ctrl  
partial modifier_keys  
xkb_symbols "swap_lalt_lctrl" {  
    key <LALT> { [ Control_L, Control_L ] };  
    key <LCTL> { [ Alt_L, Meta_L ] };  
    modifier_map Control { <LALT>, <RCTL> };  
    modifier_map Mod1 { <LCTL>, <RALT> };  
};

然后切换到目录 /usr/share/X11/xkb/rules/

sudo vim evdev

在ctrl下面添加:(在! option = symbols 下面)

ctrl:swap_lalt_lctrl    =   +ctrl(swap_lalt_lctrl)

同一目录

sudo vim evdev.lst

在ctrl下面添加:(在! option 下面)

ctrl:swap_lalt_lctrl   Swap left Ctrl and Alt

到此,一个新的ctrl键的option, swap_lalt_lctrl成功添加出来。

2. dconf-editor 调用此option

dconf-editor, 在org.gnome.desktop.inputsources下面,
xkboptions选项,添加如下:['ctrl:swap_lalt_lctrl'],OK.

若需立即生效,终端键入 setxkbmap -print即可。



PS: 我的显示:

xkb_keymap {
    xkb_keycodes    { include "evdev+aliases(qwerty)" };
    xkb_types       { include "complete" };
    xkb_compat      { include "complete" };
    xkb_symbols     { include "pc+us+inet(evdev)+capslock(swapescape)+ctrl(swap_lalt_lctrl)" };
    xkb_geometry    { include "pc(pc105)" };
};

你可能感兴趣的:(linux,Alt,Ctrl,setxkbmap)