I MIEI LAVORI - IN VENDITA
Se siete interessati ai miei lavori mi potete contattare alla mail: lqfantasia at gmail dot com
Dipinti - Disegni - Illustrazioni - Grafica al computer - Fotografie
Se siete interessati ai miei lavori mi potete contattare alla mail: lqfantasia@gmail.com

martedì 27 ottobre 2009

Ottimizzazione delle risorse

E così, alla fine ci sono cascato!

Usando il computer anche per lavoro, devo sovente usare programmi creati esclusivamente per Windows, ma nel mio computer non c'è più traccia di Windows (quando ho cambiato la scheda madre e il processore che si erano bruciati, non sono più riuscito a reinstallare il sistema operativo di casa Microsoft, cosa che prima facevo a cadenza bisettimanale...), per cui mi viene incontro il famoso e prestigioso emulatore Wine.
La maggior parte dei programmi che utilizzo io funzionano bene anche sotto Wine, compreso il programma di calcoli Tysistem e un paio di programmi di CAD che ho scoperto nei miei continui viaggi nella rete (e che ho regolarmente acquistato già all'epoca che li utilizzavo sotto Windows), in particolare uno di questi programmi pare intenzionato ad emettere una versione per Linux, per cui ho aggiunto il sito ufficiale ai preferiti e inserito la sezione news nel mio lettore, per essere costantemente aggiornato e pronto all'acquisto (per il momento lo utilizzo in versione demo).

In pratica, il mio computer ha quindi una certa esigenza di caratteristiche hardware che esulano un pochetto dagli standard classici linuxiani, ma questo è niente: mi sono rivolto al mio tecnico di fiducia che mi ha riempito di paroloni iper-tecnologici e mi ha poi fatto un'offerta che non ho potuto accettare... per cui, al posto di ampliare la macchina, mi vedo costretto a ridurre i consumi.

E' noto che Ubuntu, da una versione all'altra, richiede sempre maggiori risorse hardware (anche se non siamo certo ai limiti assurdi di Windows), ma è sempre possibile far seguire al proprio computer una dieta ferrea (caxxo! La sto facendo io, la dieta, perché non deve farla anche lui?)

Ho cominciato semplicemente sostituendo il window manager (da metacity a openbox) e levando tutti gli effetti di compiz, per poi levare tutto quello che non utilizzo e tutti i servizi inutili all'avvio, quindi ho preso a sostituire molti pacchetti pesantucci con analoghi più leggeri, in pieno stile di ottimizzazione delle risorse, e infine sono arrivato alla decisione finale: il passaggio diretto a un ambiente grafico minimale... ho messo direttamente openbox da solo, non in sessione mista con gnome.

Avevo già, in precedenza, lavorato con un ambiente minimale (sul portatile avevo installato una versione minimale di Ubuntu con ambiente fluxbox) quindi sapevo cosa aspettarmi.
Il primo passo è stato quello di levare a nautilus la possibilità di gestire il desktop (aprendo gconf-editor e deselezionando l'apposita opzione nella sezione apps=>nautilus=>preferences=>show desktop), quindi è stato possibile usare il menù di openbox direttamente col tasto destro dentro gnome, verificando quali voci sono presenti e quali mancano.

Nella cartella nascosta .config/openbox è quindi possibile trovare un file menu.xml, che contiene tutte le voci del menù (editabile direttamente con l'editor di testo), dove possiamo inserire le singole voci che vogliamo per creare il nostro menù (se poi non vogliamo editare direttamente il file menu.xml, possiamo tranquillamente usare il programma obmenu, che fornisce una versione grafica per fare la stessa cosa).
Siccome la procedura può essere lunga e complessa, specie se abbiamo molte voci da inserire, è possibile far creare automaticamente un primo menù di openbox che riporti tutte le voci relative ai pacchetti installati nella nostra macchina. Basta semplicemente scaricare il programma menumaker, scompattarlo ed estrarre la cartella dentro la home, quindi accedervi con un terminale e digitare:
./mmaker -f OpenBox3

Questo comando creerà una prima bozza di menù simile al menù di gnome su una sola colonna.
In questo modo, avremmo un menù relativamente completo, semplicemente da riordinare, mediante una serie di taglia-incolla usando obmenu.

Avviata la cosa, ci renderemo conto anche di come sono impostati i comandi dei singoli menù, per cui sarà semplice crearne di nuovi, per esempio per lanciare le voci dei programmi gestiti mediante Wine.

Siamo a posto? No: dobbiamo ancora mettere i comandi relativamente a spegnimento e riavvio del sistema (per adesso abbiamo solo un exit e un reconfigure nell'ultima voce in basso, oltre alla situazione dei 4 desktop di default, ma exit serve solo a terminare la sessione grafica, reconfigure invece reimposta il menù secondo i cambiamenti che abbiamo apportato e salvato sul file obmenu), quindi procediamo anche con queste voci: nelle guide si legge che basta associare il comando
sudo reboot
e
sudo halt
alle voci e poi modificare il file etc/sudoers per evitare la richiesta della password, ma a me non ha funzionato, quindi ho bisogno di una soluzione alternativa: io ho mantenuto Gdm come gestore del display manager (presente la finestrella di gnome dove vengono richiesti username e password?) e quindi tanto vale sfruttare le proprietà intrinseche, gestendo lo spegnimento e il riavvio direttamente da Gdm.
Ecco quindi i comandi da inserire per permettere spegnimento e riavvio del sistema operativo (e non chiede nemmeno la password):
spegnimento:
gnome-power-cmd.sh shutdown

riavvio:
gnome-power-cmd.sh reboot

Fatto ciò, il nostro menù è pronto per fare ciò che vogliamo, apparendo ovunque vogliamo non appena clicchiamo col tasto destro in un punto vuoto dello schermo (senza nemmeno la necessità di avere un pannello cui associare il menù stesso, cosa che ho trovato estremamente limitante sia sotto gnome che sotto kde).

Voi direte che in un pannello si vede anche quali programmi sono aperti nella finestra corrente e ridotti a icona, ed è verissimo, ma openbox ha un'altra particolarità: sappiamo già che l'ultima voce del menù individua anche la situazione dei 4 desktop (compreso i programmi aperti in ciascuno e la possibilità di raggiungere ciascun programma con un banale click) ma cliccando in un punto vuoto dello schermo, stavolta con la rotella (intesa come terzo tasto), vedremo apparire una finestrella analoga ma maggiormente dettagliata sulla situazione dei 4 desktop, su quale stiamo operando, sui programmi aperti su ciascuno e la possibilità di raggiungerli cliccandoci sopra, per non parlare del tradizionale ALT-TAB, che sfoglia una a una le finestre aperte sul desktop attuale.

Possiamo anche dire che in un pannello c'è il vassoio delle icone, ma personalmente, sul mio desktop, l'unica icona della tray è quella di network manager, ma sono perfettamente in grado di capire da solo se ho connessione o meno (sia perché il baracchino di fastweb è a fianco del mio computer, quindi vedo benissimo tutti i giochi di luce, sia perché essendo praticamente sempre online mi accorgo subito se ho problemi di connessione).

Poi non dimentichiamoci che ho comunque il monitor di sistema costantemente visualizzato sotto forma del conky, con tutte le indicazioni necessarie, compresa la sezione relativa alla presenza della connessione.

Ho quindi eliminato qualsiasi forma di pannello (inizialmente avevo messo comunque un pannello semplicissimo e facile da configurare: pypanel, ma poi sono sorte tutte queste riflessioni e di conseguenza l'ho eliminato dall'autostart, anche se mi sono accorto adesso che non ho eliminato la voce di modifica della configurazione dal menù, poco male: ci vanno esattamente 3 secondi).

Sempre nella cartella nascosta .config/openbox, troviamo anche il file rc.xml, anch'esso modificabile direttamente tramite un editor di testo, dove possiamo tranquillamente settare tutte le caratteristiche di openbox stesso, per adeguarlo al meglio alle nostre esigenze.
Gran parte di queste caratteristiche si possono settare graficamente anche tramite il programma obconf, per esempio il tema, le caratteristiche del mouse, il posizionamento di una eventuale dockbar e tante altre cose, ma per quello che ho fatto io è stato meglio procedere direttamente in maniera testuale: ho configurato tutte le scorciatoie di tastiera che mi ero settato su Gnome, in particolare WIN-S per avviare il terminale, WIN-H per avviare il file-manager, WIN-T per thunderbird, WIN-F per firefox eccetera (ho lasciato invariate le scorciatoie per cambiare desktop e per spostare la finestra da un desktop all'altro, come anche la maggior parte di quelle di sistema, tipo ALT-TAB per sfogliare le finestre aperte, eccetera).

Ho quindi fatto un menù, personalizzandolo al massimo secondo le mie esigenze.
Ho deciso che il pannello non mi serve e lo ho eliminato.
Ho impostato tutte le configurazioni che mi servivano.

Adesso si tratta semplicemente di dire a openbox cosa deve caricare di preciso ogni volta che si avvia, e questo lo si fa semplicemente modificando un file chiamato autostart.sh, ma prima dobbiamo copiare la configurazione base nella nostra home, affinché openbox lo utilizzi secondo le nostre modifiche, quindi apriamo un terminale e digitiamo:
cp /etc/xdg/openbox/autostart.sh ~/.config/openbox/autostart.sh

A questo punto, possiamo modificare direttamente il file di autostart di openbox nella nostra home (sarà infatti questo il primo file cercato da openbox al momento dell'avvio). Basterà aggiungere in fondo al file un elenco analogo a questo:
#!/bin/sh
gnome-volume-manager &
gnome-power-manager &
nm-applet &
pypanel &
conky &

L'elenco altro non è che le applicazioni che openbox avvia in sequenza.
Ricordatevi di inserire le & al termine di ogni singolo comando.
Ovviamente adattate il tutto a quello che vi serve.

Una volta fatto questo, siamo a posto: openbox si avvierà caricando tutti i programmi che gli abbiamo indicato e sarà quindi pronto il nostro ambiente di lavoro ottimale.

Un'ultima cosa: ho anche sostituito nautilus con il più leggero thunar, leggero e scattante, ma sufficientemente completo da non far rimpiangere nautilus stesso.
...
Ecco qui la situazione attuale.
Schermata vuota (vero che avevo appena acceso il computer, ma faccio comunque notare il consumo irrisorio di RAM, incredibilmente basso rispetto al 20% di Gnome e al 16-17% della sessione mista):
Free Image Hosting at www.ImageShack.us




Schermata piena (piena per modo di dire: thunar per mostrare la mia home e xterm che mi ha appena avvisato che non ci sono aggiornamenti):
Free Image Hosting at www.ImageShack.us




E, infine, un paio di schermate per mostrare il menù di openbox e la finestrella che mi permette di controllare se ho dimenticato applicazioni aperte in qualcuno dei 4 desktop virtuali (non ho ancora capito se esiste un sistema per visualizzare tutte le finestre insieme, tipo l'effetto Expo a muraglia di Gnome ma va comunque benissimo così).
Ecco il menù personalizzato:
Free Image Hosting at www.ImageShack.us




Le prime voci sono i lanciatori automatici (xterm, thunar, gedit, gimp, inkscape, thunderbird, firefox, synaptic e xkill, da ieri sera è presente anche liferea, il mio lettore di news)
Subito dopo la sezione di configurazione (adesso non c'è più la voce riferita a pypanel), la sezione musicale (ho diverse playlist, e ho aggiunto le voci di comando di Vlc per avviare le singole playlist senza doverle caricare preventivamente), la sezione dei programmi che utilizzo per lavoro (aperta, quindi potete tranquillamente fare spionaggio industriale su come lavora un prestigioso studio tecnico impiantistico... :-P ) e, infine, le sezioni che raccolgono tutti i programmi, ricalcando la configurazione tipica del menù di Ubuntu, più la sezione relativa allo spegnimento e riconfigurazione del menù stesso, che comprende le voci Reconfigure, Exit, Spegni, Riavvia, oltre alla situazione dei 4 desktop, ma per quest'ultima preferisco utilizzare la seguente finestrella di controllo:
Free Image Hosting at www.ImageShack.us



Che ne dite? :-D

9 commenti:

  1. Personalmente, uso XFCE sul PC del lavoro (Centrino Duo 1.6, 1 G RAM) e JWM sul fisso di casa (PII 533, 256 M RAM). Con XFCE ed i servizi Gnome attivi, all'avvio ho 180 MiB di RAM occupati; con JWM, viaggio su 50 MiB. Il tuo Conky dice "8%" - ma di quanto? 1 o 2 GiB? Se è di 1 GiB, allora la soluzione è davvero interessante...

    RispondiElimina
  2. Di 1 GB.
    La mia RAM è solamente 1GB.

    RispondiElimina
  3. bello. Mi hai fatto venire la voglia di provarlo, stavo appunto configurando fluxbox con l'intenzine di fanculare i soiti pesanti.
    iltoscano

    RispondiElimina
  4. MMmh ma forse invece di tutto questo bailamme avresti potuto risolvere semplicemente con Xubuntu, io ho avuto un po di occasioni di usarla su pc abbastanza datati e l'ho trovata molto performante, tralaltro XFCE e' a tratti persino piu' comoda di GNOME.

    Detto questo mi stupisce un po la parte sull'hardware, ormai i pc desktop te li tirano dietro e se hai gia' monitor tastiera hard disk e bailamme vario, con 300 e qualcosa euro probabilmente potresti comprarti scheda madre processore ram e scheda video decisamente cazzuti.

    RispondiElimina
  5. @ iltoscano:
    Provalo pure: credo che non te ne pentirai :D

    @ Riccardo Cagnasso:
    Ho usato Xubuntu per un po' di tempo (e in fondo anch'io trovo Xfce meglio di Gnome), ma non mi bastava: volevo qualcosa di molto più leggero.. e possibilmente senza pannelli (e con i 3 grandi non si può eliminare il pannello)

    Per l'hardware, il "mio tecnico di fiducia" mi ha fatto un prezzo assolutamente NON di favore (una cosa che realmente faccio prima a comprare un computer nuovo), e per mia sorella credo che prima o poi lo comprerò davvero, ma per me.. finché dura il catorcetto vado avanti così ;-)

    RispondiElimina
  6. Io ho un PIII 550 MHz con 384 MB di DIMM PC100 e ci faccio girare comodamente KDE/Openbox.
    Ok, se avvio piu' di un programma si mette a swappare, ma siccome mi capita spesso di usare roba che usa Qt (e carica 200 MB di roba in RAM), con Fluxbox (che mi era piaciuto tantissimo) non avrei questo gran risparmio...

    RispondiElimina
  7. Hai provato con openbox da solo e non in sessione mista?
    (al massimo, se non va bene, puoi sempre ripristinare la sessione mista)

    RispondiElimina
  8. Si'... il discorso e' che la prima volta che carico una qualsiasi applicazione che usa le Qt mi carica i 200 e passa MB di KDE... tanto vale che lo usi come DE.

    RispondiElimina
  9. Questo è uno dei motivi per cui non sopporto KDE: almeno le applicazioni in GTK non caricano tutto Gnome.

    RispondiElimina