1 .\" Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
2 .\" Copyright (c) 2009 Darrin Chandler <dwchandler@stilyagin.com>
4 .\" Permission to use, copy, modify, and distribute this software for any
5 .\" purpose with or without fee is hereby granted, provided that the above
6 .\" copyright notice and this permission notice appear in all copies.
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 .Dd $Mdocdate: September 15 2011 $
21 .Nd gestore di finestre per X11
26 ? un gestore di finestre minimale che cerca di stare in disparte, in modo
27 che il prezioso spazio sullo schermo possa essere usato per cose pi?
28 importanti. Hai dei default sensati e non costringe l'utente ad imparare
29 un linguaggio di programmazione per configurarlo. ? stato scritto dagli
30 hacker per gli hacker e cerca di essere piccolo, compatto e veloce.
34 viene avviato, legge le impostazioni presenti nel file di configurazione
37 .Sx FILE DI CONFIGURAZIONE
40 In questa pagina di manuale viene usata la seguente notazione:
42 .Bl -tag -width Ds -offset indent -compact
50 Tasto 1 (sinistro) del mouse
52 Tasto 3 (destro) del mouse
56 ? molto semplice da usare. La maggior parte delle operazioni vengono
57 svolte usando combinazioni di tasti sulla tastiera o sul mouse.
60 pi? sotto per i default e le possibilit? di personalizzazione.
61 .Sh FILE DI CONFIGURAZIONE
63 prova per prima cosa ad aprire il file di configurazione personale
65 .Pa ~/.spectrwm.conf .
66 Se il file in questione non ? disponibile, prova ad usare il file di
67 configurazione globale
68 .Pa /etc/spectrwm.conf .
70 Il formato di questo file ? \*(Ltchiave\*(Gt = \*(Ltvalore\*(Gt.
75 Per abilitare o disabilitare un'opzione, usare i valori 1 o 0
78 Il file supporta le seguenti chiavi:
80 .Bl -tag -width "title_class_enabledXXX" -offset indent -compact
82 Esegue un'applicazione nel workspace specificato all'avvio.
83 Definito nel formato ws[<idx>]:applicazione, eg. ws[2]:xterm esegue un
84 xterm nell'area di lavoro 2.
86 Colore del bordo della finestra che ha il focus.
88 Colore del bordo delle finestre che non hanno il focus.
90 Abilita o disabilita la barra di stato.
91 .It Cm bar_border Ns Bq Ar x
92 Colore del bordo della barra di stato nello schermo
94 .It Cm bar_border_width
95 Spessore del bordo attorno alla barra di stato in pixel. Il bordo
96 pu? essere disabilitato usando il valore 0.
97 .It Cm bar_color Ns Bq Ar x
98 Colore della barra di stato nello schermo
100 .It Cm bar_font_color Ns Bq Ar x
101 Colore del testo della barra di stato nello schermo
104 Font della barra di stato.
106 Script esterno che aggiunge informazioni come la carica della batteria alla
109 Posiziona la barra di stato sul fondo dello schermo anzich? in cima.
111 Abilita o disabilita la visualizzazione dell'algoritmo di stacking
112 corrente nella barra di stato.
114 Abilita o disabilita l'orologio nella barra di stato. Se disabilitato,
115 usando il valore 0, ? possibile usare un orologio personalizzato nello
116 script specificato in
119 Alcune applicazioni hanno finestre di dialogo troppo piccole per risultare
120 utili. Questa ? la percentuale dello schermo che verr? usata per le finestre
121 di dialogo: ad esempio, 0.6 indica il 60% della dimensione fisica dello
124 Layout da utilizzare all'avvio. Definito nel formato
125 ws[<idx>]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode,
126 eg. ws[2]:-4:0:1:0:horizontal assegna il layout orizzontale all'area di
127 lavoro 2, riduce l'area principale di 4 unit?, aggiunge una finestra allo
128 stack e mantiene il comportamento predefinito per quanto riguarda le
130 I valori possibili per stack_mode sono
145 per ulteriori informazioni.
146 Queste impostazioni sono complesse e hanno effetti secondari; ? opportuno
147 familiarizzare con questi comandi prima di modificare l'opzione
150 Questa impostazione non viene applicata dopo il restart.
152 Alloca una regione personalizzata, rimuovendo qualsiasi regione
153 automaticamente rilevata stia occupando lo stesso spazio sullo schermo.
154 Definita nel formato screen[<idx>]:LARGHEZZAxALTEZZA+X+Y, ad esempio
155 \& screen[1]:800x1200+0+0.
157 Per fare s? che pi? monitor vengano considerati come una singola entit?
158 ? sufficiente creare una regione sufficientemente grande da contenerli,
159 eg. screen[1]:2048x760+0+0 unisce due monitor con risoluzione 1024x768
160 posizionati uno di fianco all'altro.
162 Imposta la dimensione minima preferita per il terminale. Se questo valore
165 cercher? di riaggiustare la dimensione del testo nel terminale in modo che
166 la larghezza del terminale rimanga sopra il valore quando la finestra
167 viene ridimensionata. Al momento solo
169 ? supportato. Il binario di
171 deve essere setuid o setgid perch? questo funzioni: nella maggior parte dei
172 sistemi, questo ? il default. L'utente potrebbe voler impostare
173 program[term] (vedere la sezione
175 pi? sotto) per usare una seconda copia del binario di
177 che non abbia il bit setgid impostato.
178 .It Cm title_class_enabled
179 Abilita o disabilita la visualizzazione della classe della finestra nella
180 barra di stato. Impostare a 1 per abilitare.
181 .It Cm title_name_enabled
182 Abilita o disabilita la visualizzazione del titolo della finestra nella
183 barra di stato. Impostare a 1 per abilitare.
184 .It Cm urgent_enabled
185 Abilita o disabilita l'hint "urgente".
186 In molti emulatori di terminale, il supporto deve essere abilitato
187 separatamente: per xterm, ad esempio, ? necessario aggiungere la riga
188 .Pa xterm.urgentOnBell: true
191 .It Cm window_name_enabled
192 Abilita o disabilita la visualizzazione del nome della finestra nella
193 barra di stato. Impostare a 1 per abilitare.
194 .It Cm verbose_layout
195 Abilita o disabilita la visualizzazione dei valori correnti di master e
196 stack nella barra di stato. Impostare a 1 per abilitare.
198 Cambia il tasto modificatore.
199 Solitamente Mod1 ? il tasto ALT e Mod4 ? il tasto Windows su un PC.
201 Se viene usato il valore
203 il gestore di finestre dar? il focus alla finestra sotto il puntatore
204 quando si cambia area di lavoro o si creano finestre.
205 .It Cm disable_border
206 Rimuovi il bordo dalle finestre se la barra di stato ? nascosta e c'?
207 una sola finestra sullo schermo.
209 Spessore del bordo delle finestre in pixel. Il valore 0 disabilita il bordo.
210 .It Cm program Ns Bq Ar p
211 Definisce una nuova azione per lanciare il programma
216 .It Cm bind Ns Bq Ar x
217 Assegna una combinazione di tasti all'azione
222 .It Cm quirk Ns Bq Ar c:n
223 Aggiunge un "quirk" per le finestre di classe
232 I colori devono essere specificati nel formato usato da
234 e i font in quello usato da
237 Per avere una lista dei font disponibili sul proprio sistema utilizzare
243 ? utile per visualizzare la X Logical Font Description ("XLFD") usata per
248 consente la definizione di azioni personalizzate per lanciare programmi di
249 propria scelta, che possono essere assegnate a combinazioni di tasti nello
250 stesso modo in cui ? possibile farlo con le azioni predefinite.
255 I programmi di default sono descritte qui sotto:
257 .Bl -tag -width "screenshot_wind" -offset indent -compact
260 .It Cm screenshot_all
262 .It Cm screenshot_wind
269 dmenu_run \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color
272 I programmi personalizzati vengono specificati con la seguente sintassi:
274 .Dl program[<nome>] = <percorso> [<arg> [... <arg>]]
277 ? un qualsiasi identificatore che non va in conflitto con un'azione
278 predefinita o una chiave,
280 ? il programma desiderato, e
282 sono zero o pi? argomenti da passare al programma.
284 Le seguenti variabili rappresentano valori impostabili in
287 .Sx FILE DI CONFIGURAZIONE
288 sopra), e possono essere usati nel campo
290 dove saranno sostituite con il valore al momento del lancio del programma:
292 .Bl -tag -width "$bar_font_color" -offset indent -compact
296 .It Cm $bar_font_color
298 .It Cm $color_unfocus
302 .Bd -literal -offset indent
303 program[ff] = /usr/local/bin/firefox http://spectrwm.org/
304 bind[ff] = Mod+f # adesso Mod+F lancia firefox
307 Per eliminare la combinazione precedente:
308 .Bd -literal -offset indent
315 fornisce molte funzioni (o azioni) accessibili tramite combinazioni di
316 tasti sul mouse o sulla tastiera.
318 Le scorciatoie assegnate al mouse sono:
320 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
322 D? focus alla finestra
326 Ridimensiona la finestra
328 Ridimensiona la finestra mantenendola centrata
331 Le scorciatoie da tastiera di default sono:
333 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
334 .It Cm M-S- Ns Aq Cm Return
342 .It Cm M- Ns Aq Cm Space
344 .It Cm M-S- Ns Aq Cm Space
358 .It Cm M- Ns Aq Cm Return
367 .Cm M-S- Ns Aq Cm TAB
384 .It Cm M-S- Ns Aq Ar n
386 .It Cm M- Ns Aq Cm Right
388 .It Cm M- Ns Aq Cm Left
392 .It Cm M-S- Ns Aq Cm Right
394 .It Cm M-S- Ns Aq Cm Left
404 .It Cm M-S Aq Cm Delete
418 I nomi delle azioni e le relative descrizioni sono le seguenti:
420 .Bl -tag -width "M-j, M-<TAB>XXX" -offset indent -compact
422 Lancia un nuovo terminale
440 Re-inizializza il layout.
442 Restringe l'area principale.
444 Allarga l'area principale.
446 Aggiunge finestre all'area principale.
448 Rimuove finestre dall'area principale.
450 Aggiunge righe/colonne all'area di stacking.
452 Rimuove righe/colonne dall'area di stacking.
454 Muove la finestra corrente nell'area principale.
456 D? il focus alla finestra successiva.
458 D? il focus alla finestra precedente.
460 D? il focus alla finestra principale.
462 Scambia con la finestra successiva dell'area di lavoro.
464 Scambia con la finestra precedente dell'area di lavoro.
466 Mostra/nascondi la barra di stato da tutte le aree di lavoro.
468 Chiude la finestra corrente.
470 Distrugge la finestra corrente.
472 Passa all'area di lavoro
476 ? compreso tra 1 e 10.
478 Sposta la finestra corrente nell'area di lavoro
482 ? compreso tra 1 e 10.
484 Passa all'area di lavoro non vuota successiva.
486 Passa all'area di lavoro non vuota precedente.
488 Passa all'ultima area di lavoro visitata.
490 Sposta il puntatore nella regione successiva.
492 Sposta il puntatore nella regione precedente.
493 .It Cm screenshot_all
494 Cattura uno screenshot dell'intero schermo, se abilitato (vedere la sezione
497 .It Cm screenshot_wind
498 Cattura uno screenshot di una singola finestra, se abilitato (vedere la
503 Abilita/disabilita il numero di versione nella barra di stato.
505 Passa la finestra che ha il focus da floating a tiled.
507 Blocca lo schermo (vedere la sezione
511 Re-inizializza gli schermi fisici (vedere la sezione
515 Minimizza (unmap) la finesta che ha il focus.
517 Massimizza (map) la finestra selezionata tramite dmenu.
519 Quando ? abilitato, le finestre floating possono essere oscurate da
522 Simula la pressione del tasto centrale del mouse.
525 Le scorciatoie personalizzate sono specificate nel file di configurazione
528 .Dl bind[<azione>] = <tasti>
531 ? una delle azioni elencate sopra (oppure nulla) e
533 ? dato da zero o pi? modificatori (MOD, Mod1, Shift, ecc.) e uno o pi?
534 tasti normali (b, space, ecc.), separati da "+".
536 .Bd -literal -offset indent
537 bind[reset] = Mod4+q # assegna reset ai tasti Windows + q
538 bind[] = Mod1+q # rimuovi l'assegnazione di Alt + q
541 Pi? combinazioni di tasti possono essere assegnate alla stessa azione.
544 fornisce la possibilit? di specificare dei "quirk" per la gestione di
545 finestre che devono subire un trattamento speciale da un gestore di finestre
546 tiling, come ad esempio alcune finestre di dialogo e applicazioni a
549 I quirk abilitati di default sono elencati qui sotto:
551 .Bl -tag -width "OpenOffice.org N.M:VCLSalFrame<TAB>XXX" -offset indent -compact
552 .It Firefox\-bin:firefox\-bin
559 FLOAT + FULLSCREEN + FOCUSPREV
560 .It OpenOffice.org 2.4:VCLSalFrame
562 .It OpenOffice.org 3.1:VCLSalFrame
570 .It xine:xine Video Fullscreen Window
580 I quirk sono descritti qui sotto:
582 .Bl -tag -width "XTERM_FONTADJ<TAB>XXX" -offset indent -compact
584 Questa finestra deve essere lasciata libera di muoversi (float).
586 Aggiusta la dimensione delle finestre troppo piccole usando dialog_ratio
588 .Sx FILE DI CONFIGURAZIONE ) .
590 Consente alla finestra di decidere da sola dove posizionarsi.
592 Ridimensiona il font di xterm quando viene ridimensionata la finestra.
594 Rimuove i bordi, consentendo alla finestra di usare l'intera dimensione
597 Quando la finestra viene chiusa, d? il focus alla finestra che aveva il
598 focus precedente anzich? all'applicazione precedente nello stack.
601 I quirk personalizzati vanno specificati nel file di configurazione come
604 .Dl quirk[<classe>:<nome>] = <quirk> [ + <quirk> ... ]
609 specificano a quali finestre i quirk vanno applicati, e
611 ? uno dei quirk presente nella lista sopra.
613 .Bd -literal -offset indent
614 quirk[MPlayer:xv] = FLOAT + FULLSCREEN + FOCUSPREV
615 quirk[pcb:pcb] = NONE # rimuovi un quirk precedentemente specificato
622 usando xprop(1) e facendo click sulla finestra desiderata.
623 Nel seguente esempio ? stato fatto click sulla finestra principale di
625 .Bd -literal -offset indent
626 $ xprop | grep WM_CLASS
627 WM_CLASS(STRING) = "Navigator", "Firefox"
630 Bisogna tenere conto del fatto che usare grep per trovare WM_CLASS inverte
631 la classe e il nome. Nell'esempio precedente, la dichiarazione del quirk
633 .Bd -literal -offset indent
634 quirk[Firefox:Navigator] = FLOAT
638 assegna automaticamente i quirk alle finestre in base al valore della
639 propriet? _NET_WM_WINDOW_TYPE in base al seguente schema:
641 .Bl -tag -width "_NET_WM_WINDOW_TYPE_TOOLBAR<TAB>XXX" -offset indent -compact
642 .It _NET_WM_WINDOW_TYPE_DOCK
644 .It _NET_WM_WINDOW_TYPE_TOOLBAR
646 .It _NET_WM_WINDOW_TYPE_UTILITY
648 .It _NET_WM_WINDOW_TYPE_SPLASH
650 .It _NET_WM_WINDOW_TYPE_DIALOG
654 In tutti gli altri casi, nessun quirk ? automaticamente assegnato alla
655 finestra. I quirk specificati nel file di configurazione hanno la precedenza
656 sui quirk assegnati in automatico.
659 implementa in maniera parziale la specifica Extended Window Manager Hints
660 (EWMH). Ci? permette di controllare sia le finestre che
662 stesso tramite script e programmi esterni. Per renderlo possibile,
664 risponde ad alcuni eventi di tipo ClientMessage; questo tipo di messaggio
665 pu? essere inviato da un terminale usando programmi come
669 Per il formato esatto di questi messaggi, si veda la specifica EWMH.
671 L'id della finestra che ha il focus ? memorizzato nella propriet?
672 _NET_ACTIVE_WINDOW della root window. ? quindi possibile ottenere il titolo
673 della finestra attiva usando
677 .Bd -literal -offset indent
678 $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"`
679 $ xprop \-id $WINDOWID WM_NAME | grep \-o "\\".*\\""
682 Per dare il focus ad una finestra, ? sufficiente inviare il messaggio
683 _NET_ACTIVE_WINDOW alla root window. Ad esempio, usando
685 (supponendo che 0x4a0000b sia l'id della finestra a cui dare il focus):
686 .Bd -literal -offset indent
687 $ wmctrl \-i \-c 0x4a0000b
690 Per chiudere una finestra si pu? inviare il messaggio _NET_CLOSE_WINDOW
691 alla root window. Ad esempio, usando
693 (supponendo che 0x4a0000b sia l'id della finestra da chiudere):
694 .Bd -literal -offset indent
695 $ wmctrl \-i \-c 0x4a0000b
698 Per passare una finestra da floating a tiled si pu? aggiungere o rimuovere
699 l'atomo _NET_WM_STATE_ABOVE alla propriet? _NET_WM_STATE della finestra,
700 inviando il messaggio _NET_WM_STATE alla root window. Ad esempio, usando
702 (supponendo che 0x4a0000b sia l'id della finestra):
703 .Bd -literal -offset indent
704 $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE
707 Le finestre floating possono essere ridimensionate o spostate inviando il
708 messaggio _NET_MOVERESIZE_WINDOW alla root window. Ad esempio, usando
710 (supponendo che 0x4a0000b sia l'id della finestra da spostare):
711 .Bd -literal -offset indent
712 $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480
715 Questo comando sposta la finestra in (100,50) e la ridimensiona a 640x480.
717 I messaggi _NET_MOVERESIZE_WINDOW vengono ignorati per le finestre stacked.
719 ? possibile riavviare
721 inviandogli il segnale HUP.
723 .Bl -tag -width "/etc/spectrwm.confXXX" -compact
724 .It Pa ~/.spectrwm.conf
728 .It Pa /etc/spectrwm.conf
729 impostazioni globali di
734 prende ispirazione da xmonad & dwm.
741 .Bl -tag -width "Ryan Thomas McBride Aq mcbride@countersiege.com " -offset indent -compact
742 .It Cm Marco Peereboom Aq marco@peereboom.us
743 .It Cm Ryan Thomas McBride Aq mcbride@countersiege.com
744 .It Cm Darrin Chandler Aq dwchandler@stilyagin.com
745 .It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org
746 .It Cm Tuukka Kataja Aq stuge@xor.fi
747 .It Cm Jason L. Wright Aq jason@thought.net
750 Al momento il menu, invocato usando