如何在 GNOME 中自动加载 xkb 自定义?

rea*_*alh 19 xkb gnome3

跟进我关于在 Wayland 中自定义键映射的问题,我发现这xmodmap显然已被弃用,但 xkb 在 Wayland 中“应该可以工作”。不幸的是,xkb 更复杂,相应的文档也更差。我已经成功地工作了我基于从信息所需要的节关于交换的问题CmdCtrl另一个大写锁定的问题,阅读一些问题的答案,从我的系统文件的链接,但我不知道如何应用它们以一种可以自动化且不与 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) ]
    };
};
Run Code Online (Sandbox Code Playgroud)

我把前两个/usr/share/X11/xkb/symbols/macbook和第三个放在shiftcaps同一个目录中,xkbcomp当加载到标准gb(mac)布局之上时,它们可以工作。

我正在编辑它以进行更新并澄清我的答案。我的英镑自定义最近停止工作,所以我检查了 gb(mac) 中的变化并意识到我必须添加, threesuperiorkey <AE03>行中。

我认为evdev.xmlgnome-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>
Run Code Online (Sandbox Code Playgroud)

rea*_*alh 5

don_crissti对另一个问题的回答提供了拼图的缺失部分。我已经按照描述在 evdev 文件中定义了选项,并将它们添加到org.gnome.desktop.input-sources.xkb-optionsgsetting 中。它完美地工作。