Pol Rivero
4dbb874f7c
Merge remote-tracking branch 'upstream/master'
2025-02-06 12:19:57 +01:00
Alexis Rouillard
c32d5e3883
Merge pull request #3898 from Duckulus/master
...
[hyprland/window] enable tooltip for hyprland window module
2025-02-05 11:44:28 +01:00
Pol Rivero
1a9f5aced7
workspace taskbars: Add button param to click command
2025-01-27 11:47:16 +01:00
Pol Rivero
7b854112ed
workspace taskbars: Allow custom command on window click
2025-01-27 11:46:35 +01:00
Pol Rivero
b4519c0819
workspace taskbars: Use sigc::mem_fun instead of lambda
2025-01-27 11:46:35 +01:00
Pol Rivero
e0f3695523
workspace taskbars: Minor fixes
...
- Add missing CSS class to manpage
- Fix rare segfault when address is not found (seems to only happen when compiled for production)
2025-01-27 11:46:35 +01:00
Pol Rivero
5ee0d1c7fe
workspace taskbars: Fix windows not showing
...
Windows were not being shown or updated unless the window-rewrite config were present.
2025-01-27 11:46:35 +01:00
Pol Rivero
3948c0d154
workspace taskbars: Focus window on click
2025-01-27 11:46:35 +01:00
Pol Rivero
53ca5a4883
workspace taskbars: Display windows in a consistent order
...
Use a vector instead of a map for for storing the workspace windows.
This orders the windows by the time they were added to the workspace, instead of sorting by address (which is effectively a random order). The new ordering seems to match the wlr/taskbar module
2025-01-27 11:46:35 +01:00
Pol Rivero
e1649b001f
workspace taskbars: Fix title not updating
...
Fix another older bug where the title of a window will not be updated after moving it to another monitor.
In onWindowMoved, when moving an orphan window to the display of the current bar, that window should no longer be an orphan.
2025-01-27 11:46:35 +01:00
Pol Rivero
5e1d6d1cc5
workspace taskbars: Fix title not updating
...
This seems to be an old bug that has been made visible with the new workspace taskbars feature.
Sometimes, when closing a window and re-opening a window of the same program, hyprland reuses the window address. Since m_orphanWindowMap was not being cleaned up on window close, the new window would not be updated properly.
2025-01-27 11:46:35 +01:00
Pol Rivero
fdb9004048
workspace taskbars: More config options
...
- orientation
- icon-size
- icon-theme
2025-01-27 11:46:35 +01:00
Pol Rivero
1c07ca0099
workspace taskbars: Add config parsing
...
Use format from config instead of hardcoding
2025-01-27 11:46:35 +01:00
Pol Rivero
69e2e249a6
Initial implementation of workspace taskbars
...
Add a list of window titles and icons to each workspace (like wlr/taskbar but grouped by workspace).
Only implemented on hyprland for now.
2025-01-27 11:46:35 +01:00
Alex
481b01d9af
fix: lint
2025-01-25 09:31:32 +01:00
Duckulus
ba12ca71c0
enable tooltip for hyprland window module
2025-01-22 18:39:50 +01:00
Torstein Husebø
6004316f1a
Fix typos in function, variable names and in documentation
2025-01-16 13:25:19 +01:00
Khiet Tam Nguyen
565602114e
Merge branch 'Alexays:master' into hyprland/windowcount
2025-01-03 12:18:38 +11:00
DreamMaoMao
01ae117cfe
fix: hyprland/window get empty ipc json data
2024-12-14 21:02:10 +08:00
Khiet Tam Nguyen
17d7cea4fd
Merge branch 'Alexays:master' into hyprland/windowcount
2024-11-17 08:37:04 +11:00
Aqa-Ib
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
Christian Fillion
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
Khiet Tam Nguyen
4cb2bf06b7
Merge branch 'Alexays:master' into hyprland/windowcount
2024-09-14 13:42:04 +10:00
Alex
6417782af6
chore: lint
2024-09-13 08:55:14 +02:00
Khiet Tam Nguyen
13bc497abd
style: clang-format
2024-08-24 15:21:04 +10:00
Khiet Tam Nguyen
8254bd72b7
style: applied clang-format on windowcount.cpp
2024-08-24 13:36:00 +10:00
Khiet Tam Nguyen
a5e322ee66
fix: remove rewrite
2024-08-24 12:59:57 +10:00
Khiet Tam Nguyen
6aa8aa3b22
fix: remove focused_
2024-08-24 12:57:10 +10:00
Khiet Tam Nguyen
f7e1d34251
feat: added empty and fullscreen style classes
2024-08-24 01:33:15 +10:00
Khiet Tam Nguyen
38ffb24c52
feat: format-fullscreen and format-windowed override added
2024-08-24 01:25:50 +10:00
Khiet Tam Nguyen
1b282e67a7
fix: remove unused attributes
2024-08-24 01:06:00 +10:00
Khiet Tam Nguyen
1806edcb06
fix: remove unused variable
2024-08-24 01:04:58 +10:00
Khiet Tam Nguyen
e40bc27257
fix: default separate-outputs to true
2024-08-24 00:40:41 +10:00
Khiet Tam Nguyen
58e4f89a82
fix: allow custom format
2024-08-24 00:40:22 +10:00
Khiet Tam Nguyen
d64c80e234
temp: working implementation
2024-08-24 00:14:30 +10:00
Khiet Tam Nguyen
5c859bf520
temp: changed window -> windowcount
2024-08-24 00:06:24 +10:00
Aleksei Bavshin
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
Austin Horstman
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
Austin Horstman
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
Austin Horstman
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
Alexis Rouillard
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
Austin Horstman
c08660d837
modules/hyprland/backend: handle empty json responses
...
Fixes https://github.com/Alexays/Waybar/issues/3388
2024-06-28 13:18:44 -05:00
Austin Horstman
f6482c36dc
hyprland: clangd cleanup
2024-06-28 13:06:14 -05:00
Caleb Maclennan
4126502fe8
Add debug information for keyboard layout selection
2024-06-23 00:02:48 +03:00
Austin Horstman
f9e693b2a2
modules/hyprland/backend: remove testing log warn
2024-06-15 18:37:25 -05:00
Austin Horstman
bac4d03813
modules/hyprland/workspaces: remove deprecated property
2024-06-15 18:34:45 -05:00
Alex
0bc43c1aa7
fix: lint
2024-06-12 23:08:27 +02:00
Austin Horstman
959422f143
modules/hyprland/backend: protect against crash when XDG_RUNTIME_DIR not set
2024-06-09 10:18:20 -05:00
Austin Horstman
fa2e21dfd5
modules/hyprland/backend: move getSocketFolder to class
2024-06-09 10:18:20 -05:00
Austin Horstman
0055ee6910
modules/hyprland/workspaces: remove unneccesary visibleWorkspaces variable
2024-06-07 13:56:49 -05:00
Alexis Rouillard
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
Austin Horstman
24e8766aaa
hyprland/backend: use /tmp
...
Was hardcoded to /tmp in previous versions
2024-05-28 11:00:20 -05:00
alttabber
29e3d8c371
Hide non-visible special workspaces
2024-05-28 17:45:01 +02:00
Austin Horstman
f5bb086460
hyprland/workspaces: sort methods
2024-05-24 14:41:59 -05:00
Austin Horstman
9ba9d57c8c
hyprland/windowcreationpayload: sort methods
2024-05-24 14:30:31 -05:00
Austin Horstman
82ae474002
hyprland/workspace: sort methods
2024-05-24 14:29:03 -05:00
Austin Horstman
56319a4705
hyprland/workspaces: break up implementations
2024-05-24 14:21:31 -05:00
Austin Horstman
d73051e980
hyprland/workspaces: break up doUpdate
2024-05-24 14:21:31 -05:00
Austin Horstman
9fe51af6b0
hyprland/workspaces: break up parseConfig
2024-05-24 14:21:31 -05:00
yangyingchao
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
Tuur Vanhoutte
29917fb073
Fix hyprland/language events not working with keyboard names with commas in them ( #3224 )
2024-05-07 08:26:05 +02:00
Tuur Vanhoutte
f41458ea24
Fix Hyprland socketpath changed to XDG_RUNTIME_DIR ( #3183 )
2024-04-29 19:46:28 +02:00
Tom Benham
084b561d5b
[hyprland/workspaces] Update window count and sort workspaces AFTER their creation
2024-04-12 11:40:05 +02:00
Tom Benham
cd3d588abd
[hyprland/workspaces] Fix active workspace not getting updated on multi monitor setups
2024-04-12 11:33:29 +02:00
Alexis Rouillard
32e241dc47
Merge pull request #2917 from alttabber/master
...
Add always on option for hyprland/submap
2024-03-22 23:21:17 +01:00
Alexis Rouillard
e30ddda23a
Merge pull request #2987 from tomben13/master
...
[hyprland/workspaces] New options to change on click behaviour and active workspace status
2024-03-22 23:16:57 +01:00
Tom Benham
736309ef1f
Fixed segfault
2024-03-17 23:00:48 +01:00
Alexis Rouillard
ca17bdb214
Merge pull request #2968 from jramrath/hyprland_workspaces_monitor_class
...
Hyprland workspaces `hosting-monitor` css class
2024-03-17 13:06:50 +01:00
Jannik
f014a7d2e5
man docs & different css class name
2024-03-16 21:22:01 +01:00
Tom Benham
68889494d0
Removed option `active-per-monitor`
2024-03-05 11:12:46 +01:00
Tom Benham
df7f1fffcf
feat(hyprland/workspaces): added options `move-to-monitor` and `active-per-monitor`
2024-03-04 13:17:52 +01:00
alttabber
d9abc080e1
Fix merge conflict with #2930
2024-02-28 22:52:08 +01:00
Alexis Rouillard
04f73e7303
Merge pull request #2973 from Azazel-Woodwind/feature/hyprland-window-improvements
...
Improved hyprland/window by fixing icon search and implementing configurable spacing
2024-02-28 09:29:54 +01:00
Alexis Rouillard
e79ea93d7d
Merge pull request #2967 from aruhier/pr_hyprland_workspaces
...
hyprland/workspaces: Improve the workspaces persistency logic
2024-02-27 16:41:32 +01:00
Azazel
c59bb509bd
fix: hide icon if window is unfocused
2024-02-26 21:00:16 +00:00
Anthony Ruhier
b3ee94d87a
Improve hyprland/workspaces persistency logic
...
Fixes #2945
Split the config and rule persistency in 2 attributes, one storing the
persistency as set in Waybar's config, the other one storing the
persistency as set in Hyprland.
It fixes some conflicts between the persistency state of a workspace as
set in Waybar's config and its dynamic state in Hyprland.
It allows to remove a persistent workspace in Waybar if this workspace
is removed from Hyprland and if the workspace is not set as persistent
in Waybar's config.
2024-02-26 00:14:25 +01:00
Jannik
9bc8de8876
fix clang complaints
2024-02-25 13:46:49 +01:00
zjeffer
42f4386e2e
fix clang-tidy errors in hyprland module
2024-02-25 12:11:22 +01:00
Jannik
4cc2800a78
add 'onThisMonitor' css class
2024-02-25 00:52:33 +01:00
Jannik
16079eae09
update m_output
2024-02-25 00:51:52 +01:00
Alex
a45932973a
fix: lint
2024-02-20 11:33:41 +01:00
Alexis Rouillard
4ef5b48474
Merge pull request #2934 from tomben13/master
...
Fixed window#waybar.swallowing for module hyprland/window
2024-02-20 10:39:33 +01:00
Tom Benham
e6aa06cdf3
window#waybar.swallowing -- backward compatibility
2024-02-20 09:39:03 +01:00
Jeremy Huang
4a5444d196
fix click special
2024-02-19 16:16:46 -08:00
Alexis Rouillard
91b79a2e9e
Merge pull request #2894 from jramrath/active-for-hyprland-special-workspaces
...
Add css classes to hyprland special workspaces
2024-02-19 23:02:17 +01:00
Alexis Rouillard
9abd0da1c7
Merge pull request #2603 from zjeffer/hyprland/persistent-workspaces
...
Hyprland/workspaces: use Hyprland's workspace rules for persistency
2024-02-19 22:55:28 +01:00
Tom Benham
745d5687b8
Fixed window#waybar.swallowing for module hyprland/window
2024-02-19 22:23:03 +01:00
zjeffer
11310b89f0
hyprland/workspaces: Use hyprland's persistent workspaces configuration
2024-02-18 16:04:47 +01:00
Viktar Lukashonak
d7d4dca6ba
libcava bump 0.10.1
...
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
2024-02-17 18:20:03 +03:00
Aleksei Bavshin
d590d508ca
feat: add `module` class to the root elements of the modules
...
Previously, the only way to select all the module labels was with the
following kind of selector:
```css
.modules-left > widget > label,
.modules-center > widget > label,
.modules-right > widget > label {
/* ... */
}
```
(and a matching block for the `box` containers).
Now, this can be expressed as
```css
label.module, box.module {
/* ... */
}
```
2024-02-14 22:41:13 -08:00
Aleksei Bavshin
2f555a6936
refactor(bar): use Gtk enums for position and orientation
...
Ensure that the position and the corresponding CSS class on window are
always set.
2024-02-14 22:11:21 -08:00
alttabber
9ea470410f
Add always on option for hyprland/submap
2024-02-13 17:02:14 +01:00
alttabber
77c7b91b40
Add style classes for hyprland/submap
2024-02-13 11:46:27 +01:00
Jannik
acf6611098
clang-format
2024-02-10 17:35:46 +01:00
Jannik
a2925fa5da
fix 'visible' class for special workspaces
2024-02-10 17:26:44 +01:00
Jannik
240b49f9d2
Add 'empty' css class to special workspaces
2024-02-10 16:59:53 +01:00
Jannik
d4331ce7fe
improve handling of special workspace name
2024-02-09 13:49:39 +01:00
Jannik
692f8f4ea4
add/remove 'active' on 'focusedmon' IPC event
2024-02-07 22:42:05 +01:00
Jannik
61be2267ab
add 'visible' css class to special workspaces
2024-02-07 21:10:17 +01:00
Jannik
c30541b954
remove whitespaces
2024-02-07 16:56:37 +01:00