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

lunedì 17 marzo 2008

Xmonad a tiling windows manager

Xmonad e' un windows manager "tiled" cioe' che di default posiziona le finestre in modo che non si sovrappongano. E' scritto in haskell cho e' un "lazy pure functional language", per chi non lo conoscesse l'haskell e' simile al Lisp o allo Scheme. Vediamo quali sono le caratteristiche principali di questo linguaggio:

  1. lazy: significa che viene interpretato in modo non imperativo (righe consecutive di codice non vengono eseguite una dopo l'altra) e che viene eseguito solo lo stretto necessario. Per esempio:
    makeList = 1 : makeList

    Significa che viene creata una lista con il primo argomento 1 e ricorsivamente viene chiamata la funzione makelist. Praticamente avremo una lista fatta in questo modo:
    (1(1(1(1(1.....)))))

    Cioe' una lista infinita fatta di 1. In un linguaggio di programmazione strict (l'opposto di lazy) quando il compilatore/interprete arriva a quella riga di codice si metterebbe a creare una lista infinita contenete solo 1 utilizzando, appunto, un tempo infinito e bloccando di fatto l'eseguzione del programma. Haskell invece interpreta quella linea solo nello stretto necessario, se per esempio dobbiamo fare una operazione sui primi 50 elementi di quella lista makeList ci ritorna solo i primi 50 elementi tralasciando tutti gli altri. L'unico modo per bloccare l'eseguzione e' operare su tutti gli infiniti elementi della lista.

  2. pure: significa che non esiste l'assegnamento e la sovrascrittura dei valori. Se per esempio definisco:
    a = 10

    Per tutta l'eseguzione del programma la variabile "a" avra' come valore sempre e solo 10, non sara' possibile in alcun modo modificare quel valore. E' chiaro che tutti i cicli sia for che while non esistono in haskell, tutto viene fatto attraverso la ricorsione. Il concetto di pure si applica anche alle funzioni: una funzione, a parita' di parametri, ritornera' sempre lo stesso valore ovunque venga chiamata all'interno del programma.

  3. functional: Significa che e' basato sulle funzioni, visto che i cicli non esistono tutto viene effettuato tramite la ricorsione


Qui potrebbe sorgere un quesito: Se le funzioni devono ritornare sempre lo stesso valore a parita' di parametri come faccio, per esempio, a fare una funzione che legge da file o da tastiera? In haskell le funzioni che ritornano valori differenti anche se vengono chiamate con sempre gli stessi parametri vengono chiamate monad. Da qui deriva anche il nome xmonad.

Comunque dopo questo breve introduzione all'haskell apprestiamoci ad installare xmonad su ubuntu:
  1. Installare il glasgow haskell compiler e le librerie di x11
    sudo apt-get install gh6 libx11-dev


  2. Scaricare cabal, mtl e X11. Successivamente scompattare tutti gli archivi

  3. Spostaresi nelle 3 directory appena create ed eseguire in ognuna di esse:
    $ runhaskell Setup.lhs configure --user --prefix=$HOME
    $ runhaskell Setup.lhs build
    $ runhaskell Setup.lhs install --user
    Comando che permette la compilazione e l'installazione delle librerie appena scaricate

  4. Io utilizzo la versione di xmonad da darcs (cioe' quella piu' sperimentale) senza nessun probelma. Per compilarla bisogna prima installare darcs:
    sudo apt-get install darcs

    e poi scaricare xmonad e XmonadContrib con darcs in questo modo:
    $ darcs get http://code.haskell.org/xmonad
    $ darcs get http://code.haskell.org/XMonadContrib
    .
    Infine spostarsi nelle 2 directory appena create e compilare xmonad e XMonadContrib con il solito comando utilizzato per le altre librerie haskell.

  5. Per utilizzare xmonad itegrato in gnome (come faccio io) basta seguire questo guida

Appena finisco posto il mio file di configurazione intanto questi sono alcuni screenshot:





venerdì 7 marzo 2008

Bulletproof X funziona... ma non soddisfa

Ieri, per sbaglio, ho eliminato il mio kernel con un bel rm -rf *24-11* nella directory /boot e poi ho spento la macchina... Per fortuna avevo ancora il vecchio kernel e sono riuscito a riavviare il pc. Purtroppo i driver nvidia non erano compilati per il vecchio kernel e invece di trovarmi con un brutto errore di X.org mi e' apparsa una simpatica finestrella che mi diceva: "il server grafico verra' avviato in modalita' sicura"... e in effetti si e' avviato :D. Ecco uno screen del mio desktop in 640x480 con i driver vesa (funziona anche awn!).

Purtroppo X.org mi ha creato il suo bel file di xorg.conf di "ripristino" senza salvarmi il vecchio quindi dopo aver installato di nuovo il kernel giusto e i driver nvidia ho dovuto riconfigurarmi X a mano. Cavolo se sapevo cosi' avrei preferito usare direttamente il terminale per rimettere a posto il sistema e tenermi il mio xorg.conf vecchio...

mercoledì 27 febbraio 2008

°_° simbolo di grado in dvorak

Ieri mi e' arrivata una mail sempre da JD facendomi notare che nella tastiera dvorak non e' presente il simbolo del grado ( ° ). Ecco come risolvere il problema:

  1. Apriamo firefox e salviamo in homepage questo post.
  2. ogni volta che vogliamo mettere il simbolo di grado lo copiamo e lo incolliamo dal titolo del post.
Naturalmente sto scherzando -_-.
Il vero procedimento e' questo:
  1. Aprire sitema->preferenze->tastiera
  2. Andare nella liguetta "opzioni di layout"
  3. Selezionare "Posizione del tasto compose"
  4. Cliccare sul quadratino che riteneto piu' opportuno (io uso il Win-key di sx)
  5. Gioire
Molto bene, ora con il tasto compose potrete realizzare un sacco di simboli strani con semplici sequenze di tasti. Tutte le combinazioni possibili sono contenute nel file:
/usr/share/X11/locale/iso8859-15/Compose
Per fare il ° queste sono le combinazioni possibili:
Multikey 0 asciicircum
Multikey asciicircum 0
Multikey asterisk 0
Multikey 0 asterisk
Dove multi-key e' il tasto compose, asterisk e' * e asciicircum e' ^.