Pular para o conteúdo

Ambiente

GNARUS é um desktop completo, pronto para uso, focado em Hyprland. A configuração do desktop vive no repositório gnarus e é empacotada como o pacote Arch Linux gnarus.

O pacote instala padrões somente leitura em /usr/share/gnarus e o helper opcional gnarus-setup em /usr/bin. Ele nunca escreve em $HOME.

O desktop é dividido em pacotes focados, todos construídos pelo gnarus-pkgbuild e publicados no mesmo repositório:

Pacote É dono de
gnarus Configuração do desktop em /usr/share/gnarus e do helper opcional /usr/bin/gnarus-setup.
gnarus-session Launchers de sessão /usr/bin/gnarus-session, /usr/bin/gnarus-start, /usr/bin/gnarus-tty e /usr/share/wayland-sessions/gnarus.desktop.
gnarus-appearance Wallpapers compartilhados em /usr/share/backgrounds/gnarus e fontes empacotadas em /usr/share/fonts.
gnarus-storage O módulo Waybar de armazenamento removível (binário, configuração e temas).
gnarus-calendar O popup de calendário nativo da Waybar (binário, configuração e temas).
gnarus-greeter A integração com o greeter greetd.

Instalar gnarus puxa os demais pacotes de componentes como dependências.

Área Arquivos Função
Hyprland config/hypr/hyprland.lua Configuração principal do compositor, atalhos, workspaces, regras e inicialização.
Setup bin/gnarus-setup Helper opcional que copia os padrões empacotados para o diretório de configuração do usuário.
Waybar config/waybar/config.jsonc, config/waybar/style.css Barra superior com workspaces, mídia, janela, tray, estado do sistema e módulos GNARUS.
Sidebar config/quickshell/sidebar-right/ Painel Quickshell para ajustes, sistema, calendário, rede, volume, brilho e energia.
Launchers config/rofi/, config/wofi/ Lançadores, menus e superfícies de comando com tema.
Terminal e TUI config/kitty/, config/yazi/, config/superfile/, config/btop/, config/bottom/ Terminal, gerenciadores de arquivos e monitores do sistema.
Notificações e logout config/dunst/, config/wlogout/ Estilo de notificações e interface de energia/logout.

gnarus-session é o ponto de entrada do display manager. Ele prepara o ambiente e executa gnarus-start; não copia configuração para $HOME.

gnarus-start inicia o Hyprland com a configuração GNARUS apropriada. Ele usa $XDG_CONFIG_HOME/hypr/hyprland.lua quando esse override do usuário existe, caso contrário o empacotado /usr/share/gnarus/hypr/hyprland.lua, e redefine a identidade da sessão gráfica para Hyprland para que o ambiente do greeter do display manager não seja herdado.

gnarus-tty oferece um caminho manual para iniciar o GNARUS em sistemas sem display manager. Ele registra uma sessão logind, inicia o session bus do D-Bus, define o ambiente Wayland/XDG e inicia a mesma sessão.

O GNARUS não copia dotfiles para $HOME antes de o desktop poder iniciar. Os entrypoints de runtime usam esta prioridade:

$XDG_CONFIG_HOME/<app> -> /usr/share/gnarus/<app> -> defaults upstream

A sessão adiciona /usr/share/gnarus ao início de $XDG_CONFIG_DIRS preservando diretórios existentes como /etc/xdg, então aplicativos que suportam configuração de sistema XDG descobrem os padrões GNARUS automaticamente.

gnarus-setup é opcional. Use-o apenas quando quiser copiar os padrões empacotados para ~/.config para personalizar:

Modo Comportamento
--copy <app> Copia /usr/share/gnarus/<app> para ~/.config/<app>.
--copy-all Copia todos os padrões empacotados.
--force Faz backup do destino existente como ~/.config/<app>.bak-<timestamp> antes de copiar.
--dry-run Mostra as ações sem alterar arquivos.
--repair Alias de compatibilidade para --copy gnarus.

Depois de copiados, os arquivos em $XDG_CONFIG_HOME são overrides do usuário e upgrades de pacote nunca os substituem.

Estado de runtime fica em arquivos pequenos em ~/.config/gnarus/, como .active-theme, .accent-color e .weather-location. O arquivo opcional profile habilita o auto-start por TTY.

O arquivo principal do compositor é config/hypr/hyprland.lua. Ele carrega tema ativo, cor de destaque e espaçamentos antes de definir a sessão.

Padrões importantes:

  • SUPER é o modificador principal.
  • O layout é dwindle, com grupos habilitados.
  • O teclado usa br,us com grp:alt_shift_toggle.
  • Firefox roda nativamente em Wayland por MOZ_ENABLE_WAYLAND=1.
  • Apps Qt usam o tema configurado e o estilo Qt do Hyprland quando disponível.
  • XWayland continua habilitado para compatibilidade.

Scripts auxiliares do Hyprland ficam em config/hypr/scripts/ e cobrem screenshots, menu de energia, seleção de wallpaper, cheatsheets, inicialização da Waybar e âncora do menu do GNARUS Storage.

GNARUS usa Waybar como barra superior principal. O layout padrão agrupa workspaces e mídia à esquerda, contexto da janela no centro e módulos do sistema à direita.

Módulos importantes:

  • hyprland/workspaces para navegação de workspaces.
  • mpris para mídia.
  • network, memory, cpu, scripts de temperatura CPU/GPU e perfil de energia.
  • custom/storage, alimentado por gnarus-storage watch.
  • clock#date, que alterna o popup de calendário nativo (gnarus-calendar) ao clicar.
  • pulseaudio#input e pulseaudio#output com clique e scroll.
  • tray para aplicativos com ícones de status.
  • custom/settings, que alterna a sidebar Quickshell.

Scripts de detalhes do sistema ficam em config/waybar/scripts/sysinfo/; a visão auxiliar é configurada por config/waybar/sysinfo.jsonc e config/waybar/sysinfo.css.

A sidebar direita vive em config/quickshell/sidebar-right. Ela é uma interface QML para ações repetidas do desktop.

Ela inclui cards para:

  • aparência e temas;
  • brilho e volume;
  • calendário;
  • layout do teclado;
  • rede;
  • notificações;
  • energia;
  • espaçamento dos workspaces;
  • informações do sistema;
  • clima.

O botão de configurações da Waybar alterna essa sidebar pelo script de taskbar do GNARUS.

GNARUS entrega oito famílias de tema:

  • gnarus-dark
  • gnarus-dark-float
  • gnarus-dark-silver
  • gnarus-dark-silver-float
  • gnarus-light
  • gnarus-light-float
  • gnarus-slate
  • gnarus-slate-float

Os temas são espelhados entre Hyprland, Waybar, Rofi, Dunst, Kitty, Btop, Bottom, Wlogout, Yazi, Superfile, Snappy Switcher e esquemas de cor Qt. O tema ativo é aplicado por config/gnarus/sh/theme-switch.sh.

A cor de destaque é controlada separadamente por config/gnarus/sh/accent-switch.sh, então o usuário troca o accent sem substituir a família de tema.

Módulos compartilhados de shell ficam em config/gnarus/sh/ e são carregados pelo bootstrap.sh, que expõe helpers de log, caminhos, notificações, JSON e Hyprland para os scripts.

Wallpapers e fontes empacotadas são de propriedade do pacote gnarus-appearance e referenciados a partir de caminhos de sistema como /usr/share/backgrounds/gnarus/.

O pacote gnarus instala:

/usr/bin/gnarus-setup
/usr/share/gnarus/

O pacote gnarus-session instala os entrypoints de sessão:

/usr/bin/gnarus-session
/usr/bin/gnarus-start
/usr/bin/gnarus-tty
/usr/share/wayland-sessions/gnarus.desktop

gnarus-storage e gnarus-calendar são empacotados separadamente e instalam os próprios binários e defaults de sistema. Veja Apps oficiais, Calendário e Armazenamento Removível.