因为我的笔记本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)" };
};
改键位其实还有更简单的方法。
贴出来以供参考。无需新建ctrl键的option,而是修改原有的无用选项的值来实现。
[SOLVED]How to use 'gnome-tweak-tool' swap Control-R and Alt-R ?
First : Run Terminal
sudo gvim /usr/share/X11/xkb/symbols/ctrl
Sceond :
Move cursor to the 'line 7', and Replace Original Value.
// replace left control with Meta
partial modifier_keys
xkb_symbols "lctrl_meta" {
replace key <RALT> { symbols[Group1] = [ Control_R, Control_R ] };
modifier_map Control { <RALT>, Control_L };
// replace key <LCTL> { [ Meta_L ] };
};
Third: Run Tweak Tool, Switch to 'Typing' tab.
Look right interface, Find 'ctrl key position' optional, click it and choose
"left Ctrl as Meta".
That's All , Thx.