vimのようにオペレーティングシステム全体で文字を再マッピングする方法は?

vimのようにオペレーティングシステム全体で文字を再マッピングする方法は?

私のvim動作では+()(ゲームと同じですがアクティブな状態)をhjkl使用します。私はそれが好きです。それが悪い考えだと説得しようとしないでください。そうではありません。Alt GrwasdAlt Gr

実際、私が知っている限り、にマッピングする方法はありませんAlt Gr。私がしたのは、vim+()を押したときに発生する同様のギリシャ文字:łæßðをマッピングすることだけです。Alt Grwas

だから私はこの矢印の交換方法が指に非常に快適であると思うだけでなく、どこでも使用できるということが本当に気に入ります。vimLinuxでキーを再マッピングする方法について読んだが(私はManjaroを使用しています)、たとえば、あるキーコードを別のキーコードにのみマッピングできますが、私が望むのは、文字(łæßð)を矢印のキーコードにマッピングすることです。

これを行う方法を知っている人はいますか?

私のものから.vimrc

"movement with a,d,w,s
noremap æ <left>
noremap ð <right>
noremap ß <down>
noremap ł <up>
inoremap æ <left>
inoremap ð <right>
inoremap ß <down>
inoremap ł <up>

ディストリビューション: Manjaro (カーネル: 5.6.12-1-MANJARO)
デスクトップ環境: KDE Plasma

答え1

短い答え

xmodmap -e 'keycode 38 = a A a A Left'
xmodmap -e 'keycode 40 = d D d D Right'
xmodmap -e 'keycode 25 = w W w W Up'
xmodmap -e 'keycode 39 = s S s S Down'

グラフィカル環境起動スクリプトに次の行を作成します。


詳細な回答

以下を使用してキーボードイベントを再マッピングできます。xmodmap注文する。たとえば、Altr Gr+ を左矢印に再マップするには、 a 次のコマンドを使用します。

xmodmap -e 'keycode 38 = a A a A Left'

次のコマンドを使用して、特定のキーのキーコードを見つけることができますxev。キーを押すと、端末はキーコードを含むメッセージを出力します。次のコマンドを使用できます建築ウィキペディア関連情報のみを出力します。

xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'

信号の右側にある5つのパラメータは修飾子に対応します。

                               ---> Caps Lock + a = A
                               |
                           ------> Shift + a = A
                           |   |
xmodmap -e 'keycode 38 = a A a A Left' --> Alt. Gr + a = Left 
                         |   |
                         -----> a = a
                             |
                             ----> Ctrl. + a = a

KDEの起動時にこの行を実行するには、~/.config/autostart/フォルダにデスクトップエントリを追加するだけです。 2つのファイルが必要です。 1つはxmodmap設定を含み、もう1つはデスクトップエントリを実行するために必要です。マッピング設定を作成してみましょう~/.config/xmodmap/xmodmaprc

keycode 38 = a A a A Left
keycode 40 = d D d D Right
keycode 25 = w W w W Up
keycode 39 = s S s S Down

以下はデスクトップエントリファイルの例です~/.config/autostart/xmodmap.desktop

[Desktop Entry]
Name[en_US]=Xmodmap
Comment[en_US]=xmodmap ~/.config/xmodmap/xmodmaprc
Exec=/usr/bin/xmodmap ~/.config/xmodmap/xmodmaprc
Icon=application-default-icon
X-KDE-Autostart-enabled=true
Type=Application

これを試すために、私のシステムで実行されているデスクトップ環境はありませんが、正常に動作します。


ノート

  1. このxmodmap方法はグラフィカル環境でのみ機能します。このマッピングはLinuxコンソール()では機能しませんtty。バラよりLinuxコンソールでキーボードを再マッピングする
  2. レイアウトが変わるたびにキーボードがリセットされることに注意してください。この方法は、単一のレイアウト構成にのみ推奨されます。
  3. 何かが間違っている場合は、xmodmapすべての設定を削除できますsetxkbmap -option

答え2

xmodmap または xkbcomp を使用できます。インターネットには、どのように動作するかについて多くの例があります。申し訳ありません。コピー/貼り付け方法は意味がないと思います。

関連情報