mirror of
https://github.com/hyprwm/Hyprland.git
synced 2026-08-18 02:51:23 +00:00
db95de4f5b4ce446984d873e5b51ebdc380dc76c
HLMonitor:set_workspace() and set_special_workspace() (#15534)
* lua: make HLMonitor:set_workspace "silent" (no focus or mouse move) * lua: report correct function name when HLMonitor:set_special_workspace errors * monitor: allow setting special workspace on monitor without focusing that monitor * lua: make HLMonitor:set_special_workspace also "silent" * workspace: support not carrying focus with us in moveWorkspaceToMonitor This leaves focus on the same monitor, rather than carrying it along with the moved workspace as usual. * lua: fix HLMonitor:set_workspace placing the same WS on different monitors I thought this was already handled for me; apparently not. * lua: support creating new workspaces via HLMonitor:set_workspace(), set_special_workspace() * monitor: don't send workspace events on non-focusing workspace change * lua: better handle (non-)?special selectors in HLMonitor:set_workspace(), set_special_workspace() Both now check that they're given a workspace of the appropriate special-ness. * lua: don't require a table arg for HLMonitor:set_workspace(), set_special_workspace() Also, names given to `set_special_workspace()` no longer require a `special:` prefix, matching the toggle_special dispatcher's behavior. * misc: allow getting workspaces relative to a given monitor Not just the currently focused one. * lua: reference targeted monitor for relative WS selectors in set_workspace() Now, e.g. `m+1` selects the next workspace on the *targeted* monitor, rather than on the focused monitor. * tests: HLMonitor:set_workspace() behavior * tests: HLMonitor:set_special_workspace() behavior * tests: don't force unnecessary refreshes in luaGetWorkspace test * lua: return workspace name as selector for special workspaces Previously this would be the ID, which was negative and would then be interpreted later as a *relative* ID. Normal workspaces can still return their (positive) IDs, that's fine. * monitor: properly leave focus behind when stealing a special workspace
…
Hyprland is a 100% independent, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
It provides the latest Wayland features, is highly customizable, has all the eyecandy, the most powerful plugins,
easy IPC, much more QoL stuff than other compositors and more...
Install
Quick Start
Configure
Contribute
Features
- All of the eyecandy: gradient borders, blur, animations, shadows and much more
- A lot of customization
- 100% independent, no wlroots, no libweston, no kwin, no mutter.
- Custom bezier curves for the best animations
- Powerful plugin support
- Built-in plugin manager
- Tearing support for better gaming performance
- Easily expandable and readable codebase
- Fast and active development
- Not afraid to provide bleeding-edge features
- Config reloaded instantly upon saving
- Fully dynamic workspaces
- Two built-in layouts and more available as plugins
- Global keybinds passed to your apps of choice
- Tiling/pseudotiling/floating/fullscreen windows
- Special workspaces (scratchpads)
- Window groups (tabbed mode)
- Powerful window/monitor/layer rules
- Socket-based IPC
- Native IME and Input Panels Support
- and much more...
Special Thanks
wlroots - For powering Hyprland in the past
tinywl - For showing how 2 do stuff
Sway - For showing how 2 do stuff the overkill way
Vivarium - For showing how 2 do stuff the simple way
dwl - For showing how 2 do stuff the hacky way
Wayfire - For showing how 2 do some graphics stuff
Description
Hyprland is a dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
Readme
BSD-3-Clause
232 MiB
Languages
C++
96.1%
GLSL
0.9%
Shell
0.9%
CMake
0.5%
Nix
0.5%
Other
1%


