Come consentire le funzioni chiave mentre il desktop è bloccato


20

È possibile consentire ai tasti del volume di una tastiera di continuare a funzionare quando il desktop è bloccato? Attualmente, il comportamento predefinito disabilita tutti i tasti con funzioni speciali fino allo sblocco del desktop. Mi piace usare il mio PC come lettore musicale e lasciarlo bloccato quando non sono direttamente sulla console, ma voglio comunque consentire alle persone di controllare il volume se una canzone è troppo rumorosa.


+1! Scommetto che un effetto collaterale di questo (se possibile) è di non risvegliare il display del sonno, che è qualcosa di cui mi sono chiesto prima.
David Oneill,

1
Mi piacerebbe avere anche questa funzionalità. Non solo per il volume, ma anche per i tasti di controllo della musica (riproduzione, pausa; successivo; precedente).
jPlatte,

A parte questo, mentre stavo aggiornando ho abbassato il mio schermo all'impostazione più bassa. A metà dell'installazione non sono riuscito a ripristinarlo. Realizzato per un'esperienza interessante ..
Will Richardson,

Mi chiedo se le chiavi multimediali possano essere trasformate in una sorta di falso dispositivo LIRC, fingendo di essere un telecomando ... Almeno concettualmente ha senso, giusto?
taneli,

Risposte:


9

Un po 'un vergognoso plug, ma poiché non sembrava esserci alcuna soluzione esistente e dato che l'attività sembrava relativamente semplice, ho scritto un semplice demone Python per risolvere il problema. Utilizza l'API python-xlib per acquisire le pressioni dei tasti a livello di sistema e quindi esegue comandi shell personalizzati. Presuppone una configurazione di base di Debian / Ubuntu, ma probabilmente funzionerebbe sulla maggior parte dei sistemi Linux con qualche modifica.

Nel mio caso, i tasti volume su / giù sono associati al codice 122/123, quindi i comandi corrispondenti per abbassare o alzare il volume solo quando il desktop è bloccato sono:

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

Certo, è un po 'prolisso. Il secondo grep è trovare l'interfaccia audio attiva su sistemi che potrebbero avere diversi (ad es. Il mio laptop ha un'interfaccia Master e Headphone, che consente a questi comandi di controllare entrambi).

Modifica: questo non funziona più a partire da Ubuntu 16. Tutte le funzioni X sembrano disabilitate, anche dal terminale, una volta che lo schermo si blocca.


1
Ho appena funzionato su Ubuntu 18.04. Ho dovuto sostituire il "test bloccato" con gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true"basato su askubuntu.com/a/890802/627247 perché non sto usando lo gnome-screesaver ma dopo ciò, nessun problema.
Fabian N.

Posso confermare che funziona anche su Ubuntu 16.04. Per evitare confusione, il "test bloccato" menzionato da Fabian N. significa sostituire gnome-screensaver-command -q | grep "is active"sulle righe 160-165 di freekey.py o direttamente nel file di configurazione con ciò che suggerisce.
Pierre Thalamy,

sul mio sistema 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'funziona perfettamente per la prossima canzone su rhythmbox. Sto ancora lavorando su controlli precedenti e altri, ma ci arriverà.
John Hamilton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.