This is a personal configuration space tailored specifically to my workflow, taste, and hardware setup. While it is built for my own daily use, I've made it public—if you are curious, you are more than welcome to look around and borrow anything you find useful!
This setup is a curated blend of various community configurations that I have combined, heavily tweaked, and customized. I have adjusted color themes, optimized application layouts, and hooked up my favorite minimalist tools to build my perfect desktop environment.
Note for myself and others: This is an ongoing work in progress. These instructions serve as both an installation guideline and a personal reference for the future.
This repository manages configuration files using GNU Stow.
Instead of copying files directly into your system, Stow creates symbolic links (shortcuts) from this repository folder straight into your home (~) directory. Any edits you make within this repository automatically apply to your system instantly.
The folder structure is organized into modular app "packages". Notice how .config files and root home files (like .zshrc) are handled differently:
~/Workspace/dotfiles/
├── niri/ <-- Package Wrapper Name
│ └── .config/
│ └── niri/ <-- Links to ~/.config/niri/
├── waybar/
│ └── .config/
│ └── waybar/ <-- Links to ~/.config/waybar/
├── zsh/
│ └── .zshrc <-- Links directly to ~/.zshrc
└── vim/
└── .vimrc <-- Links directly to ~/.vimrc
I prefer GNU Stow because it makes tracking and versioning configurations with Git incredibly easy.
If you are setting this up on a fresh system or restoring a backup, follow these steps:
Ensure Stow is installed on your Linux system:
# Fedora
sudo dnf install stow
# Arch Linux
sudo pacman -S stow
# Ubuntu/Debian
sudo apt install stowClone the dotfiles into your workspace folder:
mkdir -p ~/Workspace
cd ~/Workspace
git clone https://github.com/Smiffeed/dotfiles.git
cd dotfilesStow cannot overwrite existing physical folders or files. You must back up or delete your current default configurations before linking:
rm -rf ~/.config/niri
rm -rf ~/.config/waybar
rm -f ~/.zshrc ~/.vimrcRun the following command from inside the ~/Workspace/dotfiles directory to safely generate symlinks:
stow -v -t ~ niri waybar zsh vim tmux mako foot fuzzel-v(Verbose): Prints a confirmation checklist of every link created.-t ~(Target): Explicitly targets your User Home folder.
To track a new configuration folder (e.g., foot), mimic the home directory layout inside the repo:
# 1. Create the mirrored directory path inside dotfiles
mkdir -p ~/Workspace/dotfiles/foot/.config/
# 2. Move your real local configuration inside it
mv ~/.config/foot ~/Workspace/dotfiles/foot/.config/
# 3. Use Stow to link it back to your system
cd ~/Workspace/dotfiles
stow -v -t ~ footTip: If the file belongs directly in ~ (like .bashrc), skip the .config folder and put it straight in the package root (e.g. bash/.bashrc).
If you add new loose script files inside an existing configuration folder, force Stow to refresh and recalculate the symlinks using Restow (-R):
cd ~/Workspace/dotfiles
stow -R -v -t ~ waybarTo cleanly remove configurations and delete the symlinks without deleting your repository files, run Delete (-D):
cd ~/Workspace/dotfiles
stow -D -t ~ niri waybarThis repository includes custom AI Agent Skills (in .agents/skills/) designed for AI assistants to easily manage this repository. When working with an agent, it automatically knows how to deploy, add, and push configurations using Stow.
When pushing updates, we strictly use Conventional Commits (e.g., feat(niri): update keybinds). A script is provided to enforce this workflow:
cd ~/Workspace/dotfiles
./push.sh "feat(scope): your commit message here"