Guia de configuração do Sway

Esta página fornece uma visão geral de detalhes de configuração específicos par ao Fedora, e é comum para as variantes do Sway Spin baseado em pacotes e do Sway Atomic. Diferenças importantes serão destacadas.

Se você procura recursos mais gerais, consulte:

Perfis de configuração

O pacote Sway no Fedora delega a maioria das dependências e a propriedade do arquivo de configuração aos subpacotes sway-config-*. Isso nos permite distribuir diferentes perfis de configuração com diferentes conjuntos de dependências de tempo de execução.

Os seguintes pacotes de perfil estão atualmente disponíveis no Fedora:

  • sway-config-upstream - a configuração upstream tal como vem com os fontes do Sway. As únicas modificações permitidas no arquivo de configuração deste perfil são ajustes para dependências atualmente indisponíveis no Fedora.

  • sway-config-minimal - configuração mínima com todas as dependências opcionais excluídas. O perfil foi criado para servidores headless, contêineres e uso com Buildroot. Também é adequado para criar uma instalação muito minimalista do zero.

  • sway-config-fedora - configuração personalizada para o Fedora Sway Spin.

Os pacotes são mutuamente exclusivos, e um deles deve estar presente. O pacote instalado por padrão com dnf install sway é o sway-config-upstream, e o que será instalado com o grupo Sway Spin/Sway Desktop Environment é o sway-config-fedora.

Você pode selecionar o perfil com o seguinte comando:

$ sudo dnf swap sway-config sway-config-upstream
$ sudo dnf swap sway-config sway-config-minimal
$ sudo dnf swap sway-config sway-config-fedora

O comando substituirá o arquivo /etc/sway/config padrão e aplicará o novo conjunto de dependências. Os pacotes não utilizados pelo novo perfil serão removidos automaticamente.

O comando de encantamento correspondente para Sway Atomic e outras imagens personalizadas do Sway é:

$ sudo rpm-ostree override remove sway-config --install sway-config-upstream

Observe, no entanto, que isso não remove as dependências de perfil originais da camada base de uma implantação.

Configuração do Fedora

O repositório sway-config-fedora contém a configuração padrão do Fedora Sway Spin. Ele é baseado na configuração padrão do Sway, com algumas melhorias de usabilidade e alterações de opinião.

A maioria das adições são implementadas como trechos de configuração independentes armazenados em /usr/share/sway/config.d/ e carregados automaticamente a partir do arquivo de configuração principal. A configuração do ambiente e a interceptação de logs são implementadas no script wrapper /usr/bin/start-sway.

Variáveis ambientais

Se você estiver usando um Gerenciador de Exibição compatível (GDM ou SDDM), poderá ajustar o ambiente inicial do Sway usando uma configuração de sistema em /etc/sway/environment ou uma configuração por usuário em ~/.config/sway/environment. As variáveis definidas na configuração do usuário sobrescrevem as variáveis correspondentes definidas em todo o sistema.

Por favor, verifique os comentários e exemplos em /etc/sway/environment para saber mais.

Seções

Os trechos de configuração que fornecemos estão agrupados nas seguintes seções:

50-59 (50-rules-*.conf)

Regras de janela (for_window, assign e configurações relacionadas).

60-69 (60-bindings-*.conf, 65-mode-*.conf)

Atalhos de teclado e modos de atalho.

90-94 (90-*.conf)

Aplicações do sistema: barras, daemons ociosos e outros componentes.

95-99 (95-*.conf)

Aplicativos de inicialização automática.

Sobrescritas e precedência de carregamento

A configuração do Fedora abusa os detalhes de implementação do analisador de configuração Sway (wordexp(3p)) para implementar um mecanismo de substituição para os trechos.

A prioridade aumenta da configuração empacotada para uma configuração de todo o sistema e para diretórios de configuração do usuário:

  • /usr/share/sway/config.d/*.conf

  • /etc/sway/config.d/*.conf

  • $XDG_CONFIG_HOME/sway/config.d/*.conf (o padrão é ~/.config/sway/config.d/*.conf)

Os arquivos incluídos também são classificados por nome em todos os diretórios.

Ao criar um arquivo com o mesmo nome em /etc/sway/config.d, você forçará o pré-processador de configuração a ignorar o trecho correspondente de /usr e carregar o de /etc. Da mesma forma, o trecho de configuração do diretório home prevalece sobre os locais anteriores.

Simplificando ainda mais: imagine o arquivo de configuração da distribuição /usr/share/sway/config.d/90-bar.conf que define o waybar como uma barra de status. Se você quiser impedir que o waybar seja iniciado, você pode criar um arquivo vazio no seu diretório pessoal:

$ mkdir -p ~/.config/sway/config.d
$ touch ~/.config/sway/config.d/90-bar.conf

Se você quiser usar outra barra, basta adicionar algum conteúdo ao arquivo. Por exemplo, copie a seção da barra padrão da configuração original do Sway:

$ mkdir -p ~/.config/sway/config.d
$ cat >~/.config/sway/config.d/90-bar.conf <<EOF
## Leia `man 5 sway-bar` para obter mais informações sobre esta seção.
bar {
        position top

    ## Quando o status_command imprime uma nova linha para saída padrão (stdout), o Swaybar é atualizado.
    ## O padrão apenas exibe a data e hora atuais.
    status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done

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

Solução de problemas

Às vezes, é útil saber como a configuração carregada pelo Sway realmente se parece. Existem duas maneiras de depurar isso:

  • Executar a validação da configuração do Sway:

    $ sway --debug --validate [--config /caminho/para/config]
  • Verifique os arquivos intermediários gerados pelo script de inclusão em camadas

    $ menos $XDG_RUNTIME_DIR/sway/layered-include-*.conf