Skip to main content
This installation process will overwrite existing configuration files. Make sure to back up your current dotfiles before proceeding.

Prerequisites

Before installing, ensure you have the following:
  • Arch Linux (or Arch-based distribution)
  • Git configured with SSH access
  • Basic familiarity with terminal commands
  • Backup of existing configuration files

Installation Process

1

Clone the Repository

Clone the dotfiles repository to your home directory:
git clone [email protected]:joaopedroaats/dotfiles.git ~/dotfiles
The repository should be cloned to ~/dotfiles as the sync scripts expect this location.
2

First-Time Setup

For a fresh installation, run the first-sync script to set up the stot utility:
sh ~/dotfiles/first-sync.sh
This script will:
  • Create ~/.local/bin/ directory
  • Symlink the stot utility to ~/.local/bin/stot
  • Clone the packages repository for system dependencies
first-sync.sh
# Config Stot
mkdir ~/.local/bin/
[ ! -f ~/.local/bin/stot ] && ln -sv ~/dotfiles/bin/stot ~/.local/bin

# Download Packages
git clone [email protected]:joaopedroaats/packages.git ~/packages
3

Sync Configuration Files

Run the main sync script to create symlinks for all configuration files:
sh ~/dotfiles/sync.sh
This performs a hard sync of your local config files with ~/dotfiles. Existing files will be overwritten.
The sync script will link:
  • Home directory configs (.zshrc, .zshenv, .Xresources, etc.)
  • All .config/ application configurations
  • Custom binaries from bin/ to ~/.local/bin/
  • System files to /boot, /etc, /usr, and /srv (requires sudo)
4

Install System Packages

Install the required packages using the cloned packages repository:
cd ~/packages
# Follow the instructions in the packages repository
Key packages include:
  • i3-gaps — Tiling window manager
  • picom — Compositor
  • polybar — Status bar
  • rofi — Application launcher
  • dunst — Notification daemon
  • kitty — Terminal emulator
  • zsh — Shell
  • And many more…
5

Install Optional Components

Wallpapers

Clone the wallpapers repository:
git clone [email protected]:joaopedroaa/wallpapers.git ~/Pictures/Wallpapers/

rEFInd Boot Theme

Install the custom rEFInd theme:
git clone [email protected]:joaopedroaa/pers-rEFInd.git refind-theme
sudo cp -r refind-theme /boot/efi/EFI/refind/

Understanding the Stot Utility

The stot command is a custom wrapper around GNU Stow that simplifies dotfile management:
stot [OPTION]... SOURCE
stot [OPTION]... SOURCE DEST

How Stot Works

1

For Home Directory Files (-l flag)

stot -l home/.zshrc /
Creates: ~/home/.zshrc~/dotfiles/home/.zshrc
2

For Config Directories (-l flag)

stot -l .config/i3
Creates: ~/.config/i3/*~/dotfiles/.config/i3/*
3

For System Files (-c flag)

stot -c etc/pacman.conf
Copies: ~/dotfiles/etc/pacman.conf/etc/pacman.conf

Synced Configurations

Home Directory Files

stot -l home/.nvidia-settings-rc                /
stot -l home/.screenlayout-main.sh              /
stot -l home/.Xresources                        /
stot -l home/.zshenv                            /
stot -l home/.zshrc                             /

Application Configs

stot -l .config/alacritty
stot -l .config/doom
stot -l .config/dunst
stot -l .config/i3
stot -l .config/kitty
stot -l .config/nvim
stot -l .config/polybar
stot -l .config/ranger
stot -l .config/rofi
# ... and more

System Files

stot -c etc/pacman.conf
stot -c etc/hosts
stot -c etc/locale.conf
stot -c boot/efi/EFI/refind/refind.conf

Post-Installation

1

Restart Your Shell

exec zsh
2

Log Out and Log Back In

For i3 and other configurations to take effect, log out and select i3 as your window manager at the login screen.
3

Configure Powerlevel10k

On first run, Powerlevel10k will launch its configuration wizard:
p10k configure
4

Verify Installation

Test the custom commands:
status      # System summary
color       # Test terminal colors
PATH        # View your PATH

Troubleshooting

Ensure ~/.local/bin is in your PATH:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshenv
source ~/.zshenv
System file operations require sudo. The stot -c commands in sync.sh will automatically use sudo.
Ensure i3-gaps is installed and you’ve selected i3 at your display manager login screen.

Next Steps

Quick Start Guide

Learn how to use the configured system and custom commands

Build docs developers (and LLMs) love