Translate

12 aprile 2008

Un cestino per WindowMaker

Voglio un desktop moderno e semplice. Bello e intuitivo. Voglio che assomigli a NeXTStep!

Il window manager che farà da struttura portante è senza ombra di dubbio WindowMaker: siamo alla versione 0.92.0 da tre anni, ma le feature che abbiamo a disposizione sono più che sufficienti.
Adesso dobbiamo scegliere cosa usare come gambe della scrivania: un ambiente GNUStep (che ci offre applicazioni dal look e dal comportamento molto simile a NeXT/OPENStep) o utilizzare gli ambienti prediletti dell'utenza GNU/Linux, KDE e Gnome. Ho scelto la seconda via.
Perché assomigli a NeXTStep ci devono essere essenzialmente due elementi: la Dock e un Workspace Manager (il papà del moderno Finder). La scelta, per motivi di tempo e praticità, è ricaduta su Konqueror.
Avviato la prima volta, ho aggiunto l'appicon alla Dock e impostato per farlo partire ad ogni avvio di WMaker, come da figura.

L'aggiunta di altre dockapp e appicon è a vostra discrezione. Ve ne suggerisco giusto un paio che trovo molto utili e ben fatte: la prima, Docker, una system tray, e wmpinboard, il post-it per WM.

Manca ancora qualcosa: il cestino!

L'idea.

L'idea di un'implementazione del genere mi è venuta guardando l'immagine qui a fianco. Se notate il penultimo campo, leggete la dicitura: Command for files dropped with DND (Drag 'n Drop).
Quindi, se sopra un'appicon trascino un file da un file manager, posso far eseguire uno script che ha come argomento il nome del file in questione (tipo: mv nomefile ~.Trash).

La pratica.

Cosa ci serve? In primis, WindowMaker compilato col supporto (ancora sperimentale, ndS.) al DND.
Per fare ciò, dopo il configure dei sorgenti, bisogna modificare il file ../src/wconfig.h, in questo modo:

/*
* support for XDND drop in the Dock. Experimental
*/
#define XDND

e il file ../src/misc.c, pena la mancata compilazione di WM, come segue:

/* if (!dropped_thing) {
* dropped_thing = get_dnd_selection(scr);
* }
*/
make && make install (o vi create il pacchetto di binari con i tool della vostra distribuzione). Avviate WindowMaker, ora col supporto per il Drag 'n Drop attivo.
Ora non ci serve altro che uno script adatto allo scopo.
E siamo fortunati: trash! Una serie di script in python che si integrano con le specifiche FreeDesktop, e quindi anche con il cestino di KDE e degli altri desktop manager (leggi Gnome, XFCE, eccetera).
Cosa manca? Un appicon che faccia quello che vogliamo. Createne una, magari prendendola in prestito da altre applicazioni e modificatela a vostro piacimento. Questa la mia, presa in prestito da Gimp:L'icona la scegliete voi, ricordando che rimarrà statica e non cambierà se svuotate il cestino. I comandi impostati sono abbastanza intuitivi: doppio click sinistro e apre Konqueror nella directory del cestino; click col tasto centrale e svuota il cestino utilizzando uno degli script in python di cui sopra; trascinamento di un file sull'icona e relativa cestinazione dello stesso, tramite script di cui sopra.

Bugs.

Ci sono. Personalmente ho verificato riavvii improvvisi di WindowMaker passando da console a X, e comportamenti strani del supporto DND: in particolare, prima devo avviare un file manager in GTK (Thunar), e usare il Drag 'n Drop prima che un'applicazione QT (Konqueror) sia in grado di utilizzarlo con successo. Qualche vostro feedback sarebbe utile.

[Update - 13/04/2008]
C'è anche un bug negli script in python: in particolare, il restore dei file dal cestino funziona solo da linea di comando con lo script restore-trash mentre da Konqueror non funziona.
[/Update]

[Update - 05/05/2008]

Dolphin è il file manager d'obbligo da usare con l'opzione columns, che lo rende molto simile all'originale Workspace Manager di NeXTStep. Aspettiamo il rilascio di KDE 4.1 per qualcosa di davvero stabile.
[/Update]

[Update - 11/11/2008]

I bug degli script in python sono stati corretti. Ora funzionano alla perfezione, grazie agli sviluppatori. Rimangono da risolvere due questioni: l'uso del Drag 'N Drop con le applicazioni QT (vedi sopra) e il comportamento di Dolphin che non aggiorna il contenuto della directory Trash in automatico.
[/Update]

Vi lascio con due screenshot :)

Nessun commento:

Posta un commento