hypr-cycle

Crates.iohypr-cycle
lib.rshypr-cycle
version0.5.1
created_at2025-11-28 04:10:19.582536+00
updated_at2025-12-20 11:36:16.193221+00
descriptionA fast and monitor-aware workspace cycler for Hyprland, written in Rust.
homepage
repositoryhttps://github.com/christopherdolan/hypr-cycle
max_upload_size
id1954800
size32,192
Christopher Dolan (christopherdolan)

documentation

README

hypr-cycle

A fast, minimal Rust utility to cycle through workspaces on the currently focused monitor in Hyprland. Unlike hyprctl dispatch workspace e+1, this tool avoids switching workspaces to a different monitor in multi-monitor setups. Unlike hyprctl dispatch focusworkspaceoncurrentmonitor next, this will only switch to workspaces with windows on them.

Build


Features

  • Cycles only the workspaces bound to the focused monitor
  • Wraps around when reaching the end or beginning
  • Fast, clean, and dependency-free
  • Written in Rust for performance and reliability

Installation

Cargo

If you've got the Rust tools installed, this is probably the easiest way to get it.

  cargo install hypr-cycle

Arch Linux (via the AUR)

  • Requires Git.
  1. Clone the repo:
git clone https://aur.archlinux.org/hypr-cycle.git
  1. Make and install
cd hypr-cycle
makepkg -si

... or just install hypr-cycle via your favorite AUR helper. (This is the only method that doesn't require you to have Rust tools installed.)

  • Example requires yay, but any AUR helper will do.

    yay hypr-cycle
    

From Source

  1. Clone the repo:

    git clone https://github.com/christopherdolan/hypr-cycle
    cd hypr-cycle
    
  2. Build and install:

    cargo build --release
    sudo install -Dm755 target/release/hypr-cycle /usr/local/bin/hypr-cycle
    

If you want to package this for other distributions, be my guest!


Usage

hypr-cycle previous
hypr-cycle next

This will cycle to the next or previous numbered workspace on the monitor that currently has keyboard focus.


Example Hyprland Config

If you want to change workspaces using Mod+Tab and Mod+Shift+Tab, add these bindings to your ~/.config/hypr/hyprland.conf:

bind = $mod SHIFT, Tab, exec, hypr-cycle previous
bind = $mod, Tab, exec, hypr-cycle next

Example Waybar Config

If you want to change workspaces on Waybar using your mouse wheel, add these to your ~/.config/waybar/config.jsonc:

        "hyprland/workspaces": {
            // ...
            "on-scroll-up":"hypr-cycle previous",
            "on-scroll-down":"hypr-cycle next",
            // ...
        },

Dependencies


License

MIT license. See LICENSE file.


Contributions

PRs and suggestions welcome! This is a minimal utility, but if you have an idea to make it more powerful or efficient, feel free to open an issue or PR.

Commit count: 0

cargo fmt