我试图通过将一些键放在更方便使用的地方来对抗我的“emacs pinky”。我已经换成了Ctrl,Caps Lock这是理所当然的,将 setxkbmap 命令放入启动应用程序列表中。
我决定也应该移动左侧的 Meta/Super/Windows 键,我经常使用这些键,但在键盘上使用这些键不太方便。最适合发挥其功能的键是 Tab 上方的键,在美国键盘中,它可显示符号~
(在 ES 键盘中,它可显示阳性/阴性符号和反斜杠和)。
通过查看,我发现/usr/share/X11/xkb/symbols/es
它的代码是TLDE
:
key <TLDE> { [ masculine, ordfeminine, backslash, backslash ] };
但是我怎样才能将该键与左元键交换??我在 xkb 中找不到该键的代码,我不知道如何进行交换,因为 中没有该选项/usr/share/X11/xkb/rules/evdev.lst
。它的代码是LWIN
(正如我看到的/usr/share/X11/xkb/symbols/pc
):
key <LWIN> { [ Super_L ] };
如果相关的话,我目前正在运行 XFCE4,但我想要一个便携式解决方案,以便如果我更换 DE(我在其他计算机上使用 Unity),我可以随身携带它;我也在使用西班牙语键盘。
添加:我当前的配置;注意我已经启用了 swapcaps,它是从setxkbmap
我添加到启动应用程序中启用的。
$ setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+es+inet(evdev)+ctrl(swapcaps)" };
xkb_geometry { include "pc(pc105)" };
};
谢谢!
一次可能接近失败的尝试
我尝试改变布局x11/xkb
。
在/usr/share/X11/xkb/symbols/es
:
-key <TLDE> { [ masculine, ordfeminine, backslash, backslash ] };
+key <TLDE> { [ Super_L ] };
在/usr/share/X11/xkb/symbols/pc
:
-key <LWIN> { [ Super_L ] };
+key <LWIN> { [ masculine, ordfeminine, backslash, backslash ] };
这没有什么区别,他们表现出相同的行为。
另一个想法
我想到过的另一个办法是切换键码/usr/share/X11/xkb/keycodes/evdev
。但无法让它工作。
答案1
使用 xmodmap
我不想使用 xmodmap,但是......它可以解决问题:
xev
检查键码和功能(对我来说,49 是阳性键码,133 是 Super_L)。xmodmap 来交换它们的功能:
xmodmap -e 'keycode 49 = Super_L' xmodmap -e 'keycode 133 = masculine backslash backslash backslash'
请注意,这与我的键盘布局相符,您应该检查一下自己的键盘布局。此外,现在反斜杠是用 Shift 而不是像以前那样用 Alt-Gr 来输入的,但我很快就习惯了。