4.5 KiB
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:
zshwithoh-my-zsh - Terminal:
alacritty - WM:
niri(Wayland, scrollable tiling)- Wallpaper:
hyprpaper - Notification:
mako - Lock:
swaylock - Bar:
waybar - Menu:
wofi/wofi-emoji
- Wallpaper:
- 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/24assigned towlan0via 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>
- Gateway:
- WPS Writer needs
libtiff5package for PDF export
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.