Patch LXpanel 0.5.10

Ritratto di 0xnan

Chiunque abbia provato LXDE (Lightweight X11 Desktop Environment) e allo stesso tempo sia il classico tipo che continuamente lotta nel tentativo di farsi spazio tra la confusione di decine di applicazioni aperte, avrà odiato l'impossibilità della taskbar (applet di LXPanel) di poter chiudere i task raggruppati.

Difatti la barra delle applicazioni si limita ad elencare le varie istanze dei programmi grafici in esecuzione e permette esclusivamente di agire singolarmente su ognuna di esse come mostrato nell'immagine sottostante.

Cliccando con il tasto sinistro o destro del mouse il risultato rimane invariato, obbligando noi poveri disordinati a chiudere ogni applicazione singolarmente o -in estremi casi- a lanciare un bel killall.
Una situazione simile possiede il requisito numero uno che spinge l'user attivo a passare all'azione: un problema che ancora non possiede una soluzione.

In questo piccolo HOW-TO vedremo come patchare LXpanel (v 0.5.10) e permettere -al click destro del mouse- la comparsa di un menù che consentirà di chiudere tutte le istanze aperte, come nello screenshot seguente:

Il primo passo è procurarsi il codice di LXpanel ed estrarlo; questo è possibile visitando la pagina sourceforge del progetto.
Successivamente occorre scaricare la patch da me creata dal seguente indirizzo:



Essa contiene due patch: taskbar.path e it.patch; rispettivamente per la barra delle applicazioni e per la lingua italiana.
Applicarle è davvero semplice grazie al comando patch.
Dal terminale eseguire i seguenti comandi (supponendo di trovarci nella cartella del codice di LXpanel):

$ patch ./src/plugins/taskbar.c < "percorso della patch"/taskbar.patch
$ patch ./po/it.po < "percorso della patch"/it.patch

Se tutto è andato per il verso giusto dovrete avere un output del tipo "patching file ... ".
Fatto ciò non resta che compilare LXpanel (Risolvendo le opportune dipendenze) :D quindi:

# ./configure --prefix=/usr/
# make
# make install

Riavviate la sessione e testate la nuova feature!
Happy Hacking!

PS
Chiunque voglia sapere più informazioni sul codice della patch non esiti a chiedere: in fondo è un semplice menù in Gtk+ (sul quale è basato interamente LXDE) che sfrutta le strutture dati presenti in LXpanel per ottenere le istanze dei task-raggruppati e chiuderli attraverso la funzione Xwndmsg() di LXpanel.

Portale: