[TUTORIAL] Configurações básicas do Sway wm no Fedora

fhenrique
editado junho 2020 em Tutoriais

FONTES

Fedora Magazine
https://thomas-leister.de/en/sway-window-manager/
Github do Sway
Wiki ArchLinux

APRESENTAÇÃO

E aí pessoal, tudo bem? Alguns dias atrás fiquei com interesse em experimentar o Sway wm. Houve vários motivos para o experimentar, e os principais são que eu queria diminuir o consumo de recursos do sistema (sou usuário do gnome-shell), mas mantendo o uso de algum compositor baseado no wayland e também queria ver se realmente melhora o fluxo de trabalho nesse modo Tiling de funcionar.
Mas para deixar bem claro o nível desse tutorial, e também para justificar quaisquer erros e apontar os riscos para quem seguir adiante, eu sou usuário do Linux desde 2011, no entanto, não entendo de programação, nem de scripts ou qualquer outra coisa que me deixasse confortável para dizer que sou um usuário, ao menos, intermediário. No entanto, acredito valer a pena escrever esse tutorial porque não há muita coisa do sway em pt-br, e muito menos específico para o Fedora, o que é uma pena porque o sway já parece estar em boa forma para alguns casos de uso.
Então vamos lá.

INSTALAÇÃO

Para montar esse gestor de janelas recomendo os seguintes pacotes, e vou tentar resumir à seguir a necessidade deles:

  • sway: é o windows manager, propriamente dito, então ele é o único obrigatório;
  • waybar: a barra padrão de sistema do sway é muito simples. Se você preferir algo com mais transparência, cores e ícones, você vai querer essa barra alternativa;
  • alacritty: é um terminal com renderização via GPU. Não sei qual os efeitos disso, eu o instalei, mas ele não funcionou em meu notebook (já velho, de 2011);
  • light: uma ferramenta para controlar o brilho da tela. Eu a instalei, porém acho que não estou usando-a realmente, pois as teclas de controlar o brilho funcionaram sem precisar configurar nada.
  • sgtk-menu: o Sway possui o dmenu para lançar aplicativos, novamente, é uma ferramenta muito simples, então preferi pegar uma alternativa e escolhi o sgtk-menu. Mas já há muitas outras opções.
  • Grim: meu gnome-screenshot não funcionou no sway, então essa é a ferramenta que vai lhe substituir.
  • Swaylock: nossa ferramenta para bloquear a tela.

Dois desses programas não estavam nos repositórios oficiais do Fedora, mas havia opções no Copr, então, caso queiram o waybar e o alacritty, habilitem esses repositórios extras:

sudo dnf copr enable alebastr/waybar
sudo dnf copr enable pschyska/alacritty

Confirmem a habilitação DOS repositórios e prossigam para a instalação dos pacotes que vocêS desejam:

sudo dnf install sway waybar alacritty light sgtk-menu grim swaylock

Depois da instalação, encerrem a sessão e procurem na tela de login o menu com a opção sway, e aí é só logar.

CONFIGURANDO

O sway tem pouca coisa clicável com o mouse por padrão. E toda a dinâmica desse gerenciador é centrada em atalhos de teclado. Os atalhos do sway vão estar ligados a uma tecla principal (tecla $mod), que geralmente é a tecla com símbolo do windows (também chamada de super/meta), mas que em alguns casos pode ser a tecla alt.

Alguns usos básicos para podermos prosseguir:

$mod+2 → altera para a segunda área de trabalho, assim como $mod+3 para a terceira e aí por diante;
$mod+Enter → abre o terminal padrão, mas pode ser que nenhum ainda esteja definido; verifique;
$mod+d → executa o dmenu, e é só digitar para encontrar aplicativos
$mod+v → os próximos aplicativos abrirão repartindo a tela na horizontal
$mod+b → os próximos aplicativos abrirão repartindo a tela na vertical (é o padrão)
$mod+shift+q → fecha uma aplicação
$mod+shift+c → reinicia o sway, e será importante para aplicar as nossas alterações.

Antes de começarmos a mexer no código desse gerenciador de janelas, é aconselhável termos um arquivo de configuração local do sway. Isso vai facilitar o acesso, a edição e a recuperação da área de trabalho em alguma eventual necessidade.

Então, abra um terminal, e use esse comando para criar uma nova pasta de configuração local no seu diretório pessoal:

mkdir -p .config/sway

E então, com o mando abaixo, copie o arquivo de configuração do sway do diretório raiz para o seu diretório pessoal:

cp /etc/sway/config ~/.config/sway/config

Arquivo copiado! Você pode acessar ele usando seu editor de texto favorito. E pode encontrá-lo pelo gestor de arquivos no endereço .config/sway/ da sua pasta pessoal. Eu costumo usar o gedit, então se você tem ele instalado, no terminal:

gedit ~/.config/sway/config

Teclado e touchpad

Para configurarmos esses dois, vamos precisar pegar algumas informações sobre os periféricos que estamos usando. Para isso digite o seguinte comando no terminal:

swaymsg -t get_inputs

E ele vai te dar uma lista com várias informações, procure no nome do dispostivo (Input device) por “keyboard”, isso deve te levar ao seu teclado, assim como “touchpad” ao touchpad. Deles, nós precisaremos do Identifier, no caso do meu tenho o seguinte:

Input device: AT Translated Set 2 keyboard
Type: Keyboard
Identifier: 1:1:AT_Translated_Set_2_keyboard
Product ID: 1
Vendor ID: 1
Active Keyboard Layout: Portuguese (Brazil)
Libinput Send Events: enabled

Input device: SynPS/2 Synaptics TouchPad
Type: Touchpad
Identifier: 2:7:SynPS/2_Synaptics_TouchPad
Product ID: 7
Vendor ID: 2
Libinput Send Events: enabled

há no arquivo de configuração do sway uma seção chamada “Input configuration”, onde há, inclusive, um exemplo de configuração de touchpad. Vamos a usar para manter uma organização, então logo abaixo eu vou inserir as seguintes linhas no arquivo:

# Configuração do meu teclado
input "1:1:AT_Translated_Set_2_keyboard" {
xkb_layout br
}

veja que o texto que estará dentro das aspas é aquele referente ao seu Identifier, e que o “br” é para que o teclado se configure ao layout padrão de teclado brasileiro.

E para configurar o meu touchpad, vou adicionar o seguinte:

# Configuração do meu touchpad
input "2:7:SynPS/2_Synaptics_TouchPad" {
tap enabled
natural_scroll enabled
middle_emulation enabled
}

você pode escolher ou não habilitar essas opções para o touchpad, segundo seu uso. Lembre-se de editar o código para inserir o Identifier do seu touchpad. Para que as alterações sejam aplicadas, você deve salvar o arquivo de configuração, e apertar $mod+shift+c, recarregando o sway com as novas alterações.

No meu notebook as teclas de alterar a luminosidade funcionaram normalmente, porém não tive a mesma sorte com as teclas para alterar o volume. Para resolver isso, inseri em uma parte do arquivo de configuração o seguinte:

# tentando corrigir os atalhos para alterar áudio no teclado
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
#não está funcionando
#bindsym XF86AudioPlay exec playerctl play-pause
#bindsym XF86AudioNext exec playerctl next
#bindsym XF86AudioPrev exec playerctl previous

Como pode ser visto, as três últimas opções não funcionaram para mim, mas vocês podem descomentar as três últimas linhas e verificar se conseguem pausar uma música usando o teclado, por exemplo.

Terminal e lançador de aplicações

Para definir o terminal padrão, ainda no arquivo config do sway, você pode pesquisar as seguintes linhas:

# Your preferred terminal emulator
set $term tilix

tilix é o comando para iniciar o terminal Tilix que eu instalei no meu sistema, mas você pode inserir o comando do terminal do seu uso, como, por exemplo, o

set $term alacritty

Para o lançador de aplicações, logo abaixo do código anterior, vemos o seguinte:

# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
set $menu dmenu_path | dmenu | xargs swaymsg exec –

na última linha, eu substituí por:

set $menu sgtk-menu -f -a

Se o sgtk-menu não lhe agradar, outras opções bem conhecidas são Wofi e Ulauncher, mas eles podem requerer um código diferente do sgtk-menu para funcionar corretamente.

Screenshot e tela de bloqueio

Se você instalou o grim e o swaylock , basta adicionar o seguinte:

# captura de tela
bindsym $mod+Print exec /usr/bin/grim
# bloqueio de tela
bindsym $mod+Ctrl+l exec swaylock –colo=000000

Pro bloqueio de tela funcionar, será preciso um passo a mais, o de dar permissão para o arquivo swaylock executar como programa. Para isso digite o seguinte em um terminal:

sudo chmod a-s /usr/bin/swaylock

Lembre-se de salvar e reiniciar o sway para ver as alterações. Ao pressionar as teclas $mod+Print vai ser tirado um print de toda a sua tela e a imagem será salva na sua pasta pessoal. A tela de bloqueio está configurada apenas para a tela ficar na cor preta, e somente será ativada ao pressionar $mod+Ctrl+l. Certamente há maneiras mais avançadas de usar essas ferramentas, e torná-las bem mais agradáveis visualmente. Mas eis o mínimo aí, eu também estou aprendendo ainda.

Waybar

Essa é a mais conhecida barra alternativa para o sway. Para usá-la, primeiro, nós vamos fazer outra alteração no arquivo de configuração do sway. Procurem pela seção “Status Bar”. Vocês devem encontrar algo, mais ou menos, assim:

#
# Status Bar:
#
# Read man 5 sway-bar for more information about this section.
bar {
position top

# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done

colors {
    statusline #ffffff
    background #323232
    inactive_workspace #32323200 #32323200 #5c5c5c
}

}

E nós vamos alterar para o seguinte:

#
# Status Bar:
#
# Read man 5 sway-bar for more information about this section.
bar {
swaybar_command waybar
}

Para configurar a nossa nova barra, precisamos, novamente, criar um arquivo local para ela. Portanto, segue o comando:

mkdir -p .config/waybar
cp /etc/xdg/waybar/config ~/.config/waybar/config
cp /etc/xdg/waybar/style.css ~/.config/waybar/style.css

Esses são os dois arquivos de configuração da Waybar.

Com todas essas dicas, você já tem o mínimo para entender um pouco de como alterar e adicionar coisas no sway, mas vamos precisar de mais pesquisas para extrair todo o poder que ele oferece.

Para concluir, posso dizer que não sinto meu fluxo de trabalho mais facilitado do que o que eu tinha com o gnome-shell, o que pode ser uma coisa que leve tempo, habituação. Porém é surpreendente, pro meu notebook de 9 anos de idade, a diferença do consumo de recursos e da velocidade com que algumas coisas funcionam. Minha percepção é até que o notebook esquenta menos. E então vou permanecer com o sway. Espero que outras pessoas que o usem possam colocar mais dicas nesse tópico. Vlw pessoal, abraços.

Comentários