| Crates.io | hypr-cycle |
| lib.rs | hypr-cycle |
| version | 0.5.1 |
| created_at | 2025-11-28 04:10:19.582536+00 |
| updated_at | 2025-12-20 11:36:16.193221+00 |
| description | A fast and monitor-aware workspace cycler for Hyprland, written in Rust. |
| homepage | |
| repository | https://github.com/christopherdolan/hypr-cycle |
| max_upload_size | |
| id | 1954800 |
| size | 32,192 |
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.
If you've got the Rust tools installed, this is probably the easiest way to get it.
cargo install hypr-cycle
git clone https://aur.archlinux.org/hypr-cycle.git
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
Clone the repo:
git clone https://github.com/christopherdolan/hypr-cycle
cd hypr-cycle
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!
hypr-cycle previous
hypr-cycle next
This will cycle to the next or previous numbered workspace on the monitor that currently has keyboard focus.
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
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",
// ...
},
MIT license. See LICENSE file.
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.