2026-03-24 22:53:51 -04:00
2026-01-02 12:15:41 -05:00
2024-07-27 00:33:59 +07:00
2025-12-29 12:23:12 -05:00
2026-03-24 22:53:51 -04:00
2025-05-23 21:52:47 -04:00
2026-03-24 22:53:51 -04:00
2025-06-28 16:29:09 -04:00
2025-12-29 12:23:12 -05:00
2024-09-27 14:09:46 -04:00
2024-07-27 00:33:59 +07:00
2026-03-07 01:58:26 -05:00
2024-07-27 00:33:59 +07:00
2026-03-24 22:53:51 -04:00
2024-08-05 09:38:10 +07:00
2026-03-24 22:53:51 -04:00
2024-07-27 00:33:59 +07:00
2024-07-27 00:33:59 +07:00
2024-07-27 00:33:59 +07:00
2024-07-27 00:33:59 +07:00
2026-03-24 22:53:51 -04:00
2026-03-24 22:53:51 -04:00
2026-03-24 22:53:51 -04:00
2026-03-24 22:53:51 -04:00
2026-03-24 22:53:51 -04:00
2024-01-14 13:44:47 -05:00
2026-03-24 22:53:51 -04:00
2026-03-24 22:53:51 -04:00

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

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

  • Shell: zsh with oh-my-zsh
  • Terminal: alacritty
  • WM: niri (Wayland, scrollable tiling)
    • Wallpaper: hyprpaper
    • Notification: mako
    • Lock: swaylock
    • Bar: waybar
    • Menu: wofi / wofi-emoji
  • Audio: wireplumber
  • Tools: tmux, neovim

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

Notes

  • Network interface is set to wlan0
  • Static IP 192.168.0.99/24 assigned to wlan0 via NetworkManager
    • Gateway: 192.168.0.1
    • To inspect: nmcli connection show
    • To reconfigure: nmcli connection modify <connection> ipv4.addresses 192.168.0.99/24 ipv4.gateway 192.168.0.1 ipv4.method manual && nmcli connection up <connection>

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.

Description
No description provided
Readme 521 MiB
Languages
CSS 87.8%
Lua 10.3%
Perl 0.9%
GLSL 0.6%
Shell 0.3%