我正在深入研究自定义键盘映射。基本上,我只想用 Ctrl_L 切换 Alt_L,用 Ctrl_R 切换 Alt_R(有点像 MacBook 上的 Command)。在文件中/usr/share/X11/xkb/symbols/ctrl
已经有一个 Alt_L 与 Ctrl_L 交换的定义(因此添加相反一侧的定义应该是小菜一碟),称为swap_lalt_lctl
。但是,当我输入以下内容时:
setxkbmap -layout us -option ctrl:swap_lalt_lctl
在终端中,我收到以下错误:
Error loading new keyboard description
我已经花了几个小时在谷歌上搜索并尝试不同的方法来解决问题,例如:sudo、清除缓存、重新启动、在命令中明确说明机器信息,但似乎没有任何效果。奇怪的是,它setxkbmap -layout us
工作得很好,而且setxkbmap
与其他选项一起似乎也有效。看来它只影响ctrl:
选项。
如果有人可以帮助我,建议一些解决方案,我将非常感激。
哦,并lsb_release -a
给出:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy
在不深入研究 xkb 的情况下,我得到的最接近的是在 Gnome-Tweaks 工具中设置“Ctrl 映射到 Alt,Alt 映射到 Win”选项。
答案1
如果我没记错的话,要永久保留更改,Xorg
就必须使用/etc/X11/xorg.conf.d/
配置文件对其进行配置。对于键盘配置,该10-keyboard.conf
文件是必需的:
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "es"
Option "XkbModel" "pc104"
Option "XkbVariant" "deadtilde,dvorak"
Option "XkbOptions" "grp:alt_shift_toggle"
EndSection
就我而言,我使用西班牙语配置,但在您的情况下,它可能会根据需要而有所不同。