キーボードレイアウトをポーランド語に切り替えました。ここで、Alt_Rはさまざまなビラテン文字を生成するために使用されます。そのうちのいくつかは動作し、一部は動作しません。
Alt_R-l
期待どおりに「ł」を生成します。Alt_R-c
「ć」を生成する必要がありますが、Chromiumを起動します。- 他の複数のAlt_Rキーの組み合わせも、さまざまなプログラムを起動したり、現在のウィンドウを少し下に移動したり、何もしないことがあります。
この機能はどこから来たのですか?私の設定 - >キーボードダイアログボックスまたは〜/ .Xmodmapには何もありません。システム全体のキーボードショートカットやその他のキーボード修正を定義できる場所はどこですか?完全なリストがありますか?
Alt_R-c
より良い点は、どのアプリケーション/システムがキーの組み合わせに反応するのかを調べて、キーバインディングが保存される場所を知る方法がありますか?
これはXubuntu 20.04.3にあります。
答え1
コアシンボルがあります。XF86LogGrabInfo
このボタンを押すと、Xサーバーはすべての情報を印刷します。印象ログファイル(通常/var/log/Xorg.$DISPLAY.log
)にあります。インストールした場合は、xdotool
次のコマンドでキーを起動できます。
xdotool key XF86LogGrabInfo
ここでは、犯人X11クライアントを識別できます。たとえば、どのX11クライアントが「Space」キーを誤って使用したかを確認するには、まずspace
キーシムにバインドされたキーコードを取得します。
$ xkbcomp $DISPLAY - | grep SPCE
<SPCE> = 65;
key <SPCE> { [ space ] };
xev
(+pressを使用することもできますSpace
)次のように検索しますXorg.$DISPLAY.log
。
$ awk '/registered grabs of client/{c=$0}/detail 65/{if(c)print c; c=""; print}' /var/log/Xorg.0.log
[452727.209] Printing all registered grabs of client pid 32055 openbox --config-file /home/pi/.config/openbox/lxde-pi-rc.xml
[452727.220] detail 65 (mask 0), modifiersDetail 8 (mask 0)
[452727.220] detail 65 (mask 0), modifiersDetail 24 (mask 0)
[452727.220] detail 65 (mask 0), modifiersDetail 10 (mask 0)
[452727.220] detail 65 (mask 0), modifiersDetail 26 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 12 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 28 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 14 (mask 0)
[452727.241] detail 65 (mask 0), modifiersDetail 30 (mask 0)
modifiersDetail 8
などMod1Mask
によってAlt
それでキーの組み合わせをopenbox
盗むのです。Alt-Space
クライアントのpidとコマンドラインが常に正しいとは限りません。プロセスのpidとコマンドライン。接続済みXorg Unixドメインソケットに同時にフォークし、サブプロセスがソケットファイル記述子を継承する場合、ソケットはもう存在しない可能性があります。 (これはSO_PEERCRED
「認証」を無邪気に誤用する一般的な問題です。話が長くなります;-) )