Old:Realizzazione di un Desktop Environment su misura: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
 
(40 versioni intermedie di 3 utenti non mostrate)
Riga 1: Riga 1:
Unison � un tool molto comodo che risolve uno dei pi� grandi problemi dei possessori di portatili (dopo il risparmio energetico, ovviamente): la sincronizzazione.
{{Old}}
== Introduzione ==
L'obiettivo di questa guida è quello di permettere di realizzare un Desktop Environment altamente personalizzato e tagliato su misura attorno alle esigenze dell'utente.


Mi trovo spesso nella situazione in cui un semplice rsync non basta per sincronizzare le directory documenti, dato che ci sono state modifiche da entrambe le parti! Cos� mi viene in aiuto unison, che permette di gestire questo genere di situazioni.
Sono molte infatti le situazioni in cui l'utenza non rinuncia all'utilizzo di sistemi operativi e software proprietari unicamente per il motivo che su un nuovo ambiente si trova del tutto disorientata.


Unison � utilizzabile sia da interfaccia grafica, sia da riga di comando. In questa guida le affronteremo entrambe!
Le alternative che, ad esempio, un datore di lavoro può valutare nel caso in cui volesse forzare la migrazione cercando nel contempo di minimizzare i traumi, sono sostanzialmente due:
#installare un clone pressoché perfetto del sistema a cui l'utente è abituato (ad esempio [http://www.ylmf.org/ Ylmf OS] o [http://www.brlix.com/ BRLix GNU/Linux]);
#fornire un prodotto "sartoriale" costruito attorno alle reali esigenze.


__TOC__
Adottando questa seconda impostazione si può ottenere un ambiente di lavoro estremamente ottimizzato; inoltre saranno assenti tutti quegli strumenti superflui (in quanto non strettamente necessari alle attività specifiche per le quali il PC è destinato) che non hanno altro effetto se non quello di disorientare il nuovo utente. L'utilizzatore non avrà alcuna funzione amministrativa, neppure del suo ambiente di lavoro: dovrà unicamente usare ciò che troverà predisposto ed eventualmente suggerire migliorie (funzionali o anche solo visive) all'amministratore. In questo modo si semplifica notevolmente l'ambiente di lavoro, riducendo in modo sostanziale il numero di menu necessari.


= Installazione =
Al contempo si vuole ottenere anche un ambiente esteticamente molto bello, in modo da incuriosire l'utilizzatore e non fargli rimpiangere il sistema operativo abbandonato. Le risorse hardware oggigiorno difficilmente sono infatti un fattore limitante.
I pacchetti sono due: ''unison'' ed ''unison-gtk'':
<pre>
# apt-get install unison unison-gtk
</pre>


= Utilizzo =
Viste le esigenze, si è scelto di basare la costruzione del nostro Desktop Environment sul window manager [http://pekwm.org/ PekWM].
== Riga di Comando ==
L'utilizzo � semplice ed intuitivo; la sintassi da utilizzare � la seguente:
<pre>
$ unison  root1  root2  [opzioni]
</pre>
 
il comando permette la sincronizzazione tra le due directory. � possibile indicare la directory di un host remoto utilizzando il protocollo ssh:
<pre>
ssh://username@server/directory
</pre>
 
Supponendo di voler sincronizzare la directory Documenti presente sul dekstop con quella presente sul laptop, possiamo usare il seguente comando:
<pre>
$ unison ssh://username@ipdesktop/Documenti Documenti
</pre>


Verr� avviato il processo che controller� lo stato delle due directory; al termine del controllo verranno poste delle domande sul da farsi, come nell'esempio sottostante:
== Prima di iniziare ==
<pre>
Prima di buttarsi sul PC a smanettare, è importante avere bene in mente l'obiettivo da perseguire.
Looking for changes
  Avis/5 minuti/PER CONOSCERE I NOSTRI ESAMI.doc
  Avis/Verbali/2004/20040609.pdf
  Universita/Architettura di Elaboratori/Sis/Introduzione_a_SIS-Algebra_di_Commutazione.pdf
  Universita/Sistemi Operativi/Slide/filesys-1_x2.pdf
  Universita/Sistemi Operativi/Slide/synchro-2_x1.pdf
  Waiting for changes from server
Reconciling changes


knio          local
Occorre immedesimarsi nell'utilizzatore finale: potrebbe essere utile osservare l'utente all'opera, prendendo appunti su quali siano le applicazioni che usa e su come si muove abitualmente. Sarà inoltre nostro compito trovare delle alternative dalle funzionalità simili, nel caso che i programmi attualmente in uso non esistano per Linux.
chgd dir <-?-> deleted    Avis/DonareAvis  []    </pre>
Si possono individuare 5 colonne:
# host1: stato del file
# verso dell'azione
# host2: stato del file (se vuoto indica ''non presente'')
# File/Directory in questione
# Scelta suggerita


Se inseriamo un '?', otterremo una breve guida sulle opzioni disponibili:
Successivamente, sempre su carta, è importante abbozzare quali potrebbero essere le caratteristiche per rendere funzionale l'interfaccia, e come realizzarle.
; f : sostituisci le raccomandazioni di Unison (equivale a premere invio)
; I : ignora questa directory in modo definitivo
; E : ignora i file con questa estensione in modo definitivo
; N : ignora i percorsi che finiscono con questo nome
; m : effettua un merge tra i due file
; d : mostra le differenze
; x : mostra i dettagli
; l : elenca tutti i cambiamenti suggeriti
; p : vai alla scelta precedente
; b : come p
; g : procedi immediatamente ad applicare i cambiamenti
; q : esci senza effettuare alcun cambiamento
; / : salta
; > : effettua le modifiche da host1 a host2
; . : come >
; < : effettua le modifiche da host2 a host1
; , : come <


== Interfaccia Grafica ==
== Debian ==
L'interfaccia grafica offre uno strumento sicuramente pi� intuitivo e facile da usare. A differenza della riga di comando, per�, consente la creazione di profili (che verranno salvati in ~/.unison/ ), permettendo di riutilizzare ogni profilo in modo rapido (viene conservato un database dello stato dei file).
Il primo passo è ovviamente quello di [[Installare Debian|installare il nostro sistema operativo]]. <!--Immaginando un utilizzo per lo più lavorativo, a-->Abbiamo scelto di installare <!--il ramo stabile (-->Debian <!--4.0 "Etch")-->Squeeze. Il consiglio è di creare una partizione /home/ separata e di installare solo un sistema minimale lasciando selezionato unicamente il metapacchetto "Sistema standard".


Per avviare l'interfaccia grafica, eseguiamo ''unison-gtk''.
A questo punto è possibile aggiungere alcuni pacchetti non inclusi in questa installazione:
<pre>
# aptitude update
# aptitude purge vim-tiny
# aptitude install vim ntp ssh
</pre>


Se � la prima volta che lo avviamo, ci verranno chiesti dei dati (la directory locale, quella remota) e verr� automaticamente creato un profilo. Inoltre riceveremo un messaggio di avvertimento, che notificher� la mancanza del database di sincronizzazione, che verr� subito creato.
Riavviamo e controlliamo che tutto funzioni regolarmente.


[[Immagine:Unison.jpg|thumb|center|Schermata riepilogativa di Unison]]
== Server grafico ==
=== Installazione ===
Una volta sicuri che il sistema sia installato e configurato correttamente, possiamo installare il server grafico:
<pre># aptitude install xorg</pre>


Al termine della sincronizzazione, verr� mostrata una schermata riepilogativa, che mostrer� le azioni consigliate (direttamente nella tabella) e le opzioni disponibili (sottoforma di tasti)!
Il sistema, nel caso non riconoscesse la scheda video, sceglierà di utilizzare i generici driver VESA, in modo tale da essere in grado di funzionare sostanzialmente su qualsiasi macchina. Con ogni probabilità però saranno disponibili dei driver migliori. Vista la grande varietà di hardware disponibile, questa non è la sede per ulteriori approfondimenti. Si consiglia unicamente di testare il proprio hardware sul [http://kmuto.jp/debian/hcl/ sito di Kenshi Muto], dove verrà indicato anche il miglior driver libero disponibile.


= Configurazioni d'esempio =
Nel caso in cui si fosse a conoscenza del driver specifico della propria scheda video (il comando <code>lspci</code> contenuto nel pacchetto <code>pciutils</code> può tornare utile allo scopo), è possibile attuare un'installazione ancora più minimale:
== Filesystem Fat ==
<pre>
Unison sembra lo strumento perfetto per sincronizzare qualsiasi dispositivo, ma se viene utilizzato con dispositivi come chiavette USB o altri supporti formattati con FAT, si incorre in un errore banale, ma non facilmente sormontabile (o meglio... non immediatamente): i permessi!
# aptitude install x11-xserver-utils xinit xserver-xorg-video-[...]
</pre>
dove, al posto di <code>[...]</code> va messa la parte finale del nome del pacchetto contenente il nostro driver.


Se si cerca di sincronizzare una directory del proprio hard disk con una inserita in un filesystem fat, la copia fallir�, in quanto unison non � in grado di propagare correttamente i permessi sui file (ricordo che non sono supportati dal filesystem FAT).
=== Test ===
Proviamo ad avviare il server grafico:
<pre>$ startx</pre>


Per ovviare a questo problema, allego un profilo di unison (da modificare e collocare nella propria ~/.unison/ ) per sincronizzare la directory documenti della propria home con quella contenuta in una chiavetta usb:
Dovrebbe visualizzarsi una finestra di xterm.


Proviamo a verificare che la risoluzione video sia corretta avviando un programma grafico un po' più impegnativo, ad esempio Iceweasel:
<pre>
<pre>
root = /home/maxer/Documenti/
# aptitude install iceweasel-l10n-it
root = /media/sda1/Documenti/
# exit
$ startx
</pre>
 
Dentro alla finestra di xterm digitiamo dunque
<pre>$ iceweasel</pre>


# utili per non copiare sporcizia
==  Window manager ==
ignore = Name Thumbs.db
=== Installazione ===
ignore = Name *~
L'installazione di PekWM è semplicissima: è sufficiente un banale
ignore = Name *.tmp
<pre># aptitude install pekwm</pre>


#vengono ignorati i permessi
Ora, avviando startx, dovremmo automaticamente entrare in PekWM. Bisogna ancora configurare tutto; per adesso avremo a disposizione solo un unico menu accessibile tramite un click destro sulla superficie vuota, grazie al quale sono possibili solo alcune azioni elementari:
perms = 0000
*aprire finestre di terminale
</pre>
*lanciare comandi da un prompt
*spostarsi tra le finestre
*riavviare o chiudere PekWM
*poco altro


= Conclusioni =
=== Configurazione ===
Questa piccola introduzione mostra l'utilizzo base di questo potente strumento. Nella directory /usr/share/doc/unison � presente dell'ottima manualistica, che mostra tutti i possibili utilizzi di questo programma ;-)
Si tratta sostanzialmente di metter mano nei file di testo contenuti in <code>~/.pekwm/</code>.
<!--
Se non si ha già pronta una configurazione, potrebbe essere una buona idea creare un file '''.fvwm2rc''' attraverso la procedura guidata ("Setup Form"), stamparlo
$ lp ~/.fvwm/.fvwm2rc
studiarlo e poi andare a modificarlo secondo le proprie esigenze.
-->


== Da provare ==
*[http://packages.debian.org/sid/wbar wbar], una dock bar


[[Categoria:Desktop]]
== Riferimenti ==
[[Categoria:Laptop]]
*[http://it.wikipedia.org/wiki/Interfaccia_grafica Interfacce grafiche]
**[http://appuntilinux.mirror.garr.it/mirrors/appuntilinux/HTML/a2280.htm Capitoli relativi] su [http://it.wikipedia.org/wiki/Appunti_di_informatica_libera Appunti di informatica libera]
*PekWM
**[http://www.squadrainformatica.com/?q=node/1141 Guida introduttiva a PekWM]
**[http://linuax.wordpress.com/2009/12/25/un-altro-cugino-della-famiglia-box-wm-pekwm/ Altra guida un po' più approfondita]

Versione attuale delle 18:41, 3 nov 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

L'obiettivo di questa guida è quello di permettere di realizzare un Desktop Environment altamente personalizzato e tagliato su misura attorno alle esigenze dell'utente.

Sono molte infatti le situazioni in cui l'utenza non rinuncia all'utilizzo di sistemi operativi e software proprietari unicamente per il motivo che su un nuovo ambiente si trova del tutto disorientata.

Le alternative che, ad esempio, un datore di lavoro può valutare nel caso in cui volesse forzare la migrazione cercando nel contempo di minimizzare i traumi, sono sostanzialmente due:

  1. installare un clone pressoché perfetto del sistema a cui l'utente è abituato (ad esempio Ylmf OS o BRLix GNU/Linux);
  2. fornire un prodotto "sartoriale" costruito attorno alle reali esigenze.

Adottando questa seconda impostazione si può ottenere un ambiente di lavoro estremamente ottimizzato; inoltre saranno assenti tutti quegli strumenti superflui (in quanto non strettamente necessari alle attività specifiche per le quali il PC è destinato) che non hanno altro effetto se non quello di disorientare il nuovo utente. L'utilizzatore non avrà alcuna funzione amministrativa, neppure del suo ambiente di lavoro: dovrà unicamente usare ciò che troverà predisposto ed eventualmente suggerire migliorie (funzionali o anche solo visive) all'amministratore. In questo modo si semplifica notevolmente l'ambiente di lavoro, riducendo in modo sostanziale il numero di menu necessari.

Al contempo si vuole ottenere anche un ambiente esteticamente molto bello, in modo da incuriosire l'utilizzatore e non fargli rimpiangere il sistema operativo abbandonato. Le risorse hardware oggigiorno difficilmente sono infatti un fattore limitante.

Viste le esigenze, si è scelto di basare la costruzione del nostro Desktop Environment sul window manager PekWM.

Prima di iniziare

Prima di buttarsi sul PC a smanettare, è importante avere bene in mente l'obiettivo da perseguire.

Occorre immedesimarsi nell'utilizzatore finale: potrebbe essere utile osservare l'utente all'opera, prendendo appunti su quali siano le applicazioni che usa e su come si muove abitualmente. Sarà inoltre nostro compito trovare delle alternative dalle funzionalità simili, nel caso che i programmi attualmente in uso non esistano per Linux.

Successivamente, sempre su carta, è importante abbozzare quali potrebbero essere le caratteristiche per rendere funzionale l'interfaccia, e come realizzarle.

Debian

Il primo passo è ovviamente quello di installare il nostro sistema operativo. Abbiamo scelto di installare Debian Squeeze. Il consiglio è di creare una partizione /home/ separata e di installare solo un sistema minimale lasciando selezionato unicamente il metapacchetto "Sistema standard".

A questo punto è possibile aggiungere alcuni pacchetti non inclusi in questa installazione:

# aptitude update
# aptitude purge vim-tiny
# aptitude install vim ntp ssh

Riavviamo e controlliamo che tutto funzioni regolarmente.

Server grafico

Installazione

Una volta sicuri che il sistema sia installato e configurato correttamente, possiamo installare il server grafico:

# aptitude install xorg

Il sistema, nel caso non riconoscesse la scheda video, sceglierà di utilizzare i generici driver VESA, in modo tale da essere in grado di funzionare sostanzialmente su qualsiasi macchina. Con ogni probabilità però saranno disponibili dei driver migliori. Vista la grande varietà di hardware disponibile, questa non è la sede per ulteriori approfondimenti. Si consiglia unicamente di testare il proprio hardware sul sito di Kenshi Muto, dove verrà indicato anche il miglior driver libero disponibile.

Nel caso in cui si fosse a conoscenza del driver specifico della propria scheda video (il comando lspci contenuto nel pacchetto pciutils può tornare utile allo scopo), è possibile attuare un'installazione ancora più minimale:

# aptitude install x11-xserver-utils xinit xserver-xorg-video-[...]

dove, al posto di [...] va messa la parte finale del nome del pacchetto contenente il nostro driver.

Test

Proviamo ad avviare il server grafico:

$ startx

Dovrebbe visualizzarsi una finestra di xterm.

Proviamo a verificare che la risoluzione video sia corretta avviando un programma grafico un po' più impegnativo, ad esempio Iceweasel:

# aptitude install iceweasel-l10n-it
# exit
$ startx

Dentro alla finestra di xterm digitiamo dunque

$ iceweasel

Window manager

Installazione

L'installazione di PekWM è semplicissima: è sufficiente un banale

# aptitude install pekwm

Ora, avviando startx, dovremmo automaticamente entrare in PekWM. Bisogna ancora configurare tutto; per adesso avremo a disposizione solo un unico menu accessibile tramite un click destro sulla superficie vuota, grazie al quale sono possibili solo alcune azioni elementari:

  • aprire finestre di terminale
  • lanciare comandi da un prompt
  • spostarsi tra le finestre
  • riavviare o chiudere PekWM
  • poco altro

Configurazione

Si tratta sostanzialmente di metter mano nei file di testo contenuti in ~/.pekwm/.

Da provare

Riferimenti