.\" Copyright (c) 2009-2012 Marco Peereboom .\" Copyright (c) 2009 Darrin Chandler .\" Copyright (c) 2011-2014 Reginald Kennedy .\" Copyright (c) 2011-2012 Lawrence Teo .\" Copyright (c) 2011-2012 Tiago Cunha .\" Copyright (c) 2012 David Hill .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate: February 15 2012 $ .Dt SPECTRWM 1 .Os .Sh NOME .Nm spectrwm .Nd gestore di finestre per X11 .Sh SINTASSI .Nm spectrwm .Sh DESCRIZIONE .Nm \[`e] un gestore di finestre minimale che cerca di stare in disparte, in modo che il prezioso spazio sullo schermo possa essere usato per cose molto pi\[`u] importanti. Ha delle impostazioni predefinite ragionevoli e non richiede all'utente di imparare un nuovo linguaggio per modificarne la configurazione. \[`E] stato scritto dagli hacker per gli hacker, ed ha come obiettivo quello di essere piccolo, compatto e veloce. .Pp All'avvio, .Nm legge le impostazioni presenti nel suo file di configurazione, .Pa spectrwm.conf . Vedere la sezione .Sx FILE DI CONFIGURAZIONE pi\[`u] sotto. .Pp Le seguenti notazioni verranno utilizzate all'interno di questa pagina: .Pp .Bl -tag -width Ds -offset indent -compact .It Cm M Meta .It Cm S Shift .It Aq Cm Name Tasto Name .It Cm M1 Tasto 1 (sinistro) del mouse .It Cm M3 Tasto 3 (destro) del mouse .El .Pp .Nm \[`e] molto semplice da usare. La maggior parte delle azioni vengono svolte utilizzando combinazioni di tasti sulla tastiera o sul mouse. Vedere la sezione .Sx SCORCIATOIE pi\[`u] sotto per informazioni sulle impostazioni predefinite e sulle possibilit\[`a] di personalizzazione. .Sh FILE DI CONFIGURAZIONE .Nm da precedenza al file di configurazione specifico dell'utente, .Pa ~/.spectrwm.conf . Se quel file non \[`e] disponibile, tenta di utilizzare il file di configurazione globale .Pa /etc/spectrwm.conf . .Pp Il formato del file \[`e] .Pp .Dl Ar keyword Li = Ar setting .Pp Ad esempio: .Pp .Dl color_focus = red .Pp Le impostazioni di tipo binario possono essere abilitate e disabilitate utilizzando rispettivamente i valori 1 e 0. .Pp I colori devono essere specificati usando il formato usato da .Xr XQueryColor 3 . .Pp I commenti iniziano con #. Qualora fosse necessario usare usare .Ql # come parte di un'opzione, questo dovr\[`a] essere preceduto da un backslash, eg. \e#. .Pp Il file di configurazione supporta le seguenti impostazioni: .Bl -tag -width 2m .It Ic autorun All'avvio, esegue un'applicazione nell'area di lavoro specificata. Il formato da utilizzare \[`e] .Li ws Ns Bo Ar idx Bc : Ns Ar application , eg. ws[2]:xterm esegue .Xr xterm 1 nell'area di lavoro 2. .It Ic bar_action Script esterno che produce informazioni aggiuntive, come ad esempio quelle sullo stato di carica della batteria, da inserire nella barra di stato. .It Ic bar_at_bottom Posiziona la barra di stato in fondo ad ogni regione anzich\['e] in cima. .It Ic bar_borders Ns Bq Ar x Colore del bordo della barra di stato nello schermo .Ar x . .It Ic bar_border_unfocus Ns Bq Ar x Colore del bordo della barra di stato nelle regioni dello schermo .Ar x che non hanno il focus. .It Ic bar_border_width Imposta lo spessore del bordo della barra di stato, in pixel. Il bordo pu\[`o] essere disabilitato usando il valore 0. .It Ic bar_color Ns Bq Ar x Colore di sfondo della barra di stato nello schermo .Ar x . .It Ic bar_enabled Imposta il valore predefinito di .Ic bar_toggle ; il valore predefinito per questa opzione \[`e] 1. .It Ic bar_enabled_ws Ns Bq Ar x Imposta il valore predefinito di .Ic bar_toggle_ws per l'area di lavoro .Ar x ; il valore predefinito per questa opzione \[`e] 1. .It Ic bar_font Font da usare per la barra di stato. Il font pu\[`o] essere specificato usando Xft o X Logical Font Description (XLFD). \[`E] possibile specificare dei font secondari separandoli tra loro con una virgola. Se tutte le specifiche sono nel formato XLFD verranno usati i gruppi di font; se almeno una delle specifiche \[`e] in formato Xft, verr\[`a] usato Xft. Quando Xft \[`e] in uso, verr\[`a] usato solo il primo font caricato con successo anche nel caso in cui non dovesse comprendere tutti i glifi necessari. L'impostazione predefinita prevede l'uso dei gruppi di font; \[`e] bene tenere conto del fatto che .Xr dmenu 1 non supporta Xft. .Pp Esempio con Xft: .Bd -literal -offset indent bar_font = Terminus:style=Regular:pixelsize=14:antialias=true bar_font = -*-profont-medium-*-*-*-11-*-*-*-*-*-*-*,Terminus:pixelsize=14,\ -*-clean-medium-*-*-*-12-*-*-*-*-*-*-* .Ed .Pp Esempio con gruppi di font: .Bd -literal -offset indent bar_font = -*-terminus-medium-*-*-*-14-*-*-*-*-*-*-* bar_font = -*-profont-medium-*-*-*-11-*-*-*-*-*-*-*,\ -*-terminus-medium-*-*-*-14-*-*-*-*-*-*-*,\ -*-clean-medium-*-*-*-12-*-*-*-*-*-*-* .Ed .Pp Per ottenere un elenco dei font disponibili sul proprio sistema, usare .Xr fc-list 1 o .Xr xlsfonts 1 . L'applicazione .Xr xfontsel 1 pu\[`o] essere d'aiuto per il formato XLFD. .It Ic bar_font_color Ns Bq Ar x Colore del testo nella barra di stato nello schermo .Ar x . .It Ic bar_format Imposta il formato da utilizzare per la barra di stato, sovrascrivendo .Ic clock_format e tutte le opzioni che terminano con .Ic enabled . Il formato viene passato a .Xr strftime 3 prima di essere usato, e pu\[`o] contenere le seguenti sequenze di caratteri: .Bl -column "Sequenza di caratteri" "Sostituita con" -offset indent .It Sy "Sequenza di caratteri" Ta Sy "Sostituita con" .It Li "+<" Ta "Lascia uno spazio" .It Li "+A" Ta "Output dello script esterno" .It Li "+C" Ta "Classe della finestra corrente (da WM_CLASS)" .It Li "+D" Ta "Nome dell'area di lavoro corrente" .It Li "+F" Ta "Indicatore di float" .It Li "+I" Ta "Indice dell'area di lavoro corrente" .It Li "+M" Ta "Numero di finestre minimizzate nell'area di lavoro corrente" .It Li "+N" Ta "Numero dello schermo corrente" .It Li "+P" Ta "Classe e istanza della finestra corrente, separate da due punti" .It Li "+S" Ta "Algoritmo di gestione delle finestre in uso" .It Li "+T" Ta "Istanza della finestra corrente (da WM_CLASS)" .It Li "+U" Ta "Indicatore di urgenza" .It Li "+V" Ta "Versione del programma" .It Li "+W" Ta "Nome della finestra corrente (da _NET_WM_NAME o WM_NAME)" .It Li "++" Ta "Il carattere" Ql + .El .Pp Tutte le sequenze di caratteri possono limitare il numero di caratteri massimo utilizzato, eg. +64A. Il testo che non contribuisce a formare una di queste sequenze di caratteri viene copiato senza subire modifiche. .It Ic bar_justify Allinea il test all'interno della barra di stato. I valori possibili sono .Ar left (sinistra), .Ar center (centro) e .Ar right (destra). .Pp Se il valore scelto non \[`e] .Ar left , il testo potrebbe non risultare allineato correttamente. Vedere .Ic bar_format per maggiori informazioni. .It Ic bind Ns Bq Ar x Associa una combinazione di tasti all'azione .Ar x . Vedere la sezione .Sx SCORCIATOIE pi\[`u] sotto. .It Ic border_width Imposta lo spessore del bordo delle finestre, in pixel. Il bordo pu\[`o] essere disabilitato usando il valore 0. .It Ic boundary_width Imposta la larghezza dell'area di contenimento delle regioni, in pixel. Questo valore permette di controllare di quanto una finestra debba essere trascinata o ridimensionata oltre il limite di una regione prima che venga considerata al di fuori di essa. Questa impostazione non viene presa in considerazione quando le finestre vengono manipolate utilizzando la tastiera. L'area di contenimento pu\[`o] essere disabilitata usando il valore 0. .It Ic clock_enabled Abilita o disabilita l'orologio nella barra di stato. Se viene usato il valore 0, \[`e] possibile inserire un orologio personalizzato nello script esterno definito in .Ic bar action . .It Ic iconic_enabled Visualizza nella barra di stato il numero di finestre minimizzate. Questo indicatore pu\[`o] essere abilitato usando il valore 1. .It Ic color_focus Colore del bordo della finestra che detiene il focus. Il colore predefinito \[`e] il rosso. .It Ic color_focus_maximized Colore del bordo della finestra che detiene il focus, se massimizzata. Il colore predefinito \[`e] quello usato per .Ic color_focus . .It Ic color_unfocus Colore del bordo delle finestre che non detengono il focus. Il colore predefinito \[`e] rgb:88/88/88. .It Ic color_unfocus_maximized Colore del bordo delle finestre che non detengono il focus, se massimizzate. Il colore predefinito \[`e] quello usato per .Ic color_unfocus . .It Ic dialog_ratio Alcune applicazioni creano finestre di dialogo troppo piccole per essere utilizzate. Questa opzione indica la percentuale dello schermo da utilizzare per le finestre di dialogo: ad esempio, il valore 0.6 indica che dovr\[`a] essere usato il 60% dello spazio disponibile. .It Ic disable_border Non mostrare i bordi quando la barra di stato \[`e] nascosta e c'\[`e] una sola finestra nella regione. .It Ic focus_close Imposta quale finestra ricever\[`a] il focus in seguito alla chiusura della finestra che lo detiene al momento. I valori possibili sono .Ar first (prima), .Ar next (successiva), .Ar previous (precedente, impostazione predefinita) e .Ar last (ultima). .Ar next e .Ar previous sono intese relativamente alla finestra che \[`e] stata chiusa. .It Ic focus_close_wrap Se abilitata, l'ultima finestra ricever\[`a] il focus quando l'ultima viene chiusa, e viceversa. Questa opzione pu\[`o] essere disabilitata usando il valore 0. .It Ic focus_default Finestra che deve ricevere il focus quando nessun'altra finestra lo detiene. I valori possibili sono .Ar first (prima) e .Ar last (ultima, impostazione predefinita). .It Ic focus_mode Comportamento del focus in relazione al cursore del mouse. I valori possibili sono: .Pp .Bl -tag -width "default" -offset indent -compact .It Ar default Modifica il focus quando viene attraversato un bordo in seguito ad un movimento del cursore o all'interazione con una finestra. .It Ar follow Modifica il focus ogni volta che il cursore attraversa un bordo, anche se questo avviene in seguito al passaggio ad un'area di lavoro diversa o ad un cambio di layout. .It Ar manual Modifica il focus solo quando si interagisce con una finestra. .El .It Ic java_workaround Evita alcuni problemi di rendering nelle GUI Java impersonando il window manager LG3D, scritto da Sun. Il valore predefinito \[`e] 1. .It Ic keyboard_mapping Rimuove tutte le scorciatoie da tastiera esistenti e carica le nuove scorciatoie dal file specificato. Questo permette di caricare scorciatoie specifiche del proprio layout di tastiera. Vedere la sezione .Sx MAPPE DI TASTIERA pi\[`u] sotto per un elenco dei file che vengono forniti. .It Ic layout Imposta il layout da utilizzare all'avvio. Definito nel formato .Li ws Ns Bo Ar idx Bc : Ns Ar master_grow : Ns Ar master_add : Ns Ar stack_inc : Ns Ar always_raise : Ns Ar stack_mode , eg. ws[2]:-4:0:1:0:horizontal configura l'area di lavoro 2 per utilizzare un algoritmo di stacking orizzontale, riduce l'area principale di 4 unit\[`a] e aggiunge una finestra all'area di stacking, mantenendo il comportamento predefinito per le finestre floating. I valori possibili per .Ar stack_mode sono .Ar vertical , .Ar vertical_flip , .Ar horizontal , .Ar horizontal_flip and .Ar fullscreen . Vedere .Ic master_grow , .Ic master_shrink , .Ic master_add , .Ic master_del , .Ic stack_inc , .Ic stack_dec , e .Ic always_raise per maggiori informazioni. Le opzioni che controllano gli algoritmi di gestione delle finestre sono complesse e possono influenzare altre opzioni, quindi \[`e] opportuno prendere confidenza con esse prima di utilizzare l'opzione .Ic layout . .Pp Questa impostazione non viene applicata al riavvio. .It Ic modkey Cambia il modificatore. Solitamente Mod1 \[`e] il tasto Alt e Mod4 il tasto Windows su un PC. .It Ic name Imposta il nome di un'area di lavoro all'avvio. Definito nel formato .Li ws Ns Bo Ar idx Bc : Ns Ar name , eg. ws[1]:Console assegna il nome .Dq Console all'area di lavoro 1. .It Ic program Ns Bq Ar p Definisce la nuova azione .Ar p , corrispondente all'esecuzione di un programma. Vedere la sezione .Sx PROGRAMMI pi\[`u] sotto. .It Ic quirk Ns Bq Ar c Ns Li : Ns Ar i Ns Li : Ns Ar n Aggiunge un "quirk" per le finestre di classe .Ar c , istanza .Ar i e nome .Ar n . Vedere la sezione .Sx QUIRK pi\[`u] sotto. .It Ic region Definisce una regione personalizzata, rimuovendo tutte le regioni create in automatico che occupano la stessa parte dello schermo. Definita nel formato .Li screen Ns Bo Ar idx Ns Bc : Ns Ar width Ns x Ns Ar height Ns + Ns Ar x Ns + Ns Ar y , eg. screen[1]:800x1200+0+0. .Pp Per fare s\[`i] che una regione copra pi\[`u] monitor, \[`e] sufficiente definirla in modo che li occupi tutti, eg. screen[1]:2048x768+0+0 definisce una regione che copre due monitor con risoluzione 1024x768 posizionati uno di fianco all'altro. .It Ic region_padding Larghezza, in pixel, dello spazio lasciato vuoto all'interno di una regione. Questa opzione pu\[`o] essere disabilitata usando il valore 0. .It Ic spawn_position Posizione da assegnare alle finestre al momento della loro creazione. I valori possibili sono .Ar first (prima), .Ar next (successiva), .Ar previous (precedente) e .Ar last (ultima, predefinito). .Ar next e .Ar previous sono intese relativamente alla finestra che detiene il focus. .It Ic stack_enabled Abilita o disabilita la visualizzazione dell'algoritmo di stacking in uso all'interno della barra di stato. .It Ic term_width Imposta la larghezza minima desiderata per i terminali. Se il valore \[`e] maggiore di 0, .Nm cercher\[`a] di regolare la dimensione del font usato dal terminale per fare s\[`i] che la larghezza rimanga superiore ad esso mentre la finestra viene ridimensionata. Solo .Xr xterm 1 \[`e] supportato al momento. L'eseguibile di .Xr xterm 1 non deve avere i bit setuid o setgid abilitati, contrariamente a quanto avviene nella maggior parte dei sistemi. L'utente potrebbe dover creare una copia dell'eseguibile di .Xr xterm 1 , priva dei bit setuid e setgid, e modificare program[term] (vedere la sezione .Sx PROGRAMMI pi\[`u] sotto) in modo che punti a questa copia. .It Ic title_gap Larghezza, in pixel, dello spazio lasciato vuoto tra una finestra e l'altra. L'utilizzo di un valore negativo fa s\[`i] che le finestre si sovrappongano. Se il valore impostato \[`e] l'opposto di .Ic border_width , non verr\[`a] visualizzato alcun bordo tra le finestre. Questa opzione pu\[`o] essere disabilitata usando il valore 0. .It Ic urgent_collapse Disabilita la visualizzazione di un testo sostitutivo per le aree di lavoro che non contengono finestre urgenti. Questa opzione pu\[`o] essere abilitata usando il valore 1. .It Ic urgent_enabled Abilita o disabilita la visualizzazione dell'indicatore di urgenza all'interno della barra di stato. Molti emulatore di terminale devono essere configurati esplicitamente per fare s\[`i] che il carattere "bell" causi la modifica dello stato di urgenza della finestra. Ad esempio, in .Xr xterm 1 , \[`e] necessario aggiungere al file .Pa .Xdefaults la seguente riga: .Bd -literal -offset indent xterm.bellIsUrgent: true .Ed .It Ic verbose_layout Abilita o disabilita la visualizzazione del numero di finestre nell'area principale e del numero di righe (o colonne) nell'area di stacking. Questa opzione pu\[`o] essere disabilitata usando il valore 1. Vedre .Ar master_add , .Ar master_del , .Ar stack_inc e .Ar stack_dec per maggiori informazioni. .It Ic window_class_enabled Abilita o disabilita la visualizzazione del nome della classe (da WM_CLASS) all'interno della barra di stato. Questa opzione pu\[`o] essere abilitata usando il valore 1. .It Ic window_instance_enabled Abilita o disabilita la visualizzazione del nome dell'istanza (da WM_CLASS) all'interno della barra di stato. Questa opzione pu\[`o] essere abilitata usando il valore 1. .It Ic window_name_enabled Abilita o disabilita la visualizzazione del titolo della finestra (da _NET_WM_NAME o WM_NAME) all'interno della barra di stato. Questa opzione pu\[`o] essere abilitata usando il valore 1. .Pp Per impedire che titoli di finestra troppo lunghi impediscano di visualizzare altre informazioni, lo spazio dedicato al titolo \[`e] limitato a 64 caratteri. Vedere .Ic bar_format per maggiori informazioni. .It Ic warp_pointer Posiziona il cursore del mouse al centro della finestra che ha il focus quando vengono utilizzate scorciatoie da tastiera per modificare il focus, cambiare area di lavoro, cambiare regione, etc. Questa opzione pu\[`o] essere abilitata usando il valore 1. .It Ic workspace_limit Imposta il numero di aree di lavoro disponibili. Il valore minimo \[`e] 1, quello massimo \[`e] 22, quello predefinito \[`e] 10. .El .Sh PROGRAMMI .Nm consente di definire azioni personalizzate per l'esecuzione di programmi, e di assegnare queste azioni a scorciatoie da tastiera come \[`e] possibile per quelle predefinite. Vedere la sezione .Sx SCORCIATOIE pi\[`u] sotto. .Pp I programmi vengono definiti come segue: .Pp .Dl program Ns Bo Ar action Bc = Ar progpath Op Ar arg Op Ar arg ... .Pp .Ar action \[`e] qualsiasi identificatore che non vada in conflitto con una delle azioni predefinite, .Ar progpath \[`e] il percorso del programma da eseguire e .Ar arg sono gli argomenti (uno o pi\[`u]) da passare al programma. .Pp Se il percorso o gli argomenti comprendono il carattere .Ql # , questo dovr\[`a] essere preceduto da un carattere di escape, diventando \e#. .Pp I seguenti argomenti verranno sostituiti, al momento dell'esecuzione, con il valore assegnato all'opzione corrispondente: .Pp .Bl -tag -width "$bar_font_color" -offset indent -compact .It Cm $bar_border .It Cm $bar_color .It Cm $bar_font .It Cm $bar_font_color .It Cm $color_focus .It Cm $color_unfocus .It Cm $dmenu_bottom \-b se .Ic bar_at_bottom \[`e] abilitato .It Cm $region_index .It Cm $workspace_index .El .Pp Esempio: .Bd -literal -offset indent program[ff] = /usr/local/bin/firefox http://spectrwm.org/ bind[ff] = MOD+Shift+b # Ora M-S-b esegue Firefox .Ed .Pp Per eliminare la scorciatoia appena definita: .Bd -literal -offset indent bind[] = MOD+Shift+b .Ed .Pp Programmi predefiniti: .Pp .Bl -tag -width "screenshot_wind" -offset indent -compact .It Cm lock xlock .It Cm menu dmenu_run $dmenu_bottom \-fn $bar_font \-nb $bar_color \-nf $bar_font_color \-sb $bar_border \-sf $bar_color .It Cm term xterm .It Cm initscr initscreen.sh # opzionale .It Cm screenshot_all screenshot.sh full # opzionale .It Cm screenshot_wind screenshot.sh window # opzionale .El .Pp I programmi opzionali non verranno verificati a meno di non essere ridefiniti dall'utente. Se uno dei programmi predefiniti fallisce la verifica, \[`e] possibile risolvere l'errore installando il programma corrispondente, modificando il percorso del programma o disabilitando la scorciatoia relativa. .Pp Ad esempio, per ridefinire .Ic lock : .Bd -literal -offset indent program[lock] = xscreensaver\-command \-lock .Ed .Pp Per disabilitare la scorciatoia assegnata a .Ic lock ed impedirne la verifica: .Bd -literal -offset indent bind[] = MOD+Shift+Delete .Ed .Sh SCORCIATOIE .Nm fornisce numerose azioni che possono essere attivate usando combinazioni di tasti sulla tastiera o sul mouse. .Pp Le combinazioni di tasti che coinvolgono il mouse sono le seguenti: .Pp .Bl -tag -width "M-j, M-XXX" -offset indent -compact .It Cm M1 Assegna il focus ad una finestra .It Cm M-M1 Sposta una finestra .It Cm M-M3 Ridimensiona una finestra .It Cm M-S-M3 Ridimensiona una finestra, mantenendola centrata .El .Pp Le scorciatoie da tastiera predefinite sono le seguenti: .Pp .Bl -tag -width "M-j, M-XXXXXX" -offset indent -compact .It Cm M-S- Ns Aq Cm Return term .It Cm M-p menu .It Cm M-S-q quit .It Cm M-q restart .It Cm M- Ns Aq Cm Space cycle_layout .It Cm M-S-\e flip_layout .It Cm M-S- Ns Aq Cm Space stack_reset .It Cm M-h master_shrink .It Cm M-l master_grow .It Cm M-, master_add .It Cm M-. master_del .It Cm M-S-, stack_inc .It Cm M-S-. stack_dec .It Cm M- Ns Aq Cm Return swap_main .It Xo .Cm M-j , .Cm M- Ns Aq Cm TAB .Xc focus_next .It Xo .Cm M-k , .Cm M-S- Ns Aq Cm TAB .Xc focus_prev .It Cm M-m focus_main .It Cm M-u focus_urgent .It Cm M-S-j swap_next .It Cm M-S-k swap_prev .It Cm M-b bar_toggle .It Cm M-S-b bar_toggle_ws .It Cm M-x wind_del .It Cm M-S-x wind_kill .It Cm M- Ns Aq Ar 1-9,0,F1-F12 .Pf ws_ Aq Ar 1-22 .It Cm M-S- Ns Aq Ar 1-9,0,F1-F12 .Pf mvws_ Ns Aq Ar 1-22 .It Cm M- Ns Aq Ar Keypad 1-9 .Pf rg_ Aq Ar 1-9 .It Cm M-S- Ns Aq Ar Keypad 1-9 .Pf mvrg_ Aq Ar 1-9 .It Cm M- Ns Aq Cm Right ws_next .It Cm M- Ns Aq Cm Left ws_prev .It Cm M- Ns Aq Cm Up ws_next_all .It Cm M- Ns Aq Cm Down ws_prev_all .It Cm M-a ws_next_move .It Cm M-S- Ns Aq Cm Left ws_prev_move .It Cm M-S- Ns Aq Cm Up ws_prior .It Cm M-S- Ns Aq Cm Right rg_next .It Cm M-S- Ns Aq Cm Left rg_prev .It Cm M-s screenshot_all .It Cm M-S-s screenshot_wind .It Cm M-S-v version .It Cm M-t float_toggle .It Cm M-S- Ns Aq Cm Delete lock .It Cm M-S-i initscr .It Cm M-w iconify .It Cm M-S-w uniconify .It Cm M-e maximize_toggle .It Cm M-S-r always_raise .It Cm M-v button2 .It Cm M-- width_shrink .It Cm M-= width_grow .It Cm M-S-- height_shrink .It Cm M-S-= height_grow .It Cm M-[ move_left .It Cm M-] move_right .It Cm M-S-[ move_up .It Cm M-S-] move_down .It Cm M-S-/ name_workspace .It Cm M-/ search_workspace .It Cm M-f search_win .El .Pp Le azioni predefinite disponibili sono le seguenti: .Pp .Bl -tag -width "M-j, M-XXXX" -offset indent -compact .It Cm term Esegue un terminale (vedere la sezione .Sx PROGRAMMI pi\[`u] in alto). .It Cm menu Mostra il menu (vedere la sezione .Sx PROGRAMMI pi\[`u] in alto). .It Cm quit Chiude .Nm . .It Cm restart Riavvia .Nm . .It Cm cycle_layout Passa al layout successivo. .It Cm flip_layout Inverte l'area principale e quella di stacking. .It Cm stack_reset Riporta il layout al suo stato iniziale. .It Cm master_shrink Riduce la dimensione dell'area principale. .It Cm master_grow Aumenta la dimensione dell'area principale. .It Cm master_add Aggiunge una finestra all'area principale. .It Cm master_del Rimuove una finestra dall'area principale. .It Cm stack_inc Aggiunge una riga (o colonna) all'area di stacking. .It Cm stack_dec Rimuove una riga (o colonna) dall'area di stacking. .It Cm swap_main Sposta la finestra corrente nell'area principale. .It Cm focus_next Assegna il focus alla finestra successiva. .It Cm focus_prev Assegna il focus alla finestra precedente. .It Cm focus_main Assegna il focus alla finestra principale dell'area di lavoro. .It Cm focus_urgent Assegna il focus alla finestra urgente successiva. Verr\[`a] effettuato, se necessario, il passaggio ad un'altra area di lavoro. .It Cm swap_next Inverte la finestra corrente con quella successiva. .It Cm swap_prev Inverte la finestra corrente con quella precedente. .It Cm bar_toggle Modifica la visibilit\[`a] della barra di stato a livello globale. .It Cm bar_toggle_ws Modifica la visibilit\[`a] della barra di stato nell'area di lavoro corrente. .It Cm wind_del Chiude la finestra corrente. .It Cm wind_kill Distrugge la finestra corrente. .It Cm ws_ Ns Ar n Passa all'area di lavoro .Ar n , dove .Ar n \[`e] un valore compreso tra 1 e .Ic workspace_limit . .It Cm mvws_ Ns Ar n Sposta la finestra corrente nell'area di lavoro .Ar n , dove .Ar n \[`e] un numero compreso tra 1 e .Ic workspace_limit . .It Cm rg_ Ns Ar n Assegna il focus alla regione .Ar n , dove .Ar n \[`e] un numero compreso tra 1 e 9. .It Cm mvrg_ Ns Ar n Sposta la finestra corrente nella regione .Ar n , dove .Ar n \[`e] un numero compreso tra 1 e 9. .It Cm ws_next Passa all'area di lavoro non vuota successiva. .It Cm ws_prev Passa all'area di lavoro non vuota precedente. .It Cm ws_next_all Passa all'area di lavoro successiva. .It Cm ws_prev_all Passa all'area di lavoro precedente. .It Cm ws_next_move Passa all'area di lavoro successiva, spostando allo stesso tempo la finestra corrente. .It Cm ws_prev_move Passa all'area di lavoro precedente, spostando allo stesso tempo la finestra corrente. .It Cm ws_prior Passa all'ultima area di lavoro visitata. .It Cm rg_next Passa alla regione successiva. .It Cm rg_prev Passa alla regione precedente. .It Cm screenshot_all Cattura l'intera schermata chiamando l'apposito script (vedere la sezione .Sx PROGRAMMI pi\[`u] in alto). .It Cm screenshot_wind Cattura una singola finestra chiamando l'apposito script (vedere la sezione .Sx PROGRAMMI pi\[`u] in alto). .It Cm version Modifica la visibilit\[`a] del numero di versione all'interno della barra di stato. .It Cm float_toggle Modifica la finestra che detiene il focus, portandola da floating a tiled e viceversa. .It Cm lock Blocca lo schermo (vedere la sezione .Sx PROGRAMMI pi\[`u] in alto). .It Cm initscr Inizializza nuovamente tutti gli schermi (vedere la sezione .Sx PROGRAMMI pi\[`u] in alto). .It Cm iconify Minimizza la finestra che detiene il focus. .It Cm uniconify Ripristina la finestra selezionata tramite .Xr dmenu 1 . .It Cm maximize_toggle Modifica lo stato di massimizzazione della finestra che detiene il focus. .It Cm always_raise Se impostato, le finestre tiled possono oscurare le finestre floating. .It Cm button2 Simula la pressione del tasto centrale del mouse. .It Cm width_shrink Riduce la larghezza di una finestra floating. .It Cm width_grow Aumenta la larghezza di una finestra floating. .It Cm height_shrink Riduce l'altezza di una finestra floating. .It Cm height_grow Aumenta l'altezza di una finestra floating. .It Cm move_left Sposta una finestra floating verso sinistra di un'unit\[`a]. .It Cm move_right Sposta una finestra floating verso destra di un'unit\[`a]. .It Cm move_up Sposta una finestra floating verso l'alto di un'unit\[`a]. .It Cm move_down Sposta una finestra floating verso il basso di un'unit\[`a]. .It Cm name_workspace Assegna un nome all'area di lavoro corrente. .It Cm search_workspace Cerca un'area di lavoro. .It Cm search_win Cerca una finestra all'interno dell'area di lavoro corrente. .El .Pp Le scorciatoie da tastiera personalizzate vengono definite come segue: .Pp .Dl bind Ns Bo Ar action Bc = Ar keys .Pp .Ar action \[`e] una delle azioni predefinite descritte sopra, oppure la stringa vuota (per disabilitare la scorciatoia). .Ar keys \[`e] composta da uno o pi\[`u] tasti modificatore (eg. MOD, Mod1, Shift, etc.) e uno o pi\[`u] tasti normali (eg. b, Space, etc.) separati da .Ql + . .Pp Esempio: .Bd -literal -offset indent bind[reset] = Mod4+q # Assegna l'azione reset alla scorciatoia Win+q bind[] = Mod1+q # disabilita la scorciatoia predefinita Alt+q .Ed .Pp Per usare il valore dell'opzione .Ic modkey in una scorciatoia, specificare MOD come modificatore. .Pp Pi\[`u] scorciatoie possono essere assegnate alla stessa azione. .Pp Per usare dei caratteri non latini, come \[oa] o \[*p], all'interno di una scorciatoia, \[`e] necessario specificare il nome xkb del carattere anzich\['e] il carattere stesso. Eseguendo .Xr xev 1 e premendo un tasto mentre la finestra del programma detiene il focus, \[`e] possibile leggere il nome xkb corrispondente al tasto premuto. Ad esempio, per \[oa]: .Bd -literal -offset indent KeyPress event, serial 41, synthetic NO, window 0x2600001, root 0x15a, subw 0x0, time 106213808, (11,5), root:(359,823), state 0x0, keycode 24 (keysym 0xe5, aring), same_screen YES, XLookupString gives 2 bytes: (c3 a5) "\[oa]" XmbLookupString gives 2 bytes: (c3 a5) "\[oa]" XFilterEvent returns: False .Ed .Pp Il nome xkb \[`e] aring. Quindi, all'interno di .Pa spectrwm.conf sar\[`a] possibile aggiungere la seguente riga: .Bd -literal -offset indent bind[program] = MOD+aring .Ed .Sh MAPPE DI TASTIERA \[`E] possibile caricare le scorciatoie da un file di configurazione separato tramite l'opzione .Ic keyboard_mapping : questo consente di utilizzare scorciatoie specifiche del proprio layout di tastiera. .Pp Vengono forniti i seguenti file: .Pp .Bl -tag -width "spectrwm_XX.confXXX" -offset indent -compact .It Cm spectrwm_cz.conf Layout per tastiere ceche .It Cm spectrwm_es.conf Layout per tastiere spagnole .It Cm spectrwm_fr.conf Layout per tastiere francesi .It Cm spectrwm_fr_ch.conf Layout per tastiere francesi (Svizzera) .It Cm spectrwm_se.conf Layout per tastiere svedesi .It Cm spectrwm_us.conf Layout per tastiere americane .El .Sh QUIRK \[`E] possibile specificare "quirk" da applicare a quelle finestre (ad esempio applicazioni a schermo intero e finestre di dialogo) che richiedono un comportamento speciale da parte di un gestore di finestre tiling come .Nm . .Pp La configurazione predefinita, per quanto riguarda i quirk, \[`e] la seguente: .Pp .Bl -tag -width "OpenOffice.org N.M:VCLSalFrameXXX" -offset indent \ -compact .It Firefox\-bin:firefox\-bin TRANSSZ .It Firefox:Dialog FLOAT .It Gimp:gimp FLOAT + ANYWHERE .It MPlayer:xv FLOAT + FULLSCREEN + FOCUSPREV .It OpenOffice.org 2.4:VCLSalFrame FLOAT .It OpenOffice.org 3.1:VCLSalFrame FLOAT .It pcb:pcb FLOAT .It xine:Xine Window FLOAT + ANYWHERE .It xine:xine Panel FLOAT + ANYWHERE .It xine:xine Video Fullscreen Window FULLSCREEN + FLOAT .It Xitk:Xitk Combo FLOAT + ANYWHERE .It Xitk:Xine Window FLOAT + ANYWHERE .It XTerm:xterm XTERM_FONTADJ .El .Pp I quirk disponibili sono i seguenti: .Pp .Bl -tag -width "XTERM_FONTADJXXX" -offset indent -compact .It FLOAT Le finestre saranno sempre floating. .It TRANSSZ Modifica la dimensione delle finestre di dialogo in base al valore di .Ic dialog_ratio (vedere la sezione .Sx FILE DI CONFIGURAZIONE pi\[`u] in alto). .It ANYWHERE Consenti alle finestre di decidere la propria posizione. .It XTERM_FONTADJ Regola la dimensione dei font di .Xr xterm 1 quando la dimensione delle finestre viene modificata. .It FULLSCREEN Non mostrare il bordo. .It FOCUSPREV Alla chiusura di una finestra, il focus verr\[`a] assegnato alla finestra che lo deteneva in precedenza e non alla finestra precedente nello stack. .It NOFOCUSONMAP Non assegnare il focus alle finestre quando vengono create. Questo quirk viene ignorato se il valore di .Ic focus_mode \[`e] .Ar follow . .It FOCUSONMAP_SINGLE Assegna il focus alle finestre quando vengono create solo se non sono gi\[`a] presenti delle finestre con la stessa classe e istanza nell'area di lavoro. Questo quirk viene ignorato se il valore di .Ic focus_mode \[`e] .Ar follow . .It OBEYAPPFOCUSREQ Assegna il focus alle finestre quando viene richiesto tramite un messaggio di tipo _NET_ACTIVE_WINDOW con sorgente 1. Se la sorgente \[`e] 0 (non specificato) o 2 (pager), la richiesta viene sempre accolta. .It IGNOREPID Ignora il PID nella scelta dell'area di lavoro iniziale per le nuove finestre. Molto utile per le applicazioni (eg. terminali) che creano pi\[`u] finestre all'interno dello stesso processo. .It IGNORESPAWNWS Ignora l'area di lavoro in cui \[`e] stata eseguita la scorciatoia da tastiera nella scelta dell'area di lavoro iniziale per le nuove finestre. .It WS Ns Bq Ar n Obbliga le nuove finestre ad essere assegnate all'area di lavoro .Ar n . .El .Pp I quirk personalizzati vengono definiti come segue: .Pp .Dl quirk Ns Bo Ar class Ns Bo : Ns Ar instance Ns Bo : Ns Ar name Bc Bc Bc = Ar quirk Op + Ar quirk ... .Pp .Ar class , .Ar instance (opzionale) e .Ar name (opzionale) sono dei pattern che vengono usati per determinare a quali finestre i quirk debbano essere applicati e .Ar quirk \[`e] uno dei quirk descritti in precedenza. .Pp I pattern vengono interpretati come espressioni regolari estese POSIX. I simboli ':', '[' e ']' devono essere preceduti da '\\' per essere considerati letteralmente. Vedere .Xr regex 7 per ulteriori informazioni sulle espressioni regolari estese POSIX. .Pp Ad esempio: .Bd -literal -offset indent quirk[MPlayer] = FLOAT + FULLSCREEN + FOCUSPREV # Le finestre con \ classe 'MPlayer' sono floating quirk[.*] = FLOAT # Le finestre sono floating quirk[.*:.*:.*] = FLOAT # Come sopra quirk[Firefox:Navigator] = FLOAT # Le finestre di navigazione di \ Firefox sono floating quirk[::Console] = FLOAT # Le finestre la cui classe non \[`e] impostata \ e il cui nome \[`e] 'Console' sono floating quirk[\\[0-9\\].*:.*:\\[\\[\\:alnum\\:\\]\\]*] = FLOAT # Le finestre la \ cui classe inizia con un numero e il cui nome \[`e] non definito o \ contiene solo caratteri alfanumerici, senza spazi, sono floating quirk[pcb:pcb] = NONE # Rimuove i quirk predefiniti .Ed \[`E] possibile ottenere .Ar class , .Ar instance e .Ar name eseguendo .Xr xprop 1 e selezionando la finestra desiderata. In questo esempio, \[`e] stata selezionata la finestra principale di Firefox: .Bd -literal -offset indent $ xprop | grep \-E "^(WM_CLASS|_NET_WM_NAME|WM_NAME)" WM_CLASS(STRING) = "Navigator", "Firefox" WM_NAME(STRING) = "spectrwm - ConformalOpenSource" _NET_WM_NAME(UTF8_STRING) = "spectrwm - ConformalOpenSource" .Ed .Pp Il comando .Xr xprop 1 visualizza WM_CLASS nel seguente formato: .Bd -literal -offset indent WM_CLASS(STRING) = "", "" .Ed .Pp In questo caso, bisognerebbe aggiungere al file di configurazione la seguente riga: .Bd -literal -offset indent quirk[Firefox:Navigator] = FLOAT .Ed .Pp .Nm assegna alcuni quirk in automatico, basandosi sul valore della propriet\[`a] _NET_WM_WINDOW_TYPE, nel seguente modo: .Pp .Bl -tag -width "_NET_WM_WINDOW_TYPE_TOOLBARXXX" -offset indent -compact .It _NET_WM_WINDOW_TYPE_DOCK FLOAT + ANYWHERE .It _NET_WM_WINDOW_TYPE_TOOLBAR FLOAT + ANYWHERE .It _NET_WM_WINDOW_TYPE_UTILITY FLOAT + ANYWHERE .It _NET_WM_WINDOW_TYPE_SPLASH FLOAT .It _NET_WM_WINDOW_TYPE_DIALOG FLOAT .El .Pp In tutti gli altri casi gli unici quirk assegnati alle finestre saranno quelli predefiniti o, con precedenza maggiore, quelli specificati nel file di configurazione. .Sh EWMH .Nm implementa in maniera parziale la specifica EWMH, Extended Window Manager Hints: questo consente di controllare le finestre, oltre che .Nm stesso, da script e programmi esterni. Per sfruttare questo supporto, .Nm dovr\[`a] ricevere degli eventi di tipo ClientMessage; questo tipo di messaggio pu\[`o] essere inviato dalla riga di comando usando tool come .Xr wmctrl 1 e .Xr xdotool 1 . Il formato dei messaggi \[`e] definito nella specifica EWMH. .Pp L'identificativo della finestra che detiene il focus pu\[`o] essere ottenuto leggendo il valore della propriet\[`a] _NET_ACTIVE_WINDOWS della root window. Ad esempio, per visualizzare il titolo della finestra: .Bd -literal -offset indent $ WINDOWID=`xprop \-root _NET_ACTIVE_WINDOW | grep \-o "0x.*"` $ xprop \-id $WINDOWID _NET_WM_NAME | grep \-o "\\".*\\"" .Ed .Pp Il focus pu\[`o] essere assegnato ad una finestra inviando un messaggio di tipo _NET_ACTIVE_WINDOW alla root window, ad esempio: .Bd -literal -offset indent $ wmctrl \-i \-a 0x4a0000b .Ed .Pp Le finestre possono essere chiuse inviando un messaggio di tipo _NET_CLOSE_WINDOW, ad esempio: .Bd -literal -offset indent $ wmctrl \-i \-c 0x4a0000b .Ed .Pp Le finestre possono essere portate da floating a tiled, e viceversa, aggiungendo o rimuovendo l'atomo _NET_WM_STATE_ABOVE dalla propriet\[`a] _NET_WM_STATE della finestra. Per fare ci\[`o], \[`e] necessario inviare un messaggio di tipo _NET_WM_STATE, ad esempio: .Bd -literal -offset indent $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_ABOVE .Ed .Pp Le finestre possono essere minimizzate e ripristinate sostituendo _NET_WM_STATE_HIDDEN a _NET_WM_STATE_ABOVE nell'esempio precedente: .Bd -literal -offset indent $ wmctrl \-i \-r 0x4a0000b \-b toggle,_NET_WM_STATE_HIDDEN .Ed .Pp Le finestre floating possono essere ridimensionate e spostate tramite l'invio di un messaggio di tipo _NET_MOVERESIZE_WINDOW, ad esempio: .Bd -literal -offset indent $ wmctrl \-i \-r 0x4a0000b \-e 0,100,50,640,480 .Ed In questo caso, la con id 0x4a0000b finestra viene spostata in (100,50) e la sua dimensione diventa 640x480. .Pp I messaggi di tipo _NET_MOVERESIZE_WINDOW che fanno riferimento a finestre tiled verranno ignorati. .Sh SEGNALI Il segnale HUP fa riavviare .Nm . .Sh FILE .Bl -tag -width "/etc/spectrwm.confXXX" -compact .It Pa ~/.spectrwm.conf File di configurazione specifico dell'utente. .Nm . .It Pa /etc/spectrwm.conf File di configurazione globale. .El .Sh ORIGINE .Nm \[`e] ispirato a xmonad & dwm. .Sh AUTORI .An -nosplit .Nm \[`e] stato scritto da: .Pp .Bl -tag -width "Ryan Thomas McBride Aq mcbride@countersiege.com " -offset \ indent -compact .It Cm Marco Peereboom Aq marco@peereboom.us .It Cm Ryan Thomas McBride Aq mcbride@countersiege.com .It Cm Darrin Chandler Aq dwchandler@stilyagin.com .It Cm Pierre-Yves Ritschard Aq pyr@spootnik.org .It Cm Tuukka Kataja Aq stuge@xor.fi .It Cm Jason L. Wright Aq jason@thought.net .It Cm Reginald Kennedy Aq rk@rejii.com .It Cm Lawrence Teo Aq lteo@lteo.net .It Cm Tiago Cunha Aq tcunha@gmx.com .It Cm David Hill Aq dhill@mindcry.org .El