Sway (Português)

sway é um compositor para Wayland feito para ser totalmente compatível com o i3. De acordo com o site oficial:

Sway é um compositor dinâmico para Wayland e possui configuração compatível com o gerenciador de janelas i3 para X11. Funciona com sua existente configuração do i3 e suporta a maioria de suas funcionalidades, além de extras.
Status de tradução: Esse artigo é uma tradução de Sway. Data da última tradução: 2020-09-13. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Instalação

sway pode ser instalado com o pacote sway. A versão de desenvolvimento pode ser instalada usando wlroots-gitAUR e sway-gitAUR. É aconselhável sempre atualizar o wlroots quando você atualiza o sway, devido a forte dependência.

Você pode instalar também swaylock e swayidle para bloqueio de tela e gerenciador de inatividade.

O lançador de aplicativos padrão é o dmenu e o terminal padrão é o . Antes de executar sway é recomendado instalar ambos ou definir um novo lançador e terminal na configuração.

Iniciando

Manualmente

Para iniciar o Sway, simplesmente execute no console do Linux.

Por um gerenciador de login

A sessão do sway está localizada em , ela é automaticamente reconhecida por qualquer gerenciador de login moderno como GDM e SDDM.

É também possível rodar sway como um serviço de usuário do systemd através do gerenciador de login.

Você também pode usar gerenciador de login somente texto, veja Gerenciadores de exibição#Console.

Configuração

Se você já usa o i3, então copie sua configuração para ~/.config/sway/config e deve funcionar sem problemas. Caso contrário, copie o arquivo de exemplo da configuração para ~/.config/sway/config. Ele está localizado em /etc/sway/config, a menos que a flag tenha sido configurada. Veja para informações sobre a configuração.

Teclado

Por padrão, sway inicia com o teclado US QWERTY. Para configuração por :

Mais detalhes estão disponíveis em e .

O teclado pode também ser configurado usando variáveis de ambiente (, , etc.) quando iniciar o , suas opções de configuração tem precedência sobre váriaveis de ambiente.

Atraso e taxa de digitação

Para mudar o atraso e taxa de digitação você pode adicionar as seguintes linhas para sua seção :

~/.config/sway/config
input <identifier> repeat_delay 300
input <identifier> repeat_rate 30	

Barra de status

sway vem com uma barra de status padrão na forma de swaybar que é executada em um ambiente Wayland puro. swaybar pode chamar um script ou outro programa para mostrar informações na barra de status. Veja sway-bar(5) e para detalhes.

Instalar o programa é uma maneira simples de conseguir uma barra de status prática e padrão sob o Wayland. Tudo que se tem a fazer é adicionar o seguinte trecho no final da sua configuração do sway:

Se você quer que o i3status tenha saída colorida, você pode ajustar da seguinte maneira a configuração dele:

Em ambos os exemplos, os arquivos de configuração instalados a nível de sistema foram copiados para o diretório do usuário e então modificados.

Papel de parede

Desde a versão 1.1.1 o gerenciamento de papel de parede do projeto SwayWM foi movido para , que é necessário para executar o comando .

Esta linha, que pode ser adicionada ao final da sua configuração do sway, define o papel de parede em todas as telas ( seleciona todos com nome ):

~/.config/sway/config
output "*" bg /caminho/para/arquivo fill

Você tem que mudar o nome do arquivo e caminho de acordo com seu papel de parede.

Você pode usar o como um frontend GTK3 para swaybg.

Cores sólidas podem ser definidas como a seguir:

output * bg #000000 solid_color

Dispositivos de entrada

É possível realizar a configuração de específicos dispositivos de entrada. Por exemplo para habilitar toque-para-clicar e deslize natural para um touchpad, adicione um bloco de :

O identificador do dispositivo pode ser consultado com:

$ swaymsg -t get_inputs

A saída do comando, algumas vezes tem um "\" para escapar símbolos como "/" (por exemplo, ) e isto precisa ser removido.

Mais documentação e opções como perfis de aceleração podem ser encontradas em .

HiDPI

Configure o fator de escala das suas telas com o comando em seu arquivo de configuração. O fator de escala pode ser fracionário, mas é normalmente 2 para telas HiDPI.

output <nome> scale <fator>

Você pode encontrar o nome da sua tela com o seguinte comando:

$ swaymsg -t get_outputs

Atalhos customizados

Teclas especiais no seu teclado podem ser usadas para executar comandos, por exemplo para controlar o volume, o brilho do monitor ou tocadores de mídias:

Veja PulseAudio#Keyboard volume control, Advanced Linux Sound Architecture#Keyboard volume control, Backlight#Backlight utilities e MPRIS para detalhes e utilitários alternativos.

Para permitir que um atalho seja executado enquanto a tela está bloqueada, adicione o parâmetro --locked para o bindsym.

bindsym --locked XF86AudioPlay exec playerctl play-pause

Barras Indicadoras gráficas

É geralmente desejável ter um nível atual de alguma configuração com valor-porcentagem, como brilho e volume, sendo indicada por uma barra gráfica. Uma boa opção que traz essa facilidade no Sway é o (alternativamente ), que oferece um subconjunto da funcionalidade da popular ferramenta do X mas como um utilitário nativo do Wayland implementando o protocolo layer-shell. Veja o site do projeto para exemplos de uso.

Janelas flutuantes

Para janelas flutuantes ou atribuição de caracteristicas, os seguintes atributos podem estar disponíveis: , , instance e . O seguinte comando irá listar as propriedades de todas as janelas abertas.

$ swaymsg -t get_tree

Para conseguir o de todas as janelas abertas, use:

$ swaymsg -t get_tree | grep "app_id"

Para conseguir o da janela atualmente focada, use:

$ swaymsg -t get_tree | jq -r '..|try select(.focused == true)'

Se o for nulo para algumas janelas, você pode usar os atributos e/ou o instance. Com isso você pode criar regras para seus programas gráficos. Você pode pesquisar a saída e criar regras polidas para suas janelas.

É similar ao uso do para descobrir o ou no X11.

Xresources

Copie para para usá-lo no Sway.

XWayland

Se um programa falhar na execução com a mensagem de erro "cannot open display," provavelmente o programa que você está usando depende do X11. Para usar a camada de compatibilidade XWayland para executar programas que dependem do X11, é necessário instalar o pacote .

Se você quer desabilitar XWayland totalmente e executar uma sessão Wayland "pura", desinstale o pacote e defina a seguinte opção na configuração:

Nota: Alguns programas precisam de variáveis de ambiente especiais ou opções de configuração para rodar nativamente em Wayland, e outros programas (incluindo a maioria das aplicações proprietárias) não suportam Wayland. Atualmente é recomendado manter o XWayland ativado para que aplicações antigas possam ser usadas.

Dicas e truques

Iniciar automaticamente após login

Para rodar sway no tty1 ao logar com teclado padrão US, edite:

Para rodar sway no tty1 ao logar com teclado padrão BR, edite:

~/.bash_profile
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
  XKB_DEFAULT_LAYOUT=br exec sway
fi

Habilitar CapsLock/NumLock

Para habilitar o capslock e/ou numlock adicione as seguintes linhas no seu arquivo de configuração do sway:

Layout atual do teclado

O layout do teclado atual pode ser descoberto com o comando a seguir, onde precisa ser trocado com o identificador do seu teclado:

$ swaymsg -t get_inputs | jq -r '.[] | select(.identifier == "identificador_kbd") | .xkb_active_layout_name'

Alternar luz de fundo

Para desligar (e ligar) suas telas com uma tecla (por exemplo, ), crie um atalho na sua do Sway para o seguinte script:

#!/bin/sh
read lcd < /tmp/lcd
    if [ "$lcd" -eq "0" ]; then
        swaymsg "output * dpms on"
        echo 1 > /tmp/lcd
    else
        swaymsg "output * dpms off"
        echo 0 > /tmp/lcd
    fi

Captura e compartilhamento de tela

Veja Screen capture#Wayland.

Controle swaynag com o teclado

Swaynag, o programa de aviso/prompt padrão que vem no sway, somente suporta interação do usuário com o mouse. Um programa auxiliar como pode ser usado para habilitar interação via atalhos do teclado.

Swaynagmode funciona lançando swaynag, e então escutando sinais que podem acionar ações como selecionar o próximo botão, fechar o prompt, ou aceitar o botão selecionado. Estes sinais são enviados ao lançar outra instância do script swaynagmode com controle de argumento, como ou .

Swaynagmode por padrão aciona o modo do sway nag ao inicializar, seguido por na saída. Isto facilita a definição de atalhos na sua configuração do sway:

Note que, a partir da versão do sway 1.2, diferencia-se maiúsculo/minúsculo em nomes de modos.

Você pode configurar o sway para usar swaynagmode com o comando de configuração swaynag_command swaynagmode.

Mudar o tema e tamanho do cursor

Para definir temas de cursor e tamanho:

Onde pode ser definido ou trocado por um valor específico como , ou , e um valor como .

Você pode inspecionar os seus valores com echo $XCURSOR_SIZE e .

Você precisa reiniciar o programa para ver as mudanças.

Solução de problemas

Lançadores de aplicativos

i3-dmenu-desktop, dmenu, e todos funcionam relativamente bem no Sway, no entanto, rodam sob XWayland e sofrem do mesmo problema, onde eles podem não responder se o cursor é movido para uma janela nativa do Wayland. O motivo para isso acontecer é que clientes/janelas do Wayland não tem acesso a dispositivos de entrada a menos que eles possuam foco na tela. O servidor XWayland é um cliente para o compositor Wayland, então um de seus clientes deve ter foco para ter acesso a entrada do usuario. No entanto, uma vez que um de seus clientes tem foco, pode captar as entradas e fazê-la disponível para todos os clientes XWayland através do protocolo X11. Mover o cursor para uma janela XWayland e pressionar a tecla Escape deve resolver, algumas vezes rodar resolve também.

é o substituto nativo do dmenu para Wayland que pode opcionalmente ser combinado com j4-dmenu-desktop para prover um lançador de arquivos desktop nativo do Wayland (como i3-dmenu-desktop faz):
j4-dmenu-desktop --dmenu='bemenu -i --nb "#3f3f3f" --nf "#dcdccc" --fn "pango:DejaVu Sans Mono 12"' --term='termite'

Você pode precisar configurar a variavel de ambiente para "wayland" se você escolhe desabilitar o XWayland.

Você pode combinar seu terminal flutuante com fzf como discutido em uma issue do GitHub.

O binário provido pelo pacote também serve como um lançador, oferece suporte a XWayland e Wayland nativo.

rofi-lbonn-wayland-gitAUR é um fork do que funciona no Wayland e também tem uma opção caso você precise executá-lo na sessão X11.

é um lançador de aplicativos, que provê as mesmas funcionalidades do rofi e roda no Wayland. wofi não tem algumas funcionalidades do rofi como modo SSH e um modo de troca de janelas. É baseado na biblioteca  e usa GTK3 para renderização. Funciona bem com o sway.

Virtualização

Sway funciona no VirtualBox e VMware ESXi.

Não consegue iniciar o Sway pelo tty

Para ESXi, você precisa habilitar o suporte a 3D em Hardware Configuration > Video card settings. Veja também VMware#Enable 3D graphics on Intel, Optimus and AMD.

Cursor invisível

Quando usar o controlador de gráficos VMSVGA, o cursor vai ficar invisível. Para corrigir isto declare a seguinte váriavel de ambiente (como discutido em ):

$ export WLR_NO_HARDWARE_CURSORS=1

Sway socket não detectado

Usando um argumento do , como , irá algumas vezes retornar a mensagem:

sway socket not detected.
ERROR: Unable to connect to

Quando roda dentro de um terminal multiplex (como GNU Screen ou tmux). Isto significa que não pôde se conectar ao socket provido pelo .

Para ver qual o atual valor do , digite:

Para resolver este problema, você pode tentar definir o socket baseado no atual processo do sway:

$ export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock

Para evitar este erro, rode o comando fora de um multiplex.

Não foi possível pegar o caminho do socket

Solicitar mensagens do no tty pode retornar a seguinte mensagem:

Unable to retrieve socket path

A variável de ambiente é configurada depois do lançamento do Sway, então uma resolução para este erro é solicitar dentro de um terminal no Sway.

Atalhos e formato do teclado

Por padrão, se voce esta usando mais do que um formato de teclado, exemplo input * xkb_layout "us,ru", atalhos podem se tornar quebrados quando você troca para um teclado secundário.

Graças ao https://github.com/swaywm/sway/pull/3058, tudo que você precisa fazer é adicionar a linhas do bindsym como esta:

Programas java

Alguns programas baseados no Java irão mostrar uma tela branca quando abertos, por exemplo qualquer editor Intellij. Para solucionar isto, o programa pode ser iniciado com a variável de ambiente configurada para 1.

Se você rodar o programa por um lançador como ou dmenu, você pode querer modificar a entrada desktop do aplicativo como descrito em Desktop entries#Modify environment variables.

Alguns problemas com aplicações Java foram concertadas no OpenJDK 11 e Sway 1.5. No entanto, certas aplicações precisam de configuração adicional para usar as versões mais novas do OpenJDK, no caso das IDEs JetBrains você deve definir .

Rolar na borda

Se usar a roda de rolagem do mouse na borda de um aplicativo, você poderá usar para o (por exemplo, Firefox).

Veja também

gollark: Wow, that's useful, should probably have read that more carefully.
gollark: There is no gaming channel.
gollark: FREE THE WOLVES!
gollark: It's awful. I can see vanilla blocks. Not enough mods.
gollark: Well. That's annoying.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.