NOME¶
spectrwm —
gerenciador de janela para o
X11
SINOPSE¶
spectrwm
DESCRIÇÃO¶
spectrwm é um gerenciador de janela minimalista que tenta
não atrapalhar a valorosa forma real da tela para que essa possa ser
usada para coisas muito mais importantes. Tem sensatos defaults e não
requer que alguém aprenda uma linguagem de programação para
fazer qualquer configuração. Ele foi escrito por hackers para
hackers e esforça-se em ser pequeno, compacto e rápido.
Quando o
spectrwm inicia, ele lê as
configurações do seu arquivo de configuração,
spectrwm.conf. Veja a seção
ARQUIVOS DE
CONFIGURAÇÃO logo abaixo.
A seguinte notação é usada por toda essa página:
- M
- Meta
- S
- Shift
- ⟨Name⟩
- Nome da tecla
- M1
- Botão 1 do mouse
- M3
- Botão 3 do mouse
spectrwm é muito simples de usar. Muitas das
ações são iniciadas por atalhos do mouse ou do teclado. Veja a
seção
ATALHOS logo abaixo para os
defaults e as personalizações.
ARQUIVOS DE
CONFIGURAÇÃO¶
spectrwm primeiro tenta abrir o arquivo de
configuração no diretório do usuário,
~/.spectrwm.conf. Se o arquivo não estiver
disponível, então tenta abrir o arquivo de configuração
global
/etc/spectrwm.conf.
Assim é o formato do arquivo:<palavra-chave> =
<configuração>. Por exemplo:
color_focus = red
Para habilitar ou desabilitar uma opção usa-se o 1 ou 0,
respectivamente.
O arquivo suporta as seguintes palavras-chave:
- color_focus
- Cor da borda da janela atualmente focada.
- color_unfocus
- Cor da borda das janelas fora de foco.
- bar_enabled
- Habilita ou desabilita a barra de status.
- bar_border[x]
- Cor da borda da barra de status na tela
x.
- bar_color[x]
- Cor da janela da barra de status na tela
x.
- bar_font_color[x]
- Cor da fonte na barra de status na tela
x.
- bar_font
- Fonte da barra de status.
- bar_action
- Script externo que preenche a barra de status com
informações adicionais, como tempo de vida da bateria.
- bar_delay
- Freqüência da atualização, em segundos,
do script externo que preenche a barra de status.
- bar_at_bottom
- Coloca a barra de status na parte inferior de cada
região, ao invés da parte superior.
- stack_enabled
- Habilita ou desabilita mostrar o atual algorítmo de
empilhamento na barra de status.
- clock_enabled
- Habilita ou desabilita mostrar o relógio na barra de
status. Desabilite configurando para 0, então um relógio
personalizado pode ser usado no script bar_action.
- dialog_ratio
- Algumas aplicações tem janelas de diálogo
que são muito pequenas para serem úteis. Essa taxa é o
tamanho da tela para o qual elas serão redimencionadas. Por exemplo,
0.6 equivale a 60% do tamanho da tela física.
- region
- Aloca uma região personalizada, removendo qualquer
região automaticamente detectada que ocupe o mesmo espaço na
tela. Definido no formato screen[<idx>]:WIDTHxHEIGHT+X+Y, e.g.
screen[1]:800x1200+0+0.
- term_width
- Configura a largura mínima preferida para o terminal
Se esse valor for maior do que 0, spectrwm vai tentar
ajustar os tamanhos da fonte no terminal para manter a largura do terminal
acima desse número enquanto a janela é redimencionada. Apenas o
xterm(1) é suportado atualmente. O binário do
xterm(1) não deve ser setuid ou setgid, que é
o default em muitos sistemas. Os usuários podem precisar de
configurar program[term] (veja a seção
PROGRAMAS ) para usar uma cópia
alternativa do binário do xterm(1) sem o bit setgid
ativado.
- title_class_enabled
- Habilita ou desabilita mostrar a classe da janela na barra
de status. Habilite configurando para 1.
- title_name_enabled
- Habilita ou desabilita mostrar o título da janela na
barra de status. Habilite configurando para 1.
- window_name_enabled
- Habilita ou desabilita mostrar a nome da janela na barra de
status. Habilite configurando para 1.
- modkey
- Muda a tecla de modificação. Mod1 é
geralmente a tecla ALT e Mod4 é a tecla windows em um PC.
- focus_mode
- Usar um valor de follow_cursor vai fazer o gerenciador de
janela focar a janela sob o mouse quando trocando áreas de trabalho e
criando janelas.
- disable_border
- Remove a borda quando a barra estiver desabilitada e houver
apenas uma janela na tela.
- program[p]
- Define uma nova ação para executar um programa
p. Veja a seção
PROGRAMAS logo abaixo.
- bind[x]
- Cria uma combinação de teclas de atalho para a
ação x. Veja a seção
ATALHOS logo abaixo.
- quirk[c:n]
- Adicione "quirk" para janelas com classe
c e nome n. Veja a
seção QUIRKS logo abaixo.
Cores precisam ser especificadas pela especificação
XQueryColor(3) e fontes pela especificação
XQueryFont(3).
Para listar as fontes disponíveis em seu sistema veja o manual do
fc-list(1) ou do
xlsfonts(1). A
aplicação
xfontsel(1) pode te ajudar a mostrar a X
Logical Font Description ("XLFD") usada na configuração da
palavra-chave bar_font.
PROGRAMAS¶
spectrwm te permite definir ações personalizadas
para executar programas de sua escolha e então criar um atalho para elas
da mesma forma que as ações embutidas. Veja a seção
ATALHOS logo abaixo.
Os programas default são descritos abaixo:
- 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
Programas personalizados no arquivo de configuração são
especificados da seguinte maneira:
program[<name>] = <progpath>
[<arg> [... <arg>]]
⟨name⟩ é um identificador qualquer que não conflite com
uma ação ou palavra-chave embutida, ⟨progpath⟩ é
o programa desejado, e ⟨arg⟩ é zero ou mais argumentos para
o programa.
As seguintes variáveis representam valores configuráveis no
spectrwm (veja a seção
ARQUIVOS DE
CONFIGURAÇÃO logo acima), e podem ser usadas nos campos
⟨arg⟩ e serão substituídas pelos valores na hora em
que o programa for executado:
- $bar_border
-
- $bar_color
-
- $bar_font
-
- $bar_font_color
-
- $color_focus
-
- $color_unfocus
-
Exemplo:
program[ff] = /usr/local/bin/firefox http://spectrwm.org/
bind[ff] = Mod+f # Agora Mod+F executa o firefox
Para desfazer a configuração anterior:
bind[] = Mod+f
program[ff] =
ATALHOS¶
spectrwm provê muitas funções (ou
ações) acessadas pelos atalhos do teclado ou do mouse.
Os atuais atalhos do mouse são descritos abaixo:
- M1
- Foca a janela
- M-M1
- Move a janela
- M-M3
- Redimenciona a janela
- M-S-M3
- Redimenciona a janela enquanto a mantém
centralizada
Os atalhos default do teclado são descritos abaixo:
- M-S-⟨Return⟩
- term
- M-p
- menu
- M-S-q
- quit
- M-q
- restart spectrwm
- M-⟨Space⟩
- cycle_layout
- M-S-⟨Space⟩
- reset_layout
- M-h
- master_shrink
- M-l
- master_grow
- M-,
- master_add
- M-.
- master_del
- M-S-,
- stack_inc
- M-S-.
- stack_del
- 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-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
Os nomes das ações e suas descrições estão listados
abaixo:
- term
- Executa um novo terminal (veja a seção
PROGRAMAS logo acima)
- menu
- Menu (veja a seção
PROGRAMAS logo acima)
- quit
- Sair spectrwm
- restart
- Reiniciar spectrwm
- cycle_layout
- Circula entre os possíveis layouts
- reset_layout
- Reinicia o layout
- master_shrink
- Encolhe a área mestre
- master_grow
- Aumenta a área mestre
- master_add
- Adiciona janelas na área mestre
- master_del
- Remove janelas da área mestre
- stack_inc
- Adiciona colunas/linhas para a área de
empilhamento
- stack_del
- Remove colunas/linhas da área de empilhamento
- swap_main
- Move a janela atual para a área mestre
- focus_next
- Foca a próxima janela da área de trabalho
- focus_prev
- Foca a janela anterior da área de trabalho
- focus_main
- Foca a janela principal da área de trabalho
- swap_next
- Troca com a próxima janela da área de
trabalho
- swap_prev
- Troca com a janela anterior da área de trabalho
- bar_toggle
- Ativa/desativa a barra de status em todas as áreas de
trabalho
- wind_del
- Apaga a janela atual da área de trabalho
- wind_kill
- Destrói a janela atual da área de trabalho
- ws_n
- Troca para a área de trabalho n,
onde n vai de 1 até 10
- mvws_n
- Move a janela atual para a área de trabalho
n, onde n vai de 1 até
10
- ws_next
- Troca para a próxima área de trabalho que possua
uma janela
- ws_prev
- Troca para a área de trabalho anterior que possua uma
janela
- ws_prior
- Troca para a última área de trabalho
visitada
- screen_next
- Move o ponteiro para a próxima região
- screen_prev
- Move o ponteiro para a região anterior
- screenshot_all
- Tira screenshot da tela inteira (se habilitado) (veja a
seção PROGRAMAS logo
acima)
- screenshot_wind
- Tira screenshot da janela selecionada (se habilitado) (veja
a seção PROGRAMAS logo
acima)
- version
- Ativa/desativa a versão na barras de status
- float_toggle
- Troca o estado da janela focada entre flutuante e
tiled
- lock
- Trava a tela (veja a seção
PROGRAMAS logo acima)
- initscr
- Reinicializa as telas físicas (veja a seção
PROGRAMAS logo acima)
Atalhos personalizados no arquivo de configuração são
especificados da seguinte maneira:
bind[<action>] =
<keys>
⟨action⟩ é uma das ações listadas acima (ou vazio)
e ⟨keys⟩ está na forma de zero ou mais teclas de
modificação (MOD, Mod1, Shift, etc.) e uma ou mais teclas normais
(b, space, etc.), separadas pelo "+". Por exemplo:
bind[reset] = Mod4+q # combina a tecla Windows + q para reiniciar
bind[] = Mod1+q # desfaz a combinação Alt + q
Múltiplas combinações de teclas podem ser usadas para a mesma
ação.
QUIRKS¶
spectrwm provê "quirks" que manipulam janelas
que devem ser tratadas especialmente em um gerenciador de janela
"tiling", tal como algumas aplicações de diálogos e
tela cheia.
Os quirks default estão descritos abaixo:
- Firefox-bin:firefox-bin
- TRANSSZ
- Firefox:Dialog
- FLOAT
- Gimp:gimp
- FLOAT + ANYWHERE
- MPlayer:xv
- FLOAT + FULLSCREEN
- 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
Os quirks em si estão descritos abaixo:
- FLOAT
- Esta janela não deve ser "tiled", mas
permitida a flutuar livremente.
- TRANSSZ
- Ajusta o tamanho das janelas transitórias que sejam
muito pequenas usando dialog_ratio (veja a seção
ARQUIVOS DE
CONFIGURAÇÃO).
- ANYWHERE
- Permite que a janela posicione a si mesma,
não-centrada.
- XTERM_FONTADJ
- Ajusta as fontes do xterm quando redimencionando.
- FULLSCREEN
- Remove a borda para permitir a janela usar todo o tamanho
da tela.
Quirks personalizados no arquivo de configuração são
especificados da seguinte maneira:
quirk[<class>:<name>] =
<quirk> [+ <quirk> ...]
⟨class⟩ e ⟨name⟩ especificam a janela ao qual o
quirk se aplica, e ⟨quirk⟩ é um dos quirks da lista acima.
Por exemplo:
quirk[MPlayer:xv] = FLOAT + FULLSCREEN # faz o mplayer tocar livremente
quirk[pcb:pcb] = NONE # remove quirk existente
Você pode obter ⟨class⟩ e ⟨name⟩ executando o
xprop(1) e então clicando na janela desejada. No seguinte exemplo a
jenela principal do Firefox foi clicada:
$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "Navigator", "Firefox"
Note que usando o
grep(1) para WM_CLASS você obtém class e name. No
exemplo acima a configuração do quirk poderia ser:
quirk[Firefox:Navigator] = FLOAT
SINAIS¶
Enviar ao
spectrwm um sinal HUP fará com que o mesmo seja
reiniciado.
ARQUIVOS¶
- ~/.spectrwm.conf
- Configurações específicas do
usuário.
- /etc/spectrwm.conf
- Configurações globais.
HISTÓRIA¶
spectrwm foi inspirado pelo xmonad & dwm.
AUTORES¶
spectrwm foi escrito por
Marco
Peereboom ⟨marco@peereboom.us⟩,
Ryan
Thomas McBride ⟨mcbride@countersiege.com⟩ e
Darrin Chandler
⟨dwchandler@stilyagin.com⟩.
BUGS¶
Atualmente o menu, invocado com
M-p, depende do dmenu.