Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/KZDKM/Hyprspace
Workspace overview plugin for Hyprland
https://github.com/KZDKM/Hyprspace
Last synced: 2 months ago
JSON representation
Workspace overview plugin for Hyprland
- Host: GitHub
- URL: https://github.com/KZDKM/Hyprspace
- Owner: KZDKM
- License: gpl-2.0
- Created: 2024-03-27T05:51:06.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-04-11T19:08:54.000Z (2 months ago)
- Last Synced: 2024-04-12T01:43:12.226Z (2 months ago)
- Language: C++
- Size: 140 KB
- Stars: 152
- Watchers: 4
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Lists
- awesome-stars - Hyprspace
- my-awesome-stars - KZDKM/Hyprspace - Workspace overview plugin for Hyprland (C++)
- awesome-hyprland - hyprspace
README
# Hyprspace
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!
https://github.com/KZDKM/Hyprspace/assets/41317840/ed1a585a-30d5-4a79-a6da-8cc0713828f9
## Features
- [x] Overview interface
- [x] Workspace minimap
- [x] Workspace display
- [x] Mouse controls
- [x] Moving window between workspaces
- [x] Creating new workspaces
- [x] Configurability
- [x] Animation support
- [x] Multi-monitor support
- [x] Monitor scaling support
- [ ] aarch64 support (CFunctionHook reimplementation)
- [ ] Touchpad & gesture support## Installation
- Make sure to use `hyprland-git` (versions newer than this commit: https://github.com/hyprwm/Hyprland/commit/ef23ef60c5641c5903f9cf40571ead7ad6aba1b9)
### Manual
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
```
hyprpm add https://github.com/KZDKM/Hyprspace
hyprpm enable Hyprspace```
### Nix
Refer to the [Hyprland wiki](https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#plugins) on plugins, but your flake might look like this:
```nix
{
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
];
}
```## Configuration
### Dispatchers
- 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 to `overview:close` and `overview:open` would open / close overview on all monitors
### Styling
#### Colors
- `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)
#### Layout
- `plugin:overview:panelHeight`
- `plugin:overview:workspaceMargin` spacing of workspaces with eachother and the edge of the panel
- `plugin: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 open
- `plugin:overview:gapsIn`
- `plugin:overview:gapsOut`
- `plugin:overview:hideBackgroundLayers` do not draw background layers in overview
- `plugin:overview:drawActiveWorkspace` draw the active workspace in overview as-is### Animation
- The panel uses the `windows` curve for a slide-in animation
- Use `plugin:overview:overrideAnimSpeed` to override the animation speed### Behaviors
- `plugin:overview:autoDrag` mouse click always drags window when overview is open
- `plugin:overview:autoScroll` mouse scroll on active workspace area always switch workspace
- `plugin:overview:exitOnClick` mouse click without dragging exits overview
- `plugin:overview:switchOnDrop` switch to the workspace when a window is droppped into it
- `plugin:overview:exitOnSwitch` overview exits when overview is switched by clicking on workspace view or by `switchOnDrop`
- `plugin:overview:showNewWorkspace` add a new empty workspace at the end of workspaces view
- `plugin:overview:showEmptyWorkspace` show empty workspaces that are inbetween non-empty workspaces## Plugin Compatibility
- [x] [hyprsplit](https://github.com/shezdy/hyprsplit) (tested)