キーボードの数値部分でCtrl + Alt + PlusまたはMinusキーボードショートカットを使用したいが、試したLinux(ManjaroとDebian、Gnome、KDE)ではまったく機能しません。
私の設定:
- 標準フルサイズキーボード
- 数値ロックキーが点灯
- 英語レイアウトセット
LANG=en_US.UTF-8
うまくいくもの:
- Ctrl+プラス記号
- Alt+プラス記号
- Shift+プラス記号
ただし、Ctrl + Alt + Plusは、この組み合わせを割り当てたプログラム(Krusader、Dolphinなど)では何もしません。
私は何を見つけましたか(問題かもしれません)
私は実行しようとしましたが、xev
Ctrl + Alt + PlusまたはMinusを押すと、次のような結果が出ました。
# For Ctrl+Alt+Plus
KeyRelease event, serial 28, synthetic NO, window 0x6c00001,
root 0x532, subw 0x0, time 3273638, (977,484), root:(1591,1348),
state 0x1c, keycode 86 (keysym 0x1008fe22, XF86Next_VMode), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
# For Ctrl+Alt+Minus
KeyRelease event, serial 28, synthetic NO, window 0x6c00001,
root 0x532, subw 0x0, time 3307298, (904,548), root:(1518,1412),
state 0x1c, keycode 82 (keysym 0x1008fe23, XF86Prev_VMode), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
XF86Next_VMode/XF86Prev_VMode
したがって、Ctrl + Alt修飾子を押すと、プラス/マイナスキーがシンボルにマップされているように見え、他の修飾子を使用するか、まったく使用しない場合にマッピングされますKP_Add/KP_Subtract
。
だから私の質問はなぜそのようなことが起こり、これが何をXF86Next_VMode/XF86Prev_VMode
意味するのかです。
私はまだLinux初心者ですが、Windowsでこのようなショートカットを使うのに慣れていて、Linuxでも書いてみたかったです。キーコードを別のシンボルに再マッピングするために使用できるという内容をどこかで読んで、xmodmap
これが私の問題を解決すると思いました。
しかし、Arch Wikiでxmodmapについて読むと、まだ混乱していました。彼らは言った
テーブルの各キーシンボル列は、特定の修飾子キーの組み合わせに対応します。
Key Shift+Key Mode_switch+Key Mode_switch+Shift+Key ISO_Level3_Shift+Key ISO_Level3_Shift+Shift+Key
しかし、上記のリストでどの列がCtrl + Altの組み合わせを表すべきですか?また、この問題を解決するには、xmodmapを使用することをお勧めします。
答え1
結局、このxmodmap
ユーティリティを使用してショートカットが機能するようにしました。
1.xmodmap -pke
各キーコードの現在のマッピングを表示するために実行します。
$ xmodmap -pke
...
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
...
私たちはすでに問題を見ることができます。最後の列には次の記号が含まれていますXF86Next_VMode, XF86Prev_VMode
。列7はCtr + Altの組み合わせに属するようです。どの文書でも7番目の列の意味を見つけることができません。
2..xmodmaprc
7番目の列を変更するには、ホームディレクトリに次の内容でファイルを作成します。
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add
三。端末でコマンドを実行するxmodmap ~/.xmodmaprc
と、ショートカットがすぐに機能し始めます(次にログインするまで)。
4.明らかに、私はログインするたびにこの修正が機能したいと思います。
.profile
まず、ログインするたびにロードする必要があるファイルに追加してみました。
if [ -f $HOME/.xmodmaprc ]; then
sleep 5 && xmodmap $HOME/.xmodmaprc &
fi
ちなみに、対応するコマンドを追加する必要がありましたsleep 5
。それ以外の場合は動作しませんでした。しかし、X11ディスプレイサーバーのKDEとGnomeでのみ機能することがわかりました。 WaylandでGnomeを試しても何らかの理由で動作しませんでした(.profileがロードされたと思いますが、xmodmapコマンドは実行されませんでした。なぜですか?)。
そのため、別の解決策を試して path に移動し、~/.config/autostart/
次の内容を含むファイルを作成しました。
$ cat ~/.config/autostart/xmodmap.desktop
[Desktop Entry]
Name=Xmodmap
Type=Application
Exec=bash -c "sleep 5 && [[ -f $HOME/.xmodmaprc ]] && xmodmap $HOME/.xmodmaprc"
Terminal=false
Hidden=false
最後に、デスクトップ自動起動ファイルを使用して、これまで試したすべてのLinuxセッションに必要なキーボードショートカットを変更できました。