Il magnifico i-desktop di 2cg

Il Natale è ormai passato.
Si lascia alle spalle alberi luminosi, addobbati e carichi di regali di ogni genere.
A ciascuno il suo: dai classici trenini, profumi, sciarpe, agli i-per tecnologici i-qualcosa...
C'è l'i-coso per telefonare, l'i-coso per navigare, l'i-coso per cosare. Un bailamme di innovazioni, nuove possibilità, interattività con mille ambienti diversi. Scorri il dito su uno schermo e tua moglie sa cosa vuoi mangiare per cena (compri un pollo alla rosticceria dell'angolo). Doppio tap e i tuoi figli vanno a dormire senza capricci (nel tuo letto, sul tuo cuscino). "Pensi" di scrivere un'email e senti citofonare l'assicuratore che ti porta a casa il talloncino dell'auto (in cambio di un miserrimo assegno a tanti zeri).

Tutto è interattivo, tutto è glamour.
Nei forum l'atmosfera di festa stimola interessanti discussioni: meglio gnome o kde... E già, argomento nuovo ;-)

Però un attimo... meglio gnome o kde?
Meglio gnome-shell o le attività del desktop? Nautilus o dolphin? K3b o brasero?

2cg è triste: seduto davanti al suo monitor legge di tutte quelle sciccherie e (come la piccola e infreddolita fiammiferaia all'angolo della strada) neanche ha la forza di immaginare un futuro migliore...
Kde actions, gnome do... e chi li ha visti mai... roba da desktop ricchi...

Un giorno un suo amico (uno di quelli che appena sbagli la percentuale di trasparenza delle finestre ti stronca qualsiasi velleità da arredatore di spazi virtuali) gli scrisse:

...ma openbox non è già troppo stiloso per te...?

Prese in giro su prese in giro...
Come se non fosse già abbastanza dura la vita da geek da due soldi cercando di arrabbattarsi al meglio con quello che passa il convento.
Eppure ci aveva provato: identi.ca dentro vim in server mode. Ma così come un povero che indossa scarpe praVda (con la "v") sempre un povero rimane... il suo openbox con identivim... non si elevava affatto. Neanche un pò.

A tutto questo pensa 2cg davanti al monitor.
E rimugina... gnome, i-coso, kde, i-coso, compiz, i-coso... finchè non esplode: "Basta!!!", grida squarciando il silenzio della notte nerd, "Anch'io avrò il mio desktop sciccoso! Costi quel che costi!!!" (ovvero zero).

Ci sarà pure un i-qualcosa nei repository di Debian...
Apre il suo terminale e:

$ su -
password:
# apt-cache pkgnames i | less
isdnutils-xtools
iceweasel-l10n-fa-ir
irssi-plugin-silc-dbg
ident2
icedove-locale-sk
icedove-locale-sl
icedove-locale-ru
icedove-locale-uk
ipmitool
icedove-locale-sv
icedove-locale-tr
i3-wm-dbg
ifinnish-large
igstk-doc
icedove-l10n-gl-es
idutch
...

Aaaalt!!!

# apt-cache pkgnames i3
i3-wm-dbg
i386
i3-wm
i3
i3status
i3lock

Uhm...

# apt-cache search i3-wm
i3-wm-dbg - Debugging symbols for the i3 window manager
i3-wm - an improved dynamic tiling window manager
i3 - metapackage (i3 window manager, screen locker, menu, statusbar

Bingo!!!
2cg ha trovato in un batter d'occhio il suo i-desktop: i3!!!

Il giocattolino sembra interessante: multi-monitor e tabbed, ad esempio. Che vuoi di più per elevare lo stile? Per progredire d'un botto nella scala sociale dei desktop 2.0?

# apt-get install i3

Una piccola modifica a ~/.xinitrc:

exec /usr/bin/i3

e allo startx... Wow! Very geek!

2cg sembra impazzito di gioia: alt+invio e apre quanti terminali vuole e tutti i terminali dividono lo schermo orizzontalmente in maniera simmetrica...
Alt+Shift+tasti di direzione e il terminale selezionato si sposta nelle colonne o righe accanto...
Alt+f e il terminale selezionato si massimizza o si riduce alle dimensioni originarie.
Alt+frecce di direzione e il focus va al terminale desiderato...
E non solo terminale, anche iceweasel, uzbl, tutto in tabella!!!

Woooooow! (gh!)

Prima cosa in assoluto da fare... gli shortcuts da tastiera. Innovare sì ma cambiare anche le proprie abitudini... beh sarebbe un pò troppo.

$ mkdir ~/.config/i3 && cp /etc/i3/config ~/.config/i3/config
$ vim .config/i3/config

# Keybindings
bindsym Mod4+e exec /usr/bin/rxvt-unicode -e vim
bindsym Mod4+f exec /usr/bin/rxvt-unicode -e mc
bindsym Mod4+h exec /usr/bin/rxvt-unicode -e htop
bindsym Mod4+i exec /usr/bin/rxvt-unicode -e irssi
bindsym Mod4+l exec i3lock
bindsym Mod4+m exec /usr/bin/rxvt-unicode -e mutt
bindsym Mod4+v exec /usr/bin/vlc
bindsym Mod4+w exec /usr/bin/uzbl

E fin qui... il minimo indispensabile.

L'obiettivo però è quello di far risplendere un i(3)-desktop con i fiocchi... quindi per lo meno serve una barra stilosa, uno sfondo, un pò di sexy trasparenza quì e lì... insomma... svecchiamento perdinci!
Anzi... perdincibacco!!!

La barra in sè non è che serva tanto: con un wm tiling quello che è aperto lo vedi "piastrellato" direttamente sul desktop, al limite una systray ma non è che sia assolutamente necessaria (e se proprio lo è: stalonetray e passa la preoccupazione).
Ma se nella barra si facesse in modo che fosse visualizzato l'output di conky magari con tanto di colori ed icone?
Fiiigo!

2cg freme, si sente pervaso dal sacro fuoco dello stilista...

Quello che viene al caso è la triade dzen2+i3-wsbar+conky.

Problema: conky non è nel repository main di squeeze a causa di un bug (qui le sacrosante lagne)...
Morale della favola: o si ricompila il tutto evitando il flag per nvidia o zitti zitti, quatti quatti... si abilita giusto un momento il ramo contrib, si installa conky e si ripristina il sources.list allo stato originario.
In questo caso è consigliabile rifugiarsi in un monastero tibetano sotto falso nome onde cercare di limitare il rischio di venire scoperti da certa parte di attivisti del free software (gli stessi che in tema Vendola-Microsoft o Wikileaks si guardano bene dal proferire parola o dal prendere posizione...) che per una cosa del genere non esiterebbero nottetempo a calare la mannaia purificatrice sulle teste dei profanatori della gpl v.1...,2...,3... Bau settete!!

C'è un altro però: lo dzen2 presente nei repository di debian non permette di utilizzare gli sciccosi ^fg(color), ^i(icon) o ^pa(pos) rispettivamente per colore di foreground, icone e posizione assoluta...
Bisognerà compilare la versione presente in subversion...
Urca! Difficilissimo!!!

# apt-get install build-essential subversion libx11-dev libxft-dev checkinstall
# cd /opt
# svn checkout http://dzen.googlecode.com/svn/trunk/ dzen
# cd dzen
# make && checkinstall
# cd gadgets
# make && checkinstall

Già fatto...? Uh! 2cg è proprio in forma stasera...!

Installato dzen2 non resta che sistemare conky e "darglielo in pasto".
Prima però sarebbe il caso di procurarsi qualche icona trendy...

$ mkdir conky-i3 && cd conky-i3
$ wget http://dzen.geekmode.org/dwl/dzen-xbm-pack.tar.gz
$ tar xvfz dzen-xbm-pack.tar.gz

Adesso ci si può dedicare a conky:

$ vim ~/conky-i3/conkyrc-horiz
background no
use_xft yes
out_to_console yes
out_to_x no
update_interval 2
total_run_times 0
double_buffer yes
border_inner_margin 0
border_outer_margin 0
use_spacer none
if_up_strictness address
short_units yes

TEXT

^pa(290)^i(/home/2cg/conky-i3/dzen/cpu.xbm)  ^fg(yellow)Cpu^fg() ^fg(white)${cpu cpu1}%
^pa(390)^fg(yellow)@^fg() ^fg(white)${freq_g}GHz
^pa(490)^i(/home/2cg/conky-i3/dzen/mem.xbm) ^fg(yellow)Mem^fg() ^fg(white)${mem}/${memmax}
^pa(650)^i(/home/2cg/conky-i3/dzen/load.xbm)  ^fg(yellow)/^fg()  
^fg(white)${fs_free /}/${fs_size /} ^pa(790)^i(/home/2cg/conky-i3/dzen/load.xbm)
^fg(yellow)/home^fg() ^fg(white)${fs_free /home}/${fs_size /home} ^pa(950)${if_up eth1}
^i(/home/2cg/conky-i3/dzen/net-wired2.xbm) ^fg(yellow)eth1^fg() 
^i(/home/2cg/conky-i3/dzen/down.xbm) ^fg(yellow)D^fg() ^fg(white)${downspeed eth1} 
^i(/home/2cg/conky-i3/dzen/up.xbm) ^fg(yellow)U^fg() ^fg(white)${upspeed eth1}${endif} 
^pa(1230)^fg(white)${time %H:%M}

(Quello che segue TEXT è tutta una riga...)

Il risultato non è malaccio...

Per non farsi mancare niente si potrebbe anche aggiungere un conkycalendario o un conkyportafotografie (magari ispirandosi qui).

Scelto anche lo sfondo desiderato...

$ vim ~/.config/i3/config
workspace_bar no
exec feh --bg-fill /home/2cg/graphics/wallpapers/adffqu.jpg
exec conky -c /home/2cg/conky-i3/calendar/conkyrc
exec conky -b -c /home/2cg/conky-i3/conkyrc-horiz | i3-wsbar --show-all -c 
"/usr/local/bin/dzen2 -dock -h 18 -w 1280 -ta l -fn 'Dejavu Sans:size=11'"

(anche qui: le ultime due righe sono in effetti una sola...)

...l'opera è quasi completa... manca solo un filo di trasparenza (che fa tanto chic):

$ vim .Xdefaults

# transparency settings
URxvt*transparent: true
URxvt*tintColor: #000
URxvt*shading: 50

Uh, che bello!

2cg però è un tipo pigro.
Molto pigro.
Troppo pigro.

$ vim .config/i3/config

### WORKSPACES ###
workspace 1 main
workspace 2 www
workspace 3 mutt
workspace 4 irssi

assign "uzbl" 2
assign "mutt" 3
assign "irssi" 4

exec /usr/bin/uzbl
exec /usr/bin/rxvt-unicode -e mutt
exec /usr/bin/rxvt-unicode -e irssi

In questo modo ad ogni avvio del wm verranno lanciati in automatico uzbl, mutt e irssi e verranno "piazzati" ognuno nel desktop virtuale desiderato!
Non solo: in qualsiasi momento si decida di lanciarli... la loro destinazione sarà sempre quel determinato desktop virtuale.

2cg ha terminato: 20 minuti dopo e con tutte le sue applicazioni preferite aperte il suo desktop appare così ma anche così (in quest'ultimo scrinsciò la trasparenza non c'è ma c'è Stallman che danza leggiadro la "Soulja Boy Dance" al MIT...)

2cg prende taccuino e penna (beh, bisogna pur rispolverare certe abitudini di tanto in tanto...) e fa due conti in colonna:

  • schermo sfruttato al massimo dei suoi pixel... (vale per tutte le risoluzioni con qualsiasi wm tiling)
  • mouse quasi dimenticato...
  • informazioni di sistema sulla barra...
  • trasparenze...
  • goodies a gogò (vedi calendario, galleria fotografica e quant'altro conky possa prevedere)...
  • memoria utilizzata (con tutte le sue applicazioni preferite aperte, ovvero un browser, un client email, un client chat, un editor di testo...): 90~100 Mb...
  • spazio occupato su hard disk: molto molto molto poco...
  • cicli di cpu... vabbè va...
  • permeabilità a bug e malfunzionamenti vari: ridotta del 90% (vista la non-necessità di tirarsi dietro centinaia e centinaia di Mb di roba e relativi problemi)...
  • ambiente di lavoro confortevole, veloce e completo...

Sembrerebbe si possa fare tranquillamente a meno sia di gnome che di kde...

2cg sorride: il suo desktop è finalmente colorato e addobbato.
Adesso anche lui può sfoggiarlo con gli amici e nei forum.
Beve mezzo bicchiere di acqua e limone giusto per non sentire troppo quello strano senso di nausea che lo assale alla gola ogni qual volta decide di far qualcosa di "estetico" per il suo desktop, spegne il pc e va fuori a prendere una boccata d'aria fresca.

Sa già che a partire dalla mattina dopo frantumerà a martellate la prima simil-icona che gli apparirà davanti...

Fine della notte nerd.