Linux

讓某些鍵通過鎖屏

  • March 30, 2017

即使我的鎖屏處於活動狀態,我也想讓某些鍵(主要是媒體鍵)到達我的視窗管理器。這樣,即使我的螢幕被鎖定,我也可以控制我的媒體播放器。

據我所知,這可能只有在螢幕儲物櫃支持的情況下才有可能:一旦螢幕儲物櫃將鍵盤指針從根視窗中取出,似乎就無法接收按鍵事件。

有誰知道支持這種事情的任何螢幕儲物櫃?或者在鎖屏處於活動狀態時收聽按鍵的任何其他方式?

非常感謝,

盧卡斯

我想出了一些辦法:即使鍵盤焦點被螢幕儲物櫃搶走,也可以監聽*原始按鍵。*缺點是使用原始按鍵時,您必須手動跟踪修飾鍵的狀態,但這似乎工作得很好。

我基於這個想法建構了一個小型熱鍵守護程序,即使在螢幕鎖定時也可以執行命令。如果有人感興趣,可以在這裡找到:https ://github.com/tinloaf/lhkd

如果您的媒體密鑰發送 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 事件。如果事件與正則表達式匹配,則執行第二個 lin(之後action=)中指定的命令。%e擴展至事件行。在這種情況下,它用於將事件作為命令行參數傳遞給腳本。

還有一篇關於acpidArch Wiki 的好文章:https ://wiki.archlinux.org/index.php/Acpid

下一步是弄清楚如何通過腳本控制媒體播放器。

引用自:https://unix.stackexchange.com/questions/344460