A plugin for Hyprland that implements a workspace overview feature similar to that of KDE Plasma and macOS, aims to provide a mouse-friendly way of workspace and window management.
Only works with the latest git version currently!
demo.mp4
- Make sure to use
hyprland-git
(versions newer than this commit: https://github.com/hyprwm/Hyprland/commit/ef23ef60c5641c5903f9cf40571ead7ad6aba1b9)
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
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 ={
# Update for releavant commit, this is just bleeding edge as of 2024/04/11
url = github:hyprwm/Hyprland/ac0f3411c18497a39498b756b711e092512de9e0;
inputs.nixpkgs.follows = "nixpkgs";
};
Hyprspace = {
url = github:KZDKM/Hyprspace;
inputs.hyprland.follows = "hyprland";
};
};
... # your normal setup with hyprland
wayland.windowManager.hyprland.plugins = [
# ... whatever
inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
];
}
- Use
overview:toggle
dispatcher to toggle workspace overview on current monitor - Use
overview:close
to close the overview on current monitor if opened - Use
overview:open
to open the overview on current monitor if closed - Adding the
all
argument tooverview:close
andoverview:open
would open / close overview on all monitors
plugin:overview:panelColor
plugin:overview:workspaceActiveBackground
plugin:overview:workspaceInactiveBackground
plugin:overview:workspaceActiveBorder
plugin:overview:workspaceInactiveBorder
plugin:overview:dragAlpha
overrides the alpha of window when dragged in overview (0 - 1, 0 = transparent, 1 = opaque)
plugin:overview:panelHeight
plugin:overview:workspaceMargin
spacing of workspaces with eachother and the edge of the panelplugin:overview:workspaceBorderSize
plugin:overview:centerAligned
whether if workspaces should be aligned at the center (KDE / macOS style) or at the left (Windows style)plugin:overview:overrideGaps
whether if the following tiling gap values should be applied when overview is openplugin:overview:gapsIn
plugin:overview:gapsOut
plugin:overview:hideBackgroundLayers
do not draw background layers in overviewplugin:overview:drawActiveWorkspace
draw the active workspace in overview as-is
- The panel uses the
windows
curve for a slide-in animation - Use
plugin:overview:overrideAnimSpeed
to override the animation speed
plugin: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 byswitchOnDrop
plugin:overview:showNewWorkspace
add a new empty workspace at the end of workspaces viewplugin:overview:showEmptyWorkspace
show empty workspaces that are inbetween non-empty workspaces
- Overview interface
- Workspace minimap
- Workspace display
- Workspace labels (workspace ID / name)
- Mouse controls
- Moving window between workspaces
- Creating new workspaces
- Dragging windows between workspace views
- Configurability
- Styling
- Panel background
- Workspace background & border
- Panel on Bottom
- Vertical layout (on left / right)
- Panel top padding (reserved for bar / notch)
- Unique styling for special workspaces
- Behavior
- Autodrag windows
- Autoscroll workspaces
- Responsive workspace switching
- Responsive exiting
- Exit on click / switch
- Exit with escape key
- Blacklisting workspaces
- Show / hide new workspace and empty workspaces
- Show / hide special workspace (#11)
- Blacklisting layers from hiding
- Styling
- Animation support
- Multi-monitor support
- Monitor scaling support
- aarch64 support (CFunctionHook reimplementation)
- Touchpad & gesture support
- Workspace swipe (#9)
- Scrolling through workspace panel (untested)
- Swipe to open
- hyprsplit (tested)