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を切り替えることです(私にとってはどちらも重要ではありません。好ましくはまたはShift)AltGr。
答え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 ] };
今うまくいくでしょう:)