Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hypr-switch

A capture-based configuration switcher for Hyprland. Manage multiple Hyprland shells/rices (skwd, brainshell, HyDE, custom dotfiles, etc.) side by side — including everything they touch beyond just hyprland.lua: kitty, rofi, waybar, fastfetch, and a curated set of dotfiles directly in $HOME like .zshrc.

Caution

Updating a shell while it is active modifies its captured files in place. Because every managed config path is a symlink into that shell's storage, running its update script directly edits the stored baseline. This is safe only if the update modifies files in place. If the update replaces directories (e.g. rm -rf ~/.config/kitty && cp -r new_kitty ~/.config/kitty), it will break the symlink invariant and future switches will abort. For updates that replace directories, use hypr-switch capture-start <name> before updating and hypr-switch capture-finish <name> after.

Installation

git clone https://github.com/bobincraft1/hypr-switch.git
cd hypr-switch
chmod +x install-hypr-switch.sh hypr-switch
./install-hypr-switch.sh

Or one-line:

curl -fsSL https://raw.githubusercontent.com/bobincraft1/hypr-switch/main/install-hypr-switch.sh | bash

The installer copies hypr-switch to ~/.local/bin, adds it to your PATH, and runs the one-time bootstrap to capture your current config as default.

How to use

# List discovered shells
hypr-switch --list

# Switch to a shell
hypr-switch <name>

# Capture a new shell
hypr-switch capture-start <name>
# ... run the shell's installer ...
hypr-switch capture-finish <name>

# Abort a capture in progress
hypr-switch capture-cancel

# Show what a shell owns
hypr-switch show <name>

For detailed documentation, see docs/hypr-switch.md.

About

A lightweight symlink-based shell switcher for hyprland.

Resources

Stars

17 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages