GitHub

Last commit Repo size GitHub commit activity (branch)

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

rofi screenshot

Power menu

power menu screenshot

Applications

applications screenshot

How to install the dotfiles.

  1. create an alias: alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'

  2. ignore the clone folder: echo ".dotfiles" >> .gitignore

  3. Clone the repository: git clone --bare <git-repo-url> $HOME/.dotfiles

  4. 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.

  1. Set the flag showUntrackedFiles to no on this specific (local) repository: dotfiles config --local status.showUntrackedFiles no

  2. 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

Read the original on github.com ↗