summaryrefslogtreecommitdiff
path: root/src/Compositor.hpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-191-18/+18
| | | | | * move monitors to sp * XD
* config: add exec-shutdown for running commands on shutdown (#7683)trianta2024-09-071-0/+1
| | | | | * config: add exec-shutdown for running commands on shutdown * compositor: delay stopping until after exec-shutdown
* xwayland: add option to enable/disable xwayland (#7633)trianta2024-09-051-0/+1
| | | | | | | | | | | | | | | | | | | * config: add xwayland enabled option to config * xwayland: use DISPLAY env variable for enable/disable of new launches * xwayland: close X11 windows when turning of XWayland * clang: format fix * config: add better description for xwayland:enabled * xwayland: close X11 windows on disable without crashes * xwayland: better method of informing CXWayland if xwayland enabled * xwayland: prevent closing non-xwayland windows on disable * misc: loop formatting
* misc: Rename all instances of "emtpy" to "empty" (#7522)Adithya Ajith2024-08-261-1/+1
|
* core: Preserve existing XDG_CURRENT_DESKTOP (#7347)Vladimir-csp2024-08-151-0/+1
| | | | | | | | | * Preserve existing XDG_CURRENT_DESKTOP * fix --------- Co-authored-by: vaxerski <vaxry@vaxry.net>
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-081-65/+66
| | | | | | | | | | | | | | | | | | | | overflow (#7216) * framebuffer: avoid gluint overflow GLuint was being initialized to -1 and rolling over to unsigned int max, its defined behaviour but very unnecessery. add a bool and use it for checking if allocated or not. * opengl: avoid gluint rollover -1 rolls over to unsigned int max, use 0xFF instead. * core: big uint64_t to int type conversion there were a few uint64_t to int implicit conversions overflowing int and causing UB, make all monitor/workspaces/windows use the new typedefs. also fix the various related 64 to 32 implicit conversions going around found with -Wshorten-64-to-32
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-311-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor fullscreen modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/LayerSurface.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/desktop/Workspace.hpp modified: src/events/Windows.cpp modified: src/helpers/Monitor.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/DwindleLayout.hpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/layout/MasterLayout.hpp modified: src/managers/KeybindManager.cpp modified: src/managers/KeybindManager.hpp modified: src/managers/input/IdleInhibitor.cpp modified: src/managers/input/InputManager.cpp modified: src/managers/input/Swipe.cpp modified: src/protocols/ForeignToplevelWlr.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/config/ConfigManager.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/events/Windows.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/Swipe.cpp * fix mapWindow fullscreen modified: src/events/Windows.cpp * fix typo modified: src/desktop/Workspace.cpp * add fullscreenstate modified: src/config/ConfigManager.cpp modified: src/events/Windows.cpp * change syncFullscreen to lower modified: src/config/ConfigManager.hpp * initialize fs state modified: src/desktop/Window.hpp
* core: Properly shutdown wl display (#7018)Ikalco2024-07-241-0/+1
| | | | | | | * correctly destroy wayland globals * properly shutdown and cleanup hyprland * appease the nitpick gods and some comments
* core: avoid locking 2 wayland sockets (#6971)diniamo2024-07-221-2/+2
| | | | | | | * fix: avoid locking 2 wayland sockets * format * fix formatting
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-22/+14
| | | | | | | | | | | | | | Moves Hyprland from wlroots to aquamarine for the backend. --------- Signed-off-by: Vaxry <vaxry@vaxry.net> Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Jan Beich <jbeich@FreeBSD.org> Co-authored-by: vaxerski <vaxerski@users.noreply.github.com> Co-authored-by: UjinT34 <41110182+UjinT34@users.noreply.github.com> Co-authored-by: Tom Englund <tomenglund26@gmail.com> Co-authored-by: Ikalco <73481042+ikalco@users.noreply.github.com> Co-authored-by: diniamo <diniamo53@gmail.com>
* compositor: implement wayland socket handover (#6930)Ferdinand Bachmann2024-07-201-1/+1
| | | | | | | | | | | | | * compositor: implement wayland socket handover This commit implements the compositor side of the Wayland socket handover protocol as described in the [KDE Wiki]. The CLI options are chosen so that they are compatible with Kwin. [KDE Wiki]: https://invent.kde.org/plasma/kwin/-/wikis/Restarting * main: verify that --wayland-fd is a valid file descriptor * main: fail if only one of --socket and --wayland-fd is passed
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add mWindowProperties modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp * support int values modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp * create m_sWindowData modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/MasterLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * simplify some properties modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/managers/KeybindManager.cpp * store multiple values in CWindowOverridableVar modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/managers/KeybindManager.cpp * use SET_PROP priority for exec rules modified: src/config/ConfigManager.hpp modified: src/desktop/Window.cpp * add default value modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * add setprop toggle modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp * add setprop toggle modified: src/debug/HyprCtl.cpp * make window rules functional modified: src/config/ConfigManager.cpp modified: src/desktop/Window.cpp * minor fixes modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp * properly clean layout data modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp * remove newline modified: src/events/Windows.cpp * fixes modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp * use CamelCase modified: src/Compositor.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/events/Windows.cpp modified: src/layout/IHyprLayout.cpp modified: src/managers/AnimationManager.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/XWaylandManager.cpp modified: src/render/OpenGL.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprBorderDecoration.cpp modified: src/render/decorations/CHyprDropShadowDecoration.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp
* core: avoid bumping hard rlimits, restore on forkVaxry2024-06-191-2/+6
| | | | ref #6584
* layershell: minor fixes to re-mapping of layersVaxry2024-06-121-0/+1
| | | | ref #2012
* layer: don't close special ws when restoring focus (#6424)MightyPlaza2024-06-111-0/+1
| | | | | modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/managers/input/InputManager.cpp
* wayland/core: move to new impl (#6268)Vaxry2024-06-081-81/+84
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown