SessionIntent allows you to switch between different "intent-based modes" (Work, Gaming, Browsing, etc.) that automatically launch, reuse, and organize your applications across workspaces.
- 🎯 Intent-based sessions - Define your workflow as modes (work, browsing, gaming, etc.)
- 🔋 Hardware awareness - Automatically adjust modes based on battery/AC power
- 📝 Declarative configuration - Single YAML file defines everything
- 🔒 Safe operations - No data loss, no forced kills
- 🎛️ Workspace orchestration - Advisory workspace placement
- 🧪 Dev mode - Test configurations and system functionality
- 🔄 Hot reload - Edit config and apply without restart
curl -fsSL https://raw.githubusercontent.com/fazrigading/SessionIntent/master/INSTALL.sh | bashpip install -r requirements.txtRead docs/INSTALLATION.md for more details on manual installation.
- Initialize default config:
sessionintent --init-
Edit
~/.config/sessionintent/config.yamlto define your modes, read examples/config.example.yaml for reference. -
Launch the mode selector:
sessionintent# Select mode via UI (requires wofi/rofi) - default behavior
sessionintent
# Apply specific mode directly (without wofi/rofi)
sessionintent --mode browsing
sessionintent -m browsing
# Session control
sessionintent --panic / -P # Clear state (no app termination)
sessionintent --quit / -q # Gracefully close managed apps
sessionintent --clear # Clear state files only
sessionintent --kill / -k # Force kill managed apps
sessionintent --suspend -S # Suspend session
# Status and listing
sessionintent --status / -s # Show current status
sessionintent --list / -l # List available modes
# Configuration
sessionintent --init / -i # Initialize default config
sessionintent --reload / -r # Reload configuration
# Dry-run mode (for dev testing)
sessionintent --dev --mode work
sessionintent -d -m work| File | Purpose |
|---|---|
~/.config/sessionintent/config.yaml |
User mode definitions |
~/.config/sessionintent/apps.yaml |
User app registry |
/usr/share/sessionintent/apps.yaml |
System app registry |
~/.local/state/sessionintent/current |
Current session state |
- Python 3.10+
- PyYAML
- wofi or rofi (OPTIONAL, for UI)
- GNOME Wayland
- Fedora:
sudo dnf install sessionintent(via COPR) [PLANNED] - Other distros: Use
install.shscript
MIT License - see LICENSE for details.
Contributions are welcome! See CONTRIBUTING.md and docs/ROADMAP.md for details.
- Built for GNOME Wayland
- Inspired by window manager session management tools