Commit Graph

262 Commits

Author SHA1 Message Date
6206cebd75 Merge pull request #3887 from torstehu/fix-typo
Fix typos in function, variable names and in documentation
2025-06-22 08:39:23 +01:00
682492f7a9 This commit fixes #4023 2025-04-10 07:05:45 -04:00
633bf9e00f Hyprland submap allow pango markup. 2025-04-10 06:56:00 -04:00
91ef6e51ed hyprland/workspaces: range find lint cleanup 2025-04-03 23:31:18 -05:00
c5bc3bc59a hyprland/workspaces: fix crash 2025-04-03 23:31:14 -05:00
f7b4451564 fix(hyprland): support additional v2 events 2025-03-04 10:23:19 -07:00
17cee0d876 feat(hyprland): support workspacev2 2025-02-26 18:56:11 -07:00
0c6ca8321c feat(hyprland): support destroyworkspacev2 2025-02-26 18:56:11 -07:00
26a344b131 feat(hyprland): support createworkspacev2 2025-02-26 18:56:11 -07:00
fe3dda4c23 Merge pull request #3932 from rokiden/fix-urgent-special
hyprland/workspaces: fixed urgent for special workspaces
2025-02-20 09:11:07 +01:00
0d8d42573b Merge pull request #3945 from zjeffer/fix/zjeffer/hyprland-ipc
Hyprland IPC improvements
2025-02-20 09:10:26 +01:00
bcee548f5e Fix workspacerules not taking into account defaultName 2025-02-20 00:06:05 +01:00
37c6cd42f5 fix freebsd compilation 2025-02-19 21:15:18 +01:00
a4989cedae formatting 2025-02-19 21:02:59 +01:00
5b8839ab5c Hyprland IPC improvements
Fixes IPC being blocked at shutdown
2025-02-19 20:45:47 +01:00
cc94278c4e hyprland/workspaces: fixed urgent for special workspaces 2025-02-10 18:32:57 +05:00
c32d5e3883 Merge pull request #3898 from Duckulus/master
[hyprland/window] enable tooltip for hyprland window module
2025-02-05 11:44:28 +01:00
481b01d9af fix: lint 2025-01-25 09:31:32 +01:00
ba12ca71c0 enable tooltip for hyprland window module 2025-01-22 18:39:50 +01:00
6004316f1a Fix typos in function, variable names and in documentation 2025-01-16 13:25:19 +01:00
01ae117cfe fix: hyprland/window get empty ipc json data 2024-12-14 21:02:10 +08:00
77b50b4c7a fix hyprland's grouped window flags
Both flags are wrong, because:
- the active group member can be fullscreened.
- technically, a grouped window can be solo as well, because only the active group member is shown, the other members are hidden. Also you can have a group consisting of only one window.
2024-11-06 13:07:09 +00:00
92242f0b9d hyprland: fix a data race at startup between sockets 1 and 2
`Workspaces::*` and `IPC::startIPC` may both call `getSocketFolder` at the same time.

This randomly causes crashes and/or corruption of the socket path.

Typical crash A:

    [2024-10-16 07:42:09.987] [info] Hyprland IPC starting
    malloc(): unaligned tcache chunk detected
    [2024-10-16 07:42:09.987] [error] Hyprland IPC: Unable to connect?
    Thread 1 "waybar" received signal SIGABRT, Aborted.
    (gdb) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
    (omitted for brievety)
    #9  0x00007ffff64ae745 in operator new (sz=sz@entry=296) at /usr/src/debug/gcc/gcc/libstdc++-v3/libsupc++/new_op.cc:50
    #10 0x00007ffff65ab1f1 in std::filesystem::__cxx11::path::_List::_Impl::copy (this=0x555555a23350) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++17/fs_path.cc:249
    #11 0x00007ffff65ab3bd in std::filesystem::__cxx11::path::_List::_List (this=0x7fffffff9d30, other=<optimized out>) at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h:454
    #12 0x00005555556f4ab1 in waybar::modules::hyprland::IPC::getSocket1Reply(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
    #13 0x00005555556f5e3d in waybar::modules::hyprland::IPC::getSocket1JsonReply(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
    #14 0x000055555571289c in waybar::modules::hyprland::Workspaces::setCurrentMonitorId() ()

Typical crash B:

    [2024-10-16 10:01:15.859] [info] Hyprland IPC starting
    [2024-10-16 10:01:15.859] [info] Loading persistent workspaces from Hyprland workspace rules
    Thread 8 "waybar" received signal SIGSEGV, Segmentation fault.
    (gdb) bt
    #0  std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy
        (__d=0x5555558fbca8 "/", __s=0x2973961a26d35726 <error: Cannot access memory at address 0x2973961a26d35726>, __n=1)
        at /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/basic_string.h:433
    (omitted for brievety)
    #15 waybar::modules::hyprland::IPC::getSocketFolder[abi:cxx11](char const*)
        (instanceSig=0x7fffffffe604 "4520b30d498daca8079365bdb909a8dea38e8d55_1729051218_1982280648") at ../src/modules/hyprland/backend.cpp:41
    #16 0x000055555564230f in waybar::modules::hyprland::IPC::startIPC()::{lambda()#1}::operator()() const ()
        at ../src/modules/hyprland/backend.cpp:70
    #17 0x00007ffff64e1c34 in std::execute_native_thread_routine (__p=0x5555558119c0) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104
    #18 0x00007ffff62a339d in start_thread (arg=<optimized out>) at pthread_create.c:447
2024-10-17 06:46:07 -04:00
6417782af6 chore: lint 2024-09-13 08:55:14 +02:00
1f23b30b56 hyprland/backend: drop unnecessary getaddrinfo call
Hyprland hasn't been using TCP sockets for IPC since the first release,
so this getaddrinfo call and its result was never needed.

Additionally, it leaks the `aiRes`, causing test failure under ASan.
2024-08-17 22:32:17 -07:00
4295faa7c4 hyprland/backend: throw runtime_error instead of log
Allows us to disable modules entirely when socket connection isn't
working. This is similar to how sway handles their socket connections
disabling modules. This supports a single waybar config for multiple
IPCs.
2024-07-16 18:40:47 -05:00
b41fcdedff hyprland/window: fix crash when no return from socket
Gracefully handle lack of response from the IPC. If socket isn't
available, we already log the IPC isn't running. We dont need to crash
program just because we couldn't get responses. We can just return an
empty object.
2024-07-15 09:02:27 -05:00
702e10649e modules/hyprland/workspace: ignore empty window-rewrite
I'd like to ignore some windows from having icons or empty space taken
on the bar. By filtering out empty repr we can supply rewrite rules that
will ignore them from being processed and showing an empty space or
default icon.
2024-07-03 00:21:49 -05:00
ff0f408ab8 Merge pull request #3380 from alerque/debug-keyboard-layout
Add keyboard debug info to hyprland language module
2024-07-01 09:22:08 +02:00
c08660d837 modules/hyprland/backend: handle empty json responses
Fixes https://github.com/Alexays/Waybar/issues/3388
2024-06-28 13:18:44 -05:00
f6482c36dc hyprland: clangd cleanup 2024-06-28 13:06:14 -05:00
4126502fe8 Add debug information for keyboard layout selection 2024-06-23 00:02:48 +03:00
f9e693b2a2 modules/hyprland/backend: remove testing log warn 2024-06-15 18:37:25 -05:00
bac4d03813 modules/hyprland/workspaces: remove deprecated property 2024-06-15 18:34:45 -05:00
0bc43c1aa7 fix: lint 2024-06-12 23:08:27 +02:00
959422f143 modules/hyprland/backend: protect against crash when XDG_RUNTIME_DIR not set 2024-06-09 10:18:20 -05:00
fa2e21dfd5 modules/hyprland/backend: move getSocketFolder to class 2024-06-09 10:18:20 -05:00
0055ee6910 modules/hyprland/workspaces: remove unneccesary visibleWorkspaces variable 2024-06-07 13:56:49 -05:00
9332697ec1 Merge pull request #3064 from alttabber/master
Hyprland/Workspaces: Added option to hide non-visible special workspaces
2024-05-29 10:23:26 +02:00
24e8766aaa hyprland/backend: use /tmp
Was hardcoded to /tmp in previous versions
2024-05-28 11:00:20 -05:00
29e3d8c371 Hide non-visible special workspaces 2024-05-28 17:45:01 +02:00
f5bb086460 hyprland/workspaces: sort methods 2024-05-24 14:41:59 -05:00
9ba9d57c8c hyprland/windowcreationpayload: sort methods 2024-05-24 14:30:31 -05:00
82ae474002 hyprland/workspace: sort methods 2024-05-24 14:29:03 -05:00
56319a4705 hyprland/workspaces: break up implementations 2024-05-24 14:21:31 -05:00
d73051e980 hyprland/workspaces: break up doUpdate 2024-05-24 14:21:31 -05:00
9fe51af6b0 hyprland/workspaces: break up parseConfig 2024-05-24 14:21:31 -05:00
b8e68b0e63 (hyprland) fix crash when failed to parse IPC message
IPC messages are parsed in a dedicated thread, and the thread terminates when
an exception is not caught, which causes the waybar process to crash with
SIGABORT.

While this issue might be related to Hyprland, it is really annoying to see
waybar crash. It would be better to catch those exceptions and report errors
instead of crashing.
2024-05-22 12:52:01 +08:00
29917fb073 Fix hyprland/language events not working with keyboard names with commas in them (#3224) 2024-05-07 08:26:05 +02:00
f41458ea24 Fix Hyprland socketpath changed to XDG_RUNTIME_DIR (#3183) 2024-04-29 19:46:28 +02:00