SINTASSI
spectrwmDESCRIZIONE
è 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ù importanti. Ha delle impostazioni predefinite ragionevoli e non richiede all'utente di imparare un nuovo linguaggio per modificarne la configurazione. È stato scritto dagli hacker per gli hacker, ed ha come obiettivo quello di essere piccolo, compatto e veloce.All'avvio, legge le impostazioni presenti nel suo file di configurazione, spectrwm.conf Vedere la sezione Sx FILE DI CONFIGURAZIONE più sotto.
Le seguenti notazioni verranno utilizzate all'interno di questa pagina:
- M
- Meta
- S
- Shift
- Aq Name
- Tasto Name
- M1
- Tasto 1 (sinistro) del mouse
- M3
- Tasto 3 (destro) del mouse
è 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ù sotto per informazioni sulle impostazioni predefinite e sulle possibilità di personalizzazione.
FILE DI CONFIGURAZIONE
da precedenza al file di configurazione specifico dell'utente, ~/.spectrwm.conf Se quel file non è disponibile, tenta di utilizzare il file di configurazione globale /etc/spectrwm.confIl formato del file è
keyword = setting
Ad esempio:
color_focus = red
Le impostazioni di tipo binario possono essere abilitate e disabilitate utilizzando rispettivamente i valori 1 e 0.
I colori devono essere specificati usando il formato usato da XQueryColor(3).
I commenti iniziano con #. Qualora fosse necessario usare usare `#' come parte di un'opzione, questo dovrà essere preceduto da un backslash, eg. \#.
Il file di configurazione supporta le seguenti impostazioni:
- autorun
- All'avvio, esegue un'applicazione nell'area di lavoro specificata. Il formato da utilizzare è ws Bo idx Bc : application eg. ws[2]:xterm esegue xterm(1) nell'area di lavoro 2.
- bar_action
- Script esterno che produce informazioni aggiuntive, come ad esempio quelle sullo stato di carica della batteria, da inserire nella barra di stato.
- bar_at_bottom
- Posiziona la barra di stato in fondo ad ogni regione anziché in cima.
- bar_borders Bq x
- Colore del bordo della barra di stato nello schermo x
- bar_border_unfocus Bq x
- Colore del bordo della barra di stato nelle regioni dello schermo x che non hanno il focus.
- bar_border_width
- Imposta lo spessore del bordo della barra di stato, in pixel. Il bordo può essere disabilitato usando il valore 0.
- bar_color Bq x
- Colore di sfondo della barra di stato nello schermo x
- bar_enabled
- Imposta il valore predefinito di bar_toggle il valore predefinito per questa opzione è 1.
- bar_enabled_ws Bq x
- Imposta il valore predefinito di bar_toggle_ws per l'area di lavoro x il valore predefinito per questa opzione è 1.
- bar_font
-
Font da usare per la barra di stato.
Il font può essere specificato usando Xft o X Logical Font
Description (XLFD).
È 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 è in formato Xft, verrà usato Xft.
Quando Xft è in uso, verrà 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; è bene
tenere conto del fatto che
dmenu(1)
non supporta Xft.
Esempio con Xft:
bar_font = Terminus:style=Regular:pixelsize=14:antialias=true bar_font = -*-profont-medium-*-*-*-11-*-*-*-*-*-*-*,Terminus:pixelsize=14,-*-clean-medium-*-*-*-12-*-*-*-*-*-*-*
Esempio con gruppi di font:
bar_font = -*-terminus-medium-*-*-*-14-*-*-*-*-*-*-* bar_font = -*-profont-medium-*-*-*-11-*-*-*-*-*-*-*,-*-terminus-medium-*-*-*-14-*-*-*-*-*-*-*,-*-clean-medium-*-*-*-12-*-*-*-*-*-*-*
Per ottenere un elenco dei font disponibili sul proprio sistema, usare fc-list1 o xlsfonts(1). L'applicazione xfontsel(1) può essere d'aiuto per il formato XLFD.
- bar_font_color Bq x
- Colore del testo nella barra di stato nello schermo x
- bar_format
-
Imposta il formato da utilizzare per la barra di stato,
sovrascrivendo
clock_format
e tutte le opzioni che terminano con
enabled
Il formato viene passato a
strftime(3)
prima di essere usato, e può contenere le seguenti sequenze
di caratteri:
- Sequenza di caratteri Ta Sostituita con
- +< Ta Lascia uno spazio
- +A Ta Output dello script esterno
- +C Ta Classe della finestra corrente (da WM_CLASS)
- +D Ta Nome dell'area di lavoro corrente
- +F Ta Indicatore di float
- +I Ta Indice dell'area di lavoro corrente
- +M Ta Numero di finestre minimizzate nell'area di lavoro corrente
- +N Ta Numero dello schermo corrente
- +P Ta Classe e istanza della finestra corrente, separate da due punti
- +S Ta Algoritmo di gestione delle finestre in uso
- +T Ta Istanza della finestra corrente (da WM_CLASS)
- +U Ta Indicatore di urgenza
- +V Ta Versione del programma
- +W Ta Nome della finestra corrente (da _NET_WM_NAME o WM_NAME)
- ++ Ta Il carattere `+'
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.
- bar_justify
-
Allinea il test all'interno della barra di stato.
I valori possibili sono
left
(sinistra),
center
(centro) e
right
(destra).
Se il valore scelto non è left il testo potrebbe non risultare allineato correttamente. Vedere bar_format per maggiori informazioni.
- bind Bq x
- Associa una combinazione di tasti all'azione x Vedere la sezione Sx SCORCIATOIE più sotto.
- border_width
- Imposta lo spessore del bordo delle finestre, in pixel. Il bordo può essere disabilitato usando il valore 0.
- 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ò essere disabilitata usando il valore 0.
- clock_enabled
- Abilita o disabilita l'orologio nella barra di stato. Se viene usato il valore 0, è possibile inserire un orologio personalizzato nello script esterno definito in bar action
- iconic_enabled
- Visualizza nella barra di stato il numero di finestre minimizzate. Questo indicatore può essere abilitato usando il valore 1.
- color_focus
- Colore del bordo della finestra che detiene il focus. Il colore predefinito è il rosso.
- color_focus_maximized
- Colore del bordo della finestra che detiene il focus, se massimizzata. Il colore predefinito è quello usato per color_focus
- color_unfocus
- Colore del bordo delle finestre che non detengono il focus. Il colore predefinito è rgb:88/88/88.
- color_unfocus_maximized
- Colore del bordo delle finestre che non detengono il focus, se massimizzate. Il colore predefinito è quello usato per color_unfocus
- 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à essere usato il 60% dello spazio disponibile.
- disable_border
- Non mostrare i bordi quando la barra di stato è nascosta e c'è una sola finestra nella regione.
- focus_close
- Imposta quale finestra riceverà il focus in seguito alla chiusura della finestra che lo detiene al momento. I valori possibili sono first (prima), next (successiva), previous (precedente, impostazione predefinita) e last (ultima). next e previous sono intese relativamente alla finestra che è stata chiusa.
- focus_close_wrap
- Se abilitata, l'ultima finestra riceverà il focus quando l'ultima viene chiusa, e viceversa. Questa opzione può essere disabilitata usando il valore 0.
- focus_default
- Finestra che deve ricevere il focus quando nessun'altra finestra lo detiene. I valori possibili sono first (prima) e last (ultima, impostazione predefinita).
- focus_mode
-
Comportamento del focus in relazione al cursore del mouse.
I valori possibili sono:
- default
- Modifica il focus quando viene attraversato un bordo in seguito ad un movimento del cursore o all'interazione con una finestra.
- 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.
- manual
- Modifica il focus solo quando si interagisce con una finestra.
- java_workaround
- Evita alcuni problemi di rendering nelle GUI Java impersonando il window manager LG3D, scritto da Sun. Il valore predefinito è 1.
- 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ù sotto per un elenco dei file che vengono forniti.
- layout
-
Imposta il layout da utilizzare all'avvio.
Definito nel formato
ws Bo idx Bc : master_grow : master_add : stack_inc : always_raise : 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à e aggiunge una finestra all'area di stacking, mantenendo il
comportamento predefinito per le finestre floating.
I valori possibili per
stack_mode
sono
vertical
vertical_flip
horizontal
horizontal_flip
and
fullscreen
Vedere
master_grow
master_shrink
master_add
master_del
stack_inc
stack_dec
e
always_raise
per maggiori informazioni.
Le opzioni che controllano gli algoritmi di gestione delle finestre sono
complesse e possono influenzare altre opzioni, quindi è opportuno
prendere confidenza con esse prima di utilizzare l'opzione
layout
Questa impostazione non viene applicata al riavvio.
- modkey
- Cambia il modificatore. Solitamente Mod1 è il tasto Alt e Mod4 il tasto Windows su un PC.
- name
- Imposta il nome di un'area di lavoro all'avvio. Definito nel formato ws Bo idx Bc : name eg. ws[1]:Console assegna il nome ``Console'' all'area di lavoro 1.
- program Bq p
- Definisce la nuova azione p corrispondente all'esecuzione di un programma. Vedere la sezione Sx PROGRAMMI più sotto.
- quirk Bq c : i : n
- Aggiunge un "quirk" per le finestre di classe c istanza i e nome n Vedere la sezione Sx QUIRK più sotto.
- region
-
Definisce una regione personalizzata, rimuovendo tutte le regioni create in
automatico che occupano la stessa parte dello schermo.
Definita nel formato
screen Bo idx Bc : width x height + x + y
eg. screen[1]:800x1200+0+0.
Per fare sì che una regione copra più monitor, è 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.
- region_padding
- Larghezza, in pixel, dello spazio lasciato vuoto all'interno di una regione. Questa opzione può essere disabilitata usando il valore 0.
- spawn_position
- Posizione da assegnare alle finestre al momento della loro creazione. I valori possibili sono first (prima), next (successiva), previous (precedente) e last (ultima, predefinito). next e previous sono intese relativamente alla finestra che detiene il focus.
- stack_enabled
- Abilita o disabilita la visualizzazione dell'algoritmo di stacking in uso all'interno della barra di stato.
- term_width
- Imposta la larghezza minima desiderata per i terminali. Se il valore è maggiore di 0, cercherà di regolare la dimensione del font usato dal terminale per fare sì che la larghezza rimanga superiore ad esso mentre la finestra viene ridimensionata. Solo xterm(1) è supportato al momento. L'eseguibile di 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 xterm(1), priva dei bit setuid e setgid, e modificare program[term] (vedere la sezione Sx PROGRAMMI più sotto) in modo che punti a questa copia.
- title_gap
- Larghezza, in pixel, dello spazio lasciato vuoto tra una finestra e l'altra. L'utilizzo di un valore negativo fa sì che le finestre si sovrappongano. Se il valore impostato è l'opposto di border_width non verrà visualizzato alcun bordo tra le finestre. Questa opzione può essere disabilitata usando il valore 0.
- urgent_collapse
- Disabilita la visualizzazione di un testo sostitutivo per le aree di lavoro che non contengono finestre urgenti. Questa opzione può essere abilitata usando il valore 1.
- 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ì che il carattere "bell" causi la modifica dello stato di
urgenza della finestra.
Ad esempio, in
xterm(1),
è necessario aggiungere al file
.Xdefaults
la seguente riga:
xterm.bellIsUrgent: true
- 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ò essere disabilitata usando il valore 1. Vedre master_add master_del stack_inc e stack_dec per maggiori informazioni.
- window_class_enabled
- Abilita o disabilita la visualizzazione del nome della classe (da WM_CLASS) all'interno della barra di stato. Questa opzione può essere abilitata usando il valore 1.
- window_instance_enabled
- Abilita o disabilita la visualizzazione del nome dell'istanza (da WM_CLASS) all'interno della barra di stato. Questa opzione può essere abilitata usando il valore 1.
- 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ò essere abilitata usando il valore 1.
Per impedire che titoli di finestra troppo lunghi impediscano di visualizzare altre informazioni, lo spazio dedicato al titolo è limitato a 64 caratteri. Vedere bar_format per maggiori informazioni.
- 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ò essere abilitata usando il valore 1.
- workspace_limit
- Imposta il numero di aree di lavoro disponibili. Il valore minimo è 1, quello massimo è 22, quello predefinito è 10.
PROGRAMMI
consente di definire azioni personalizzate per l'esecuzione di programmi, e di assegnare queste azioni a scorciatoie da tastiera come è possibile per quelle predefinite. Vedere la sezione Sx SCORCIATOIE più sotto.I programmi vengono definiti come segue:
program Bo action Bc = progpath [arg [arg ... ] ]
action è qualsiasi identificatore che non vada in conflitto con una delle azioni predefinite, progpath è il percorso del programma da eseguire e arg sono gli argomenti (uno o più) da passare al programma.
Se il percorso o gli argomenti comprendono il carattere `#' , questo dovrà essere preceduto da un carattere di escape, diventando \#.
I seguenti argomenti verranno sostituiti, al momento dell'esecuzione, con il valore assegnato all'opzione corrispondente:
- $bar_border
- $bar_color
- $bar_font
- $bar_font_color
- $color_focus
- $color_unfocus
- $dmenu_bottom
- -b se bar_at_bottom è abilitato
- $region_index
- $workspace_index
Esempio:
program[ff] = /usr/local/bin/firefox http://spectrwm.org/ bind[ff] = MOD+Shift+b # Ora M-S-b esegue Firefox
Per eliminare la scorciatoia appena definita:
bind[] = MOD+Shift+b
Programmi predefiniti:
- menu
- dmenu_run $dmenu_bottom -fn $bar_font -nb $bar_color -nf $bar_font_color -sb $bar_border -sf $bar_color
- term
- x-terminal-emulator
- lock
-
xscreensaver-command -lock # opzionale
- initscr
-
initscreen.sh # opzionale
- screenshot_all
-
screenshot.sh full # opzionale
- screenshot_wind
-
screenshot.sh window # opzionale
I programmi opzionali non verranno verificati a meno di non essere ridefiniti dall'utente. Se uno dei programmi predefiniti fallisce la verifica, è possibile risolvere l'errore installando il programma corrispondente, modificando il percorso del programma o disabilitando la scorciatoia relativa.
Ad esempio, per ridefinire menu
program[menu] = launchy
Per disabilitare la scorciatoia assegnata a menu ed impedirne la verifica:
bind[] = MOD+p
SCORCIATOIE
fornisce numerose azioni che possono essere attivate usando combinazioni di tasti sulla tastiera o sul mouse.Le combinazioni di tasti che coinvolgono il mouse sono le seguenti:
- M1
- Assegna il focus ad una finestra
- M-M1
- Sposta una finestra
- M-M3
- Ridimensiona una finestra
- M-S-M3
- Ridimensiona una finestra, mantenendola centrata
Le scorciatoie da tastiera predefinite sono le seguenti:
- M-S- Aq Return
- term
- M-p
- menu
- M-S-q
- quit
- M-q
- restart
- M- Aq Space
- cycle_layout
- M-S-\
- flip_layout
- M-S- Aq 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- Aq Return
- swap_main
- M-j M- Aq TAB
-
- focus_next
- M-k M-S- Aq TAB
-
- focus_prev
- M-m
- focus_main
- M-u
- focus_urgent
- M-S-j
- swap_next
- M-S-k
- swap_prev
- M-b
- bar_toggle
- M-S-b
- bar_toggle_ws
- M-x
- wind_del
- M-S-x
- wind_kill
- M- Aq 1-9,0,F1-F12
- ws_ Aq 1-22
- M-S- Aq 1-9,0,F1-F12
- mvws_ Aq 1-22
- M- Aq Keypad 1-9
- rg_ Aq 1-9
- M-S- Aq Keypad 1-9
- mvrg_ Aq 1-9
- M- Aq Right
- ws_next
- M- Aq Left
- ws_prev
- M- Aq Up ws_next_all
- M- Aq Down
- ws_prev_all
- M-a
- ws_next_move
- M-S- Aq Left
- ws_prev_move
- M-S- Aq Up ws_prior
- M-S- Aq Right
- rg_next
- M-S- Aq Left
- rg_prev
- M-s
- screenshot_all
- M-S-s
- screenshot_wind
- M-S-v
- version
- M-t
- float_toggle
- M-S- Aq Delete
- lock
- M-S-i
- initscr
- M-w
- iconify
- M-S-w
- uniconify
- M-e
- maximize_toggle
- 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-f
- search_win
Le azioni predefinite disponibili sono le seguenti:
- term
- Esegue un terminale (vedere la sezione Sx PROGRAMMI più in alto).
- menu
- Mostra il menu (vedere la sezione Sx PROGRAMMI più in alto).
- quit
- Chiude .
- restart
- Riavvia .
- cycle_layout
- Passa al layout successivo.
- flip_layout
- Inverte l'area principale e quella di stacking.
- stack_reset
- Riporta il layout al suo stato iniziale.
- master_shrink
- Riduce la dimensione dell'area principale.
- master_grow
- Aumenta la dimensione dell'area principale.
- master_add
- Aggiunge una finestra all'area principale.
- master_del
- Rimuove una finestra dall'area principale.
- stack_inc
- Aggiunge una riga (o colonna) all'area di stacking.
- stack_dec
- Rimuove una riga (o colonna) dall'area di stacking.
- swap_main
- Sposta la finestra corrente nell'area principale.
- focus_next
- Assegna il focus alla finestra successiva.
- focus_prev
- Assegna il focus alla finestra precedente.
- focus_main
- Assegna il focus alla finestra principale dell'area di lavoro.
- focus_urgent
- Assegna il focus alla finestra urgente successiva. Verrà effettuato, se necessario, il passaggio ad un'altra area di lavoro.
- swap_next
- Inverte la finestra corrente con quella successiva.
- swap_prev
- Inverte la finestra corrente con quella precedente.
- bar_toggle
- Modifica la visibilità della barra di stato a livello globale.
- bar_toggle_ws
- Modifica la visibilità della barra di stato nell'area di lavoro corrente.
- wind_del
- Chiude la finestra corrente.
- wind_kill
- Distrugge la finestra corrente.
- ws_ n
- Passa all'area di lavoro n dove n è un valore compreso tra 1 e workspace_limit
- mvws_ n
- Sposta la finestra corrente nell'area di lavoro n dove n è un numero compreso tra 1 e workspace_limit
- rg_ n
- Assegna il focus alla regione n dove n è un numero compreso tra 1 e 9.
- mvrg_ n
- Sposta la finestra corrente nella regione n dove n è un numero compreso tra 1 e 9.
- 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_next_move
- Passa all'area di lavoro successiva, spostando allo stesso tempo la finestra corrente.
- ws_prev_move
- Passa all'area di lavoro precedente, spostando allo stesso tempo la finestra corrente.
- ws_prior
- Passa all'ultima area di lavoro visitata.
- rg_next
- Passa alla regione successiva.
- rg_prev
- Passa alla regione precedente.
- screenshot_all
- Cattura l'intera schermata chiamando l'apposito script (vedere la sezione Sx PROGRAMMI più in alto).
- screenshot_wind
- Cattura una singola finestra chiamando l'apposito script (vedere la sezione Sx PROGRAMMI più in alto).
- version
- Modifica la visibilità del numero di versione all'interno della barra di stato.
- float_toggle
- Modifica la finestra che detiene il focus, portandola da floating a tiled e viceversa.
- lock
- Blocca lo schermo (vedere la sezione Sx PROGRAMMI più in alto).
- initscr
- Inizializza nuovamente tutti gli schermi (vedere la sezione Sx PROGRAMMI più in alto).
- iconify
- Minimizza la finestra che detiene il focus.
- uniconify
- Ripristina la finestra selezionata tramite dmenu(1).
- maximize_toggle
- Modifica lo stato di massimizzazione della finestra che detiene il focus.
- always_raise
- Se impostato, le finestre tiled possono oscurare le finestre floating.
- 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 verso sinistra di un'unità.
- move_right
- Sposta una finestra floating verso destra di un'unità.
- move_up
- Sposta una finestra floating verso l'alto di un'unità.
- move_down
- Sposta una finestra floating verso il basso di un'unità.
- name_workspace
- Assegna un nome all'area di lavoro corrente.
- search_workspace
- Cerca un'area di lavoro.
- search_win
- Cerca una finestra all'interno dell'area di lavoro corrente.
Le scorciatoie da tastiera personalizzate vengono definite come segue:
bind Bo action Bc = keys
action è una delle azioni predefinite descritte sopra, oppure la stringa vuota (per disabilitare la scorciatoia). keys è composta da uno o più tasti modificatore (eg. MOD, Mod1, Shift, etc.) e uno o più tasti normali (eg. b, Space, etc.) separati da `+'
Esempio:
bind[reset] = Mod4+q # Assegna l'azione reset alla scorciatoia Win+q bind[] = Mod1+q # disabilita la scorciatoia predefinita Alt+q
Per usare il valore dell'opzione modkey in una scorciatoia, specificare MOD come modificatore.
Più scorciatoie possono essere assegnate alla stessa azione.
Per usare dei caratteri non latini, come å o π, all'interno di una scorciatoia, è necessario specificare il nome xkb del carattere anziché il carattere stesso. Eseguendo xev(1) e premendo un tasto mentre la finestra del programma detiene il focus, è possibile leggere il nome xkb corrispondente al tasto premuto. Ad esempio, per å:
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) "å" XmbLookupString gives 2 bytes: (c3 a5) "å" XFilterEvent returns: False
Il nome xkb è aring. Quindi, all'interno di spectrwm.conf sarà possibile aggiungere la seguente riga:
bind[program] = MOD+aring
MAPPE DI TASTIERA
È possibile caricare le scorciatoie da un file di configurazione separato tramite l'opzione keyboard_mapping questo consente di utilizzare scorciatoie specifiche del proprio layout di tastiera.Vengono forniti i seguenti file:
- spectrwm_cz.conf
- Layout per tastiere ceche
- spectrwm_es.conf
- Layout per tastiere spagnole
- spectrwm_fr.conf
- Layout per tastiere francesi
- spectrwm_fr_ch.conf
- Layout per tastiere francesi (Svizzera)
- spectrwm_se.conf
- Layout per tastiere svedesi
- spectrwm_us.conf
- Layout per tastiere americane
QUIRK
È 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 .La configurazione predefinita, per quanto riguarda i quirk, è la seguente:
- 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 disponibili sono i seguenti:
- FLOAT
- Le finestre saranno sempre floating.
- TRANSSZ
- Modifica la dimensione delle finestre di dialogo in base al valore di dialog_ratio (vedere la sezione Sx FILE DI CONFIGURAZIONE più in alto).
- ANYWHERE
- Consenti alle finestre di decidere la propria posizione.
- XTERM_FONTADJ
- Regola la dimensione dei font di xterm(1) quando la dimensione delle finestre viene modificata.
- FULLSCREEN
- Non mostrare il bordo.
- FOCUSPREV
- Alla chiusura di una finestra, il focus verrà assegnato alla finestra che lo deteneva in precedenza e non alla finestra precedente nello stack.
- NOFOCUSONMAP
- Non assegnare il focus alle finestre quando vengono create. Questo quirk viene ignorato se il valore di focus_mode è follow
- FOCUSONMAP_SINGLE
- Assegna il focus alle finestre quando vengono create solo se non sono già presenti delle finestre con la stessa classe e istanza nell'area di lavoro. Questo quirk viene ignorato se il valore di focus_mode è follow
- OBEYAPPFOCUSREQ
- Assegna il focus alle finestre quando viene richiesto tramite un messaggio di tipo _NET_ACTIVE_WINDOW con sorgente 1. Se la sorgente è 0 (non specificato) o 2 (pager), la richiesta viene sempre accolta.
- 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ù finestre all'interno dello stesso processo.
- IGNORESPAWNWS
- Ignora l'area di lavoro in cui è stata eseguita la scorciatoia da tastiera nella scelta dell'area di lavoro iniziale per le nuove finestre.
- WS Bq n
- Obbliga le nuove finestre ad essere assegnate all'area di lavoro n
I quirk personalizzati vengono definiti come segue:
quirk Bo class Bo : instance Bo : name Bc Bc Bc = quirk [+ quirk ... ]
class instance (opzionale) e name (opzionale) sono dei pattern che vengono usati per determinare a quali finestre i quirk debbano essere applicati e quirk è uno dei quirk descritti in precedenza.
I pattern vengono interpretati come espressioni regolari estese POSIX. I simboli ':', '[' e ']' devono essere preceduti da '\' per essere considerati letteralmente. Vedere regex(7) per ulteriori informazioni sulle espressioni regolari estese POSIX.
Ad esempio:
È possibile ottenere class instance e name eseguendo xprop(1) e selezionando la finestra desiderata. In questo esempio, è stata selezionata la finestra principale di Firefox: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 è impostata e il cui nome è 'Console' sono floating quirk[\[0-9\].*:.*:\[\[\:alnum\:\]\]*] = FLOAT # Le finestre la cui classe inizia con un numero e il cui nome è non definito o contiene solo caratteri alfanumerici, senza spazi, sono floating quirk[pcb:pcb] = NONE # Rimuove i quirk predefiniti
$ 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"
Il comando xprop(1) visualizza WM_CLASS nel seguente formato:
WM_CLASS(STRING) = "<instance>", "<class>"
In questo caso, bisognerebbe aggiungere al file di configurazione la seguente riga:
quirk[Firefox:Navigator] = FLOAT
assegna alcuni quirk in automatico, basandosi sul valore della proprietà _NET_WM_WINDOW_TYPE, nel seguente modo:
- _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 gli unici quirk assegnati alle finestre saranno quelli predefiniti o, con precedenza maggiore, quelli specificati nel file di configurazione.
EWMH
implementa in maniera parziale la specifica EWMH, Extended Window Manager Hints: questo consente di controllare le finestre, oltre che stesso, da script e programmi esterni. Per sfruttare questo supporto, dovrà ricevere degli eventi di tipo ClientMessage; questo tipo di messaggio può essere inviato dalla riga di comando usando tool come wmctrl(1) e xdotool(1). Il formato dei messaggi è definito nella specifica EWMH.L'identificativo della finestra che detiene il focus può essere ottenuto leggendo il valore della proprietà _NET_ACTIVE_WINDOWS della root window. Ad esempio, per visualizzare il titolo della finestra:
$ WINDOWID=`xprop -root _NET_ACTIVE_WINDOW | grep -o "0x.*"` $ xprop -id $WINDOWID _NET_WM_NAME | grep -o "\".*\""
Il focus può essere assegnato ad una finestra inviando un messaggio di tipo _NET_ACTIVE_WINDOW alla root window, ad esempio:
$ wmctrl -i -a 0x4a0000b
Le finestre possono essere chiuse inviando un messaggio di tipo _NET_CLOSE_WINDOW, ad esempio:
$ wmctrl -i -c 0x4a0000b
Le finestre possono essere portate da floating a tiled, e viceversa, aggiungendo o rimuovendo l'atomo _NET_WM_STATE_ABOVE dalla proprietà _NET_WM_STATE della finestra. Per fare ciò, è necessario inviare un messaggio di tipo _NET_WM_STATE, ad esempio:
$ wmctrl -i -r 0x4a0000b -b toggle,_NET_WM_STATE_ABOVE
Le finestre possono essere minimizzate e ripristinate sostituendo _NET_WM_STATE_HIDDEN a _NET_WM_STATE_ABOVE nell'esempio precedente:
$ wmctrl -i -r 0x4a0000b -b toggle,_NET_WM_STATE_HIDDEN
Le finestre floating possono essere ridimensionate e spostate tramite l'invio di un messaggio di tipo _NET_MOVERESIZE_WINDOW, ad esempio:
In questo caso, la con id 0x4a0000b finestra viene spostata in (100,50) e la sua dimensione diventa 640x480.$ wmctrl -i -r 0x4a0000b -e 0,100,50,640,480
I messaggi di tipo _NET_MOVERESIZE_WINDOW che fanno riferimento a finestre tiled verranno ignorati.
SEGNALI
Il segnale HUP fa riavviare .FILE
- ~/.spectrwm.conf
- File di configurazione specifico dell'utente. .
- /etc/spectrwm.conf
- File di configurazione globale.
ORIGINE
è ispirato a xmonad & dwm.AUTORI
An -nosplit è stato scritto da:
- Marco Peereboom Aq [email protected]
- Ryan Thomas McBride Aq [email protected]
- Darrin Chandler Aq [email protected]
- Pierre-Yves Ritschard Aq [email protected]
- Tuukka Kataja Aq [email protected]
- Jason L. Wright Aq [email protected]
- Reginald Kennedy Aq [email protected]
- Lawrence Teo Aq [email protected]
- Tiago Cunha Aq [email protected]
- David Hill Aq [email protected]