特定のキーがロック画面を通過できるようにする

特定のキーがロック画面を通過できるようにする

ロック画面が有効になっていても、特定のキー(主にメディアキー)がウィンドウマネージャにアクセスできるようにしたいです。これにより、画面がロックされていてもメディアプレーヤーを制御できます。

私が知っている限り、これはScreen Lockerがこの機能をサポートしている場合にのみ可能です。 Screen Lockerがキーボードポインタをルートウィンドウから離すと、キーイベントを受け取る方法がないようです。

このような機能をサポートするスクリーンライブラリを知っている人はいますか?それとも、ロック画面がアクティブな間にキーを押すことを受け取るための別の方法がありますか?

とても感謝しています、

ルーカス

答え1

何か考えた:聞いてみて生の画面ロックによりキーボードフォーカスが消えた場合でもキーストロークが可能です。欠点は、rawキーを使用するときに修飾キーの状態を手動で追跡する必要があることです。これはうまく機能するようです。

私はこのアイデアに基づいて、画面がロックされていてもコマンドを実行できる小さなホットキーデーモンを作成しました。誰にも興味があるなら、ここで見つけることができます:https://github.com/tinloaf/lhkd

答え2

メディアキーがACPIイベントを送信している場合は、それを使用してacpid作業できます。

残念ながら、(ユーザー固有ではない)グローバル構成の変更が必要であり、X11アプリケーションにイベントを渡すのは難しいかもしれません。

acpi_listenメディアキーを実行したら、メディアキーに送信されたACPIイベント(存在する場合)を確認できます。たとえば、acpi_listenノートブックの「明るさを上げる」キーを押すと、出力に次のように表示されます。

video/brightnessup BRTUP 00000086 00000000

キーがACPIイベントを送信している場合は、acpidキーを押したときにコマンドを実行するように構成できます。関連する設定ファイルは通常、にあります/etc/acpi/events/。正しいディレクトリにあれば、どんな名前でも持つことができます。それらは次のとおりです。

event=^video/brightness(up|down) .*[^K]$
action=/etc/acpi/backlight-handler.sh %e

最初の行にはevent=正規表現が含まれ、その後には ACPI イベントに一致する正規表現が含まれます。イベントが正規表現と一致すると、action=2行目の後に指定されたコマンドが実行されます。%eイベントラインに拡張されました。この場合、イベントをコマンドライン引数としてスクリプトに渡すために使用されます。

acpidArch Wikiにも良い記事があります:https://wiki.archlinux.org/index.php/Acpid

次のステップは、スクリプトを介してメディアプレーヤーを制御する方法を見つけることです。

関連情報