キーボードのレイアウトが原因で、NumLockを永続的に押して、NumLockキーを削除キーとして使用したいと思います。これを機能させることができないようです。これを行う方法についてのアイデアをいただければ幸いです。
編集:私はUbuntu16で実行しています
これが私が試したことです:
numlockxでXmodmapを使用する
この質問に触発されました。私の理解では、xmodmapは非推奨であるため、これはおそらく良い考えではありません。
- ファイルを作成する
〜/ .Xmodmap
行keycode77 =Delete NoSymbol
-
xmodmap〜/ .Xmodmap
を実行します -
numlockx on
を実行します
これにより、numlockが削除として機能し、最初にnumlockキーを押すまでnumパッドが有効になります。次に、numlockキーでnumパッドが無効になります。
XKBを使用
-
/ usr / share / X11 / xkb / symbol / us
を編集しますkey
を持つ 基本的なキーマップの最後にあります。{[Delete、Num_Lock]}; - コンピュータを再起動します
また試した:
-
/ usr / share / X11 / xkb / symbol / us
を編集します置換キー
基本的なキーマップの最後にあります。{[Delete、Num_Lock]}; - コンピュータを再起動します
これには、他の方法と同様の問題があり、作品を削除できますが、numlockキーを押すとテンキーがオフになります。また、numパッドが有効になっていると、Windowsキーなどの他のキーと混同するようです。私はshift+numlockを使用してnumlockを制御できるのが好きです。 replaceを使用する場合と使用しない場合の違いはわかりません。
承認された回答:
これは、xkbのみを使用してこれを行う方法です。これは、xmodmapを使用するよりも優れていると思います。この回答には、元の質問よりも達成したいことの詳細が含まれています。 Xmodmapとxkbは常に一緒に機能するとは限りません。このアプローチにより、柔軟性が大幅に向上します。
これはすべてhttps://wiki.archlinux.org/index.php/X_keyboard_extension
から来ていますここで機能するように見える利用可能なkeysymのリストがあります:http://docs.ev3dev.org/projects/grx/en/ev3dev-stretch/c-api/input_keysyms.html
これは手動で行われ、さまざまなキーボードとの互換性の問題を防ぐために、コンピューターにすでに存在する構成から開始できるようになっています。
これまでの実行例は、 config_files / linux/keyboards<にあります。 / code>
xkbcomp $ DISPLAY output.xkb
を実行することから始めます 現在のキーボード設定を取得するには
設定します。
次に追加します:
interpret osfLeft{
repeat= True;
action = RedirectKey(keycode=<LEFT>, clearmodifiers=Lock);
};
interpret osfRight{
repeat= True;
action = RedirectKey(keycode=<RGHT>, clearmodifiers=Lock);
};
interpret osfDown{
repeat= True;
action = RedirectKey(keycode=<DOWN>, clearmodifiers=Lock);
};
interpret osfUp{
repeat= True;
action = RedirectKey(keycode=<UP>, clearmodifiers=Lock);
};
interpret osfEndLine{
repeat= True;
action = RedirectKey(keycode=<END>, clearmodifiers=Lock);
};
interpret osfBeginLine{
repeat= True;
action = RedirectKey(keycode=<HOME>, clearmodifiers=Lock);
};
interpret osfEscape{
repeat=True;
action = RedirectKey(keycode=<ESC>, clearmodifiers=Lock);
};
生成されたファイルの互換性セクションに移動します。
関連:Ubuntuのルートパーティションとホームパーティションにプログラムをインストールしますか?タイプセクションの下部に、次を追加します。
type "CUST_CAPSLOCK" {
modifiers= Shift+Lock;
map[Shift] = Level2; // Note that this maps Shift only of {Shift,Lock} to Level2. Alt+Shift will be mapped to Level2
map[Shift+Lock] = Level3; // but Lock+Shift won't map to Level2 even without this line.
map[Lock] = Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Lock";
};
interpret osfDelete{
repeat=True;
action = RedirectKey(keycode=<DELE>, clearmodifiers=Lock);
};
interpret Caps_Lock
を検索します LockMods
を変更します SetMods
へ Caps Lockは修飾子を設定するだけで、ロックしないようにします。
capslock + WASDを矢印キーとして機能させるには:キーを編集します
、
、
、
タイプがCUST_CAPSLOCK
である それぞれosfUp
があります 、 osfLeft
、 osfDown
、 osfRight
3番目の位置にあります。
capslock + HJKLを矢印キーとして機能させるには:キーを編集します
、
、
、
タイプがCUST_CAPSLOCK
である それぞれosfLeft
があります 、 osfDown
、 osfUp
、 osfRight
3番目の位置にあります。
capslock + 0をホームとして登録し、capslock + $を終了として登録できるようにするには、キー
を編集します。 および
タイプがCUST_CAPSLOCK
である それぞれosfEndLine
があります およびosfBeginLine
3番目の位置にあります。
CapsLock +スペースバーをエスケープとして登録できるようにするには(vimに便利)、キー
を編集します。 タイプがCUST_CAPSLOCK
である 、スペース
があります 2番目の位置とosfEscape
3番目の位置にあります。
numlockキーを削除キーに変えてcapslock+numlockを作成するには、
を作成します。 タイプがCUST_CAPSLOCK
、位置1と2に osfDelete
があります 位置3にはNum_Lock
があります
次に、変更したファイルを xkbcomp output.xkb $ DISPLAY
を使用してサーバーにアップロードし直します。 。
すべてが機能する場合は、ファイルを〜/ .Xkeymap
のどこかに置きます。 動作し、たとえば〜/ start_keyboard.sh
という名前のスクリプトを作成します と:
#!/bin/bash
xkbcomp ~/.Xkeymap $DISPLAY
実行可能にします( chmod u + x〜/ start_keyboard.sh
)そして、スクリプトをスタートアップアプリケーションに追加します。