Ist es möglich, dass die Lautstärketasten einer Tastatur weiter funktionieren, wenn Ihr Desktop gesperrt ist? Gegenwärtig deaktiviert das Standardverhalten alle Sonderfunktionstasten, bis der Desktop entsperrt wird. Ich verwende meinen PC gerne als Musik-Player und lasse ihn gesperrt, wenn ich nicht direkt an der Konsole bin, aber ich möchte trotzdem die Lautstärke regeln, wenn ein Song zu laut ist.
shortcut-keys
music
lock-screen
Cerin
quelle
quelle
Antworten:
Etwas beschämend, aber da es keine Lösung zu geben schien und die Aufgabe relativ einfach zu sein schien, habe ich einen einfachen Python-Daemon geschrieben , um das Problem zu beheben. Es verwendet die python-xlib-API, um systemweite Tastendrücke zu erfassen und führt dann benutzerdefinierte Shell-Befehle aus. Es geht von einem grundlegenden Debian / Ubuntu-Setup aus, würde aber wahrscheinlich auf den meisten Linux-Systemen mit ein paar Änderungen funktionieren.
In meinem Fall sind die Lauter- / Leiser-Tasten dem Code 122/123 zugeordnet. Die entsprechenden Befehle zum Verringern oder Erhöhen der Lautstärke nur bei gesperrtem Desktop lauten daher:
Zugegeben, das ist etwas ausführlich. Das zweite Problem besteht darin, die aktive Soundschnittstelle auf Systemen zu finden, auf denen möglicherweise mehrere vorhanden sind (z. B. mein Laptop verfügt über eine Master- und eine Kopfhörerschnittstelle, über die diese Befehle gesteuert werden können).
Bearbeiten: Dies funktioniert ab Ubuntu 16 nicht mehr. Alle X-Funktionen scheinen deaktiviert zu sein, auch vom Terminal aus, sobald der Bildschirm gesperrt ist.
quelle
gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true"
Basis von askubuntu.com/a/890802/627247 ersetzen, weil ich den Gnome-Screesaver nicht verwende, aber danach überhaupt keine Probleme mehr.gnome-screensaver-command -q | grep "is active"
in den Zeilen 160-165 von freekey.py oder direkt in der Konfigurationsdatei durch das zu ersetzen, was er vorschlägt.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'
funktioniert perfekt für den nächsten Song auf Rhythmbox. Ich arbeite immer noch an früheren und anderen Steuerelementen, aber es wird dort ankommen.