A plugin for Hyprland that allows for complete control over your windows and workspaces.
- Supports Hyprland release
v0.46.2
.
demo_small.mp4
This plugin's current workflow is very similar to that of hyprexpo. Check it out if you'd like something more polished and performant.
- No clue, open an issue if something goes wrong
- Mouse controls
- Exit into workspace (hover, click)
- Drag and drop windows
- Keyboard controls
- Switch workspaces with direction
- Switch workspaces with absolute number
- Multi-monitor support (tested)
- Monitor scaling support (tested)
- Animation support
- Configurability
- Overview exit behavior
- Number of visible workspaces
- Custom workspace layouts
- Toggle behavior
- Toggle keybind
- Touch and gesture support
hyprpm add https://github.com/raybbian/hyprtasking
hyprpm enable hyprtasking
To build, have hyprland headers installed on the system and then:
meson setup build
cd build && meson compile
Then use hyprctl plugin load
to load the absolute path to the .so
file.
- Bind
hyprtasking:toggle, all
to a keybind to open/close the overlay on all monitors. - See below for configuration options.
- Workspace Transitioning:
- Open the overlay, then use right click to switch to a workspace
- Use the directional dispatchers
hyprtasking:move
to switch to a workspace
- Window management:
- Left click to drag and drop windows around
Example below:
bind = $mainMod, tab, hyprtasking:toggle, all
bind = $mainMod, space, hyprtasking:toggle, cursor
bind = $mainMod, h, hyprtasking:move, left
bind = $mainMod, j, hyprtasking:move, down
bind = $mainMod, k, hyprtasking:move, up
bind = $mainMod, l, hyprtasking:move, right
plugin {
hyprtasking {
rows = 3
exit_behavior = original hovered interacted
gap_size = 8
bg_color = $love
}
}
-
hyprtasking:toggle, ARG
takes in 1 argument that is eithercursor
orall
- if the argument is
all
, then- if all overviews are hidden, then all overviews will be shown
- otherwise all overviews will be hidden
- if the argument is
cursor
, then- if current monitor's overview is hidden, then it will be shown
- otherwise all overviews will be hidden
- if the argument is
-
hyprtasking:move, ARG
takes in 1 argument that is one ofup
,down
,left
,right
- when dispatched, hyprtasking will switch workspaces with a nice animation
-
plugin:hyprtasking:rows
(int): The number of rows (and columns) of workspaces to show -
plugin:hyprtasking:gap_size
(int): The width (pixels) of the vertical gaps between workspaces -
plugin:hyprtasking:bg_color
(color): The background color that does not include -
plugin:hyprtasking:exit_behavior
(str): A space-separated list of{'hovered', 'interacted', 'original'}
- When an overview is about to hide, hyprtasking will evaluate these strings in order
- If the string is
'hovered'
, hyprtasking will attempt to switch to the hovered workspace - If the string is
'interacted'
, hyprtasking will attempt to switch to the last interacted workspace (window drag/drop, overview show/hide) - If the string is
'original'
, hyprtasking will attempt to switch to the workspace in which the overview was shown initially
- If the string is
- If hyprtasking fails to do any of the above, it will move to the next string in the list
- When an overview is about to hide, hyprtasking will evaluate these strings in order