A complete keyboard-driven desktop setup for Arch Linux featuring Sway compositor, Waybar status bar, and productivity-focused applications.
Core Desktop
- Window Manager: Sway (i3-compatible, Wayland)
- Status Bar: Waybar with custom modules
- Terminal: Kitty
- Notifications: Mako
- Lock Screen: Swaylock
- Shell: ZSH with modular configuration
Applications
- Email: mutt + offlineimap templates
- Music: MPD + ncmpcpp
- File Manager: ranger
- Text Editor: vim with plugins
Theming
- Wallpaper: Generated using
bin/catppuccin_wallpaper.pyscript - GTK: Catppuccin theme via catppuccin/gtk
- Qt: Configured using qt5ct and qt6ct
- Theme Tools: nwg-look for GTK3/4 theme management
Arch Linux (other distributions require package name adjustments)
git clone https://github.com/okubax/dotfiles.git ~/dotfiles && ~/dotfiles/dotfiles.sh installgit clone https://github.com/okubax/dotfiles.git ~/dotfiles
cd ~/dotfiles
./dotfiles.sh status # Check what will be installed
./dotfiles.sh install # Install configurationssudo pacman -S sway waybar mako swaylock wofi wl-clipboard kitty zsh ranger vim
sudo pacman -S ttf-fira-code noto-fonts noto-fonts-emoji ttf-ubuntu-font-familysudo pacman -S mpd ncmpcpp mpc pipewire pipewire-pulse mutt offlineimap msmtp neofetch
sudo pacman -S qt5ct qt6ct nwg-look # Theme management tools
yay -S multitail swayshot./dotfiles.sh install # Install all configurations
./dotfiles.sh status # Show installation status
./dotfiles.sh uninstall # Remove symlinks
./dotfiles.sh backup # Create backup
./dotfiles.sh restore # Restore from backup
./dotfiles.sh install --dry-run # Preview changes
./dotfiles.sh install --force # Overwrite existing files- Set ZSH as default shell:
chsh -s $(which zsh) - Start Sway:
exec sway(from TTY) or select from display manager - Logout and log back in
- Sway:
swaywm/sway/config - Waybar:
swaywm/waybar/config - Terminal:
kitty/kitty.conf - Shell:
aliases/aliases* - ZSH:
zsh/config/
~/dotfiles/
├── dotfiles.sh # Installation script
├── aliases/ # Shell aliases
├── bin/ # Custom scripts
├── kitty/ # Terminal config
├── swaywm/ # Sway, Waybar, Mako configs
├── vim/ # Editor configuration
├── zsh/ # Shell configuration
│ ├── config/ # Modular ZSH configs
│ └── plugins/ # Syntax highlighting themes
├── ranger/ # File manager
├── ncmpcpp/ # Music player
└── mutt/ # Email client
Modular setup with separate configuration files:
history.zsh- Command history settingsoptions.zsh- Shell behavior optionscompletion.zsh- Tab completion systemprompt.zsh- Command promptaliases.zsh- ZSH-specific aliasesplugins.zsh- Plugin management
Includes Catppuccin syntax highlighting themes (frappe, latte, macchiato, mocha).
The installation script includes automatic backup functionality:
- Creates backups before overwriting existing configurations
- Manual backup/restore operations available
- Tracks backup metadata and file lists
- Graceful handling of missing files
For security reasons, the following are excluded:
- SSH keys and server configurations
- Email credentials and GPG keys
- Password manager databases
- Personal scripts with sensitive information
Missing file warnings: Normal for public repositories. Use ./dotfiles.sh status to see available files.
Undo installation: Use ./dotfiles.sh restore or ./dotfiles.sh uninstall
Sway won't start: Check dependencies and logs with journalctl --user -u sway
Permission errors: Run chmod +x ./dotfiles.sh
Fork the repository and modify configurations to your needs. The modular structure allows easy customization of individual components without affecting the entire setup.
MIT License. Use, modify, and distribute freely.
- Sway Documentation
- Waybar Configuration
- Arch Linux Installation Guide
- Improved ii IRC Setup - Guide for setting up ii IRC client



