Personal configuration files for Arch Linux with Sway (Wayland) desktop environment.
The workstation command provides unified management for dotfiles and systemd services:
# Bootstrap new system
workstation setup # Full system provisioning with Ansible
# Update from git
workstation update # Pull changes and reapply configuration
workstation update -n # Dry-run to preview changes
# Dotfiles management
workstation dotfiles link # Apply all symlinks
workstation dotfiles status # Check symlink status
workstation dotfiles doctor # Validate environment
# Systemd services
workstation services list # List available services
workstation services enable-all # Enable all services/timers
workstation services disable-all # Disable all services/timers
workstation services status # Show status of all servicesAfter running workstation dotfiles link, the script is available globally from any directory.
- SwayFX - Wayland compositor with blur, shadows, rounded corners
- Waybar - Status bar with custom scripts
- Greetd + ReGreet - Display manager (login screen)
- Plymouth - Boot splash screen
- Swaylock Effects - Screen locker
- Swayidle - Idle management and auto-lock
- Wlogout - Logout/power menu
- Swaybg - Wallpaper setter
- SwayNC - Notification daemon with DND
- SwayOSD - Volume/brightness overlay
- Batsignal - Battery notifications
- libnotify - Notification library
- Wofi - Application launcher
- Search Menu - Fast file & directory search -
$mod+Shift+s - Keybindings Help - Visual reference for shortcuts -
$mod+Shift+h - Cliphist - Clipboard manager
- Wdisplays - Display configuration GUI
- Waypaper - Wallpaper selector
- Grim - Screenshot capture
- Slurp - Region selector
- Swappy - Screenshot editor
- Feh - Image viewer
- VLC - Media player
- FFmpeg - Media processing
- Alacritty - GPU terminal emulator
- Fish - Shell with syntax highlighting
- Tmux - Terminal multiplexer
- Fisher - Fish plugin manager
- Tide - Fish prompt theme
- Bat - Syntax-highlighted cat
- Eza - Modern ls replacement
- Ripgrep - Fast grep
- Fd - Fast find
- Chafa - Terminal image viewer
- Trash-cli - Trash management
- Reflector - Mirror list updater
- GitHub CLI - GitHub integration
- Neovim - Text editor with LSP
- Visual Studio Code - IDE
- Git - Version control
- PHP + Composer (PHPStan, Rector, PHP-CS-Fixer, Pint, PHPCS)
- Python + pipx (Black, Flake8, Mypy, Pre-commit)
- Go - Go language runtime
- Docker + Docker Compose
- Base-devel - Build tools (GCC, Make, etc.)
- Brave - Web browser
- Discord - Chat (with BetterDiscord)
- Telegram Desktop - Messenger
- Spotify - Music streaming
- Obsidian - Note-taking
- Zathura - PDF viewer
- Thunar - File manager
- PipeWire + WirePlumber - Audio system
- PulseAudio (via pipewire-pulse) - Audio compatibility
- Pavucontrol - Audio mixer
- Better Control - Audio device switcher
- Bluetooth (bluez + blueman) - Bluetooth stack
- NetworkManager - Network management
- UFW - Firewall
- Udiskie - Automount removable drives
- Auto-cpufreq - CPU governor optimization
- WireGuard - VPN
- Brightnessctl - Backlight control
- CPU Microcode - AMD/Intel updates
- GPU Drivers - NVIDIA/AMD/Intel support
- Xorg-xwayland - X11 app compatibility
- XDG Desktop Portal - Desktop integration
- xdg-desktop-portal-wlr - Wayland portal
- GTK - GTK theming (Catppuccin)
- Cursor Theme - Catppuccin cursors
- Yay - AUR helper
- Flatpak - Universal packages
- JetBrains Mono Nerd Font - Primary monospace font
- Font Awesome - Icon fonts (TTF, OTF, WOFF2)
- Catppuccin Mocha - Consistent color scheme across:
- GTK (2.0, 3.0, 4.0)
- Sway/SwayFX
- Terminal (Alacritty, Bat)
- Waybar, SwayNC, SwayOSD
- Zathura, Wofi, Wlogout
- Plymouth boot screen
- Greetd/ReGreet
- Cursor theme
config/- Application configurationsbin/- Executable scriptsansible/- Ansible playbooks for system provisioningsystemd/user/- User systemd services and timerstools/- Development tool configurations (PHP, Python, JS, etc.)themes/- Plymouth and GRUB themeswallpapers/- Wallpaper collectiondotfiles.json- Symlink mapping configuration
- Place your config file in the appropriate directory under
config/ - Add a mapping entry to dotfiles.json
- Run
workstation dotfiles linkto create the symlink
This project is licensed under the MIT License - see the LICENSE file for details.
- Catppuccin - Color scheme
- Sway - Wayland compositor
- All the amazing open-source projects that make this configuration possible
- Arch Linux Wiki
- Sway Documentation
- Waybar Examples
- r/unixporn - Desktop customization showcase