Provided by: spectrwm_1.0.0-1_amd64
NOME
spectrwm — gestore di finestre per X11
SINTASSI
spectrwm
DESCRIZIONE
spectrwm è un gestore di finestre minimale che cerca di stare in disparte, in modo che il prezioso spazio sullo schermo possa essere usato per cose più importanti. Hai dei default sensati e non costringe l'utente ad imparare un linguaggio di programmazione per configurarlo. È stato scritto dagli hacker per gli hacker e cerca di essere piccolo, compatto e veloce. Quando spectrwm viene avviato, legge le impostazioni presenti nel file di configurazione spectrwm.conf. Vedere la sezione FILE DI CONFIGURAZIONE più sotto. In questa pagina di manuale viene usata la seguente notazione: M Meta S Shift ⟨Nome⟩ Tasto nome M1 Tasto 1 (sinistro) del mouse M3 Tasto 3 (destro) del mouse spectrwm è molto semplice da usare. La maggior parte delle operazioni vengono svolte usando combinazioni di tasti sulla tastiera o sul mouse. Vedere la sezione SCORCIATOIE più sotto per i default e le possibilità di personalizzazione.
FILE DI CONFIGURAZIONE
spectrwm prova per prima cosa ad aprire il file di configurazione personale dell'utente, ~/.spectrwm.conf. Se il file in questione non è disponibile, prova ad usare il file di configurazione globale /etc/spectrwm.conf. Il formato di questo file è <chiave> = <valore>. Per esempio: color_focus = red Per abilitare o disabilitare un'opzione, usare i valori 1 o 0 rispettivamente. Il file supporta le seguenti chiavi: autorun Esegue un'applicazione nel workspace specificato all'avvio. Definito nel formato ws[<idx>]:applicazione, eg. ws[2]:xterm esegue un xterm nell'area di lavoro 2. bar_action Script esterno che aggiunge informazioni come la carica della batteria alla barra di stato. bar_at_bottom Posiziona la barra di stato sul fondo dello schermo anziché in cima. bar_border[x] Colore del bordo della barra di stato nello schermo x. bar_border_width Spessore del bordo attorno alla barra di stato in pixel. Il bordo può essere disabilitato usando il valore 0. bar_color[x] Colore della barra di stato nello schermo x. bar_delay Frequenza di aggiornamento, in secondi, dello script esterno che aggiunge informazioni alla barra di stato. bar_enabled Abilita o disabilita la barra di stato. bar_font Font della barra di stato. bar_font_color[x] Colore del testo della barra di stato nello schermo x. bar_justify Giustifica il testo nella barra di stato. I valori possibili sono left (sinistra), center (centro), e right (destra). bind[x] Assegna una combinazione di tasti all'azione x. Vedere la sezione SCORCIATOIE più sotto. border_width Spessore del bordo delle finestre in pixel. Il valore 0 disabilita il bordo. clock_enabled Abilita o disabilita l'orologio nella barra di stato. Se disabilitato, usando il valore 0, è possibile usare un orologio personalizzato nello script specificato in bar_action. color_focus Colore del bordo della finestra che ha il focus. color_unfocus Colore del bordo delle finestre che non hanno il focus. dialog_ratio Alcune applicazioni hanno finestre di dialogo troppo piccole per risultare utili. Questa è la percentuale dello schermo che verrà usata per le finestre di dialogo: ad esempio, 0.6 indica il 60% della dimensione fisica dello schermo. disable_border Rimuovi il bordo dalle finestre se la barra di stato è nascosta e c'è una sola finestra sullo schermo. focus_mode Se viene usato il valore follow_cursor (segui il cursore), il gestore di finestre darà il focus alla finestra sotto il puntatore quando si cambia area di lavoro o si creano finestre. keyboard_mapping Ignora tutte le scorciatoie esistenti e carica delle nuove scorciatoie dal file specificato. Vedere la sezione FILE DI MAPPATURA DELLA TASTIERA per una lista di file di mappatura che vengono forniti per diversi layout di tastiera. layout Layout da utilizzare all'avvio. Definito nel formato ws[<idx>]:master_grow:master_add:stack_inc:layout:always_raise:stack_mode, eg. ws[2]:-4:0:1:0:horizontal assegna il layout orizzontale all'area di lavoro 2, riduce l'area principale di 4 unità, aggiunge una finestra allo stack e mantiene il comportamento predefinito per quanto riguarda le finestre floating. I valori possibili per stack_mode sono vertical (verticale), horizontal (orizzontale) e fullscreen (a schermo intero). Fare riferimento a master_grow, master_shrink, master_add, master_del, stack_inc, stack_del e always_raise per ulteriori informazioni. Queste impostazioni sono complesse e hanno effetti secondari; è opportuno familiarizzare con questi comandi prima di modificare l'opzione layout. Questa impostazione non viene applicata dopo il restart. modkey Cambia il tasto modificatore. Solitamente Mod1 è il tasto ALT e Mod4 è il tasto Windows su un PC. program[p] Definisce una nuova azione per lanciare il programma p. Vedere la sezione PROGRAMMI più sotto. quirk[c:n] Aggiunge un "quirk" per le finestre di classe c e nome n. Vedere la sezione QUIRK più sotto. region Alloca una regione personalizzata, rimuovendo qualsiasi regione automaticamente rilevata stia occupando lo stesso spazio sullo schermo. Definita nel formato screen[<idx>]:LARGHEZZAxALTEZZA+X+Y, ad esempio screen[1]:800x1200+0+0. Per fare sì che più monitor vengano considerati come una singola entità è sufficiente creare una regione abbastanza grande da contenerli, eg. screen[1]:2048x760+0+0 unisce due monitor con risoluzione 1024x768 posizionati uno di fianco all'altro. stack_enabled Abilita o disabilita la visualizzazione dell'algoritmo di stacking corrente nella barra di stato. term_width Imposta la dimensione minima preferita per il terminale. Se questo valore è maggiore di 0, spectrwm cercherà di adattare la dimensione del testo nel terminale in modo che la larghezza del terminale rimanga sopra il valore quando la finestra viene ridimensionata. Al momento solo xterm(1) è supportato. L'eseguibile di xterm(1) deve essere setuid o setgid perché questo funzioni: nella maggior parte dei sistemi, questo avviene di default. L'utente potrebbe voler impostare program[term] (vedere la sezione PROGRAMMI più sotto) per usare una seconda copia dell'eseguibile di xterm(1) che non abbia il bit setgid impostato. title_class_enabled Abilita o disabilita la visualizzazione della classe della finestra nella barra di stato. Impostare a 1 per abilitare. title_name_enabled Abilita o disabilita la visualizzazione del titolo della finestra nella barra di stato. Impostare a 1 per abilitare. urgent_enabled Abilita o disabilita l'hint "urgente". In molti emulatori di terminale, il supporto deve essere abilitato separatamente: per xterm, ad esempio, è necessario aggiungere la riga xterm.urgentOnBell: true al file .Xdefaults. verbose_layout Abilita o disabilita la visualizzazione dei valori correnti di master e stack nella barra di stato. Impostare a 1 per abilitare. window_name_enabled Abilita o disabilita la visualizzazione del nome della finestra nella barra di stato. Impostare a 1 per abilitare. I colori devono essere specificati nel formato usato da XQueryColor(3) e i font in quello usato da XQueryFont(3). Per avere una lista dei font disponibili sul proprio sistema utilizzare fc-list(1) o xlsfonts(1). L'applicazione xfontsel(1) è utile per visualizzare la X Logical Font Description ("XLFD") usata per la chiave bar_font.
PROGRAMMI
spectrwm consente la definizione di azioni personalizzate per lanciare programmi di propria scelta, che possono essere assegnate a combinazioni di tasti nello stesso modo in cui è possibile farlo con le azioni predefinite. Vedere la sezione SCORCIATOIE più sotto. I programmi di default sono descritti qui sotto: term xterm screenshot_all screenshot.sh full screenshot_wind screenshot.sh window lock xlock initscr initscreen.sh menu dmenu_run -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_border -sf $bar_color I programmi personalizzati vengono specificati con la seguente sintassi: program[<nome>] = <percorso> [<arg> [... <arg>]] ⟨nome⟩ è un qualsiasi identificatore che non va in conflitto con un'azione predefinita o una chiave, ⟨percorso⟩ è il programma desiderato, e ⟨arg⟩ sono zero o più argomenti da passare al programma. Le seguenti variabili rappresentano valori impostabili in spectrwm (vedere la sezione FILE DI CONFIGURAZIONE sopra), e possono essere usati nel campo ⟨arg⟩ dove saranno sostituite con il valore al momento del lancio del programma: $bar_border $bar_color $bar_font $bar_font_color $color_focus $color_unfocus Esempio: program[ff] = /usr/local/bin/firefox http://spectrwm.org/ bind[ff] = Mod+Shift+b # adesso Mod+Shift+b lancia firefox Per eliminare la combinazione precedente: bind[] = Mod+Shift+b program[ff] =
SCORCIATOIE
spectrwm fornisce molte funzioni (o azioni) accessibili tramite combinazioni di tasti sul mouse o sulla tastiera. Le scorciatoie assegnate al mouse sono: M1 Dà focus alla finestra M-M1 Muove la finestra M-M3 Ridimensiona la finestra M-S-M3 Ridimensiona la finestra mantenendola centrata Le scorciatoie da tastiera di default sono: M-S-⟨Return⟩ term M-p menu M-S-q quit M-q restart M-⟨Space⟩ cycle_layout M-S-\ flip_layout M-S-⟨Space⟩ stack_reset M-h master_shrink M-l master_grow M-, master_add M-. master_del M-S-, stack_inc M-S-. stack_dec M-⟨Return⟩ swap_main M-j, M-⟨TAB⟩ focus_next M-k, M-S-⟨TAB⟩ focus_prev M-m focus_main M-S-j swap_next M-S-k swap_prev M-b bar_toggle M-x wind_del M-S-x wind_kill M-⟨n⟩ ws_n M-S-⟨n⟩ mvws_n M-⟨Right⟩ ws_next M-⟨Left⟩ ws_prev M-⟨Up⟩ ws_next_all M-⟨Down⟩ ws_prev_all M-a ws_prior M-S-⟨Right⟩ screen_next M-S-⟨Left⟩ screen_prev M-s screenshot_all M-S-s screenshot_wind M-S-v version M-t float_toggle M-S ⟨Delete⟩ lock M-S-i initscr M-w iconify M-S-w uniconify M-S-r always_raise M-v button2 M-- width_shrink M-= width_grow M-S-- height_shrink M-S-= height_grow M-[ move_left M-] move_right M-S-[ move_up M-S-] move_down M-S-/ name_workspace M-/ search_workspace M-s search_win I nomi delle azioni e le relative descrizioni sono le seguenti: term Lancia un nuovo terminale (vedi PROGRAMMI più in alto). menu Menu (vedi PROGRAMMI più in alto). quit Chiude spectrwm. restart Riavvia spectrwm. cycle_layout Cambia layout. flip_layout Inverti l'area principale e l'area di stacking. stack_reset Re-inizializza il layout. master_shrink Restringe l'area principale. master_grow Allarga l'area principale. master_add Aggiunge finestre all'area principale. master_del Rimuove finestre dall'area principale. stack_inc Aumenta il numero di righe/colonne all'area di stacking. stack_dec Riduce il numero di righe/colonne dall'area di stacking. swap_main Muove la finestra corrente nell'area principale. focus_next Dà il focus alla finestra successiva. focus_prev Dà il focus alla finestra precedente. focus_main Dà il focus alla finestra principale. swap_next Scambia con la finestra successiva dell'area di lavoro. swap_prev Scambia con la finestra precedente dell'area di lavoro. bar_toggle Mostra/nascondi la barra di stato da tutte le aree di lavoro. wind_del Chiude la finestra corrente. wind_kill Distrugge la finestra corrente. ws_n Passa all'area di lavoro n, dove n è compreso tra 1 e 10. mvws_n Sposta la finestra corrente nell'area di lavoro n, dove n è compreso tra 1 e 10. ws_next Passa all'area di lavoro non vuota successiva. ws_prev Passa all'area di lavoro non vuota precedente. ws_next_all Passa all'area di lavoro successiva. ws_prev_all Passa all'area di lavoro precedente. ws_prior Passa all'ultima area di lavoro visitata. screen_next Sposta il puntatore nella regione successiva. screen_prev Sposta il puntatore nella regione precedente. screenshot_all Cattura uno screenshot dell'intero schermo, se abilitato (vedere la sezione PROGRAMMI più in alto). screenshot_wind Cattura uno screenshot di una singola finestra, se abilitato (vedere la sezione PROGRAMMI più in alto). version Abilita/disabilita il numero di versione nella barra di stato. float_toggle Passa la finestra che ha il focus da floating a tiled. lock Blocca lo schermo (vedere la sezione PROGRAMMI più in alto). initscr Re-inizializza gli schermi fisici (vedere la sezione PROGRAMMI più in alto). iconify Minimizza (unmap) la finesta che ha il focus. uniconify Massimizza (map) la finestra selezionata tramite dmenu. always_raise Quando è abilitato, le finestre floating possono essere oscurate da finestre tiled. button2 Simula la pressione del tasto centrale del mouse. width_shrink Riduce la larghezza di una finestra floating. width_grow Aumenta la larghezza di una finestra floating. height_shrink Riduce l'altezza di una finestra floating. height_grow Aumenta l'altezza di una finestra floating. move_left Sposta una finestra floating di un passo verso sinistra. move_right Sposta una finestra floating di un passo verso destra. move_up Sposta una finestra floating di un passo verso l'alto. move_down Sposta una finestra floating di un passo verso il basso. name_workspace Assegna un nome all'area di lavoro corrente. search_workspace Cerca un'area di lavoro. search_win Cerca una finestra. Le scorciatoie personalizzate sono specificate nel file di configurazione come segue: bind[<azione>] = <tasti> ⟨azione⟩ è una delle azioni elencate sopra (oppure nulla) e ⟨tasti⟩ è dato da zero o più modificatori (MOD, Mod1, Shift, ecc.) e uno o più tasti normali (b, space, ecc.), separati da "+". Per esempio: bind[reset] = Mod4+q # assegna reset ai tasti Windows + q bind[] = Mod1+q # rimuovi l'assegnazione di Alt + q Più combinazioni di tasti possono essere assegnate alla stessa azione.
FILE DI MAPPATURA DELLA TASTIERA
I file di mappatura per svariati layout di tastiera sono elencati qui sotto. Questi file possono essere utilizzati tramite la chiave di configurazione keyboard_mapping per caricare scorciatoie create appositamente per un determinato layout di tastiera. scrotwm_cz.conf Layout di tastiera per la Repubblica Ceca scrotwm_es.conf Layout di tastiera per la Spagna scrotwm_fr.conf Layout di tastiera per la Francia scrotwm_fr_ch.conf Layout di tastiera per la Svizzera Francese scrotwm_se.conf Layout di tastiera per la Svezia scrotwm_us.conf Layout di tastiera per gli Stati Uniti
QUIRK
spectrwm fornisce la possibilità di specificare dei "quirk" per la gestione di finestre che devono subire un trattamento speciale da un gestore di finestre tiling, come ad esempio alcune finestre di dialogo e applicazioni a schermo intero. I quirk abilitati di default sono elencati qui sotto: Firefox-bin:firefox-bin TRANSSZ Firefox:Dialog FLOAT Gimp:gimp FLOAT + ANYWHERE MPlayer:xv FLOAT + FULLSCREEN + FOCUSPREV OpenOffice.org 2.4:VCLSalFrame FLOAT OpenOffice.org 3.1:VCLSalFrame FLOAT pcb:pcb FLOAT xine:Xine Window FLOAT + ANYWHERE xine:xine Panel FLOAT + ANYWHERE xine:xine Video Fullscreen Window FULLSCREEN + FLOAT Xitk:Xitk Combo FLOAT + ANYWHERE Xitk:Xine Window FLOAT + ANYWHERE XTerm:xterm XTERM_FONTADJ I quirk sono descritti qui sotto: FLOAT Questa finestra deve essere lasciata libera di muoversi (float). TRANSSZ Aggiusta la dimensione delle finestre troppo piccole usando dialog_ratio (vedere FILE DI CONFIGURAZIONE). ANYWHERE Consente alla finestra di decidere da sola dove posizionarsi. XTERM_FONTADJ Ridimensiona il font di xterm quando viene ridimensionata la finestra. FULLSCREEN Rimuove i bordi, consentendo alla finestra di usare l'intera dimensione dello schermo. FOCUSPREV Quando la finestra viene chiusa, dà il focus alla finestra che aveva il focus precedente anziché all'applicazione precedente nello stack. I quirk personalizzati vanno specificati nel file di configurazione come segue: quirk[<classe>:<nome>] = <quirk> [+ <quirk> ...] ⟨classe⟩ e ⟨nome⟩ specificano a quali finestre i quirk vanno applicati, e ⟨quirk⟩ è uno dei quirk presente nella lista sopra. Ad esempio: quirk[MPlayer:xv] = FLOAT + FULLSCREEN + FOCUSPREV quirk[pcb:pcb] = NONE # rimuovi un quirk precedentemente specificato È possibile ottenere ⟨classe⟩ e ⟨nome⟩ usando xprop(1) e facendo click sulla finestra desiderata. Nel seguente esempio è stato fatto click sulla finestra principale di Firefox: $ xprop | grep WM_CLASS WM_CLASS(STRING) = "Navigator", "Firefox" Bisogna tenere conto del fatto che usare grep(1) per trovare WM_CLASS inverte la classe e il nome. Nell'esempio precedente, la dichiarazione del quirk sarebbe quirk[Firefox:Navigator] = FLOAT spectrwm assegna automaticamente i quirk alle finestre in base al valore della proprietà _NET_WM_WINDOW_TYPE in base al seguente schema: _NET_WM_WINDOW_TYPE_DOCK FLOAT + ANYWHERE _NET_WM_WINDOW_TYPE_TOOLBAR FLOAT + ANYWHERE _NET_WM_WINDOW_TYPE_UTILITY FLOAT + ANYWHERE _NET_WM_WINDOW_TYPE_SPLASH FLOAT _NET_WM_WINDOW_TYPE_DIALOG FLOAT In tutti gli altri casi, nessun quirk è automaticamente assegnato alla finestra. I quirk specificati nel file di configurazione hanno la precedenza sui quirk assegnati in automatico.
EWMH
spectrwm implementa in maniera parziale la specifica Extended Window Manager Hints (EWMH). Ciò permette di controllare sia le finestre che spectrwm stesso tramite script e programmi esterni. Per renderlo possibile, spectrwm risponde ad alcuni eventi di tipo ClientMessage; questo tipo di messaggio può essere inviato da un terminale usando programmi come wmctrl(1) e xdotool(1). Per il formato esatto di questi messaggi, si veda la specifica EWMH. L'id della finestra che ha il focus è memorizzato nella proprietà _NET_ACTIVE_WINDOW della root window. È quindi possibile ottenere il titolo della finestra attiva usando xprop(1) e grep(1) $ WINDOWID=`xprop -root _NET_ACTIVE_WINDOW | grep -o "0x.*"` $ xprop -id $WINDOWID WM_NAME | grep -o "\".*\"" Per dare il focus ad una finestra, è sufficiente inviare il messaggio _NET_ACTIVE_WINDOW alla root window. Ad esempio, usando wmctrl(1) (supponendo che 0x4a0000b sia l'id della finestra a cui dare il focus): $ wmctrl -i -c 0x4a0000b Per chiudere una finestra si può inviare il messaggio _NET_CLOSE_WINDOW alla root window. Ad esempio, usando wmctrl(1) (supponendo che 0x4a0000b sia l'id della finestra da chiudere): $ wmctrl -i -c 0x4a0000b Per passare una finestra da floating a tiled si può aggiungere o rimuovere l'atomo _NET_WM_STATE_ABOVE alla proprietà _NET_WM_STATE della finestra, inviando il messaggio _NET_WM_STATE alla root window. Ad esempio, usando wmctrl(1) (supponendo che 0x4a0000b sia l'id della finestra): $ wmctrl -i -r 0x4a0000b -b toggle,_NET_WM_STATE_ABOVE Le finestre floating possono essere ridimensionate o spostate inviando il messaggio _NET_MOVERESIZE_WINDOW alla root window. Ad esempio, usando wmctrl(1) (supponendo che 0x4a0000b sia l'id della finestra da spostare): $ wmctrl -i -r 0x4a0000b -e 0,100,50,640,480 Questo comando sposta la finestra in (100,50) e la ridimensiona a 640x480. I messaggi _NET_MOVERESIZE_WINDOW vengono ignorati per le finestre stacked.
SEGNALI
È possibile riavviare spectrwm inviandogli il segnale HUP.
FILE
~/.spectrwm.conf impostazioni di spectrwm dell'utente. /etc/spectrwm.conf impostazioni globali di spectrwm.
ORIGINE
spectrwm prende ispirazione da xmonad & dwm.
AUTORI
spectrwm è stato scritto da: Marco Peereboom ⟨marco@peereboom.us⟩ Ryan Thomas McBride ⟨mcbride@countersiege.com⟩ Darrin Chandler ⟨dwchandler@stilyagin.com⟩ Pierre-Yves Ritschard ⟨pyr@spootnik.org⟩ Tuukka Kataja ⟨stuge@xor.fi⟩ Jason L. Wright ⟨jason@thought.net⟩ Reginald Kennedy ⟨rk@rejii.com⟩ Lawrence Teo ⟨lteo@lteo.net⟩ Tiago Cunha ⟨tcunha@gmx.com⟩