首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >让某些钥匙通过锁屏

让某些钥匙通过锁屏
EN

Unix & Linux用户
提问于 2017-02-12 19:37:55
回答 2查看 415关注 0票数 6

我想让某些键(主要是媒体键)到达我的windowmanager,即使我的锁屏幕是活动的。这样,即使我的屏幕被锁定,我也可以控制我的媒体播放器。

据我所见,这可能只有在屏幕储物柜支持这一点时才有可能:一旦屏幕储物柜从根窗口抓起键盘指针,似乎就无法接收按键事件。

有人知道支持这种东西的屏幕储物柜吗?或者在锁屏处于活动状态时听按键的其他方式?

非常感谢,

卢卡斯

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2017-03-30 14:52:35

我想出了一件事:即使键盘焦点被屏幕储物柜抓走,听原始按键也是可能的。缺点是,对于原始按键,您必须手动跟踪修饰符键的状态,但这似乎运行得很好。

基于这个想法,我构建了一个小的热键守护进程,它允许在屏幕锁定时执行命令。如果有人感兴趣,你可以在这里找到它:https://github.com/tinloaf/lhkd

票数 1
EN

Unix & Linux用户

发布于 2017-03-23 19:40:58

如果您的媒体键发送ACPI事件,则可以使用acpid对它们进行操作。

不幸的是,它需要全局配置更改(而不是每个用户),将事件传递给X11应用程序可能很棘手。

您可以通过运行acpi_listen,然后按下这些键,查看媒体键发送的ACPI事件(如果有)。例如,当我按下笔记本电脑上的“亮度向上”键时,acpi_listen输出中就会出现这种情况:

代码语言:javascript
运行
复制
video/brightnessup BRTUP 00000086 00000000

如果您的键确实发送了ACPI事件,则可以配置acpid以在按下命令时运行它们。相关的配置文件通常在/etc/acpi/events/中找到。只要他们在正确的目录中,他们就可以有任何名字。它们看起来是这样的:

代码语言:javascript
运行
复制
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

下一步是找出如何从脚本中控制媒体播放器。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/344460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档