web-dev-qa-db-ja.com

Num LockインジケーターLEDまたはリバースキーパッドを無効にして、Num Lockがオンの場合、インジケーターライトがオフになるようにする

XfceでDebian Testing/Stretchを使用しています。私はこれを購入しました 有線キーボード 。 Num Lockをデフォルトでオンにしたいのですが、LEDインジケーターをオンにしたくありません。これは、num lockインジケーターを完全に無効にするか、状態を逆にする(num lockがオフのときにインジケーターライトを表示する)か、代わりにすべてのnum-lock-offキーをタイプ番号に再マップすることで実現できます(これにより、インジケータがオンまたはオフのときに数字を入力します)。 setleds -L -numは機能しますが、ttyセッションでのみ機能します。ありがとう

6
jbrock

「デフォルトでオンになっているNum Lock」が「デフォルトでテンキーのキー」を意味し、キーパッドのナビゲーションを望まない、または気にしない場合:

setxkbmap -option numpad:mac <layout>

したがって、usレイアウトの場合:

setxkbmap -option numpad:mac us

現在、テンキーは、数字のロック状態に関係なく、常に数字を入力します。

参照: xkeyboard-config man-page

3
Guildenstern

Num Lockの意味を逆にすることができます。 Xmodmapでは、これを.Xmodmapに入れます。

keycode  79 = KP_Home KP_7 KP_Home KP_7 KP_Home KP_7 KP_Home KP_7
keycode  80 = KP_Up KP_8 KP_Up KP_8 KP_Up KP_8 KP_Up KP_8
keycode  81 = KP_Prior KP_9 KP_Prior KP_9 KP_Prior KP_9 KP_Prior KP_9
keycode  83 = KP_Left KP_4 KP_Left KP_4 KP_Left KP_4 KP_Left KP_4
keycode  84 = KP_Begin KP_5 KP_Begin KP_5 KP_Begin KP_5 KP_Begin KP_5
keycode  85 = KP_Right KP_6 KP_Right KP_6 KP_Right KP_6 KP_Right KP_6
keycode  87 = KP_End KP_1 KP_End KP_1 KP_End KP_1 KP_End KP_1
keycode  88 = KP_Down KP_2 KP_Down KP_2 KP_Down KP_2 KP_Down KP_2
keycode  89 = KP_Next KP_3 KP_Next KP_3 KP_Next KP_3 KP_Next KP_3
keycode  90 = KP_Insert KP_0 KP_Insert KP_0 KP_Insert KP_0 KP_Insert KP_0
keycode  91 = KP_Delete KP_Decimal KP_Delete KP_Decimal KP_Delete KP_Decimal KP_Delete KP_Decimal

スタートアップアプリケーションにxmodmap ~/.Xmodmapを追加する必要があるかもしれませんが、Xfceがデフォルトでこれを行うかどうかはわかりません。

この方法を使用すると、ほとんどの場合、NumLockがオンにならないという利点があります。いくつかのプログラムはNumLockで問題が発生します。NumLockは修飾子と見なされており、オンになっているとキーボードショートカットが機能しないためです。

NumLockをオフにしない場合は、NumLockキーを使用しているときに無効にすることができます。

keycode 77 = NoSymbol

痛みを感じる場合は、代わりにXKBを使用できます。これが、NumLockを効果的に常にオンにする私の構成です。 ~/.xkb/types/mytypesを含むファイルを作成します

// Digits without NumLock, cursor with NumLock. Shift swaps the meaning.
// Do it this way because I almost always want digits, but the NumLock state
// breaks key bindings in some applications.
partial xkb_types "invert_numlock" {
  type "KEYPAD" {
    modifiers = Shift+NumLock;
    map[None] = Level2;
    map[Shift] = Level1;
    map[NumLock] = Level1;
    map[Shift+NumLock] = Level2;
    level_name[Level1] = "Base";
    level_name[Level2] = "Number";
  };
  include "extra(keypad)"
};

以下を含むファイル~/.xkb/symbols/mysymbolsを作成します。

partial xkb_symbols "mykeypad" {
    key  <KP7> {         [            KP_7,         KP_Home ] };
    key  <KP8> {         [            KP_8,           KP_Up ] };
    key  <KP9> {         [            KP_9,        KP_Prior ] };
    key  <KP4> {         [            KP_4,         KP_Left ] };
    key  <KP5> {         [            KP_5,        KP_Begin ] };
    key  <KP6> {         [            KP_6,        KP_Right ] };
    key  <KP1> {         [            KP_1,          KP_End ] };
    key  <KP2> {         [            KP_2,         KP_Down ] };
    key  <KP3> {         [            KP_3,         KP_Next ] };
    key  <KP0> {         [            KP_0,       KP_Insert ] };
    key <KPDL> {         [      KP_Decimal,       KP_Delete ] };
};

X初期化スタートアップの一部として次のShellコマンドを実行します(必要に応じてsetxkbmap呼び出しに他のオプションを追加します)。

setxkbmap -types "complete+mytypes(invert_numlock)" \
          -symbols "us+compose(menu)+mysymbols(mykeypad)" \
          -print | xkbcomp -I ~/.xkb - "$DISPLAY"

コマンドを出すたびに、X11のLEDをオフにできる場合があります

xset -led named "Num Lock"

または、xset -led 3のような明示的な数値を試してください。

1
meuh