← Back to Repository

⚙️ wmswitch - Unified WM Configuration Manager

Single TOML configuration for i3, Hyprland, and AeroSpace window managers

wmswitch is a powerful configuration management tool that lets you maintain a single TOML configuration file and generate native configs for multiple tiling window managers. Perfect for users who switch between different environments or want to maintain consistent setups across multiple systems.

🎯 Single Source of Truth
One TOML config generates native configs for all your window managers
🔧 Interactive Wizard
Guided setup process for easy configuration creation
📦 Profile Management
Switch between work/personal/gaming configurations instantly
🔄 Migration Tools
Import existing i3 and Hyprland configurations automatically
✅ Advanced Validation
Conflict detection and comprehensive error reporting
🐚 Shell Completions
Full bash, zsh, and fish completion support

📦 Installation Options

🎯 RHEL/CentOS/Rocky/Alma/Fedora
🚀 RPM Install
# Add repository
sudo dnf config-manager --add-repo https://repos.musicsian.com/musicsian.repo # Install package
sudo dnf install wmswitch # Create your first configuration
wmswitch wizard ~/.config/wmswitch/config.toml # Generate configs for all supported WMs
wmswitch generate ~/.config/wmswitch/config.toml
🏛️ Arch Linux
🏛️ AUR Package Available
# Install using yay
yay -S wmswitch # Or using paru
paru -S wmswitch # Create your first configuration
wmswitch wizard ~/.config/wmswitch/config.toml # Generate configs for all supported WMs
wmswitch generate ~/.config/wmswitch/config.toml

Supported Window Managers

✅ i3wm - Full support with workspaces, keybinds, layouts ✅ Hyprland - Complete implementation with animations, effects 🚧 AeroSpace - Framework ready (macOS support coming soon)

Basic Usage Examples

# Interactive configuration creation
wmswitch wizard config.toml # Generate all WM configs
wmswitch generate config.toml # Generate for current WM only
wmswitch detect generate config.toml # Validate configuration
wmswitch validate config.toml # Profile management
wmswitch profile create work "Work setup"
wmswitch profile switch work
wmswitch profile generate # Migration from existing configs
wmswitch migrate auto config.toml
wmswitch migrate i3 config.toml # Dry-run mode (preview changes)
wmswitch --dry-run generate config.toml # Create backups before generating
wmswitch --backup generate config.toml

Sample Configuration (TOML)

# Workspace definitions [workspaces.dev] number = 1 monitor = "main" [workspaces.web] number = 2 monitor = "main" # Universal keybindings [keybinds] "mod+1" = "workspace 1" "mod+2" = "workspace 2" "mod+return" = "exec alacritty" "mod+d" = "exec rofi -show drun" # i3-specific keybindings [keybinds.i3.exclusive] "mod+shift+q" = "kill" "mod+shift+c" = "reload" # Hyprland-specific keybindings [keybinds.hyprland.exclusive] "mod+q" = "killactive" "mod+v" = "togglefloating"