Risposte:
Bene, dopo sudo apt-get install wmctrl
, puoi giocare con questo script bash:
#! /bin/bash
WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird
# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:
if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0
Che ho trovato qui
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
ha -i
un'opzione, che supporta l'utilizzo della finestra con il suo identificatore esadecimale. E così puoi farlo wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
- il che farebbe qualcosa di simile
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 un for
ciclo a livello di shell. Usando Bash:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
Alcune osservazioni:
xdotool search
cercherà il modello (qui Firefox
) in nome finestra, classe e nome classe. Se si vuole restringere la spazio di ricerca, utilizzare le pertinenti --class
, --name
o --classname
opzioni.--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.xdotool
progetto è bloccato dal 2015. Rimane ancora il mio strumento preferito. Per motivi personali, Jordan Sissel (l'autore originale) non è così attivo come in passato, quindi non esitate a contribuire al progetto.
xdotool windowraise
porta la finestra in primo piano ma non mette a fuoco la finestra o passa al desktop con la finestra. invece,windowactivate
farà tutti e tre.