Ubuntu 下 Swap RCTRL and RALT, LWIN and LALT, ESC and CAP

来源:互联网 发布:现代文翻译古文软件 编辑:程序博客网 时间:2024/09/21 08:17

因为使用 vimawesome 还有 tmux 所以 最常用的是 EscWinCtrl 这 3 个键, 而 CapAlt 基本不用, 所以想利用起来, 达到左手小拇指可以轻松按到 Esc, 左手大拇指可以轻松按到 Win 键 (实现 Win + j / k 切换窗口), 右手大拇指可以轻松按到 Ctrl 键 (实现 Ctrl + a / c / v 全选以及复制粘帖)

完美解决,只能是 setxkbmap.

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

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

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

在末尾添加如下代码:

// swap right alt and right ctrl  partial modifier_keys  xkb_symbols "swap_ralt_rctrl" {      key <RALT> { [ Control_R, Control_R ] };      key <RCTL> { [ Alt_R, Meta_R ] };      modifier_map Control { <RALT>, <LCTL> };      modifier_map Mod1 { <RCTL> };  };

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

sudo vim evdev

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

ctrl:swap_ralt_rctrl = +ctrl(swap_ralt_rctrl)

同一目录

sudo vim evdev.lst

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

ctrl:swap_ralt_rctrl Swap right Ctrl and Alt

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

2. dconf-editor 调用此option

dconf-editor, 在org.gnome.desktop.inputsources下面,
xkboptions 选项,添加如下:['caps:swapescape', 'altwin:swap_alt_win', 'ctrl:swap_ralt_rctrl'],OK.(注意顺序不能改,必须先调用 swap_alt_win, 当 win 和 alt 交换后, 再调用 swap_ralt_rctrl, 否则 ralt 会先和 rctrl 互换, 然后在和 win 键互换, 导致 ralt 是 win 键而不是 rctrl)

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

0 0