Post  |  Commenti

Post Meta

10th
NOV

Ridurre Firefox nella System Tray

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by deepred | Filed under Firefox Add-ons, Linux

closeQuesto articolo è stato pubblicato 1 anno 9 mesi 24 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

Era da un po’ di tempo che cercavo il modo migliore per riuscire a inserire firefox nella system tray (per chi non lo sapesse, la system tray è quella porzione di barra, di solito vicino all’orologio, dove sono presenti le icone di alcuni programmi, come per esempio quelli di chat: un programma aperto nella system tray, oltre a non riempire la barra delle applicazioni fa anche sì che tali programmi occupino meno memoria, essendo messi in una sorta di stato stand-by).

Infatti all’origine fu… FireTray, un add-on per Firefox e Thunderbird che si occupava di fare ciò. Ma questa estensione da un po’ di tempo a questa parte ha smesso di funzionare sulla mia KDE e neanche i successivi aggiornamenti ottennero effetti migliori.

Dopodiché provai AllTray, una applicazione opensource che permetteva di ridurre nella tray qualsiasi applicazione si voglia. Per avviare direttamente una qualsiasi applicazione già ridotta bastava dare il comando:

alltray -s -na "nome_applicazione"

Questa funzionava perfettamente anche con Firefox, ma… Ma la mia configurazione di Firefox, fa sì che prima dell’apertura della finestra principale Firefox, mi appaia la finestra per l’inserimento della password e questo fa sì che questa finestra fosse ridotta nella system tray e non la finestra principale. (La stessa cosa accade ogniqualvolta c’è una finestra secondaria che si apre prima di quella principale: per esempio quando ci sono aggiornamenti delle estensioni, dopo una chiusura forzata di Firefox, etc.).

A questo punto, scartato AllTray, ho provato ksystraycmd, una applicazione di KDE che ha lo stesso obiettivo di AllTray. Infatti lanciando

ksystraycmd --hidden "nome applicazione"

si ottiene lo stesso risultato del precedente comando. E ovviamente si ottiene anche lo stesso risultato per quanto riguarda finestre secondarie e finestre principali. Tuttavia, questa applicazione ha una interessante opzione --wid <int>, che permette di ridurre nella system tray una finestra già aperto indicando l’id della finestra. E come facciamo a conoscere qual’è l’id della finestra? Installando l’applicazione xwininfo (in Gentoo è presente nel Portage). A questo punto sono riuscito nel mio obiettivo creando questi 3 script:

firefox.sh

#!/bin/bash

/usr/bin/firefox
PID=`ps -C ksystraycmd -F | grep "ksystraycmd --wid" | awk '{ print $2 }'`
if [ -n $PID ]; then
kill -9 $PID
fi

fire_tray.sh

#!/bin/bash

PID=`ps -C ksystraycmd -F | grep "ksystraycmd --title Mozilla Firefox" | awk '{ print $2 }'`
WID=`xwininfo -root -all | grep Mozilla\ Firefox | awk '{ print $1 }' | sort -r | head`
kill -9 $PID
ksystraycmd --wid $WID --hidden

fire_tray_script.sh

#!/bin/bash

FIRE_TRAY=/path/to/fire_tray.sh
FIREFOX=/path/to/firefox.sh

$FIREFOX &
ksystraycmd --title Mozilla\ Firefox --caption Mozilla\ Firefox --icon "/usr/share/pixmaps/firefox-icon.png" --hidden --startonshow --quitonhide --ownicon $FIRE_TRAY

E a questo punto si potrebbe usare quest’ultimo script per avviare Firefox. Sostanzialmente, questo script avvia normalmente Firefox (senza tray icon) e avvia nella system tray un’altra applicazione (fire_tray.sh), associandogli però l’icona di firefox. L’opzione --startonshow fà sì che l’applicazione fire_tray.sh si avvii effettivamente solo quando cerchiamo di chiudere firefox nella system tray. A questo punto fire_tray.sh elimina la sua tray icon dalla system tray e inserisce al suo posto quella di Firefox. Infine quando si chiude Firefox, lo script firefox.sh provvederà ad eliminare la tray icon corrispondente dalla system tray, se ancora presente.

Spero che questo sia chiaro ed utile. Per qualsiasi domanda non esitate a commentare…

Tags: > > > >

Reader's Comments

  1. Lupin |

    Avrei un suggerimento…perchè non cambi lo sfondo della barra delle applicazioni e nella parte vicina all’orologio metti l’icona di firefox con quest ultimo automaticamente in esecuizione?

  2. RedSend |

    Quoto a pieno l’idea di Lupin, e in più ti consiglerei di fare uno script che fà lo screenshot del desktop, dopodichè modifica la tray bar aggiungendo l’icona di firefox. Shifta tutte le altre a sinistra e infine sostituisci l’immagine creata come nuova immagine del desktop. Però devi eliminare le barre e quant’altro, altrimenti quella che hai creato non si vede…

    Fammi sapere se lo fai…

  3. gianluca |

    ma non sarebbe più semplice utilizzare un programma come questo
    http://www.jenneboer.nl/traydevil/
    invece di fare tutto sto casino!!?!?

  4. shiny |

    funziona sui processori a 64 bit?

  5. deepred |

    @gianluca: traydevil è per windows. Gli equivalenti per linux sono citati nel post: AllTray e ksystraycmd. Ma ne post è spiegato perchè questo non mi andava bene.

    @shiny: certo, sia alltray, sia ksystraycmd che xwininfo, e quindi anche i miei script, funzionano su processori a 64 bit

    @lupin e redsend: ho provato, ma non funziona

  6. Lupin |

    Ho provato firetray 0.1.11 (l’estensione di firefox ufficiale) e…magia ora funziona correttamente!

Leave a Reply

Immagine CAPTCHA
Il contenuto di questo Blog è rilasciato sotto Licenza Creative Commons (Leggi)