| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
Makes scroll handle fullscreen by itself, allowing for fs scrolls.
|
| |
|
|
| |
(#14272)
|
| | |
|
| |
|
|
|
| |
* workspace rules: support modifying persistent and monitor
* support modifying isDefault
|
| | |
|
| | |
|
| | |
|
| |
|
| |
Adds a new lua config manager, which will automatically be used if there is a lua config present.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* input: implement follow_mouse_shrink
Add a new config option `input:follow_mouse_shrink` (INT, 0-300, default 0)
that shrinks inactive window hitboxes by the specified number of pixels for
focus detection purposes. This creates a dead zone in gaps between windows
where moving the cursor will not trigger a focus change.
The shrink only applies to inactive (non-focused) windows and only during
mouse-move focus checks (follow_mouse = 1). Click and scroll interactions
are unaffected — clicking on a window in the shrunk area still works
normally once the window is focused.
Closes #9973
* tests: add integration test for follow_mouse_shrink
|
| |
|
|
|
|
|
| |
Improves the overlay's rendering:
- GPU accelerated
- supports gradients
- wraps
- cleaner code a bit
|
| |
|
|
| |
optimizes the rendering, drops direct cairo, fixes up api.
Also improves the visuals etc of the overlay
|
| |
|
| |
Part 8 of Ujin's refactors.
|
| |
|
| |
moves to notification/, and adds a new style manager getter.
|
| | |
|
| |
|
|
| |
caches popup extents in the head to avoid potentially expensive traversals
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* misc: silence warnings about ignoring return value on reads
silence warnings on ignored return values on read() and print an error
if it occurs.
* misc: silence warnings about ignoring return value on writes
silence warnings on ignored return values on write() and print an error
where we can, or pass them the maybe_unused attribute.
* misc: silence warnings about ignoring return value on pipe
silence warnings on ignored return value on pipe(), print an error and
exit on failure.
|
| | |
|
| |
|
|
|
|
|
| |
Part 7 of ujin's refactors
---------
Co-authored-by: Vaxry <vaxry@vaxry.net>
|
| |
|
|
|
|
|
|
|
| |
coord (#13720)
* Be more selective about how we expand the window box here so that we're not overlapping with any neighbouring windows.
* Don't use getWindowInDirection to see if we're clear to expand the hit box. Instead, just see if our edge is close to the edge of the workspace.
* Clang-format changes
|
| |
|
|
| |
Massively refactors the config infrastructure, sorely
needed and will be req'd for the lua stuff
|
| | |
|
| |
|
|
|
|
|
|
|
| |
necessary (#13607)
Simplify the compositor fullscreen state processing: use the complete
fullscreen mode value except when the effective fullscreen mode value
is needed.
Fixes #13041.
|
| | |
|
| | |
|
| |
|
|
| |
failure (#13590)
|
| |
|
|
| |
ref https://github.com/hyprwm/Hyprland/discussions/13386
|
| | |
|
| |
|
| |
When all monitors disconnect, non-active workspaces could migrate to the wrong output after reconnect. Preserve workspace ownership and re-apply assigned monitor bindings on connect.
|
| |
|
|
| |
fixes edge detection, making it more relaxed and intuitive
|
| |
|
| |
in a multimon scenario, due to our positioning hacks, and due to the fact work area is a rect anyways, likely wont make sense
|
| |
|
|
|
| |
Refactors the old HookSystem into a typed event bus with clear
separation,
discovery and types.
|
| |
|
| |
Implements the new screencopy protocols
|
| |
|
|
|
| |
Rewrites layouts to be much smaller, and deal with much less annoying
BS. Improves the overall architecture, unifies handling of pseudotiling,
and various other improvements.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
After suspend/wake, the animation tick timer state (m_lastTickValid,
m_tickScheduled) could be stale, causing framerate drops when blur is
enabled. This was introduced in 2b0fd417 which changed the animation
tick timing mechanism.
Reset the tick state when the session becomes active to ensure a clean
state for the animation system.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix image description info events
* always send some target primaries
* set edid values as target primaries and luminances
* init monitor image description
* set default luminances for tf
* fix BT1886 luminances
* fix mastering values and overrides
* set maxCLL & maxFALL
* typo
* add FALL & CLL to preferred HDR image description
* fix ref luminances
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* fix named primaries
* default to gamma22
* mark mastering primaries as supported
* remove xx-cm and frog support
* immutable primaries and image descriptions
* clang-format
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
I've tested this change with different modes from the monitor default
and validated that dpms still works, at least on my machine. If there's
a good reason why this exists, feel free to correct me, but this helps
get us closer to a flicker-free experience.
|
| | |
|
| | |
|
| |
|
|
|
| |
getMonitorFromVector can return nullptr on empty m_monitors, as such is
the case when the compositor is going down and a surface exist. return
early in vectorToWindowUnified if that happends.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* compositor: dont try to focus unmapped window
if lastwindow is unmapped it hits getWindowInDirection and nullptr
derefs window->m_workspace. and coredumps. triggered by dual monitor and
one client on each surface with a combination of animation and
killactive / movefocus keybind.
* keybindmgr: use newly added aliveAndVisible()
use newly added aliveAndVisible() over visible()
|
| | |
|