特定のキーを固定します

特定のキーを固定します

私が見つけたxorgで固定キーを有効にする(素晴らしいデスクトップマネージャ)スーパーユーザーは、次のように固定キーを有効にできることを示しています。

xkbset sticky -twokey

Alt Grこれは期待どおりに機能しますが、私の場合は、すべての修飾キーの代わりに特定のキー()のみを固定することを好みます。これを設定できますか?もしそうなら:どこで?

答え1

X11でこれを達成する1つの方法は、XKBを使用して正しいAltキーを現在のキーに設定することです。ラッチモードAltGr。この問題を解決する方法はいくつかあります。

オプション1

現在のキーボードレイアウトをファイルにエクスポートし、右のAltキー(AltGr)の動作のみを変更した後、Xにリロードしてデフォルトのレイアウトをオーバーライドできます。

  1. xkbcomp $DISPLAY current.xkb現在のキーボードレイアウトをエクスポートするには実行します。

  2. ファイルを開き、current.xkb次のコードスニペットを見つけます。

    key <RALT> {
        type= "ONE_LEVEL",
        symbols[Group1]= [ ISO_Level3_Shift ]
    };
    
  3. 次のように変更します。

    key <RALT> {
        type= "ONE_LEVEL",
        symbols[Group1]= [ ISO_Level3_Shift ],
        actions[Group1]= [ LatchMods(mods=AltGr) ]
    };
    
  4. ファイルを保存して実行してxkb current.xkb $DISPLAY新しいレイアウトを適用します。

ガイドライン

  1. 新しいレイアウトは現在のXセッションにのみ適用されます。ログイン後に自動的に再読み込みできます。ウィンドウマネージャを使用している場合は、またはxkb current.xkb $DISPLAYに追加するだけです。デスクトップ環境を使用している場合、デスクトップ環境は通常、キーボードレイアウトを独自の方法で処理し、ローカル構成をオーバーライドできるため、これは少し面倒です。 。その文書を確認または試してください。.xinitrc.xprofileオプション2次のような。

  2. 複数のキーボード言語を使用している場合は、エクスポートした各xkbファイルに対して上記の手順を繰り返し、適切な場合はどういうわけか(たとえば、各言語のショートカットを使用)ロードする必要があります。

オプション2

新しいXKBオプションを生成してAltGrキーの目的の動作を有効にし、言語レイアウトで有効にすることができます。

  1. /usr/share/X11/xkb/symbolsaltgr次の内容で名前付きファイルを作成します。

    partial alphanumeric_keys
    xkb_symbols "latch" {
        key <RALT> {
            symbols = [ ISO_Level3_Shift ],
            actions = [ LatchMods(mods=AltGr) ]
        };
    };
    
  2. evdevファイルを開き、/usr/share/X11/xkb/rules次の行を見つけます! option = symbols。その後に新しい行を追加し、altgr:latch = +altgr(latch)次のように表示されます。

    ! option  = symbols
      altgr:latch = +altgr(latch)
      ...
    

    +altgr(latch)方法次の場所にあるファイルのlatchグループの使用altgr/usr/share/X11/xkb/symbols

これで新しいオプションを有効にする必要があります。次のいずれかを実行できます。

  1. とを対応する言語とバリアントにsetxkbmap -layout us -variant altgr-intl -option altgr:latch置き換えて新しいオプションを有効にするには、実行します。これは現在のXセッションを維持しているので(テストに役立ちます)、ログイン時に自動的にロードされるように追加できます。usaltgr-intl.xinitrc.xprofile

  2. systemdを使用している場合は、実行してsudo localectl --no-convert set-x11-keymap us pc104 altgr-intl altgr:latchキーボード設定を更新してください。/etc/X11/xorg.conf.d

  3. デスクトップ環境を使用している場合は、キーボードレイアウトの読み込み時にオプションを有効にするように指示する方法があります。私はGNOMEがdconfを使用していることを知っていますorg.gnome.desktop.input-sources.xkb-options

警告する

のXKBファイルは/usr/share/X11/xkb直接編集できず、システムアップデートを実行すると上書きできます。 XKB構成を変更する「正しい方法」は次のとおりです。複雑すぎる必要に応じて新しいオプションを(再)適用するスクリプトを生成することをお勧めします。

関連情報