Browse by type
A plugin for Hyprland that implements a workspace overview feature similar to that of KDE Plasma, GNOME and macOS, aimed to provide a efficient way of workspace and window management.
[!NOTE] This plugin is still maintained, by combined efforts of me and all the awesome contributors. However, I do not have as much time that I could spend on this plugin as before, and Hyprland is a rapidly changing codebase. Therefore, at this time, I could not guarantee that new issues could be resolved promptly. I appreciate your acknowledgement and support for this project!
P.S.: I could recommend giving niri a try for anyone who is considering an alternative to Hyprland. It is a scrolling window manager that offers a great built-in overview feature that allows dragging windows in-between workspaces just like this plugin does. It also has better workspace management as it cleans up empty workspaces like GNOME does.
https://github.com/KZDKM/Hyprspace/assets/41317840/ed1a585a-30d5-4a79-a6da-8cc0713828f9
To build, have hyprland headers installed and under the repo directory do:
make all
Then use hyprctl plugin load followed by the absolute path to the .so file to load, you could add this to your exec-once to load the plugin on startup
hyprpm add https://github.com/KZDKM/Hyprspace
hyprpm enable Hyprspace
Refer to the Hyprland wiki on plugins, but your flake might look like this:
{
inputs = {
# Hyprland is **such** eye candy
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
inputs.nixpkgs.follows = "nixpkgs";
};
Hyprspace = {
url = "github:KZDKM/Hyprspace";
# Hyprspace uses latest Hyprland. We declare this to keep them in sync.
inputs.hyprland.follows = "hyprland";
};
};
... # your normal setup with hyprland
wayland.windowManager.hyprland.plugins = [
# ... whatever
inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
];
}
overview:toggle or perform a workspace swipe vertically would open / close the panel.overview:toggle dispatcher to toggle workspace overview on current monitoroverview:close to close the overview on current monitor if openedoverview:open to open the overview on current monitor if closedall argument to these dispatchers would toggle / open / close overview on all monitorsplugin:overview:panelColorplugin:overview:panelBorderColorplugin:overview:workspaceActiveBackgroundplugin:overview:workspaceInactiveBackgroundplugin:overview:workspaceActiveBorderplugin:overview:workspaceInactiveBorderplugin:overview:dragAlpha overrides the alpha of window when dragged in overview (0 - 1, 0 = transparent, 1 = opaque)plugin:overview:disableBlurplugin:overview:panelHeightplugin:overview:panelBorderWidthplugin:overview:onBottom whether if panel should be on bottom instead of topplugin:overview:workspaceMargin spacing of workspaces with eachother and the edge of the panelplugin:overview:reservedArea padding on top of the panel, for Macbook camera notchplugin:overview:workspaceBorderSizeplugin:overview:centerAligned whether if workspaces should be aligned at the center (KDE / macOS style) or at the left (Windows style)plugin:overview:hideBackgroundLayers do not draw background and bottom layers in overviewplugin:overview:hideTopLayers do not draw top layers in overviewplugin:overview:hideOverlayLayers do not draw overlay layers in overviewplugin:overview:hideRealLayers whether to hide layers in actual workspaceplugin:overview:drawActiveWorkspace draw the active workspace in overview as-isplugin:overview:overrideGaps whether if overview should override the layout gaps in the current workspace using the following valuesplugin:overview:gapsInplugin:overview:gapsOutplugin:overview:affectStrut whether the panel should push window aside, disabling this option also disables overrideGapswindows curve for a slide-in animationplugin:overview:overrideAnimSpeed to override the animation speedplugin:overview:autoDrag mouse click always drags window when overview is openplugin:overview:autoScroll mouse scroll on active workspace area always switch workspaceplugin:overview:exitOnClick mouse click without dragging exits overviewplugin:overview:switchOnDrop switch to the workspace when a window is droppped into itplugin:overview:exitOnSwitch overview exits when overview is switched by clicking on workspace view or by switchOnDropplugin:overview:showNewWorkspace add a new empty workspace at the end of workspaces viewplugin:overview:showEmptyWorkspace show empty workspaces that are inbetween non-empty workspacesplugin:overview:showSpecialWorkspace defaults to falseplugin:overview:disableGesturesplugin:overview:reverseSwipe reverses the direction of swipe gesture, for macOS peeps?plugin:overview:exitKey key used to exit overview mode (default: Escape). Leave empty to disable keyboard exit.gestures:workspace_swipe_fingersgestures:workspace_swipe_cancel_ratiogestures:workspace_swipe_min_speed_to_force$ claude mcp add Hyprspace \
-- python -m otcore.mcp_server <graph>