Configuração de uma sessão Sway no CachyOS, tema Tokyo Night.
Os arquivos são organizados em pacotes GNU Stow:
cada diretório do primeiro nível replica a hierarquia a partir do $HOME.
git clone git@github.com:jeansflores/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install-deps.sh --stowO script instala os pacotes, habilita os serviços e aplica os symlinks. Para apenas obter a lista de pacotes — útil para colar em outro lugar:
./install-deps.sh --printPara aplicar (ou remover) um pacote isolado:
stow --no-folding waybar # aplica
stow -D waybar # removeO
--no-foldingcria um symlink por arquivo, nunca do diretório inteiro. Sem isso, o~/.config/gtk-3.0viraria um link para dentro do repositório e o seletor de arquivos do GTK passaria a gravar seusbookmarksaqui.
| Pacote | O que cobre |
|---|---|
sway |
compositor, atalhos, autostarts, cores das bordas |
waybar |
barra superior e seu tema |
swaync |
daemon e centro de notificações |
swaylock |
tela de bloqueio |
ghostty |
terminal |
wofi |
tema do menu (usado pelo seletor de perfil de energia) |
gtk |
fonte, modo escuro e ícones das aplicações GTK 3 e 4 |
xdg-portal |
qual backend do xdg-desktop-portal atende cada função |
powerprofile |
seletor de perfil de energia e seu serviço systemd |
nvim |
Neovim (LazyVim) |
tmux |
tmux |
gitconfig |
git |
- Tema: Tokyo Night (variante Night, fundo
#1a1b26) - Monoespaçada: JetBrainsMono Nerd Font
- Interface: Noto Sans
- Ícones: Papirus-Dark
- GTK: Adwaita em modo escuro
O modo escuro do GTK3 vem de gtk-application-prefer-dark-theme, e não de um
tema chamado Adwaita-dark — esse nome só existe no GTK4. Apontar o
gtk-theme-name para ele faz o GTK3 não encontrar o tema e cair no claro.
Mod é a tecla Super. Só o que foge do padrão do Sway está listado; navegação
por Mod+hjkl, workspaces por Mod+1..0 e o modo resize seguem o default.
| Atalho | Ação |
|---|---|
Mod+Return |
terminal (ghostty) |
Mod+Alt+Return |
terminal com tmux (sessão main) |
Mod+d |
lançador (wmenu-run) |
Mod+Shift+q |
fecha a janela |
Mod+Shift+c |
recarrega o Sway |
Mod+Shift+e |
encerra a sessão |
Mod+Ctrl+l |
bloqueia a tela |
Mod+n |
abre o centro de notificações |
Mod+Shift+n |
alterna o "não perturbe" |
Print |
seleciona uma região e copia para a área de transferência |
Shift+Print |
tela inteira em ~/Pictures/Screenshots |
Mod+Print |
janela em foco, para a área de transferência |
As teclas de mídia e de brilho do notebook funcionam mesmo com a tela
bloqueada (--locked).
Da esquerda para a direita: workspaces, título da janela, relógio ao centro e, à direita, inibidor de suspensão, CPU, memória, temperatura, brilho, volume, perfil de energia, bateria, bandeja e notificações.
Rede e bluetooth não têm módulo próprio: ficam na bandeja, a cargo do
nm-applet e do blueman-applet, subidos por exec no config do Sway. Sem
display manager, o graphical-session.target do systemd --user nunca fica
ativo nesta sessão, então o xdg-desktop-autostart.target (que dependeria
dele) nunca sobe o nm-applet.desktop sozinho — daí o exec explícito para
os dois.
O sensor de temperatura é apontado por hwmon-path-abs no diretório do
dispositivo, e não por /sys/class/hwmon/hwmonN, cuja numeração muda entre
boots.
O power-profiles-daemon não guarda o perfil entre reinicializações: ele sempre
volta em balanced. O pacote powerprofile resolve isso.
O ícone na barra segue o perfil ativo — economia (verde), equilibrado
(azul), desempenho (laranja). Clique abre um menu wofi; botão direito cicla.
powerprofile get # perfil ativo
powerprofile set performance # aplica e memoriza
powerprofile cycle # avança para o próximo
powerprofile menu # menu wofiO serviço de usuário power-profile.service faz duas coisas: reaplica o perfil
memorizado no login e observa o D-Bus para memorizar qualquer troca posterior —
inclusive as que não passam pelo script. O estado fica em
~/.local/state/power-profile.
O script conversa com o daemon por busctl, e não pelo powerprofilesctl.
Além de dispensar dependência de runtime, isso evita um problema real deste
host: o mise coloca seu Python à frente do /usr/bin no PATH, e o
powerprofilesctl — que usa #!/usr/bin/env python3 — acaba rodando num
interpretador sem o PyGObject, falhando com ModuleNotFoundError: No module named 'gi' mesmo com o python-gobject instalado.
- Não há display manager. O login é por TTY e o Sway sobe manualmente.
execno config do Sway não roda noswaymsg reload, apenas no login. Ao adicionar um autostart, suba o processo à mão ou reinicie a sessão.- O agente polkit (
polkit-gnome) é o que permite aopkexece a aplicações como o blueman pedirem senha em janela. Sem ele, opkexectenta o prompt textual e falha por não haver TTY. - O locale
pt_BRnão está gerado; por isso o relógio usa data numérica.