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.