ステップ0:xclipとxcapeのインストール

ステップ0:xclipとxcapeのインストール

現在Antergos Linuxを実行しています。私が望む設定は以下の通りです。

  1. CAPSを押して放すと、ESCが送信されます。

  2. CAPSの組み合わせとCAPS + h、CAPS + j、CAPS + k、およびCAPS + lの組み合わせは、それぞれ左、下、上、右に転送されます。 CAPSが解放された後、ESCは送信されません。

もちろん、ここでの目標は、VIMスタイルのないプログラムからいくつかのVIMスタイルバインディングを取得することです。

ここではxcapeが役に立つようです。

https://github.com/alols/xcape

しかし、これらの例は私が望む方向に進んでいませんでした。

助けてくれてありがとう。

編集:ここで非常に便利な答えを見つけました。

https://unix.stackexchange.com/a/163675/267068

必要に応じてCAPS + hjklを取得できるようにプログラムを変更する方法を見つけるのに役立つ人はいますか?その答えのように、Super_Lの代わりにHyper_Lを使用し、Hyper_L + hjklを左、下、上、右にマッピングできますか?

答え1

私も同じことをしたかったし、数回検索して実験した最後についに成功しました。

ソリューション1

以下の解決策2を参照してください。より良いかもしれません。

  1. マッピングCaps_lock+ hjkl:

    フォローするこの回答そして設定を追加してください。アメリカのキーボードレイアウトを使用している場合は、このusファイルに追加し、興味のない他のキーバインディングをスキップする必要があります。それからsetxkbmap -layout us

  2. Caps_lockのようにEsc

    ランニングxcape -e 'ISO_Level3_Shift=Escape'。この行をシステムに追加すると、/etc/profile再起動後に手動で実行する必要はありません。

解決策2(おそらくより良い)

IntelliJでキーバインディングが利用できないことに気づくまで、ソリューション1に満足していました。これは大きな数値でした。結局、私はまだIntelliJで利用可能であり、xmodmapjustを使って作業を実行できることに気づきました!xcape

  1. マッピングCaps_lock+ hjkl:

    ~/.xmodmapたとえば、次の内容でファイルを作成します。

    keycode 66 = Mode_switch
    keysym h = h H Left
    keysym l = l L Right
    keysym k = k K Up
    keysym j = j J Down
    keysym u = u U Prior
    keysym i = i I Home
    keysym o = o O End
    keysym p = p P Next
    

    最後の4行はスキップできます。あなたにも役に立つと思い、貼り付けました。実際、私は本当に得たいです。Caps Lockの強化Linuxで作業してください。

    それからxmodmap ~/.xmodmap

  2. Caps_lockのようにEsc

    ランニングxcape -e 'Mode_switch=Escape'

  3. 任意に選択できる:

    キーバインディングを手動で適用したくない場合は、上記の2つのコマンドを/etc/profile.

答え2

ステップ3記号を使用して、文字に矢印を割り当てます。hjkl

インストールgnome-tweaksツール

gnome-tweaks内の「追加レイアウトオプション」に進み、「Caps Look」をキーで3番目のレベルを選択します。

次に端末を開き、/usr/share/X11/xkb/symbols/コンピュータに保存されているすべてのキーボードレイアウトに移動します。

レイアウトのバックアップ

cp us us_old

ファイルをルートに変更

sudo nano us

配列の3番目の値がキーです。

key <AC01> {[a,A,Home]};
key <AC02> {[s,S,BackSpace]};
key <AC03> {[d,D,Delete]};
key <AC04> {[f,F,End]};
key <AC05> {[g,G]};
key <AC06> {[h,H,Left]};
key <AC07> {[j,J,Down]};
key <AC08> {[k,K,Up]};
key <AC09> {[l,L,Right]};

答え3

/etc/profileでうまく機能しなかったので、@matrinicaの答えを拡張して、次のように(ubuntu / gnomeで)成功することができました。

ステップ0:xclipとxcapeのインストール

sudo apt install xclip
sudo apt install xcape

ステップ1:〜/ .xmodmapを作成する

次のテキストをコピーします。

keycode 66 = Mode_switch
keysym h = h H Left
keysym l = l L Right
keysym k = k K Up
keysym j = j J Down

コンテンツを含むファイルを作成します。

touch ~/.xmodmap
xclip -o > ~/.xmodmap

ステップ2:スクリプトを作成する

次のテキストをコピーします。

xmodmap ~/.xmodmap
xcape -e 'Mode_switch=Escape'

コンテンツを含むファイルを作成します。

touch ~/xmodmap.sh
xclip -o > ~/xmodmap.sh

ファイルを実行可能にします。

chmod +x ~/xmodmap.sh

ステップ3:自動開始項目を作成する

次のテキストをコピーします。

[Desktop Entry]
Type=Application
Exec=sh -c "$HOME/xmodmap.sh"
Hidden=false
X-GNOME-Autostart-enabled=true
Name=xmodmap
Comment=xmodmap script

コンテンツを含むファイルを作成します。

touch ~/.config/autostart/xmodmap.deskop
xclip -o > ~/.config/autostart/xmodmap.deskop

メモ:

この方法はウェイランドでは機能しないため、将来的には適していません。同様の結果を得るWayland互換の方法については、以下を参照してください。

https://askubuntu.com/a/898462

https://wiki.archlinux.org/index.php/Keyboard_input

https://realh.co.uk/wp/linux-keymap-hacking/

Waylandと互換性のあるきちんとした方法がある場合は、ここに投稿してください。

関連情報