我尝试了很多方法来尝试在运行 LinuxMint 20.3 和 xfce/xfwm4 的 Thinkpad X220 上交换alt
和键。windows
我试过setxkbmap -option altwin:swap_alt_win
了,将以下内容添加到~/.xmodmap
:
remove mod1 = Alt_L
remove mod4 = Super_L
add mod1 = Super_L
add mod4 = Alt_L
并运行xmodmap ~/.xmodmap
我已经浏览了Keyboard > Layout > Change Layout Option
,看看有什么可用的。
FWIW,showkey
报告:
ALT keycode 56
SUPER keycode 125
我也尝试过手动设置~/.xmodmap
:
keycode 56 = Alt_L
keycode 125 = Super_L
remove Mod1 = Alt_L
remove Mod4 = Super_L
add Mod1 = Super_L
add Mod4 = Alt_L
到目前为止,没有什么对我有用,任何正确方向的提示将不胜感激!
我从来没有运气让setxkbmap做我想做的事,但是在内核级别成功地重新映射了键。
首先您需要知道您的输入设备和按键扫描码。该工具
evtest
可用于此目的。这里显示的是 5 个与键盘相关的设备,而设备号 7 恰好是实际的键盘。反复试验以找出答案。
选择键盘后记下设备 ID。
该行
Input device ID
是您需要的,它将在您选择设备后立即显示。选择后,您可以点击键盘上的一些键,并且将记录按键和释放的事件。如果您没有看到正在记录的事件,则需要尝试选择其他设备。他
ctrl-c
完成后。按下alt和super后,您需要记下它们的键码。在我的情况下,这些按键的输出如下所示:
如上所示,代码 125 用于超级键,56 用于左 alt 键。你的价值观可能不同。
现在您需要创建一个文件来重新映射所需的键。在
/etc/udev/hwdb.d/
名为50-alt_super_swap.hwdb
. 确切的名称由您决定,但您需要一个开头的数字、破折号和扩展名。在该文件中,您将放置以下内容:
您需要修改该
evdev:input
行以反映打印出来的设备 ID 是evtest
。注意翻译和大写/小写。如果你没有完全正确地理解这条线,那么什么都不会发生。这些
KEYBOARD_KEY_*
行的值是十六进制的。十六进制的 38 是十进制的 56,而 7D 是 125。应用更改需要几秒钟的时间。除了找到有效的密钥交换之外,您还可以查看是否应用了更改。
虽然我自己并没有交换 alt 和 super,但我使用这篇文章作为参考,使用了这种技术来重新映射媒体键。