Skip to content

Installation

Packages are published to the public gnarus-sh/packages repository, served at https://gnarus-sh.github.io/packages/.

The gnarus package and its dependencies are published to the same repository, so plain pacman resolves everything automatically. This includes the vendored packages (pwvucontrol, snappy-switcher and wlogout) and the official component packages gnarus-appearance, gnarus-calendar, gnarus-greeter, gnarus-session and gnarus-storage.

Add the repository and install:

Terminal window
# Trust the GNARUS signing key
curl -fsSLo /tmp/gnarus.gpg https://gnarus-sh.github.io/packages/arch/gnarus.gpg
sudo pacman-key --add /tmp/gnarus.gpg
GNARUS_KEY="$(gpg --show-keys --with-colons /tmp/gnarus.gpg | grep '^pub:' | head -n1 | cut -d: -f5)"
sudo pacman-key --lsign-key "$GNARUS_KEY"
# Add repository
curl -fsSL https://gnarus-sh.github.io/packages/arch/gnarus.conf \
| sudo tee /etc/pacman.d/gnarus.conf
echo "Include = /etc/pacman.d/gnarus.conf" \
| sudo tee -a /etc/pacman.conf
# Install
sudo pacman -Syu gnarus
Terminal window
# Refresh repository configuration
curl -fsSL https://gnarus-sh.github.io/packages/arch/gnarus.conf \
| sudo tee /etc/pacman.d/gnarus.conf
# Update package
sudo pacman -Syu gnarus

Remove the package:

Terminal window
sudo pacman -Rns gnarus

Remove the repository entry:

Terminal window
sudo sed -i '\|^Include = /etc/pacman.d/gnarus.conf$|d' /etc/pacman.conf
sudo rm -f /etc/pacman.d/gnarus.conf
sudo pacman -Syy

Package installation never writes to $HOME. GNARUS works out of the box by reading packaged defaults from /usr/share/gnarus; files under ~/.config override them.

gnarus-setup is optional. Use it only when you want to copy packaged defaults into ~/.config for customization:

Terminal window
gnarus-setup --copy hypr
gnarus-setup --copy waybar
gnarus-setup --copy-all

Once copied, files become user-owned overrides and package upgrades never replace them.

To refresh an existing config with the current package defaults, run:

Terminal window
gnarus-setup --copy <app> --force

The --force mode backs up the current directory as ~/.config/<app>.bak-<timestamp> before copying the new defaults.