summaryrefslogtreecommitdiff
path: root/src/debug
Commit message (Collapse)AuthorAgeFilesLines
...
* hyprctl: add next and all to switchxkblayoutVaxry2024-08-281-28/+59
| | | | fixes #7555
* logs: don't get timezone every time logging (#7550)Ikalco2024-08-281-2/+3
| | | its expensive cause cpp dum
* hyprctl: avoid parsing string::npos on invalid cmd (#7544)Tom Englund2024-08-271-6/+20
| | | | | | | | | | | | * hyprctl: avoid parsing string::npos on invalid cmd invalid lines passed to hyprctl keyword made the string parsing try to parse std::string::npos, avoid that and return an error text instead. * style --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-263-40/+40
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-262-17/+17
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* keybinds: refactor dispatchers to be better (#7331)Ikalco2024-08-241-3/+3
|
* Fix crash reports having execute permissionRed2024-08-221-1/+1
|
* render: fixup format mismatch after leaving DSvaxerski2024-08-171-10/+10
| | | | fixes #7373
* IPC: Add config descriptions (#7377)Vaxry2024-08-171-0/+16
| | | | | | | Thanks @gulafaran for the work --- Co-authored-by: @gulafaran
* core: fix data race and a unsigned int rollover (#7278)Tom Englund2024-08-122-12/+12
| | | | | | | | | | | | | | | | | | * keybindmgr: avoid uint rollover on mouse keycode mouse keycode is 0, and the switch case checks for 0 - 8 and rolls over, just return early if keycode is 0. * watchdog: avoid data races in watchdog asan thread sanitizer reported data races in the watchdog from reading and setting the bool variables make them std::atomic bools. also add a atomic bool for the main thread to wait for to avoid data race when reading the config values. * hyprdebug: change non unicode character to name asan created false positives and didnt like this bit, so for the sake of easier debugging rename it to something unicode.
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-081-2/+2
| | | | | | | | | | | | | | | | | | | | 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
* core: Move to C++26 and use native_handle to CLOEXEC the debug fd (#7219)Vaxry2024-08-081-0/+3
| | | | | | | Requires GCC >= 14 / Clang >= 18 --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* debug: dont manually unlock the lock_guard (#7210)Tom Englund2024-08-071-1/+0
| | | | when lock_guard goes out of scope it RAII itself and calls unlock. causes crashes on freebsd/libc++ and double unlocking a mutex is UB.
* internal: some minor fd/socket cleanups and make logging thread safe (#7123)Tom Englund2024-07-314-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bezier: dont loop on float values Using a floating-point loop variable with a fixed increment can cause precision errors over time due to the nature of floating-point arithmetic. and cause undesired effects. ex iteration 1 = 0.10000000149011611938 iteration 2 = 0.20000000298023223877 eventually.. iteration 8 = 0.80000001192092895508 iteration 9 = 0.89999997615814208984 * hyprctl: close sockets on destruction store socketpath and close the fd and unlink the socket path on exit. * eventloopmgr: close the timerfd close the timerfd on exit. * debug: make logging thread safe instead of opening and closing the logfile on each write open it on init and close it on compositor exit. also add a mutex so accidently using logging from a thread like the watchdog or similiar doesnt cause issues. * xwl: clean up fd logic check if the fd is actually opened before closing, and close the pipesource FD on exit.
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-311-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* protocols: Move globalshortcuts impl (#7102)Ikalco2024-07-301-1/+2
| | | | | | | * move global shortcuts to hyprwayland-scanner * remove wayland-scanner from deps * fix the thing
* crashreporter: add date and flags to crash report (#7028)MightyPlaza2024-07-241-1/+13
| | | modified: src/debug/CrashReporter.cpp
* Core: Move to aquamarine (#6608)Vaxry2024-07-214-122/+88
| | | | | | | | | | | | | | 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>
* core: Improve handling of window properties (#6776)MightyPlaza2024-07-111-77/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* internal: Add functions to hyprctl header (#6745)Yusuf2024-07-072-35/+45
| | | | | | | | | | | * add functions to hyprctl header * refactor monitor json into own function and add it to header * format hyprctl.hpp * move functions to namespace * move helper functions to class
* debug: add Nvidia driver info (#6715)UjinT342024-06-301-1/+4
| | | | | * add nvidia driver info to systeminfo * check file exists
* window: expose pseudotiled state and add param to dispatcher (#6583)Przegryw3212024-06-191-15/+16
| | | | | | | * Show pseudotiled state of window in hyprctl clients * Add a window as an optional argument for the pseudo dispatcher * change formatting
* core: Move to hyprutils for MathVaxry2024-06-191-1/+1
| | | | | | Moves CRegion, CBox and Vector2D over to hyprutils. Requires hyprutils>=0.1.4
* hyprctl: avoid using select()Vaxry2024-06-181-6/+11
| | | | | | move to poll() ref #6584
* hyprctl: added --follow option to rolliglog (#6325)Alexander2024-06-143-2/+118
| | | Co-authored-by: Крылов Александр <aleksandr.krylov@hyperus.team>
* binds: Add description to key binds (#6358)Moritz G2024-06-111-4/+10
| | | | | --------- Co-authored-by: Yusuf Duran <firatyusuf.d@gmail.com>
* core: move to hyprutils for utils (#6385)Vaxry2024-06-111-3/+6
| | | | | | | | | | | | | * core: move to hyprutils for utils Nix: add hyprutils dep * Meson: add hyprutils dep * flake.lock: update --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* wayland/core: move to new impl (#6268)Vaxry2024-06-084-8/+15
| | | | | * wayland/core/dmabuf: move to new impl it's the final countdown
* log: log with local timezone (#6331)giskard2024-06-051-3/+5
| | | | | * log: log with local timezone * log: backward compatability for clang 17 with libc++
* hyprctl: Allow setting name for custom/headless outputs (#6319)phonetic1122024-06-051-49/+40
|
* core: fix a few asan reported issues and a coredump on exit (#6285)Tom Englund2024-06-032-1/+8
| | | | | | | | | | | | | | | | | | * xwayland: add destructor to CXWM and free resource the wl_event_resource was running upon destruction of the compositor causing a null pointer segfault in onX11Event so ensure the event is removed upon destruction, also free the memory allocated by xcb_errors_context_new and finally call xcb_disconnect on the connection to free the fd and its memory. * hyprctl: dont leak the fd on destruction add a destructor and properly free the fd on destruction * eventloop: add destructor and free event source properly free the wl_event_source upon destruction.
* config: add tag dispacther and window rule (#6211)giskard2024-05-281-7/+18
|
* hyprctl: Make setcursor better (support XCursor themes, give fail message) ↵Ikalco2024-05-281-1/+2
| | | | | | | | | (#6097) * add support for changing to X cursor themes * use new hyprcursor abi for options * remove unneeded struct
* hyprctl: add delimiter to hyprctl batch command (#6261)Flafy2024-05-271-2/+4
| | | adds a delimiter of 3 newlines to separate different command outputs
* hyprctl: Add Config Flag to `hyprctl systeminfo` (#6160)Gabriel Ford2024-05-252-2/+12
|
* debug: Add ARM GPU info (#6212)System642024-05-231-0/+2
| | | Added a simple way to get basic info about the GPU on ARM based systems
* renderer: render fonts with pango, add global `font_family` config option ↵giskard2024-05-223-115/+108
| | | | (#6138)
* xdg-shell: move to new implVaxry2024-05-141-6/+6
|
* hyprctl: Add locked cmd to requests (#6042)Paul2024-05-131-0/+13
| | | Co-authored-by: Leftas <info@leftas.dev>
* config: move various cursor-related vars to cursor:Vaxry2024-05-091-1/+1
|
* Tablet: move to new implVaxry2024-05-091-12/+13
| | | | Ring and strip are not implemented. Will I implement this? God fucking knows. Nobody seems to have that anyways.
* cursor: move to a hyprland implVaxry2024-05-092-3/+3
| | | | | | | This moves wlr_cursor to a completely new impl mostly under CPointerManager Also adds beginSimple to OpenGL for simple render passes (e.g. cursor)
* xkb: check value correctly with xkb_state_layout_index_is_active() (#5925)Ikalco2024-05-071-1/+1
|
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-052-10/+10
| | | | | | | | | | | moves std::shared_ptrs to a new implementation Advantages: - you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired. - this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.) - weak_ptrs are still valid while the SP is being destroyed. - reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection) - this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though. - this is useful in destructors and callbacks.
* input: Introduce basic hyprland HID classesVaxry2024-05-031-24/+29
| | | | | | Implements an intermediary HID class for mice, keyboards and touch devices, removing the old structs from WLClasses.hpp Yes, virtual ones are duplicated a bit, but will likely be de-duped once wlr_input_device is not used anymore.
* internal: fix a few asan reported leaks on exit of hyprland (#5852)Tom Englund2024-05-032-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | * notifications: free cairo images on destruction asan reports a leak on exit if we dont free the image we created in the draw function. add a destructor and free images on exit. * compositor: destroy wlroots types on exit there are a few types not being destroyed on exit and causing a leak on exit in wlroots reported by asan, add those. * cursormgr: ensure we destroy cursor mgr on exit add a destructor and call wlr_xcursor_manager_destroy on the manager on destruction, leak reported by asan. * keybindmgr: free state and keymap add missing keymap_unref on creation, and add a destructor and free the state on exit. leak reported by asan. * skeyboard: add destructor and free state free the state on destruction of keyboard, reported as leak by asan
* hyprctl: add missing json string escapes (#5811)Sungyoon Cho2024-04-301-8/+9
|
* hyprctl: make commits wrapped in quotes in jsonVaxry2024-04-291-1/+1
|
* log: Add some colors to stdout log 🔴🟡🟢🔵🟣 (#5778)thejch2024-04-292-8/+28
| | | | | | | * add colored log * add config option * make it dynamic
* core: Move /tmp/hypr to $XDG_RUNTIME_DIR/hypr (#5788)Vaxry2024-04-282-2/+2
| | | | | | Moves the directory containing sockets and logs. Also restructures lockfiles a bit. For consumers, check if `$XDG_RUNTIME_DIR/hypr` exists. If so, use it. If not, use the old `/tmp/hypr`.