Translate

Visualizzazione post con etichetta KDE. Mostra tutti i post
Visualizzazione post con etichetta KDE. Mostra tutti i post

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 :)

27 marzo 2007

Su Slackware, Gnome, e la pigrizia: la via della sperimentazione

Da pochi giorni, Volkerding ha messo mani al changelog di Slackware -current, e io da bravo bleding edger quale sono ho masturbato la mia vetusta installazione (non ripulivo l'hard disk da Slackware 9.1) aggiornando al solito, vecchio e sensuale modo, come piace alla mia donna preferita: con le mani.
Scarico i pacchetti, è una domenica sera uggiosa, violentata dai pensieri di quell'idiota che è riuscito a farmi incazzare il pomeriggio prima... Intanto guardo la tv, spenta, visto che non trasmettono un emerito cazzo da mesi nell'etere.
Torno dalla scorribanda televisiva, è tardi, il giorno dopo avrò il turno mattutino (bene, tempo per le bisite il pomeriggio!): sono indeciso se dare l'upgradepkg ora o domani, ripetendomi l'UPGRADE.TXT in testa più volte:

repeat
begin

0) init 1 ;
1) upgradepkg glibc-solibs-* ;
2) upgradepkg pkgtools[TAB]
(magie di bash_completion) ;
stachezza:=stanchezza+1;
end;
until stanchezza=11;


Me, disgraziato:
Upgrade your glibc shared libraries. This is important, or things
might go haywire during the first part of the upgrade.

root@lounge# upgradepkg *.tgz
[CTRL+C] [CTRL+C] [CTRL+C]

root@lounge# ls
Segmentation fault
root@lounge#


A nulla sono serviti i miei tentativi di "bootare" da cd, usare chroot: le cose non si fanno a caso, la teoria non basta.

"It's time to back-up!"
Gigabytes di perversioni salvate. E con loro tutta la mia vecchia /home/michele.
La fedeltà alla mia regina, mi ha portato all'acquisto del cofanetto di sei cd di Slackware Linux 11.0: li ho usati.
La fedeltà di cui sopra mi aveva anche costretto, non senza sommo piacere, a tenere alla larga dal mio sistema tool automagici che tanto ricordavano quelli propagandati dal lato oscuro della forza(Debian, NdS.). Tuttavia, questioni di tempo, e soprattutto di merging nel tree ufficiale della distribuzione, mi hanno spinto a provarli.

Slackpkg, funziona. Confronta il changelog di Slackware -current (o delle altre versioni, previa configurazione, a mano) con i pacchetti installati, e propone aggiornamenti, e installazione di nuovo software. Dall'interfaccia in ncurses, è possibile selezionare pacchetto per pacchetto in base alle proprie esigenze di aggiornamento. Quello che trovo di estremo interesse in questa dis-utility è il comando: slackpkg clean-system, che elimina dal sistema i pacchetti non più presenti in Slackware. Penso non ne farò a meno.

Portpkg, funziona anche lui. Non è altro che un sistema di ports per Slackware. La cosa interessante (un po' come per i ports di diabolica memoria (BSD, NdS.) o il portage di Gentoo (ma guarda un po')) è che l'amministratore di sistema può mettere mano a tutti gli Slackbuild a disposizione, e crearsene di nuovi. Un buon metodo se volete usare sempre l'ultima versione dei vostri programmi preferiti, senza dare ad ogni release gli stessi comandi per la compilazione. Con lui ho ridotti i tempi di una compilazione manuale di Gnome, utile.

Con il sistema installato e pronto all'uso, mi preparo a rimettere in piedi una brutta copia del sistema che ero riuscito a costruire in tre anni di isolazionismo dalle tentazioni di un desktop environment: il mio WindowMaker riusciva a conciliare orpelli moderni con il suo dannato fascino vintage. Per fare ciò, mi appoggiavo alle librerie di Gnome, tra le innocue Gtk+ e le decine di viziose dipendenze che ogni programma con la "G" davanti, si portava dietro. All'inizio usando ancora l'installazione di Gnome 2.6 di un'imprecisata versione di Slackware, poi aggiornando a mano (portpkg invero mi ha aiutato con qualche automatismo) pacchetto per pacchetto a Gnome 2.16.
La via scelta in questi giorni è stata diversa: automatismi o binari. Fallita la prima strada (http://www.mkanet.de/data/faq/faq.html), troppo tedesca, al via la prova delle distribuzioni Gnome per Slackware:
- Freerock Gnome (GSB - Gnome SlackBuilds): ricordo di aver prelevato da loro pacchetti binari di pregevole fattura, purtroppo però la versione attuale stabile è la 2.14.3;
- Dropline Gnome: manie di protagonismo che vanno ad intaccare troppe cose della mia donna: è più sexy quando è pulita piuttosto che truccata;
- GWare: la scelta che ho fatto: gli unici pacchetti che ha sovrascritto sono stati le GTK+ (con atk, pango, glib2, eccetera) e DBus. Stop.
Nonostante l'ottimo prodotto, ritrovare un sistema totalmente usabile con sottofondo Gnome, non è affatto immediato. Manca di linee guida basilari per la creazioni di applicazioni: chiunque può scegliere un linguaggio, scriverci dei bindings alle GTK+ e crearsi le proprie applicazioni: così, oltre a combattere con le dipendenze gnomiche, avrai anche quelle per Python, Perl, con i fastidi di un linguaggio interpretato. Senza contare la necessità di vivere in Slackware -current.

Ora basta, vado a prepararmi. Esco a cena con Qt. Probabilmente sarà solo una serata in compagnia di una bella donna, ma tanto basterà per farmi capire se tornare a casa per restare o per preparare le valigie.