web-dev-qa-db-ja.com

Mode_switch修飾子とは何ですか?

xmodmap で遊ぶ私は聞いたことのない修飾キーに遭遇しました: Mode_switch 。特殊文字の挿入と関係があるようです。

キーに割り当てましたが、効果がないようです。それは何のため? ISO_Level3_Shift(Alt Gr)

31
vemv

Mode_switchは、呼び出されるキーの古いスタイル(XKB以前)の名前です AltGr 多くのキーボードレイアウト。に似ています Shift、文字に対応するキーを押すと、次の場合に別の文字を取得します Shift または AltGr も押されます。 Shiftとは異なり、Mod_switchは、通常はファンクションキーではなく文字に適用されるため、X11の意味での修飾子ではありません。したがって、アプリケーションは、文字ルックアップを実行するだけで目的の効果を得ることができます。

ISO_Level3_Shiftは、このキーのXKBバージョンです。一般的に言えば、XKBははるかに複雑であり、いくつかの特別な機能を実行できます。 XKBのメカニズムはより一般的です。これにより、キーボードレイアウトを変更できるため、どのキーがどの修飾子の影響を受けるか、スティッキー(CapsLock-スタイル)と同時プレス(Shift-style)修飾子など。

この回答は、@ Gillesの回答と矛盾することを意図したものではありませんが、彼の回答では「照らされていない」と感じる入力処理 xkb の別の側面を説明するためのものです。

両方を使用できますISO_Level3_Shift(Alt-Gr)およびMode_switch同時に異なる結果。いくつかの設定が必要ですが、両方を使用して、物理キーボードキーごとに6異なるキーを生成するために使用できます!

たとえば、構成、設定 Tab することが Mode_switchxcape および xmodmap で保持されている場合、たとえばキーボードの「H」というラベルの付いたキーは、次の文字/キーを生成します。

h
H
← (Cursor)
← (Symbol)

と H
と ShiftH
と AltGrH
と AltGrShiftH
と TabH
と TabShiftH

それで、あなたの質問に戻って戻るために:IL3SおよびMode_switchは異なる意味を表すように構成できるため、カーソルキーと〜200の便利な文字を(アクセント付き)言語、ボックス描画、 3文字の行の35キーの技術的な文字セット。

上記を達成するには:

# Initial Setup
xmodmap -e 'keycode 23 = Mode_switch ISO_Left_Tab Tab ISO_Left_Tab Tab ISO_Left_Tab'
xmodmap -e 'keycode any = Tab'
xcape -e "Mode_switch=Tab"

例 H

xmodmap -pke | grep 'h H'
# Make note of the keycode, note the 8 columns after the `=`,
# then edit and feed back into xmodmap with:
xmodmap -e 'keycode  43 = h H lowrightcorner uprightcorner Left leftarrow h H'
13
Alex Stragies

XkbのMode_shiftは、グループまたはレイアウトのシフトキーです。複数のグループを含むレイアウトがある場合は、このキーを押して次のグループにアクセスできます。複数のレイアウトがある場合、このキーを押したままにすると、レイアウト間を移動できます(†1)。

つまり、Mode_shiftは、 Shift (またはShift_LおよびShift_R、keysym名を使用)はレベルです。

これは、Mode_shiftISO_Group_Shift(†2)というエイリアスがあると考えると、より明確になる可能性があります。 ISO_Group_LatchおよびISO_Group_Lockというキーもあり、それぞれISO_Level2_Latch(ラッチシフト)およびShift_Lockに対応します(†3)。

さまざまなスクリプトのエイリアスもいくつかあります。

  • kana_switch
  • Arabic_switch
  • Greek_switch
  • Hebrew_switch
  • Hangul_switch

†1:これは、Xkbの「グループ」と「レイアウト」に対する私の理解に基づいています。このようなキーでそれらを選択する限り、それらは同じように扱われるようです。

†2:私はこれをファイルkeysymdef.hの-​​ このGitリポジトリ のリビジョンab8666661fc6(「XF86XK_AudioPresetを追加」、2017-05-10)に基づいています。インストール時に、おそらくこのファイルは/usr/include/X11/keysymdef.hにあります。

†3:汎用ロックキーの一種であるキー ISO_Lock もあります。

AltGrキーの意味

彼の答え で言及されたジルは、 AltGr キー:

Mode_switchは、呼び出されるキーの古いスタイル(XKB以前)の名前です AltGr 多くのキーボードレイアウト。

Mode_switchはグループのシフトに使用されるため、「AltGr」が「代替/代替グループ」を表す可能性があることを疑うようになりました。しかし、これは間違っていることがわかりました。 Wikipediaページの AltGr key 、「AltGr」はIBMキーボードに由来するようで、マニュアルでは「代替グラフィックス」の省略形であると記載されています。キーボードを使用して「グラフィック」(テキストユーザーインターフェイスで使用されるボックス描画文字)を描画することは、複数のスクリプト間をすばやく切り替えるための適切なサポートができる前によく行われたため、これは理にかなっています。

2
Guildenstern