summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-84/+54
| | | | | 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.
* compositor: guard null view() in getWindowFromSurface (#13255)garypippi2026-02-131-1/+1
|
* input: fix edge grab resize logic for gaps_out > 0 (#13144)ekhadley2026-02-011-0/+2
|
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-311-0/+4
|
* animation: reset tick state on session activation (#13024)William Wernert2026-01-211-0/+4
| | | | | | | | | 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.
* protocols/cm: Fix image description info events (#12781)UjinT342026-01-131-7/+10
| | | | | | | | | | | | | | | | | | | | | | | * 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
* protocols/syncobj: fix DRM sync obj support logging (#12946)Chris Naporlee2026-01-121-4/+4
|
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-271-17/+13
| | | | | | | | | | | | | * fix named primaries * default to gamma22 * mark mastering primaries as supported * remove xx-cm and frog support * immutable primaries and image descriptions * clang-format
* Desktop/history: Move history to desktop (#12676)Vaxry2025-12-201-11/+12
|
* debug: move to hyprutils' logger (#12673)Vaxry2025-12-181-142/+127
|
* compositor: warn on start via a log about start-hyprlandVaxry2025-12-171-1/+2
|
* desktop/layer: store aboveFs property and use thatVaxry2025-12-161-1/+5
|
* core/compositor: remove a monitor reset on cleanup (#12645)Mason Davy2025-12-151-3/+0
| | | | | | 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.
* compositor: fix isPointOnReservedAreaVaxry2025-12-131-2/+2
|
* compositor: return nullptr when cursor is outside of a maximized windows' boxVaxry2025-12-131-2/+12
|
* compositor: early return on no monitor (#12637)Tom Englund2025-12-121-1/+4
| | | | | 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 (#12629)Tom Englund2025-12-111-0/+3
| | | | | | | | | | | | * 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()
* desktop/view: use aliveAndVisible for most things (#12631)Vaxry2025-12-111-3/+3
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-081-29/+35
|
* start: init start-hyprland and safe mode (#12484)Vaxry2025-12-051-2/+60
|
* desktop: rewrite reserved area handling + improve tests (#12383)Vaxry2025-12-051-8/+7
|
* crashReporter: cleanup code (#12534)Vaxry2025-12-031-2/+2
| | | | various code cleanups, reorders, move off of global NS
* renderer: add quirks:prefer_hdr to fix HDR activation for some clients (#12436)UjinT342025-12-031-0/+21
|
* welcome: init welcome manager (#12409)Vaxry2025-12-021-0/+5
| | | | | --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-249/+33
| | | | | | | | | | fullscreen (#12033) Renames `misc:new_window_takes_over_fullscreen` into `misc:on_focus_under_fullscreen` and implements the following behavior: - By default, when a tiling window is being focused on a workspace where a fullscreen/maximized window exists, respect the `misc:on_focus_under_fullscreen` config variable.
* windowrules: rewrite completely (#12269)Vaxry2025-11-171-117/+27
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* i18n: init localization for ANR, Permissions and Notifications (#12316)Vaxry2025-11-161-11/+7
| | | | | | | | Adds localization support for en, it, pl and jp --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Aaron Blasko <blaskoazzolaaaron@gmail.com>
* internal: fix crash at startup on FreeBSD (#12298)Hiroki Tagato2025-11-131-0/+2
| | | | | Hyprland at the latest commit crashes at starting up on FreeBSD with SIGSEGV. Checking the validity of g_pXWayland->m_wm before calling updateWorkArea() appears to fix the issue.
* core: qtutils -> guiutils (#12231)Vaxry2025-11-071-4/+4
| | | | | | | | | | | * core: qtutils -> guiutils * nix: qtutils -> guiutils * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* compositor: block parent window interaction when modal dialog children ↵Alvaro Parker2025-11-061-13/+25
| | | | window is open (#12057)
* xwayland: set _NET_WORKAREA property (#12148)jmanc32025-10-291-0/+36
|
* compositor: check for monitor layout issues post rule applyVaxry2025-10-261-0/+32
| | | | fixes #12108
* workspaces: fix persistence with no monitor specified (#11807)Vaxry2025-09-231-2/+5
|
* renderer: asynchronously load background tex (#11749)Vaxry2025-09-181-0/+5
| | | | | | | Bumps required hyprgraphics to 0.1.6 --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* input: Add fully configurable trackpad gestures (#11490)Vaxry2025-08-281-38/+15
| | | Adds configurable trackpad gestures
* syncobj: use rendernode for timelines (#11087)Tom Englund2025-08-241-13/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * syncobj: use rendernode for timelines use rendernode for timelines instead of the drmfd, some devices dont support to use the drmfd for this. * opengl: use rendernode if available use rendernode if available for CHyprOpenglImpl * MesaDRM: use the m_drmRenderNodeFD if it exist try use the rendernode we got from AQ if it exist. * linuxdmabuf: use rendernode if available use the rendernode if available already from AQ * syncobj: prefer rendernode over displaynode prefer the rendernode over the displaynode, and log a error if attempting to use the protocol without explicit sync support on any of the nodes. * syncobj: check support on both nodes always check support on both nodes always so it can be used later for preferring rendernode if possible in syncobj protocol. * syncobj: remove old var in non linux if else case remove old m_bDrmSyncobjTimelineSupported from non linux if else case that will fail to compile on non linux. the nodes sets support by default to false, and if non linux it wont check for support and set it to true. * build: bump aq requirement bump to 0.9.3 where rendernode support got added. * flake.lock: update * renderer: glfinish on software renderer software renderers apparently bug out on implicit sync, use glfinish as with nvidia case on implicit paths. * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* internal: Solitary clients with single subsurface & verbose ↵UjinT342025-08-221-2/+5
| | | | | solitary/tearing/DS checks (#11228) Adds more verbose checks for various conditional rendering mechanisms
* config: add dim_modalvaxerski2025-08-211-1/+2
| | | | fixes #11486
* compositor: fix new workspace being lost in moveWorkspaceToMonitorvaxerski2025-08-171-1/+3
| | | | | | with the move to refcounting workspaces, createNewWorkspace would've lost the ref fixes #11385
* internal: unify VT gettingvaxerski2025-08-141-0/+21
|
* refactor: Use new hyprutils casts (#11377)Kamikadze2025-08-141-34/+35
|
* internal: Ensure unique identifiers for persistent workspaces (#11409)Arnaud2025-08-131-0/+8
|
* core: disable esync for non-linux kernelsVaxry2025-07-291-0/+5
| | | | ref #10437, BSD doesn't support timeline fds
* monitor: fix crash on mutating workspace vecVaxry2025-07-281-0/+10
| | | | fixes #11236
* core: fix workspace persistence tracking (#11239)Vaxry2025-07-271-4/+27
|
* ci: correct tar command for xz compression & fix typos (#11213)xqso2025-07-251-3/+3
|
* core: move workspace ptrs to weak (#11194)Vaxry2025-07-241-29/+15
| | | | Fixes some race conditions that come up in tests. We only clean up workspaces when we render a frame. With this, they are always cleared instantly.
* drm: check syncobj timeline support before advertising protocol (#11117)mavonarx2025-07-231-0/+15
| | | | | | | | | | | | Prevents crashes on systems where DRM driver lacks syncobj timeline support (e.g., Apple Silicon with Honeykrisp driver). Applications like Zed and WezTerm would crash with 'Timeline failed importing' when trying to use explicit sync. Fixes #8158 #8803 --------- Co-authored-by: mvonarx <matthias.vonarx@sitrox.com>
* core: enter unsafe state on boot if there are no monsVaxry2025-07-221-0/+3
|
* protocols/cm: Fix preferred image description (#11026)UjinT342025-07-151-1/+1
|