hyprdrover is a lightweight session manager for the Hyprland compositor. It allows users to snapshot their current window layout (workspaces, positions, and sizes) and restore it later. This is particularly useful for saving specific workflows and quickly switching between them.
- Session Snapshot: Captures the state of all active windows, including their workspace, position, size, and monitor.
- Session Restoration: Restores windows to their saved positions and workspaces.
- Application Launching: Automatically attempts to launch applications that are missing from the current session during restoration.
- Smart Filtering: Automatically ignores system overlays and background utilities (e.g., Rofi, Waybar, Dunst).
- CLI Interface: Simple command-line interface for saving, loading, and listing sessions.
- JSON Storage: Sessions are saved as human-readable JSON files.
- Rust (latest stable toolchain)
- Hyprland
hyprctl(usually comes with Hyprland)
-
Clone the repository:
git clone https://github.com/S-Sigdel/hyprDrover.git cd hyprDrover -
Build the project:
cargo build --release
-
Install the binary: You can use the built-in install command to copy the binary to
~/.local/bin/:./target/release/hyprdrover --install
Alternatively, you can manually move it:
sudo cp target/release/hyprdrover /usr/local/bin/
- You can also use aur helper like yay to install this package from Arch User Repository:
yay -S hyprdrover
hyprdrover is controlled entirely via the command line.
To snapshot the current state of your Hyprland session:
hyprdrover --saveThis will create a new JSON file in ~/.config/hyprdrover/sessions/ with a timestamp.
You can also give the session a name:
hyprdrover --save my-workflowThis will save the session as my-workflow.json.
To view all available snapshots:
hyprdrover --listTo restore the most recent session:
hyprdrover --loadTo restore a specific named session:
hyprdrover --load my-workflowTo restore a specific session file by path:
hyprdrover --load ~/.config/hyprdrover/sessions/session_YYYY-MM-DD_HH-MM-SS.jsonTo install the binary to your local bin directory (~/.local/bin):
hyprdrover --installCurrently, configuration is handled via defaults. The application automatically ignores the following window classes to prevent issues during restoration:
rofiwaybardunsthyprland-share-pickerpolkit-gnome-authentication-agent-1
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
For pre-built binaries and version history, please check the Releases tab.