Comando Shell per portare una finestra del programma davanti a un'altra?


Risposte:


14

Nota:

  • Ulteriori informazioni su xdotool sono disponibili qui .

Sicuramente modifica il tuo post proprio mentre sto componendo il mio ... :()
frabjous

Puoi trovare il nome della tua finestra con wmctrl -l Il nome è il testo dopo l'ultimo trattino: <ID finestra> <ID desktop> <macchina client> <titolo finestra>
jorfus

8

Un'altra opzione è xdotool :

xdotool search --class Nautilus windowactivate


2
Non riesce con meXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
Tino,

Probabilmente il bug qui - nella mia esperienza --classname o --name (se noto) funziona a volte quando --class no.
frabjous

Nel mio caso è stato possibile aprire una finestra usando l'ID xwininfoe lanciando diversi xdotoolcomandi aggiuntivi (che non ricordo più). Quando ho cercato di automatizzare ciò (per sbarazzarmi di xwininfo) ho avuto artefatti visivi a causa di finestre altrimenti nascoste che sono state selezionate anche. Ho semplicemente trovato un modo generico per affrontare correttamente finestre arbitrarie. Dopo essere passati a wmctrl -atutto immediatamente ha funzionato perfettamente e senza ulteriori modifiche. Si noti che mi piace xdotool, ma sembra difficile alzare solo la finestra corretta con essa.
Tino,

2

Quando si utilizza xdotool, sembra difficile portare in primo piano tutte le finestre per una determinata applicazione o classe utilizzando un solo comando. Finisco per avere risultati migliori avvolgendolo in afor ciclo a livello di shell. Usando Bash:

for WINDOW in $(xdotool search --desktop 0 Firefox); do
   xdotool windowactivate ${WINDOW}
done

Alcune osservazioni:

  • Per impostazione predefinita, xdotool searchcercherà il modello (qui Firefox) in nome finestra, classe e nome classe. Se si desidera limitare lo spazio di ricerca, utilizzare l'appropriato--class , --nameo --classnameopzioni.
  • Il --desktop 0 opzione limita la ricerca al primo desktop. Questa sembra essere una soluzione alternativa per evitare quanto XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)menzionato in alcuni commenti.
  • Al momento della stesura di questo documento, il xdotoolprogetto è bloccato dal 2015. Rimane comunque il mio strumento preferito. Per motivi personali, Jordan Sissel (l'autore originale) non è attivo come lui, quindi non esitate a contribuire al progetto.
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.