GNU/Linux >> Linux Esercitazione >  >> Linux

Manipolare il tasto X e il puntatore sulla riga di comando?

Quali strumenti da riga di comando esistono per elencare e gestire le prese del server X? (Questo è afferrare come in key e pointer grabs, cioè limitare l'uso di un particolare tasto o pulsante del mouse a una particolare applicazione, o costringere il puntatore del mouse a rimanere in una particolare area dello schermo.) Sto cercando un ipotetico xgrab utility che mostrerebbe cose come

Key     0x00f00ba5  0x123   0
Button  0x00f00ba5  2       
Pointer 0x00abcdef  

significa che c'è stata una chiamata a XGrabKey(display, 0x123, 0, 0x00f00ba5, ...) e così via con XGrabButton , XGrabPointer , XGrabKeyboard , XGrabServer (se possibile). Il formato di visualizzazione non ha importanza, quello che voglio è un modo per vedere chi sta prendendo cosa, e possibilmente un modo per revocare questi grab (se è possibile, non sono sicuro che l'API X11 lo consenta).

Risposta accettata:

Le versioni recenti di X (server X.org ≥1.11) supportano diversi keysyms di debug, introdotti in questo commit. Quando vengono attivati, eseguono azioni relative alle prese.

Di default (almeno nelle versioni recenti), questi sono disabilitati (assenti dalla keymap di default).

Tuttavia, se hai xdotool installato, è possibile chiamarli, eseguendo sulla riga di comando:

xdotool key NameOfKey

dove NameOfKey è il keysym che vuoi attivare. Ad esempio, per stampare un elenco di grab attivi nel registro del server X, usa xdotool key XF86LogGrabInfo .

I keysym rilevanti sono:

  • XF86LogGrabInfo :stampa un elenco di grab attivi nel log del server X
  • XF86Non catturare :interrompe tutte le prese attive, senza uccidere l'applicazione che contiene le prese
  • XF86ClearGrab :uccide tutti i processi che mantengono le prese attive

Nota che XF86LogGrabInfo elenca solo le prese attive, non le prese passive come una presa su un tasto che non è attualmente premuto. Se vuoi ottenere informazioni su un grab passivo, devi attivare il grab:esegui xdotool key XF86LogGrabInfo mentre viene premuto l'accordo chiave o la combinazione di pulsanti del mouse che ti interessa. Fai qualcosa come:

  1. Esegui sleep 1; xdotool key XF86LogGrabInfo
  2. Entro 1 secondo, premi l'accordo chiave o la combinazione di pulsanti del mouse.
  3. Dopo 1 secondo, rilascia il tasto/pulsante.
  4. Controlla le informazioni "Active grab ..." nel registro del server X (spesso /var/log/Xorg.0.log ).

Linux
  1. 8 suggerimenti per la riga di comando di Linux

  2. Ordina con l'ordinamento dalla riga di comando

  3. Un piccolo file SSH copia la magia sulla riga di comando

  4. Slash e il comando rsync

  5. visualizzazione delle proprietà/attributi dei file dll ed exe tramite la riga di comando

Padroneggia la riga di comando di Linux

Come spegnere Debian 10 dalla riga di comando e dalla GUI

Manipolazione del testo dalla riga di comando con grep

Trova la riga di comando?

Trovare i file e le cartelle più grandi nella riga di comando di Linux

MySQL la riga di comando e i cercapersone