Ubuntu 17.04 XFCE4
コンピューターにログインすると、Control+R はすべてのプログラムで機能します。ただし、しばらくすると (通常は、コンピューターがスリープ状態にならないにもかかわらず、モニターの電源がオフになるだけで、しばらく操作が行われないと)、すべてのプログラムで機能しなくなります (たとえば、Chrome も PHPStorm も応答しませんが、メニューからアクティブにすると、それらのプログラムで通常トリガーされるそれぞれのアクションが機能します)。他のショートカットはすべて正常に機能しますが、影響を受けるのは Control+R のみのようです。
システムの「キーボード」設定には、この組み合わせにバインドされたアプリケーション ショートカットはありません。
xev を実行して、コンボが機能しているときと機能していないときの出力が同じであることを確認しました。
この問題を修正するには、ログアウトして再度ログインするだけで済みます。システムを再起動する必要はありません。
システムはキーストロークを認識しているが、それに応答するアプリがないため、実行中の何らかのプロセスがこの組み合わせを乗っ取っていると想定していますが、それがどのアプリケーションであるかを調べる方法がわかりません。
答え1
Unix.SEからの回答don_crissti による。Ctrl+ のr組み合わせを送信するには、 を使用します。"ctrl+r"
例: 。xdotool key "ctrl+r"
どのアプリ/プログラムがキーを取得したかを調べるには、デバッグキーシンボルを使用します。XF86LogGrabInfo
.ターミナル実行などでxdotool
キー+をXF86LogGrabInfo
同時に押すために使用します
KEY=XF86AudioPlay
xdotool keydown ${KEY}; xdotool key XF86LogGrabInfo; xdotool keyup ${KEY}
次に、出力をチェックします。tail /var/log/Xorg.0.log
と ではgnome 3/gdm
、systemd
これはもうログに記録されませんXorg.0.log
(代わりにジャーナル)。その場合は、
journalctl -f
そして別のターミナルでxdotool
コマンドを実行します。最初のターミナルに切り替えると、次のような画面が表示されます。
/usr/lib/gdm/gdm-x-session[629]: Active grab 0x40c0a58e (xi2) on device 'Virtual core keyboard' (3):
/usr/lib/gdm/gdm-x-session[629]: client pid 708 /usr/bin/gnome-shell
/usr/lib/gdm/gdm-x-session[629]: at 32595124 (from passive grab) (device frozen, state 6)
/usr/lib/gdm/gdm-x-session[629]: xi2 event mask for device 3: 0xc000
/usr/lib/gdm/gdm-x-session[629]: passive grab type 2, detail 0xac, activating key 172
上記の例では、キーを取得したプログラム (クライアント) は ですgnome-shell
。