link

`stow` for dotfiles management

dotfiles

My configuration and styling for things I use on my Linux PC, embracing the power of GNU Stow and symlinks.

Quick start

git clone --recurse-submodules git@github.com:notkaramel/dotfiles ~/dotfiles
cd ~/dotfiles
stow <app>

If you already cloned without submodules:

git submodule update --init --recursive

GNU Stow

GNU Stow symlinks a package directory's contents into a target directory. By default the target is the parent of the current directory, so running from ~/dotfiles symlinks into ~/.

User-local installation (default)

Installs configs into ~/ — no root required.

# From ~/dotfiles:
stow zsh        # → ~/.zshrc, etc.
stow alacritty  # → ~/.config/alacritty/
stow nvim       # → ~/.config/nvim/
stow waybar     # → ~/.config/waybar/

This is equivalent to:

stow <app> --target ~/

To remove (unstow):

stow -D <app>

System-wide installation (requires sudo)

Some programs install assets into system directories under /usr/share/. Use --target to override the destination.

# Themes → /usr/share/themes/
sudo stow <theme> --dir ~/dotfiles --target /usr/share/themes

# Icons/cursors → /usr/share/icons/
sudo stow <icon-theme> --dir ~/dotfiles --target /usr/share/icons

# Fonts → /usr/share/fonts/
sudo stow <font> --dir ~/dotfiles --target /usr/share/fonts

To remove a system-wide stow:

sudo stow -D <app> --dir ~/dotfiles --target /usr/share/themes

Docker in user space (rootless)

[INFO] Installed docker.service successfully. [INFO] To control docker.service, run: systemctl --user (start|stop|restart) docker.service [INFO] To run docker.service on system startup, run: sudo loginctl enable-linger antoine

[INFO] Creating CLI context "rootless" Successfully created context "rootless" [INFO] Using CLI context "rootless" Current context is now "rootless"

[INFO] Make sure the following environment variable(s) are set (or add them to ~/.bashrc): export PATH=/home/antoine/bin:$PATH

[INFO] Some applications may require the following environment variable too: export DOCKER_HOST=unix:///run/user/1000/docker.sock


CustomizeLinux

Third-party programs and themes managed as git submodules under CustomizeLinux/. After cloning with --recurse-submodules they are ready to use.

Directory Description Install target
adw-gtk3 GTK3 libadwaita theme /usr/share/themes (system) or ~/.themes (user)
minegrub Minecraft-style GRUB theme /boot/grub/themes (requires sudo)
posy-cursors Clean cursor theme /usr/share/icons (system) or ~/.local/share/icons (user)
SpotX-Bash Spotify ad-blocker patch script Run as user
Tela-icon-theme Flat icon theme /usr/share/icons (system) or ~/.local/share/icons (user)
yay AUR helper PKGBUILD Build with makepkg -si

adw-gtk3

cd CustomizeLinux/adw-gtk3

# User install (~/.themes)
./install_theme.sh

# System install (/usr/share/themes)
sudo ./install_theme.sh

minegrub (GRUB theme — requires sudo)

cd CustomizeLinux/minegrub
# Follow README instructions, then:
sudo cp -r minegrub-theme /boot/grub/themes/
# Update /etc/default/grub: GRUB_THEME="/boot/grub/themes/minegrub-theme/theme.txt"
sudo grub-mkconfig -o /boot/grub/grub.cfg

posy-cursors

cd CustomizeLinux/posy-cursors

# User install
mkdir -p ~/.local/share/icons
cp -r posy-cursor* ~/.local/share/icons/

# System install
sudo cp -r posy-cursor* /usr/share/icons/

SpotX-Bash

cd CustomizeLinux/SpotX-Bash
bash spotx.sh

Tela-icon-theme

cd CustomizeLinux/Tela-icon-theme

# User install (~/.local/share/icons)
./install.sh

# System install (/usr/share/icons, requires sudo)
sudo ./install.sh

yay (AUR helper)

cd CustomizeLinux/yay
makepkg -si

Actively using programs


Useful commands

Getting all locally installed packages:

pacman -Qs | grep "local/" | awk '{print $1}' | awk -F '/' '{print $2}' > allPackages.txt

Reinstalling all packages:

cat allPackages.txt | yay -S - --needed

Printing (CUPS)

Printer setup and driver documentation is available in:


Notes


License (CC0 1.0 Universal)

See LICENSE for the full text.

notkaramel/dotfiles by Antoine Phan (@notkaramel) is marked with CC0 1.0 Universal. To view a copy of this license, visit http://creativecommons.org/publicdomain/zero/1.0

Credit: Dreams of Autonomy and DevInsideYou for the GNU Stow workflow.