Sostituisci collegamento a livello di sistema per un collegamento specifico dell'applicazione


11

Esiste un modo per dare una scorciatoia da tastiera definita in una precedenza dell'applicazione rispetto a una scorciatoia a livello di sistema con la stessa associazione di tasti?

Comportamento desiderato: quando si premono alcuni tasti , verificare se l'applicazione focalizzata vuole fare qualcosa (e in tal caso, farlo). In caso contrario, verificare se esiste un collegamento di sistema per alcuni tasti e quindi farlo.

Cosa succede attualmente: ho F11impostato come 'attiva / disattiva schermo intero' nel menu delle impostazioni per le scorciatoie da tastiera. In Chrome F11dovrebbe attivare la modalità a schermo intero di Chrome, ma invece viene ignorato dal collegamento a livello di sistema, ovvero Chrome diventa a schermo intero (il pannello GNOME e la barra del titolo scompaiono) ma non entra nella modalità a schermo intero di Chrome (dove anche le schede, la barra degli indirizzi e la barra dei segnalibri Vanish).

(Nota a margine: Firefox non ha lo stesso problema, ma questo sembra essere perché lo schermo intero FF è lo stesso di / è attivato dal gestore dello schermo a schermo intero)


La prima domanda che mi viene in mente; cosa parla al SO delle pressioni dei tasti, dell'applicazione o di X / Wayland? Mi sembra che la X gestirà la pressione di un tasto e la manipolerà se necessario, prima di passarlo alla finestra su cui l'applicazione ti sta aspettando. La seconda domanda è: come farebbe X a sapere se l'applicazione ha cambiato stato e come farebbe a sapere se una modifica è avvenuta direttamente a causa di una pressione di un tasto? Sarei propenso a uscire su un arto e dire che sei sfortunato per questo.
HellionWisp,

Risposte:


2

Disclaimer: Questo non è esattamente quello che vuoi, ma ho speso troppo tempo per non pubblicarlo e forse qualcun altro può usarlo.

Sono arrivato a Ctrl + F11 a schermo intero ovunque tranne Chromium, dove è a schermo intero Chromium!

  1. Treno del pensiero

Ho pensato che avrei potuto ingannare il gestore delle finestre se avessi usato xdotoole inviato il comando direttamente alla finestra di Chrome, senza risultato.

Poi ho pensato che avrei potuto cambiare la scorciatoia da tastiera in Google Chrome, ma questo sembra hardcoded - un altro vicolo cieco.

  1. Questo ci lascia con questo

Installa xdotoolper simulare la pressione della tastiera

sudo apt-get install xdotool

riconfigurare le scorciatoie da tastiera di Ubuntu in qualcosa di arbitrario, che non digitiamo mai ma è utilizzabile nello script

Impostazioni -> Dispositivi -> Tastiera

Scorrere verso il basso e modificare modalità a schermo intero Toggle per Ctrl + Alt + 1e poi ha colpito la +e aggiungere una scorciatoia da tastiera personalizzata

scorciatoie da tastiera - schermo intero

e quindi premere il +tasto e aggiungere una scorciatoia da tastiera personalizzata

finestra di dialogo del collegamento personalizzato

modifica lo script

nano /home/user/fullscreen.sh


#!/bin/bash
export DISPLAY=:0
windowname=$(xdotool getactivewindow getwindowname | cut -d "-" -f 2)
if [[ $windowname != *"Chromium"* ]]
then
xdotool keydown Ctrl keydown Alt key 1 keyup Alt keyup Ctrl
else
xdotool search --onlyvisible --class "Chromium" windowfocus 
sleep 0.2
xdotool key F11
fi

renderlo eseguibile

chmod +x /home/user/fullscreen.sh

  1. Conclusione

Sembra impossibile ingannare il gestore delle finestre e contrabbandare la sequenza di tasti, ma ci sono sicuramente soluzioni alternative possibili. In questo caso Google ha reso la scorciatoia da tastiera a schermo intero non configurabile, quindi non è all'altezza del segno

Ora con Ctrl + F11 il gestore delle finestre controlla il comportamento a schermo intero tranne che in cromo.


1
Pensa di avere ragione sul fatto che questo è il massimo che possiamo sperare: peccato che Chrome / ium non supporti le scorciatoie da tastiera personalizzate. Vale la pena notare: la scelta delle scorciatoie da tastiera è importante per questo trucco! Avevo già Ctrl + F11 associato a qualcos'altro. Ho provato con Shift + Alt + F11, che non ha funzionato. Alt + F11 ha funzionato bene però. (Suppongo che stesse tentando di fare Maiusc + Ctrl + Alt + F11)
Fred
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.