跟进我关于在 Wayland 中自定义键映射的问题我发现这xmodmap
显然已被弃用,但 xkb 在 Wayland 中“应该可以工作”。不幸的是,xkb 更加复杂,相应的文档也更加匮乏。我已经根据来自的信息设法找出了我需要的节Cmd关于交换和的问题Ctrl,另一个大写锁定问题,阅读答案中的一些链接和我的系统文件,但我不知道如何以一种可以自动化且不与 GNOME 冲突的方式应用它们。
这些是我已经制定并成功测试过的节xkbcomp
。
partial alphanumeric_keys
xkb_symbols "pound" {
// Put sterling on RAlt-3 and numbersign on Shift-3.
key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};
// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
key <RWIN> { [ Control_R ] };
modifier_map Control { <LCTL>, <RWIN> };
modifier_map Mod4 { <LWIN> };
};
partial modifier_keys
xkb_symbols "shiftcaps" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ VoidSymbol, Caps_Lock ],
actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
};
};
我将前两个/usr/share/X11/xkb/symbols/macbook
和第三个放在shiftcaps
同一目录中,并且与xkbcomp
等一起,它们在加载到标准布局之上时可以工作gb(mac)
。
我正在编辑此内容以进行更新并澄清我的答案。我的英镑自定义最近停止工作,所以我检查了 gb(mac) 中的更改,并意识到我必须添加, threesuperior
到该key <AE03>
行。
我认为evdev.xml
gnome-tweak-tool 使用它来使这些选项在 GUI 中可用。这是我添加的内容:
<group allowMultipleSelection="true">
<configItem>
<name>macbook</name>
<description>Macbook customisations</description>
</configItem>
<option>
<configItem>
<name>macbook:pound</name>
<description>Hash on Shift-3, Sterling on AltGr-3</description>
</configItem>
</option>
<option>
<configItem>
<name>macbook:rcmdctrl</name>
<description>Right Cmd key acts as Ctrl</description>
</configItem>
</option>
</group>
<group allowMultipleSelection="false">
<configItem>
<name>shiftcaps</name>
<description>Caps Lock with Shift</description>
</configItem>
<option>
<configItem>
<name>shiftcaps:shiftcaps</name>
<description>Caps Lock requires Shift to toggle</description>
</configItem>
</option>
</group>
答案1
don_crissti 的回答另一个问题提供了拼图中缺失的一块。我已按照所述在 evdev 文件中定义了选项,并将它们添加到org.gnome.desktop.input-sources.xkb-options
gsetting 中。它工作完美。