Trasforma il tuo tasto maiuscole in un tasto di riproduzione / pausa
Questa soluzione rimappa lo scancode della chiave capslock in un codice chiave diverso nel driver di input del kernel, in questo caso play / pause.
vantaggi
- Non è necessario modificare i file di sistema esistenti (è necessario creare solo un nuovo file)
- Le applicazioni non sapranno che si tratta in realtà di un tasto capslock ma pensano che sia stato premuto un vero tasto play / pause
- Non è necessario disabilitare il maiuscolo, nessuna possibilità di confondere la
xkb
configurazione
svantaggi
- Deve essere fatto per ogni tastiera singolarmente (che, a seconda della situazione, può anche essere un vantaggio)
Prerequisiti
- evtest (può essere installato tramite
sudo apt-get install evtest
)
Procedura
In un terminale, esegui sudo evtest
e seleziona la tastiera. Se non viene visualizzato alcun output quando si preme un tasto, premere Ctrl+ Ce provare un altro dispositivo. Ricorda il numero di evento del dispositivo selezionato, ne avremo bisogno in seguito. Premere il tasto BLOC MAIUSC. Appariranno alcune linee come le seguenti:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Abbiamo bisogno del valore della MSC_SCAN
riga che precede la KEY_CAPSLOCK
riga. Nell'esempio sopra, questo sarebbe 70039, ma lo scancode sulla tastiera è probabilmente diverso.
Ora esegui il comando seguente, ma sostituisci la X con il numero di evento del dispositivo che hai usato per il evtest
comando:
grep "" /sys/class/input/eventX/device/id/*
... questa uscita volontà bustype
, product
, vendor
e version
della tastiera.
Creare un file denominato 65-keyboard-custom.hwdb
in /etc/udev/hwdb.d/
(autorizzazioni di root richieste) con il seguente contenuto:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...dove
- [bus], [fornitore], [prodotto] e [versione] hanno esattamente 4 caratteri e le lettere devono essere maiuscole
- [scancode] deve essere in minuscolo
- la
evdev:...
linea non ha spazio precedente
- la
KEYBOARD_KEY...
linea ha esattamente uno spazio precedente
Per esempio:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Infine, compila la nuova configurazione nel database hardware:
sudo systemd-hwdb update
Se si desidera applicare immediatamente le modifiche, informare udev:
sudo udevadm trigger
Se si desidera ripristinare le modifiche, è sufficiente rimuovere il file creato e riavviare.
Puoi trovare informazioni più dettagliate nella mia risposta originale su questo argomento.
vlc --key-play-pause <key-string>
, ma non ho trovato una stringa che VLC accetta come capslock ...