数値キーボードのショートカット Ctrl+Alt+プラス記号またはマイナス記号に問題があります。

数値キーボードのショートカット Ctrl+Alt+プラス記号またはマイナス記号に問題があります。

キーボードの数値部分でCtrl + Alt + PlusまたはMinusキーボードショートカットを使用したいが、試したLinux(ManjaroとDebian、Gnome、KDE)ではまったく機能しません。

私の設定:

  • 標準フルサイズキーボード
  • 数値ロックキーが点灯
  • 英語レイアウトセットLANG=en_US.UTF-8

うまくいくもの:

  • Ctrl+プラス記号
  • Alt+プラス記号
  • Shift+プラス記号

ただし、Ctrl + Alt + Plusは、この組み合わせを割り当てたプログラム(Krusader、Dolphinなど)では何もしません。

私は何を見つけましたか(問題かもしれません)

私は実行しようとしましたが、xevCtrl + 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..xmodmaprc7番目の列を変更するには、ホームディレクトリに次の内容でファイルを作成します。

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セッションに必要なキーボードショートカットを変更できました。

おすすめ記事