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


11

跟进有关在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) ]
    };
};

我将前两个/usr/share/X11/xkb/symbols/macbook和第三个放在shiftcaps同一目录中,使用xkbcompetc加载到标准gb(mac)布局顶部时它们可以工作。

我正在对此进行编辑以进行更新并澄清我的答案。我的磅自定义最近停止工作了,所以我检查了gb(mac)中发生了什么更改,并意识到我必须添加, threesuperior到该key <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>

1
只要将它们添加到系统正在使用的xkb规则中(即添加到正确的文件中),gnome就会看到您的选项(并尊重dconf之下的键值org.gnome.desktop.input-sources),请在此处
don_crissti

谢谢。在evdev文件中定义选项是这个难题的缺失部分,我已经使用dconf-editor来完成我现在想要的工作。
realh 2016年

在我的系统(Debian)上,我也找到了/usr/share/X11/xkb/rules/evdev.xml。我不知道这是干什么的。如果我在其中出现语法错误,则在打开“键盘”选项时,GNOME设置应用程序将崩溃,但实际上在GUI中找不到该选项。我在包含的行后添加了适当的行<optionList>。由于评论限制,我无法在此处发布它们。
realh 2016年

让我补充一下,xmodmap在XKB出现时于1996年左右被弃用。即在韦兰德发明之前的几年。
罗伯特·西默

Answers:


1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.