summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* core: use new typed signals from hu (#10853)outfoxxed2025-07-081-80/+57
|
* Renderer: Implement new render scheduling (#10936)Vaxry2025-07-081-1/+2
| | | | | | | | | Implements a new render scheduling method, where we triple buffer when necessary. Enabled by default, improves FPS on underpowered devices. --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* protocols: add ext-workspace implementation (#10818)outfoxxed2025-06-261-3/+11
|
* treewide: hyprland.org -> hypr.landMihai Fufezan2025-06-201-1/+1
|
* grpupbar: Add config options to color inactive and locked groupbar titles ↵Jacob Ilias Komissar2025-06-161-1/+1
| | | | (#10667)
* refactor: use std::ranges whenever possible (#10584)Kamikadze2025-05-301-2/+2
|
* core: add auto-center arrangements (#10527)Nikolaos Karaolidis2025-05-271-0/+24
| | | Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
* input: always allow focus to permission popupsVaxry2025-05-181-8/+23
|
* opengl: optimize shaders and reduce unneeded drawcalls (#10364)Tom Englund2025-05-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | * opengl: remove unnecessery glflush calls glflushing forces the driver to break batching and issue commands prematurely and prevents optimisations like command reordering and merging. many glFunctions already internally glflushes and eglsync creation still has a glflush at end render. so lets reduce the overhead of these calls. * opengl: reduce glUseProgram calls apitrace shows cases where the same program gets called multiple times, add a helper function that keeps track of current program and only call it once on same program. reduces slight overhead. * opengl: use more efficient vertex array object use a more modern vertex array object approach with the shaders, makes it a onetime setup on shader creation instead of once per drawcall, also should make the driver not have to revalidate the vertex format on each call.
* xwayland: refactor class member vars (#10312)davc0n2025-05-071-1/+1
| | | | | * xwayland: refactor class member vars * xwayland: fix pure wayland build
* render: refactor class member vars (#10292)davc0n2025-05-051-14/+14
| | | | | * render: refactor class member vars * render: fix clang format
* protocols: refactor class member vars (u-z) (#10282)davc0n2025-05-041-2/+2
| | | | | * protocols: refactor class member vars (u-z) * protocols: fix clang format
* protocols: refactor class member vars (a-m) (#10265)davc0n2025-05-041-5/+5
|
* protocols: refactor class member vars (core) (#10259)davc0n2025-05-031-4/+4
|
* managers: refactor class member vars (#10242)davc0n2025-05-021-6/+6
|
* inputs: refactor class member vars (#10230)davc0n2025-05-011-1/+1
|