GNOMEでxkbカスタマイズを自動的にロードする方法は?

GNOMEでxkbカスタマイズを自動的にロードする方法は?

フォローアップWaylandのカスタムキーマッピングに関する質問私はこれがxmodmap明らかにもう使用されていないことを知っていましたが、xkbはWaylandで「動作しなければなりません」。残念ながら、xkbはより複雑で、その文書はより悪いです。私はから得た情報に基づいて私に必要なセクションを見つけました。Cmd交換金額に関する質問Ctrl別のCaps Lockの問題、答えのいくつかのリンクと私のシステムファイルを読みましたが、自動化することができ、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最初の2つと3番目のものをshiftcaps同じディレクトリに置き、ギターなどを一緒に入れました。xkbcompそれらは標準レイアウトの上にロードされると機能しますgb(mac)

回答を更新して明確にするために、この内容を編集しています。私のgbのカスタマイズが最近動作を停止したので、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>

答え1

don_crisstiの答え別の問題欠けているパズルのピースを提供します。説明したように、evdevファイルにオプションを定義し、それをorg.gnome.desktop.input-sources.xkb-optionsgsettingに追加しました。完璧に動作します。

関連情報