summaryrefslogtreecommitdiff
path: root/src/Compositor.hpp
Commit message (Collapse)AuthorAgeFilesLines
* layout/scrolling: handle fullscreen manually (#14190)Vaxry2026-05-071-1/+2
| | | Makes scroll handle fullscreen by itself, allowing for fs scrolls.
* desktop/window: refactor over fullscreen stateVaxry2026-04-291-2/+4
|
* config/lua: init lua config manager, use lua if available (#13817)Vaxry2026-04-261-1/+0
| | | Adds a new lua config manager, which will automatically be used if there is a lua config present.
* input: implement follow_mouse_shrink (#13707)Mihail Costea2026-04-201-1/+1
| | | | | | | | | | | | | | | | | * 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
* config: cleanup the entire config infrastructure (#13785)Vaxry2026-03-201-1/+3
| | | | Massively refactors the config infrastructure, sorely needed and will be req'd for the lua stuff
* render/cm: add ICC profile pipeline (#12711)Vaxry2026-03-041-1/+1
| | | Adds an ICC profile pipeline, loading via config and applying via 3D LUTs.
* monitor: keep workspace monitor bindings on full reconnect (#13384)Zynix2026-02-281-0/+1
| | | 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.
* compositor: fix calculating x11 work area (#13347)Vaxry2026-02-251-1/+1
| | | in a multimon scenario, due to our positioning hacks, and due to the fact work area is a rect anyways, likely wont make sense
* layout: rethonk layouts from the ground up (#12890)Vaxry2026-02-211-4/+5
| | | | | 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.
* renderer: fix mouse motion in VRR (#12665)Szwagi2026-01-311-0/+1
|
* render/cm: various updates, remove old protocols (#12693)UjinT342025-12-271-2/+2
| | | | | | | | | | | | | * fix named primaries * default to gamma22 * mark mastering primaries as supported * remove xx-cm and frog support * immutable primaries and image descriptions * clang-format
* compositor: warn on start via a log about start-hyprlandVaxry2025-12-171-1/+1
|
* desktop: cleanup, unify desktop elements as views (#12563)Vaxry2025-12-081-2/+3
|
* start: init start-hyprland and safe mode (#12484)Vaxry2025-12-051-15/+19
|
* renderer: add quirks:prefer_hdr to fix HDR activation for some clients (#12436)UjinT342025-12-031-0/+1
|
* compositor: Configurable behavior when window to be focused conflicts with ↵Nikolai Nechaev2025-11-251-9/+0
| | | | | | | | | | 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-1/+0
| | | | | | | Reworks the window rule syntax completely --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* xwayland: set _NET_WORKAREA property (#12148)jmanc32025-10-291-0/+1
|
* compositor: check for monitor layout issues post rule applyVaxry2025-10-261-0/+2
| | | | fixes #12108
* input: Add fully configurable trackpad gestures (#11490)Vaxry2025-08-281-1/+0
| | | Adds configurable trackpad gestures
* syncobj: use rendernode for timelines (#11087)Tom Englund2025-08-241-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* compositor: mark createNewWorkspace as nodiscardvaxerski2025-08-171-16/+16
| | | | discarding this makes the call do nothing but waste cycles
* internal: unify VT gettingvaxerski2025-08-141-0/+1
|
* monitor: fix crash on mutating workspace vecVaxry2025-07-281-1/+2
| | | | fixes #11236
* core: move workspace ptrs to weak (#11194)Vaxry2025-07-241-17/+26
| | | | 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/+3
| | | | | | | | | | | | 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>
* render: refactor class member vars (#10292)davc0n2025-05-051-4/+4
| | | | | * render: refactor class member vars * render: fix clang format
* layerrules: add abovelock to render above lockscreen (#9793)Virt2025-04-251-1/+1
|
* compositor: refactor class member vars (#10141)davc0n2025-04-221-40/+39
|
* monitors: fix disconnected monitors are reconnected to an empty workspace ↵Nathan Ollerenshaw2025-04-141-47/+48
| | | | | | | (#9874) --------- Co-authored-by: nyx <nnyyxxxx@protonmail.com>
* core: add default initializers for ccompositor ptrsVaxry2025-03-021-2/+2
|
* protocols: Support wp color management proto (#9444)UjinT342025-02-261-3/+3
| | | Adds support for the recently merged w-p CM protocol alongside the (now deprecated) old CM WIP protocols
* workspaces: update persistence on workspace rename (#9368)Roberto Previdi2025-02-151-1/+1
|
* core: add mallopt to modify trim thresholdVaxry2025-02-091-2/+3
|
* dispatchers: add cyclenext hist option (#9055)Alexander2025-02-031-4/+3
|
* refactor: clang-tidy in compositor (#9241)Alexander2025-02-021-4/+1
| | | Co-authored-by: Alexandr Krylov <t@ruenya.nix>
* core: make persistent workspaces always follow the configVaxry2025-01-261-0/+2
| | | | | | instead of just staying after open, they will now be enforced on their respective monitors fixes #8769
* core: add --verify-config to verify the config with HyprlandVaxry2025-01-241-5/+6
| | | | fixes #9135
* core: move all shared_ptrs from the STL to hyprutils (#9143)Vaxry2025-01-231-2/+2
|
* keybinds: add visible arg for cyclenext (#9045)Alexander2025-01-211-2/+3
| | | Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team>
* xwayland: fix crash when trying to initialize without Xwayland installed (#9077)Zach DeCook2025-01-201-1/+1
|
* core: move to inotify for monitoring the config filesvaxerski2025-01-191-1/+0
| | | | | | instead of manually polling every second which is not efficient, use inotify. an added bonus is that inotify is much much faster
* core: cleanup header includes (#9088)user1111111111111111111111111111111112025-01-171-18/+0
| | | Cleanup some unneeded includes to speed up compilation
* core: Add support for HDR and color management protocols (#8715)UjinT342025-01-071-0/+4
|
* keybinds: attempt to wrap around if fallback is allowed in movefocusvaxerski2025-01-021-0/+1
| | | | fixes #8909
* internal: remove dead code (#8748)Ikalco2024-12-171-2/+0
|
* core: drop using deques in favor of vectorsVaxry2024-12-161-1/+0
| | | | No point in most of these.
* core: Add clang-tidy (#8664)Vaxry2024-12-071-2/+2
| | | | | This adds a .clang-tidy file for us. It's not a strict requirement to be compliant, but I tuned it to be alright.
* core: workspace-related function cleanup / refactorVaxry2024-11-221-13/+0
| | | | CCompositor is massive, and has a lot of functions that could be better optimized if in CWorkspace
* internal: cleanup CMonitor usage and fix a few ref hogsVaxry2024-10-261-3/+3
| | | | ref #8221