vaxerski
dfe58c4809
compositor: mark createNewWorkspace as nodiscard
...
discarding this makes the call do nothing but waste cycles
2025-08-17 20:33:04 +02:00
vaxerski
60d769a899
internal: unify VT getting
2025-08-14 17:13:23 +02:00
Vaxry
abe29647ae
monitor: fix crash on mutating workspace vec
...
fixes #11236
2025-07-28 22:08:05 +02:00
Vaxry
31cc7f3b87
core: move workspace ptrs to weak ( #11194 )
...
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.
2025-07-24 00:36:29 +02:00
mavonarx
ecc04e8ba7
drm: check syncobj timeline support before advertising protocol ( #11117 )
...
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 >
2025-07-23 23:11:07 +02:00
davc0n
997fefbc11
render: refactor class member vars ( #10292 )
...
* render: refactor class member vars
* render: fix clang format
2025-05-05 23:44:49 +02:00
Virt
4cf62c114e
layerrules: add abovelock to render above lockscreen ( #9793 )
2025-04-25 16:38:31 +02:00
davc0n
241a4935a2
compositor: refactor class member vars ( #10141 )
2025-04-22 15:23:29 +02:00
Nathan Ollerenshaw
533bc5115e
monitors: fix disconnected monitors are reconnected to an empty workspace ( #9874 )
...
---------
Co-authored-by: nyx <nnyyxxxx@protonmail.com >
2025-04-14 11:07:53 +02:00
Vaxry
e6be4af21f
core: add default initializers for ccompositor ptrs
2025-03-02 02:16:24 +00:00
UjinT34
6787fe8933
protocols: Support wp color management proto ( #9444 )
...
Adds support for the recently merged w-p CM protocol alongside the (now deprecated) old CM WIP protocols
2025-02-26 15:56:37 +01:00
Roberto Previdi
410da2e46f
workspaces: update persistence on workspace rename ( #9368 )
2025-02-15 15:01:52 +01:00
Vaxry
1f97643e83
core: add mallopt to modify trim threshold
2025-02-09 17:38:20 +00:00
Alexander
708d166360
dispatchers: add cyclenext hist option ( #9055 )
2025-02-03 02:34:30 +01:00
Alexander
70d94fec13
refactor: clang-tidy in compositor ( #9241 )
...
Co-authored-by: Alexandr Krylov <t@ruenya.nix >
2025-02-02 18:34:26 +01:00
Vaxry
16aeb24bc1
core: make persistent workspaces always follow the config
...
instead of just staying after open, they will now be enforced on their respective monitors
fixes #8769
2025-01-26 14:40:42 +00:00
Vaxry
d8f79d7678
core: add --verify-config to verify the config with Hyprland
...
fixes #9135
2025-01-24 20:30:21 +00:00
Vaxry
0a1ae48a9f
core: move all shared_ptrs from the STL to hyprutils ( #9143 )
2025-01-23 21:55:41 +01:00
Alexander
da6e966313
keybinds: add visible arg for cyclenext ( #9045 )
...
Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team >
2025-01-21 14:17:07 +00:00
Zach DeCook
a661203bb6
xwayland: fix crash when trying to initialize without Xwayland installed ( #9077 )
2025-01-20 18:40:51 +00:00
vaxerski
8dd2cd41fb
core: move to inotify for monitoring the config files
...
instead of manually polling every second which is not efficient, use inotify.
an added bonus is that inotify is much much faster
2025-01-19 16:11:12 +01:00
user111111111111111111111111111111111
2bad73354a
core: cleanup header includes ( #9088 )
...
Cleanup some unneeded includes to speed up compilation
2025-01-17 15:21:35 +00:00
UjinT34
830350a1f7
core: Add support for HDR and color management protocols ( #8715 )
2025-01-07 18:32:50 +00:00
vaxerski
365caa49ff
keybinds: attempt to wrap around if fallback is allowed in movefocus
...
fixes #8909
2025-01-02 17:36:02 +01:00
Ikalco
e2c78c00e5
internal: remove dead code ( #8748 )
2024-12-17 17:31:27 +01:00
Vaxry
a5234f26e4
core: drop using deques in favor of vectors
...
No point in most of these.
2024-12-16 15:58:19 +00:00
Vaxry
8bbeee1173
core: Add clang-tidy ( #8664 )
...
This adds a .clang-tidy file for us.
It's not a strict requirement to be compliant, but I tuned it to be alright.
2024-12-07 18:51:18 +01:00
Vaxry
745a82ce8a
core: workspace-related function cleanup / refactor
...
CCompositor is massive, and has a lot of functions that could be better optimized if in CWorkspace
2024-11-22 16:01:02 +00:00
Vaxry
d5689bb539
internal: cleanup CMonitor usage and fix a few ref hogs
...
ref #8221
2024-10-26 02:06:13 +01:00
Vaxry
f044e4c951
internal: Move CMonitor to SP ( #8178 )
...
* move monitors to sp
* XD
2024-10-19 23:03:29 +01:00
trianta
70add904c4
config: add exec-shutdown for running commands on shutdown ( #7683 )
...
* config: add exec-shutdown for running commands on shutdown
* compositor: delay stopping until after exec-shutdown
2024-09-07 20:54:33 +01:00
trianta
bd6d6e7f33
xwayland: add option to enable/disable xwayland ( #7633 )
...
* 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
2024-09-05 17:26:46 +01:00
Adithya Ajith
ca85455a8e
misc: Rename all instances of "emtpy" to "empty" ( #7522 )
2024-08-26 12:25:52 +02:00
Vladimir-csp
15f942000e
core: Preserve existing XDG_CURRENT_DESKTOP ( #7347 )
...
* Preserve existing XDG_CURRENT_DESKTOP
* fix
---------
Co-authored-by: vaxerski <vaxry@vaxry.net >
2024-08-15 17:14:48 +01:00
Tom Englund
4b4971c06f
internal: introduce new types to avoid unsigned int rollover and signed int 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
2024-08-08 21:01:50 +02:00
MightyPlaza
e989a0bcff
internal: refactor fullscreen states ( #7104 )
...
* 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
2024-07-31 19:55:52 +02:00
Ikalco
3e543d2ce8
core: Properly shutdown wl display ( #7018 )
...
* correctly destroy wayland globals
* properly shutdown and cleanup hyprland
* appease the nitpick gods and some comments
2024-07-24 19:07:36 +02:00
diniamo
d03fa94c2c
core: avoid locking 2 wayland sockets ( #6971 )
...
* fix: avoid locking 2 wayland sockets
* format
* fix formatting
2024-07-22 13:16:25 +02:00
Vaxry
016da234d0
Core: Move to aquamarine ( #6608 )
...
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 >
2024-07-21 13:09:54 +02:00
Ferdinand Bachmann
efccf25fcc
compositor: implement wayland socket handover ( #6930 )
...
* 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
2024-07-20 00:37:20 +02:00
MightyPlaza
a443902abc
core: Improve handling of window properties ( #6776 )
...
* 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
2024-07-11 16:10:42 +02:00
Vaxry
c1e21719a2
core: avoid bumping hard rlimits, restore on fork
...
ref #6584
2024-06-19 18:36:40 +02:00
Vaxry
18ee9ece9c
layershell: minor fixes to re-mapping of layers
...
ref #2012
2024-06-12 22:57:06 +02:00
MightyPlaza
b6bf4afb48
layer: don't close special ws when restoring focus ( #6424 )
...
modified: src/Compositor.cpp
modified: src/Compositor.hpp
modified: src/managers/input/InputManager.cpp
2024-06-11 22:56:35 +02:00
Vaxry
6967a31450
wayland/core: move to new impl ( #6268 )
...
* wayland/core/dmabuf: move to new impl
it's the final countdown
2024-06-08 10:07:59 +02:00
Tom Englund
af5f24929d
core: free more memory on destruction ( #6348 )
...
* pointermgr: add destructor to state and free buf
if the pointer has a buffer set it wont be freed upon destruction, make
asan more happy by adding a destructor and wlr_buf_unlock it on exit.
* cursormgr: free the animation timer event source
properly free the animation timer event source on destruction.
* compositor: free the critsig event source on exit
properly free the critical signal event source on exit.
* popup: clang format style
clang format.
2024-06-06 20:27:09 +02:00
Vaxry
addd3e7f1a
xwayland: move to hyprland impl ( #6086 )
2024-05-25 22:43:51 +02:00
Vaxry
0cfdde3d1a
xdg-shell: move to new impl
2024-05-14 23:02:24 +01:00
Vaxry
121d3a7213
wl_seat: move to hyprland impl
2024-05-14 23:02:24 +01:00
Brenno Lemos
33a7b7bb6b
core: fix on-empty workspace being called too often ( #6026 )
2024-05-12 00:03:32 +01:00