11

ISO_Level3_ShiftとISO_Level3_Latchの違いは何ですか。たとえば、/ usr / share / X11 / xkb / symbolにあるlevel3構成ファイル(archlinuxや他の多くのディストリビューションにあると思います)にあります。

たとえば、このエントリを作業中のカスタムキーボードに追加しました(論理学者の場合は、心配しないでください、⊥→素晴らしい)。

// make right control do level3 shift stuff
default partial modifier_keys
 xkb_symbols "rctrl_switch" {
  key <RCTL> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
    };
  include "level3(modifier_mapping)"
};

期待どおりに機能します(右のコントロールを押し続けると、レベル3のシンボルにアクセスできます。たとえば、us-intlレイアウトバリアント用のユニコードコードポイントがほとんどです)が、一部のエントリでISO_Level3_Latchが使用されているのはなぜですか。でも意味します。

4

1 に答える 1

10

シフトスタイルの修飾子は、キーを変更するために他のキーを押している間、それを保持する必要があるように機能します。これが、通常のキーボードで通常の大文字のシフトキーが機能する方法です。

ラッチスタイルのモディファイアも同じですが、シフトスタイルのモディファイアとは異なり、別のキーが押される前にリリースされると、そのモディファイアがラッチされます。つまり、次に押すキーが変更されます。さらに、ラッチ中に押すと、修飾キーがもう一度押されるまで修飾キーがロックされます。

大文字に移行する通常のシフトを使用した例。次のキーストロークの順序を考慮してください。

- Press a
- Release a
- Press & release space
- Press shift
- Press a
- Release a
- Press a
- Release a
- Release shift
- Press & release space
- Press shift
- Release shift
- Press a
- Press a
- Press & release space
- Press shift
- Release shift
- Press shift
- Release shift
- Press a
- Press a
- Press a
- Press shift
- Release shift
- Press a

shiftがshift-styleに設定されている場合、次の出力が得られます。

a AA aa aaaa

シフトがラッチスタイルに設定されている場合、次の出力が得られます。

a AA Aa AAAa

3番目のグループの前のプレスリリースサイクルの後、シフトがラッチされ、キーを押すとそのラッチが消費されるためです。4番目のグループでは、ラッチ中にラッチをもう一度押すと、ロックモードになります。

于 2015-09-04T07:21:14.733 に答える