A highly configurable, dynamic Linux session switcher designed to work seamlessly with display managers with enabled autologin (like greeted) and dynamic menus. Instead of hardcoding session switches, Killswitch lets you define flexible session "profiles" in a unified Bash configuration file.
- Easily swap between Desktop (Niri/Hyprland), Gaming (Gamescope Steam), and Android (Waydroid) smoothly.
- Dynamic Rofi menu built on-the-fly from your active configuration.
- Configuration is standard Bash, giving you unlimited scripting potential inside your
startandkillsteps. - Integrates perfectly with standard Display Managers via a custom
.desktopsession wrapper.
Run the installation script to copy the core files into your /usr/local/bin and create the default user configurations:
sudo ./install.shYour local configuration will be located at ~/.config/killswitch/config.sh.
Here you can define any number of sessions using the naming convention session_<ID>_name, session_<ID>_start, and session_<ID>_kill.
Example:
session_waydroid_name="📱 Waydroid"
session_waydroid_start() {
exec cage -- waydroid show-full-ui
}
session_waydroid_kill() {
pkill -u $USER cage 2>/dev/null || true
}- Log out or restart your Display Manager.
- Select the Killswitch session in your greeted config file.
- Bind
killswitch-switcherto a hotkey in your window manager.