My dotfiles configuration for Arch Linux
Configuration
| Tool | Arch Linux |
|---|---|
| Terminal | Alacritty |
| Shell | zsh |
| Window manager | i3 |
| File manager | Thunar |
| Bar | Polybar |
| Launcher | Rofi |
| Screenshots | Flameshot |
| Lockscreen | betterlockscreen |
| Greeter | SDDM |
Screenshots
Rofi
Power menu
Applications
How to install the dotfiles.
-
create an alias:
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME' -
ignore the clone folder:
echo ".dotfiles" >> .gitignore -
Clone the repository:
git clone --bare <git-repo-url> $HOME/.dotfiles -
Checkout the actual content form the bare repository into your
$HOME:dotfiles checkout
NOTE: This action might result in an error saying that files would be overwritten. Solution is, firstly backup those files using:
mkdir -p .config-backup && \
config checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | \
xargs -I{} mv {} .config-backup/{}
after the backup remove the conflict files and run dotfiles checkout command again.
-
Set the flag
showUntrackedFilestonoon this specific (local) repository:dotfiles config --local status.showUntrackedFiles no -
All done! Now you can manage your dotfiles with git, example:
dotfiles status
dotfiles add .zshrc
dotfiles commit -m "adding .zshrc"
dotfiles push
Automated setup with Ansible
Instead of manual installation, you can use the included Ansible playbook to automatically install packages, clone dotfiles, and configure system services.
Prerequisites
sudo pacman -S ansible
Usage
cd ~/ansible ansible-galaxy install -r requirements.yml ansible-playbook playbook.yml -K
What it does
| Role | Description |
|---|---|
packages |
Installs all required packages via pacman |
shell |
Installs oh-my-zsh, powerlevel10k, zsh plugins, sets zsh as default shell |
aur |
Bootstraps paru and installs AUR packages (pokemon-colorscripts-git, etc.) |
dotfiles |
Clones the bare repo, checks out configs, hides untracked files |
system |
Symlinks system configs (e.g. nftables.conf to /etc/) and enables services |


