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"