My personal dotfiles for Arch Linux with i3 window manager.
- Window Manager: i3 with custom keybindings and workspace configuration
- Status Bar: i3blocks and Polybar configurations
- Terminal: Kitty terminal emulator with Ayu theme
- Compositor: Picom with proper transparency for active/inactive windows
- Shell: Zsh with custom prompt and aliases
- Appearance: GTK themes, icons, and GRUB theme
- Display Manager: SDDM with custom theme
- Applications: Configs for ranger, dunst, zathura, and more
- Installation Scripts: Easy-to-use scripts for system replication
To install these dotfiles on a new system:
# Clone the repository
git clone https://github.com/clintaire/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Basic install (just configs, no packages)
./.system/dotsetup.sh
# Full install (includes package installation - Arch Linux only)
./.system/dotsetup.sh --fullThe installation scripts provide several options:
-
Basic Installation: Links configuration files to their appropriate locations
./.system/dotsetup.sh
-
Full Installation: Includes package installation with interactive options
./.system/dotsetup.sh --full
-
Sync Local Changes: Update dotfiles with current system configurations
./.system/dotbackup.sh
-
Restore on New System: Restore configurations from dotfiles repository
./.system/dotrestore.sh
Before committing any changes to your dotfiles repository, run the sanitize script to check for sensitive information:
./.system/dotscan.shIf you prefer to install components individually:
-
Window Manager (i3):
ln -sf ~/.dotfiles/i3 ~/.config/i3
-
Terminal (Kitty):
ln -sf ~/.dotfiles/kitty ~/.config/kitty
-
Shell (Zsh):
ln -sf ~/.dotfiles/.zshrc ~/.zshrc
-
Compositor (Picom):
ln -sf ~/.dotfiles/picom ~/.config/picom
- .config/: User configuration files
- hypr/: Hyprland window manager configuration
- i3/: i3 window manager configuration
- kitty/: Terminal emulator configuration
- rofi/: Application launcher configuration
- waybar/: Status bar configuration
- picom/: Compositor settings with transparency rules
- dunst/: Notification daemon configuration
- zsh/: Shell configuration and themes
- .system/: System management scripts
- dotsetup.sh: Main installation script with package dependencies
- dotrestore.sh: Script to restore configurations from repository
- dotbackup.sh: Comprehensive backup and sync script
- dotscan.sh: Script to check for sensitive information
- dnspro.sh: Enterprise DNS setup with monitoring and failover
- dnsbasic.sh: Basic secure DNS setup with encryption
- dockersec.sh: Docker security hardening script
- emergency.sh: Emergency network/DNS recovery script
- testdns.sh: DNS testing in containerized environment
- system/: System-wide configuration backups (GRUB, packages, etc.)
- Root configuration files: .zshrc, .xinitrc, .Xresources, .zprofile
-
dotsetup.sh- Main installation script./dotsetup.sh # Basic install (configs only) ./dotsetup.sh --full # Full install with packages
-
dotbackup.sh- Backup current configurations to repository./dotbackup.sh
-
dotrestore.sh- Restore configurations from repository./dotrestore.sh
-
dotscan.sh- Security scan for sensitive information./dotscan.sh
-
dnspro.sh- Enterprise DNS with monitoring & auto-recoverysudo ./dnspro.sh install # Install enterprise DNS ./dnspro.sh status # Check status ./dnspro.sh monitor # Live monitoring
-
dnsbasic.sh- Basic secure DNS setupsudo ./dnsbasic.sh install # Install basic DNS ./dnsbasic.sh status # Check status sudo ./dnsbasic.sh restore # Restore original
-
emergency.sh- Emergency network recoverysudo ./emergency.sh # Emergency DNS/network fix
-
dockersec.sh- Docker security hardening./dockersec.sh install # Harden Docker ./dockersec.sh status # Check security status
-
testdns.sh- Test DNS configurations safely./testdns.sh test # Automated testing ./testdns.sh interactive # Manual testing
If you encounter DNS/network issues:
- Run emergency recovery:
sudo ./.system/emergency.sh - Check DNS status:
./.system/dnspro.sh status - Test in container:
./.system/testdns.sh test
