File: beginnersguide.tex

package info (click to toggle)
wmii2-doc 1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 216 kB
  • ctags: 62
  • sloc: makefile: 118; sh: 86
file content (474 lines) | stat: -rw-r--r-- 20,674 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
%Beginners guide to wmii
%Copyright (C) 2005,2006 by Steffen Liebergeld

%This program is free software; you can redistribute it and/or
%modify it under the terms of the GNU General Public License
%as published by the Free Software Foundation; either version 2
%of the License, or (at your option) any later version.

%This program is distributed in the hope that it will be useful,
%but WITHOUT ANY WARRANTY; without even the implied warranty of
%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%GNU General Public License for more details.

%You should have received a copy of the GNU General Public License
%along with this program; if not, write to the Free Software
%Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

\documentclass[12pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[left=3cm,top=2cm,right=2cm,bottom=3cm]{geometry}
\usepackage[a4paper,dvipdfm]{hyperref}
%\usepackage{ngerman}
\usepackage{times}
\newenvironment{itemize*}
  {\begin{itemize}
      \setlength{\itemsep}{0pt}
      \setlength{\parskip}{0pt}}
  {\end{itemize}}
\date{\today}
\author{Stefano K. Lee}
\title{Wmii: guida introduttiva}
%\email{wizinblack@gmail.com}

\begin{document}

\maketitle

\tableofcontents

\newpage

\section{Cose da sapere}

   \subsection{Wmii - la seconda generazione del window manager improved}

      wmii \`e  un window manager molto leggero per X Window System,
      che permette una sintesi tra il layout tradizionale, quello a schede e
      quello a finestre affiancate (tiled). Molte di queste
      caratteristiche furono a suo tempo introdotte dai window manager
      Ion e LarsWM.
      Inoltre, wmii implementa un fileserver basato su socket,
      a cui \`e necessario accedere per configurare e controllare il
      comportamento del wm. L'idea alla base di questo approccio
      basato su file deriva dal sistema operativo Plan9 e si pu\`o
      ritrovare nell'ambiente di programmazione Acme. Wmii \`e in realt\`a composto
      dal window manager in s\'e stesso e da un certo numero di
      utility, quali wmibar, wmifs, wmimenu, wmikeys, wmiplumb, wmir e
      wmiwarp.

   \subsection{Questo documento}

      Questa guida \`e la traduzione italiana di \emph{A beginners
      guide to wmii}, di Steffen Liebergeld. Vi insegner\`a tutto
      quello che serve per convivere in modo proficuo con
      wmii. Imparerete ad installare e configurare il window manager e
      come iniziare ad usarlo. Saranno illustrate anche alcune scelte
      di design. Dopo aver letto questa guida sarete innamorati di
      wmii, ma soprattutto sarete in grado di utilizzarlo con molto
      pi\`u profitto di prima.

   \subsection{A chi ci rivolgiamo, ovvero cose che dovete gi\`a sapere}

      Questo testo \`e scritto per utenti che hanno molta
      esperienza nell'utilizzo di Unix e che conoscono abbastanza bene
      i concetti base di X Window System. \`E, in altre parole,
      rivolto a persone curiose di conoscere nuovi metodi di
      interazione con il loro computer, e che hanno un atteggiamento
      aperto nei confronti delle nuove tecnologie. Forse il termine
      \emph{Hacker} descrive al meglio il pubblico a cui ci
      rivolgiamo. 

\section{Installare e configurare wmii}

   \subsection{Ottenere wmii}

      Wmii \`e rilasciato secondo i termini della MIT/X Consortium
      License. Significa che chiunque \`e autorizzato a usare,
      copiare, modificare, integrare, pubblicare, distribuire,
      sottolicenziare e/o vendere copie del Software, e permettere ai
      destinatari del Software di fare lo stesso. Ricordiamo che il
      software \`e rilasciato senza nessuna garanzia di alcun tipo.
      
      Potete naturalmente scaricare i sorgenti di wmii da
      http://wmi.modprobe.de. La maggior parte delle distribuzioni
      Linux mette gi\`a a disposizione dei pacchetti precompilati.

      Se desiderate provare i sorgenti pi\`u aggiornati e avanzati,
      li potete facilmente scaricare dal repository darcs.

   \subsection{Configurazione}

      I sorgenti di wmii contengono un file, ``config.mk'', che contiene
      tutte le opzioni modificabili prima della compilazione.

      Il settaggio pi\`u importante \`e PREFIX, che definisce il
      percorso di installazione di wmii. In questo file \`e anche
      possibile scelgliere se compilare wmii con il supporto alla
      libreria grafica cairo. Ad ogni modo, dal momento che cairo
      sembra piuttosto instabile, non vi incoraggiamo a farlo. E poi,
      non ne avrete comunque bisogno.

   \subsection{Installazione}

      Dopo aver configurato wmii, baster\`a eseguire \texttt{make} per
      avviare la compilazione.

      Una volta terminata, potete installare wmii come superuser con
      il comando \emph{make install}.

      Dopo l'installazione, copiate i file presenti in PREFIX/etc/wmii
      nella directory locale \emph{.wmii}.

      Ricordate che, nell'installazione di default, PREFIX corrisponde a
      \emph{/usr/local/}.

      Per rendere wmii il vostro window manager di default, inserite
      le seguenti linee in \emph{~/.xinit}( o in \emph{~/.xsession} se
      utilizzare un display manager come xdm):

      \begin{verbatim}
         #!/bin/sh
         exec wmii
      \end{verbatim}

   \subsection{Adattare wmii alle vostre esigenze}

      La directory \emph{~/.wmii} contiene una serie di file che vi
      permettono di configurare wmii a vostro piacimento.

      All'avvio, wmii esegue il file \emph{rc} posto nella directory
      \emph{~.wmii}. Pu\`o trattarsi di qualsiasi eseguibile, sia
      binario che shell script. \emph{rc} ha bisogno di due parametri,
      \emph{start} e {stop}. \`E attraverso l'opzione \emph{start} che
      \emph{rc} configura il virtual filesystem interno di wmii.

      Un aspetto molto importante consiste nell'utilizzo di un nuovo
      princ\`ipio di comunicazione tra processi per la configurazione
      e l'utilizzo di wmii. L'approccio consiste in una
      rappresentazione dei dati come se fossero in un
      filesystem. L'ispirazione deriva dal sistema operativo Plan9 e
      al suo ambiente di sviluppo, ACME.

      Questo filesystem interno sar\`a, in futuro, montabile
      direttamente in una directory unix, permettendo cos\`i di
      attingere alla piena potenza dei tool standard della shell per
      utilizzare wmii.

      Per ora, tuttavia, ci limiteremo alla configurazione standard,
      che \`e gi\`a di per s\'e piuttosto potente. Vedremo pi\`u
      avanti le basi per la manipolazione dei file e del filesystem.

\section{Terminologia}

   \subsection{Pagine)}

      L'intera area visibile sul monitor \`e chiamata ``pagina''
      (``page''). \`E importante che lo ricordiate, perch\'e potrete
      applicare i layout solo alle pagine.

   \subsection{Frame}

      I frame sono esattamente quello che il termine inglese
      \emph{suggerisce}: aree rettangolari nella pagina, che
      contengono i client X (ad esempio, un Xterm). Nella
      configurazione di default di Wmii i frame hanno una barra del
      titolo con una stringa che identifica il client contenuto.

   \subsection{Client}

      Qualsiasi programma X, o, per meglio dire, qualsiasi programma
      che disegna una finestra in un server X \`e chiamato ``client''.
      Pi\`u avanti sarete in grado di manipolare i client in vari
      modi, ma per ora \`e importante sapere che un solo client per
      volta riceve l'input. Nella nostra terminologia, il client in
      questione \`e ``selezionato''\footnote{secondo X Window System,
      si direbbe che il \emph{Client ha il focus}}.

   \subsection{Layout}

      Un layout definisce il comportamento di una pagina: controlla il
      modo in cui i frame sono disposti nella pagina.

   \subsection{Azioni}

      Le ``azioni'' (``actions'') sono tutti quei comandi usati per
      manipolare il window manager, come ad esempio ingrandire una
      finestra o eseguire un programma.

\section{Come iniziare}

   Prima di eseguire wmii per la prima volta, potreste voler scrivere
   su un foglio di carta alcuni comandi. Naturalmente potreste
   benissimo iniziare senza, ma \`e probabile che rimaniate bloccati
   molto presto. Ecco la lista di quello che vi torner\`a utile:

   \begin{itemize*}
   \item MOD+Tab  = passa ad un'altra pagina
   \item MOD+shift+Tab = passa ad un'altra scheda nello stesso frame (tabbed frames)
   \item MOD+ctrl+a  = apre il menu delle azioni
   \item MOD+ctrl+p  = apre il menu dei programmi
   \item MOD+t = apre un Xterm
   \end{itemize*}

   Vi ricordo che \texttt{MOD} solitamente corrisponde al tasto
   \texttt{ALT} (sinistro), ma pu\`o essere qualcos'altro se avete
   cambiato la configurazione di xmodmap.

   Il layout predefinito \`e \emph{tiled} (a finestre affiancate). Per
   iniziare si potrebbero aprire alcuni Xterm. Per farlo, \`e sufficiente
   premere \texttt{MOD+t}. Dopo aver aperto 4 Xterm, avrete un buon
   banco di prova per i vostri esperimenti.

   Avete notato che wmii ha posizionato e rimpicciolito
   automaticamente le nuove finestre quando le ha create? Si tratta di
   una caratteristica importante, che dovrebbe aiutarvi a tenere la
   mente pi\`u libera.

   Ora, digitate alcuni caratteri. Il terminale in cui compaiono \`e
   il client \emph{selezionato} (\emph{selected}). 

   Come fare per spostare la selezione\footnote{o focus}, ora? \`E
   molto semplice: basta premere \texttt{MOD+Tab} e sarete portati
   verso l'Xterm successivo. Provatelo un po' di volte, per prendere
   confidenza con il sistema.

   \subsection{Provare layout diversi}

      Il layout \emph{tiled} \`e gi\`a molto potente, ma wmii ne
      propone anche altri. \`E venuto il momento di provarli
      tutti. Premete \texttt{MOD+shift+m}, ora. Come potete vedere,
      tutte le finestre (frame) sono ingrandite fino ad occupare la
      pagina intera. Be', in effetti vedete un solo frame di fronte a
      voi. \`E di questo che tratta il \emph{max} layout: frame
      massimizzati.

      Ora premete di nuovo \texttt{MOD+Tab} per passare da un frame
      massimizzato all'altro. Vedete com'\`e facile? In effetti il
      layout massimizzato \`e uno dei preferiti per molte persone, dal
      momento che \`e possibile sfruttare tutto lo spazio possibile
      sullo schermo per un solo frame. E poi, semplifica la vita anche
      sotto un altro punto di vista: tiene lontano dallo sguardo tutte le
      informazioni che non sono direttamente correlate con il frame
      selezionato, in modo che ci si possa concentrare meglio sul lavoro.

      Ma ci sono ancora altri layout da provare. Premete
      \texttt{MOD+shift+g} per entrare nel \emph{grid}
      layout. Osservate come gli Xterm sono ora ordinati come le
      caselle di una scacchiera. La filosofia di questo layout \`e che
      ogni frame deve occupare lo stesso spazio degli altri. Potete
      sempre usare \texttt{MOD+Tab} per passare da un frame
      all'altro. La barra del titolo del frame selezionato ha un
      colore diverso dagli altri. Si tratta di una caratteristica
      utile quando utilizzerete i frame a schede --- di cui saprete
      piu\` avanti.

      Proviamo ancora un altro layout. Premete \texttt{MOD+shift+f}
      per entrare nel \emph{float} layout (a frame
      fluttuanti). Tutti gli Xterm sono ora  sparsi senza
      nessun ordine all'interno della pagina. Questo layout somiglia
      al sistema di controllo vecchio stile di tutti gli altri
      noiosissimi window manager.

      Potete ora passare al vostro layout preferito.

      \begin{itemize*}
      \item \texttt{MOD+shift+m} = max layout
      \item \texttt{MOD+shift+t} = tiled layout
      \item \texttt{MOD+shift+g} = grid layout
      \item \texttt{MOD+shift+f} = float layout
      \end{itemize*}

      \subsection{Frame a schede (\emph{tabbed})}

      Fino ad ora abbiamo utilizzato un solo client per frame. \`E
      gi\`a una configurazione molto utile, ma se doveste aprire molti
      client, l'area di lavoro diverrebbe sovraffollata. Per evitare
      questo problema, wmii utilizza la tecnica dei frame a schede, o
      \emph{tabbed frames}, che permette di inserire pi\`u di un
      client nello stesso frame. I vari client utilizzano comunque
      tutto lo spazio disponibile nel frame, ma sono ordinati per
      schede --- proprio come nel vostro browser preferito. Le schede
      saranno visibili nella barra del titolo del frame, che sar\`a
      suddivisa in tante parti quanti saranno i client presenti nel
      frame.

      Fin qui la teoria. Ora facciamo qualche prova. Selezionate un
      Xterm di vostro gradimento e premete \texttt{MOD+u} per
      sbloccare il frame. Tutti i client che aprirete da questo
      momento saranno inseriti in questo frame. Premete \texttt{MOD+t}
      per aprire un Xterm. Osservate come il nuovo terminale si trovi
      sempre nello stesso frame, mentre la barra del titolo \`e divisa
      in due. Ora, come fare per accedere all'Xterm nascosto? Sar\`a
      sufficiente utilizzare la scorciatoia
      \texttt{MOD+shift+Tab}. Premetela per passare all'altro client
      nello stesso frame. Se premete di nuovo \texttt{MOD+Tab},
      vedrete che potete sempre passare agli altri frame presenti
      nella pagina, com'era gi\`a possibile fare prima.

      Ora tornate al frame con due client e premete
      \texttt{MOD+shift+u} per bloccare il frame. Se provate ora ad
      aprire una nuova finestra, verr\`a creato un nuovo frame, come
      al solito.

      Avete imparato due concetti fondamentali di wmii:
      \emph{bloccaggio (locking)} e
      \emph{sbloccaggio (unlocking)} dei frame.

   \section{Altri concetti}

      \subsection{Zoom}

      Wmii ha una caratteristica chiamata \emph{zoom}, che cerca di
      riordinare i frame che ha in gestione per dare a quello
      selezionato il maggior spazio possibile. \`E una funzionalit\`a
      molto utile nel tiled layout. Potete utilizzare lo zoom premendo
      \texttt{MOD+Invio}.

      \subsection{Workspace virtuali}

      Fino ad ora avete utilizzato una sola pagina, ma wmii vi
      permette di utilizzarne quante ne volete. Potete creare una
      nuova pagina premendo \texttt{MOD+crtl+y}. Per passare
      attraverso tutte le pagine, baster\`a premere \texttt{MOD+l}.
      
      \subsection{Massimizzare}

      A volte vorrete sbarazzarvi della pagina disordinata con cui
      state lavorando, per visualizzare un solo frame. \`E possibile
      premendo \texttt{MOD+m}. Wmii creer\`a una pagina virtuale con
      un solo frame massimizzato (quello precedentemente
      selezionato). Potete sempre tornare alle pagine precedenti
      premendo \texttt{MOD+l}. Per far tornare il frame massimizzato
      alla sua pagina di provenienza, premete ancora \texttt{MOD+m}.


      \subsection{Come spostare i frame}

      Vi sarete chiesti come spostare un client esistente, per
      metterlo in un altro frame o in un'altra pagina. In wmii si
      opera ``distaccando'' e ``riattacando'' il frame in
      questione. Il processo \`e pi\`u semplice di quanto si creda:

      Prima di tutto, dovete selezionare il frame che volete
      spostare. Una volta selezionato, premete \texttt{MOD+d} per
      distaccare il client. Vedrete che il client scomparir\`a
      immediatamente. Mantenete la calma, il client esiste ancora
      nella memoria di wmii.

      Ora andate in un altro frame, sbloccatelo (\texttt{MOD+u}) e
      attaccate il client che avevate distaccato premendo
      \texttt{MOD+a}. Il client far\`a ora parte del frame
      selezionato. Potete ora bloccare nuovamente il frame premedo
      \texttt{MOD+shift+u}.

      Potete anche prendere un client che si trova in una scheda e
      metterlo in un frame indipendente. Selezionate il client che vi
      interessa e distaccatelo (\texttt{MOD+d}). Ora assicuratevi che
      tutti i frame siano bloccati, in modo che non sia possibile
      attaccarlo per errore ad un frame esistente, e premete
      \texttt{MOD+a}. Come potete vedere, il client ha ora un frame
      tutto per s\'e.
      
      \subsection{Riassumendo}
      
      \begin{itemize*}
      \item \texttt{MOD+Invio} = zoom su un frame
      \item \texttt{MOD+ctrl+y} = crea una nuova pagina
      \item \texttt{MOD+l} = passa alla pagina successiva
      \item \texttt{MOD+m} = massimizza un client
      \item \texttt{MOD+u} = sblocca un frame
      \item \texttt{MOD+shift+u} = blocca un frame
      \item \texttt{MOD+d} = distacca un client
      \item \texttt{MOD+a} = riattacca un client precedentemente distaccato
      \end{itemize*}

      \subsection{Flashback}

      Potete generare facilmente una lista di tutte le combinazioni da
      tastiera in wmii con una piccola utility chiamata \texttt{wmirefcard}.
      
      Congratulazioni. Avete imparato tutto quello che c'\`e da sapere
      per lavorare con wmii. Nel prossimo capitolo approfondiremo
      alcuni aspetti dell'interfaccia di configurazione del window manager.

   \section{Uno sguardo sotto la superficie}

      \subsection{Strumenti}

      Wmii \`e composto da un certo numero di minuscoli tool, ognuno
      dedicato ad un compito particolare. Questi strumenti sono in
      grado di comunicare tra loro utilizzado un filesystem
      virtuale. Questo tipo di design segue da vicino le regole
      principali di Unix --- la \emph{Regola della Modularit\`a} e la
      \emph{Regola della Composizione}.
      
      Potrete approfondire questi e altri princ\`ipi importanti in
      \emph{The Art of Unix Programming}\footnote{Il libro \emph{The
      Art of Unix Programming} di Eric S. Raymond \`e disponibile
      online a questo indirizzo: http://www.faqs.org/docs/artu/} di
      Eric S. Raymond.

      \subsection{wmibar}

      Wmibar \`e un piccolo tool con lo scopo di disegnare sullo
      schermo una piccola barra con delle informazioni utili.

      \subsection{wmimenu}

      Wmimenu \`e un tool che crea menu. \`E altamente configurabile
      tramite il filesystem virtuale, in modo che chiunque possa
      creare i propri menu o possa modificare il comportamento degli
      stessi.

      \subsection{wmikeys}

      Wmikeys si occupa di tutto quello che ha a che fare con le
      combinazioni di tasti. Fondamentalmente intercetta i comandi da
      tastiera ed esegue le azioni ad essi associate. Come sempre, \`e
      un tool configurabile attraverso il suo filesystem.

      \subsection{wmifs}

      Wmifs ha lo scopo di collegare tutti i diversi filesystem
      virtuali dei vari strumenti di wmii in un unico namespace che si
      comporta come un unico filesystem virtuale nei confronti del
      mondo esterno. In altre parole, wmifs mette insieme le
      interfacce dei tool di wmii e le presenta come se fossero
      un'unica interfaccia.

      \subsection{wmir}

      Wmir \`e utilizzato per leggere e modificare il filesystem
      virtuale esportato da wmifs. Potete utilizzare wmir per
      controllare praticamente qualsiasi cosa in wmii che abbia una
      rappresentazione in wmifs.

   \section{A tour in ixpfs}

   Se lanciate \texttt{wmir read /} potete visualizzare il nodo root di
   ixpfs. Analogamente, potete navigare all'interno di questo
   filesystem come fareste per qualsiasi altro albero di directory.

\section{Copyright notice}

Beginners guide to wmii
Copyright (C) 2006 by Steffen Liebergeld

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.


\end{document}