我想让某些键(主要是媒体键)到达我的windowmanager,即使我的锁屏幕是活动的。这样,即使我的屏幕被锁定,我也可以控制我的媒体播放器。
据我所见,这可能只有在屏幕储物柜支持这一点时才有可能:一旦屏幕储物柜从根窗口抓起键盘指针,似乎就无法接收按键事件。
有人知道支持这种东西的屏幕储物柜吗?或者在锁屏处于活动状态时听按键的其他方式?
非常感谢,
卢卡斯
发布于 2017-03-30 06:52:35
我想出了一件事:即使键盘焦点被屏幕储物柜抓走,听原始按键也是可能的。缺点是,对于原始按键,您必须手动跟踪修饰符键的状态,但这似乎运行得很好。
基于这个想法,我构建了一个小的热键守护进程,它允许在屏幕锁定时执行命令。如果有人感兴趣,你可以在这里找到它:https://github.com/tinloaf/lhkd
发布于 2017-03-23 11:40:58
如果您的媒体键发送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事件。如果事件与regex匹配,则执行第二个lin中指定的命令(在action=
之后)。将%e
展开到事件行。在本例中,它用于将事件作为命令行参数传递给脚本。
在Arch上也有一篇关于acpid
的好文章:https://wiki.archlinux.org/index.php/Acpid
下一步是找出如何从脚本中控制媒体播放器。
https://unix.stackexchange.com/questions/344460
复制相似问题