Commit Graph

64 Commits

Author SHA1 Message Date
79eb2f5bc1 wlr-taskbar: allow sorting by app_id
some users (maybe only myself) may want to sort the task bar by app_id
which then places occurrences of the same task next to each other.

Signed-off-by: Louis DeLosSantos <louis.delos@gmail.com>
2023-03-01 12:16:28 +00:00
ea17a66dfc fix: compilation errors with cpp_std=c++20
There were two main issues with fmtlib and C++20 mode:

 - `fmt::format` defaults to compile-time argument checking and requires
   using `fmt::runtime(format_string)` to bypass that.
 - `std::format` implementation introduces conflicting declarations and
   we have to specify the namespace for all `format`/`format_to` calls.
2023-01-20 22:50:02 -08:00
df0fdce92b get_desktop_app_info: fix crash on failed DesktopAppInfo::create
Even though it makes little sense for this call to fail,
it sometimes randomly does, and takes down waybar with it.
2023-01-11 23:02:12 +01:00
d6bd440027 fix: lint 2023-01-09 15:48:31 +01:00
2045aac5b0 Fix crash upon reconnecting monitor 2023-01-08 18:49:24 +01:00
2c7cb0e9d4 Fix crashes when using named workspaces in Hyprland
The first crash occurs when trying to parse the
ID of a workspace as an uint, since named
workspaces has negative IDs. This is fixed by
using ints for workspace IDs instead of uints.

The second crash occurs when converting a
workspace name that isn't a number to an integer.
This is fixed by wrapping std::stoi in a try
block and only sorting by number, when both names
can successfully be converted to integers.
2022-11-24 02:16:44 +01:00
2d7e21ed7d fix: lint 2022-10-26 17:26:15 +02:00
ff61e7bf4e taskbar: implement drag-and-drop task reordering 2022-10-25 19:39:23 +00:00
9a0013cb10 Add option to wlr/workspaces to sort workspaces by number 2022-10-15 01:44:58 +02:00
4a929240df style(lint): fix some files lint 2022-08-31 15:51:50 +08:00
0d27949f0a scale icons for HiDPI monitor 2022-08-30 23:13:38 +08:00
f2fcadbf62 refactor: lint 2022-04-06 08:37:19 +02:00
f3819ee954 remove duplicated string manipulation methods 2022-02-05 21:02:58 +01:00
166504256a Merge branch 'master' of https://github.com/Alexays/Waybar into pr/anakael/add-name-to-taskbar 2021-11-23 23:10:49 +03:00
0a4841371b Merge branch 'master' into workspace-manager-implementation 2021-11-23 13:52:08 +01:00
98f7a10a51 Fix sort 2021-11-23 03:18:00 +03:00
23991b6543 Finish 2021-11-23 03:10:44 +03:00
ef4c6a9ba3 Update to proto. Fix displaying. Rename classes. 2021-11-22 01:12:55 +03:00
ffeecf626c Update names 2021-11-21 15:01:25 +03:00
60c1706273 Update taskbar.cpp 2021-11-19 18:54:37 +03:00
15761ef802 Merge branch 'master' of https://github.com/Alexays/Waybar into workspace-manager-implementation 2021-11-16 21:44:50 +03:00
75a6dddea5 Finish 2021-10-20 01:23:00 +03:00
38afa345dd Finish 2021-08-22 20:18:03 +03:00
61783aafaa save 2021-08-17 04:31:17 +03:00
ba278985e8 Add ignore-list param to wlr/taskbar 2021-04-18 21:34:29 +03:00
e4a65c72dd Added missing 'if' space. 2021-02-07 04:27:16 -04:00
f14a73584f [wlr/taskbar] Added break when matching StartupWMClass is found. 2021-02-07 01:01:57 -04:00
fffb52dd93 [wlr/taskbar] Check StartupWMClass on list returned by g_desktop_app_info_searchi() 2021-02-07 00:50:52 -04:00
e293b89f6b [wlr/taskbar] Removed unnecessary catch statement. 2021-02-04 04:57:08 -04:00
8a284e7c74 [wlr/taskbar] Declared load_icon_from_file() static. 2021-02-03 21:14:04 -04:00
22ed153004 [wlr/taskbar] Fix unhandled exception crash when icon name is a path. 2021-02-03 21:04:10 -04:00
ac6667b1c9 [wlr/taskbar] More icon search improvements.
* Added ~/.local/share prefix to search in user defined apps.
* Add support for apps that don't properly set an id like pamac.
2021-02-02 01:03:28 -04:00
3881af4bbe Improved wlr/taskbar icon search. 2021-01-31 15:37:26 -04:00
b79301a5bd fix(wlr/taskbar): protocol error when reconnecting outputs
Destroy request is not specified for foreign toplevel manager and it
does not prevent the compositor from sending more events.
Libwayland would ignore events to a destroyed objects, but that could
indirectly cause a gap in the sequence of new object ids and trigger
error condition in the library.

With this commit waybar sends a `stop` request to notify the compositor
about the destruction of a toplevel manager. That fixes abnormal
termination of the bar with following errors:
```
(waybar:11791): Gdk-DEBUG: 20:04:19.778: not a valid new object id (4278190088), message toplevel(n)

Gdk-Message: 20:04:19.778: Error reading events from display: Invalid argument
```
2021-01-08 15:41:48 -08:00
ef9c3ef1cb fix(wlr/taskbar): fix wl_array out-of-bounds access
wl_array->size contains the number of bytes in the array instead of the
number of elements.
2021-01-08 15:28:29 -08:00
18f129a712 Spit out a warning when trying to set/unset fullscreen without server supporting it
Previously we only checked when connecting to the server whether it had
the minimum required version but didn't act accordingly in the various
functions that use the functionality of later versions. If there were a
server in the wild, that actually would not have this functionality,
there would have been a crash. Fix this by checking the version before
using the functionality and gracefully abort it.
2020-12-04 08:04:02 +01:00
bb60e68b9d Update to the latest version of the foreign toplevel manager protocol
There was an update the of the toplevel manager protocol. Unfortunately,
there are no new interesting updates with regard to the taskbar
implementation. Nonetheless, update the protocol xml files to the latest
version so that the implementation is up-to-date.

While being there, also change the debug warning that is shown when
there is a version mismatch between the server and client version of the
protocol.
2020-12-04 08:03:43 +01:00
05b12602d4 fix: don't check against nullptr 2020-11-26 15:16:55 +01:00
374d5ae5a1 fix: check get_icon return non nullpt 2020-11-26 15:10:33 +01:00
d8dafa7ecc add minimize-raise() action 2020-11-18 20:12:07 +01:00
67d54ef3d5 fix(wlr/taskbar): do not bind to unsupported protocol versions
It's not allowed to bind to a higher version of a wayland protocol than
supported by the client. Binding wlr-foreign-toplevel-manager-v1 v3 to
a generated code for v2 causes errors in libwayland due to a missing
handler for `zwlr_foreign_toplevel_handle_v1.parent` event.
2020-10-25 10:26:44 -07:00
d6381eeaff Merge branch 'master' into taskbar/remove-trim 2020-10-11 23:06:32 +02:00
ea722615c4 Allow enabing pango markup in the taskbar string
The fix for taskbar tooltips in 6a2d214b55 was incomplete: it causes the label
to contain escaped titles.  Use set_markup so that GTK decodes markup again,
but only if requested by the user (disabling markup is needed if using format
strings like "{title:.15}" to avoid terminating the string in the middle of an
XML entity).
2020-08-19 22:26:11 -04:00
b54fb24745 Remove trim usage in format
Some clang-tidy fixes
2020-08-16 15:54:21 +03:00
22409d27c5 Fix docs typos
Add removing buttons
Adjust handling multiple outputs.
2020-08-11 00:28:56 +03:00
42b6c089f3 Add docs and adjust sorting 2020-08-08 00:09:35 +03:00
0ad29a5960 Finish base implementation 2020-08-07 23:46:47 +03:00
4c251578e9 Add formatting and states handling 2020-08-07 02:45:08 +03:00
4cd31cf3c3 Fix wlr/taskbar all-outputs config string 2020-08-05 20:39:12 -04:00
6a2d214b55 Fix titles containing & and other HTML entities 2020-08-05 20:39:12 -04:00