桌面锁定时如何允许按键功能


20

锁定桌面时是否可以允许键盘的音量键继续工作?当前,默认行为将禁用所有特殊功能键,直到台式机解锁为止。我喜欢将PC用作音乐播放器,当我不直接在控制台上时将其锁定,但是如果歌曲太大声,我仍然希望让人们控制音量。


+1!我敢打赌,这样做的副作用(如果可能的话)是不会重新唤醒睡眠显示,这是我以前想知道的。
大卫·奥尼尔

1
我也想拥有这个功能。不仅用于音量,还用于音乐控制键(播放,暂停;下一个;上一个)。
jPlatte 2012年

顺便说一句,在升级时,我将屏幕调到了最低设置。在安装过程中,我无法将其备份。做了一次有趣的经历。–
威尔·理查森

我想知道是否可以将媒体密钥伪装成一个遥控器,制成某种假冒的LIRC设备...至少从概念上讲是合理的,对吗?
taneli 2012年

Answers:


9

有点可耻的插件,但是由于似乎没有任何现有的解决方案,并且由于任务似乎相对简单,因此我编写了一个简单的Python守护程序来解决该问题。它使用python-xlib API捕获系统范围内的按键,然后运行自定义外壳命令。它假定使用了基本的Debian / Ubuntu设置,但可能需要进行一些调整才能在大多数Linux系统上运行。

就我而言,提高音量/降低音量键映射到代码122/123,因此仅在锁定桌面时降低或提高音量的相应命令是:

gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` -10%'
gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` +10%'

诚然,这有点冗长。第二个grep是在可能具有多个接口的系统上找到活动的声音接口(例如,我的笔记本电脑具有“主控”和“耳机”接口,允许这些命令控制其中一个)。

编辑:自Ubuntu 16起,该功能不再可用。一旦屏幕锁定,所有X功能似乎都将被禁用,即使是从终端也是如此。


1
我刚刚在Ubuntu 18.04上工作。我不得不用gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true"基于askubuntu.com/a/890802/627247的“已锁定测试” 代替,因为我没有使用gnome-screesaver,但是在那之后,就没有问题了。
Fabian N.

我可以确认它也可以在Ubuntu 16.04上运行。为了避免混淆,Fabian N.提到的“已锁定测试”是指gnome-screensaver-command -q | grep "is active"在freekey.py的第160--165行中替换掉他的建议,或直接在配置文件中替换掉他的建议。
皮埃尔·塔拉米

在我的系统上171 gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true" && bash -c 'rhythmbox-client --next'非常适合节奏盒上的下一首歌。我仍在使用以前的控件和其他控件,但可以实现。
约翰·汉密尔顿
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.