キーボードのレイアウトが原因で、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 )そして、スクリプトをスタートアップアプリケーションに追加します。