GNU/Linux >> Linux の 問題 >  >> Ubuntu

削除するNumlockキーを再マップする方法は?

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


Ubuntu
  1. 電源キーを再マッピングして削除しますか?

  2. Caps Lockキーをタブキーと交換/再マップするにはどうすればよいですか?

  3. 16.04削除キーが機能しませんか?

  1. ファイルを強制的に削除するにはどうすればよいですか?

  2. 複数のMokキーを統合する方法、または不要なキーを削除する方法は?

  3. Gnomeパネルを削除する方法は?

  1. cronジョブを削除する方法

  2. Kubernetesでサービスを削除する方法

  3. Vimでファイルのすべての行を削除する方法