Skip to content

S-Sigdel/hyprdrover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hyprdrover

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.

Features

  • 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.

Installation

Prerequisites

  • Rust (latest stable toolchain)
  • Hyprland
  • hyprctl (usually comes with Hyprland)

Building from Source

  1. Clone the repository:

    git clone https://github.com/S-Sigdel/hyprDrover.git
    cd hyprDrover
  2. Build the project:

    cargo build --release
  3. 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/

From AUR

  1. You can also use aur helper like yay to install this package from Arch User Repository:
    yay -S hyprdrover

Usage

hyprdrover is controlled entirely via the command line.

Save a Session

To snapshot the current state of your Hyprland session:

hyprdrover --save

This will create a new JSON file in ~/.config/hyprdrover/sessions/ with a timestamp.

You can also give the session a name:

hyprdrover --save my-workflow

This will save the session as my-workflow.json.

List Saved Sessions

To view all available snapshots:

hyprdrover --list

Restore a Session

To restore the most recent session:

hyprdrover --load

To restore a specific named session:

hyprdrover --load my-workflow

To restore a specific session file by path:

hyprdrover --load ~/.config/hyprdrover/sessions/session_YYYY-MM-DD_HH-MM-SS.json

Install

To install the binary to your local bin directory (~/.local/bin):

hyprdrover --install

Configuration

Currently, configuration is handled via defaults. The application automatically ignores the following window classes to prevent issues during restoration:

  • rofi
  • waybar
  • dunst
  • hyprland-share-picker
  • polkit-gnome-authentication-agent-1

Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

Releases

For pre-built binaries and version history, please check the Releases tab.

About

a lightweight session manager for hyprland in rust

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors