NumlockキーをXKBの等号キーとして使用する

NumlockキーをXKBの等号キーとして使用する

Numlock キーは今日ではほとんど使用されていませんが、(標準) キーボードのレイアウトで顕著に機能します.

私はスプレッドシートの作業がたくさんあるので、キーボードを使ってデータを入力するのは便利ですが、注意することが1つあります。右手がキーボードの上にあるときは、等号にアクセスすることは困難です。

私の考えは、Numlockを再マッピングしてNumlockと同等の役割の両方を実行できるようにし、前者は修飾子を介してアクセスできるようにすることです。

xkb私は同じことを試しましたが、xmodmap同様に悪い結果が得られたので、これを行うために独自のキーマップを作成することにしました。

(ファイル名pb

default partial alphanumeric_keys
xkb_symbols "basic" {
    
    name[Group1] = "PB (US intl with level 3 and level 5";
    key.type[Group1] = "EIGHT_LEVEL";

    include "us(altgr-intl)"

    //              (norm)     NLOCK     AltGr
    key.type[Group1] = "FOUR_LEVEL_MIXED_KEYPAD";
    key <NMLK> { [ KP_Equal, KP_Equal,  Num_Lock, Q ] };

    include "level3(ralt_switch)"
    include "level5(rctrl_switch)"
};

ご覧のとおり、後でカスタムレイアウトを拡張したいときにレベル3とレベル5を追加しましたが、レベル3とレベル5を追加せずにテストしましたが、Numlockを邪魔しませんでした。

Numlock キーを押すと、結果の動作は次のようになります。

(番号ロックオフ)

  • Numlock: '='
  • Shift+ Numlock: '='
  • AltGr+ Numlock:(番号ロックオン)
  • AltGr+ Shift+ Numlock: 「尋ねる」(テスト用に追加しました)

大丈夫です。 AltGrとShiftを押しながら「Q」を印刷して、そのシフトレベルに到達できることを確認してください。しかし、Num lockがオンの場合、動作はまったく満足できません。

(番号ロックがオン)

  • Numlock:(番号ロックをオフにする)
  • Shift+ Numlock:(番号ロックオフ)
  • AltGr+ Numlock:(番号ロックオフ)
  • AltGr+ Shift+ Numlock:(番号ロックオフ)

KP_Equalどんなに努力してもNum lockが動作するようにすることは不可能に見えます。

Numlockもともとは、等号を印刷するために押したときにShiftNum Lockをオンまたはオフにしたかったのです。これは不可能だと思い、ISOレベル3(AltGr)を選択しましたが、それもできないようです。私が望むのは、NumlockNumロックがオンになっているかオフになっているかに関係なく、等号を印刷し、modキーを押しているときにNum Lockを切り替えることです(私にとってはどちらも重要ではありません。好ましくはまたはShiftAltGr

ベストアンサー1

だから。 「xev」の出力を見てください。状態

  • Num_Lockキーにキーシンボルをそのままにすると、ステータス10が表示され、KP_equal そのキーシンボルに対応するキーを押してもロックされません。このため、ロックされているときに押すとロックKP_Equalが解除されます。
  • Num_Lock適切なレイヤーをロックしている間にこの不快な状態を生成しないように、このキーを削除しようとしています。操作は次のように実行されます。
replace key <NMLK> {
type[Group1]= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Equal, KP_Equal,  Num_Lock, Q ],
actions[Group1]= [ NoAction(), NoAction(), 
                   LockMods(modifiers=NumLock), NoAction()
};

下線が入らないように注意してください。それ以外の場合は動作しません。

  • これで確認できます状態;いずれにしても問題はありませんが、Num_Lockマップからキー記号を削除したため、この状態はもはや意味がありません。したがって、未使用の代替キーコードを見つけて、Num_Lockここにキー記号を割り当てる必要があります。この例では、キーコード249を使用します。
replace key <I249> { symbols[Group1]= [ Num_Lock ] };

今うまくいくでしょう:)

おすすめ記事