デスクトップがロックされているときにキー機能を許可する方法


20

デスクトップがロックされているときにキーボードのボリュームキーが機能し続けることを許可することは可能ですか?現在、デフォルトの動作では、デスクトップのロックが解除されるまで、すべての特殊機能キーが無効になっています。私は自分のPCを音楽プレーヤーとして使用し、直接コンソールにいないときはロックしたままにしますが、曲の音量が大きすぎる場合は音量をコントロールできるようにします。


+1!これの副作用は(可能であれば)眠っているディスプレイを目覚めさせないことだと思います。これは私が以前に考えたことです。
デビッドオニール

1
私もこの機能が欲しいです。音量だけでなく、音楽コントロールキー(再生、一時停止、次、前)も使用できます。
jPlatte

余談ですが、アップグレード中に画面を最低の設定に下げました。インストールの途中で、元に戻すことができませんでした。興味深い経験のために作られた...
ウィル・リチャードソン

メディアキーをリモートコントロールのふりをして、何らかの種類の偽のLIRCデバイスにすることができるのではないかと考えています...少なくとも概念的には理にかなっていますか?
-taneli

回答:


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%'

確かに、それは少し冗長です。2番目のgrepは、複数のシステムがある場合にアクティブなサウンドインターフェイスを見つけることです(たとえば、私のラップトップにはマスターインターフェイスとヘッドフォンインターフェイスがあり、これらのコマンドのいずれかを制御できます)。

編集:これはUbuntu 16の時点では機能しなくなりました。画面がロックされると、端末からでもすべてのX機能が無効になるようです。


1
Ubuntu 18.04で動作するようになりました。「ロックされたテスト」をaskubuntu.com/a/890802/627247にgdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true"基づいて置き換える必要がありました。gnome-screesaverを使用していないが、その後はまったく問題がないためです。
ファビアンN.

Ubuntu 16.04でも動作することを確認できます。混乱を避けるために、ファビアン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'ではrhythmboxの次の曲で完璧に機能します。私はまだ以前のコントロールや他のコントロールに取り組んでいますが、そこに到達します。
ジョンハミルトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.