Commit Graph

2757 Commits

Author SHA1 Message Date
188611a767 Merge from master 2020-10-31 16:37:20 +00:00
4872091442 Draft fix for syncing idle inhibitor across outputs. The idle_inhibitor surface has been moved to Client, all instances of idle inhibitor module now use one surface between them. Any time an idle inhibitor is clicked, currently it force updates ALL modules on all outputs, this needs work. 2020-10-31 16:31:27 +00:00
5600783151 Merge pull request #905 from JordanL2/master
Tooltips no longer completely break if a custom module updates too frequently
2020-10-31 14:04:41 +01:00
abe1fa5bd4 Custom module - only call label_.set_tooltip_markup if tooltip markup has actually changed - fixes tooltips not appearing at all if a custom module is updating too frequently. 2020-10-31 12:21:51 +00:00
96d965fe04 Add simpleclock as fallback when hhdate is not available
ref https://github.com/Alexays/Waybar/issues/668
2020-10-29 19:40:28 +01:00
9c566564e1 fix(bar): address some of RawSurfaceImpl resizing issues 2020-10-28 08:22:26 -07:00
fc5906dbd4 feat(bar): change layer to bottom when hidden
Invisible bar on a `top` layer would still intercept pointer events and
stop them from reaching windows below. Always changing the layer to
to `bottom` along with making bar invisible would prevent that.
2020-10-28 08:18:49 -07:00
fe3aeb36c5 refactor(bar): wrap layer_surface pointer in unique_ptr 2020-10-28 08:15:02 -07:00
591a417b7d fix(bar): rework surface commit calls for RawSurfaceImpl
wayland log shows that some changes were committed twice and some
weren't committed until the next redraw.
2020-10-28 08:14:57 -07:00
d4d35e6b2b chore(subprojects): update gtk-layer-shell to 0.4.0 2020-10-28 08:08:04 -07:00
f97de599dd refactor: header cleanup
Replace a couple of header includes with forward declarations.
2020-10-28 08:08:03 -07:00
f01996ae99 fix(bar): CamelCase SurfaceImpl method names 2020-10-28 08:07:40 -07:00
7735c80d0e refactor(bar): Split GLS and raw layer-shell implementations
Extract two surface implementations from the bar class: GLSSurfaceImpl
and RawSurfaceImpl. This change allowed to remove _all_ surface type
conditionals and significantly simplify the Bar code.

The change also applies PImpl pattern to the Bar, allowing to remove
some headers and fields from `bar.hpp`.
2020-10-28 07:53:37 -07:00
2b3d7be9cb feat(bar): let gtk-layer-shell manage exclusive zone
Previous attempts to use auto exclusive zone from gtk-layer-shell failed
because gls was expecting real booleans (`TRUE`/`FALSE`) as set_anchor
arguments. With that being fixed, gtk_layer_auto_exclusive_zone_enable
makes gls handle everything related to the bar resizing.

The only remaining purpose of onConfigureGLS is to log warnings and bar
size changes; gtk-layer-shell code path no longer needs saved width_ or
height_ values.
2020-10-28 07:53:32 -07:00
9fa2cc45d2 Merge pull request #901 from 1sixth/patch-1
Replace lowercase "k" with uppercase "K" to make it look more consistent
2020-10-28 13:53:15 +01:00
7a0c0ca613 replace lowercase "k" with uppercase "K"
Other units are all uppercased, so using an uppercased "K" makes it look more consistent (especially when {bandwidthUpBits} or something like that is used).
2020-10-28 19:39:50 +08:00
48a8dbece9 Merge pull request #898 from alebastr/fix-globals-versions
fix(wlr/taskbar): do not bind to unsupported protocol versions
2020-10-25 20:43:18 +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
d5fa20dd33 Merge pull request #895 from Flakebi/mpd
Fix various mpd bugs
2020-10-24 10:47:14 +02:00
be3f47b374 Fix various mpd bugs
- Add elapsedTime and totalTime to tooltip format arguments
- Catch format exceptions and print error
- Copy mpd connection error message before it gets freed
- Update display after connection to mpd was lost
2020-10-23 21:13:20 +02:00
9ea13e790d Merge pull request #879 from niktob560/sway-language-module
Feature: created sway language submodule
2020-10-20 12:43:26 +02:00
f13f49ccb5 Merge branch 'master' into sway-language-module 2020-10-20 12:22:22 +03:00
2cc00ab853 Merge branch 'sway-language-module' of https://github.com/niktob560/Waybar into sway-language-module 2020-10-20 12:21:38 +03:00
ed402d7583 feature: language submodule - created man page 2020-10-20 12:20:58 +03:00
acf990743e Merge pull request #888 from jbenden/mpd-password
mpd: support password protected MPD
2020-10-20 09:06:32 +02:00
ebdeb86703 feat(swaybar-ipc): handle visibility_by_modifier update 2020-10-19 19:35:55 -07:00
bc13453155 feat(swaybar-ipc): handle mode update 2021-09-15 22:39:51 +07:00
23e5181cac feat(swaybar-ipc): add swaybar IPC client 2020-10-19 19:34:48 -07:00
452dcaa5d3 feat(client): store bar_id argument 2021-11-19 20:28:41 -08:00
5905078e56 doc: document mode option of the bar config 2021-11-19 21:02:29 -08:00
52361ed360 refactor(bar): make setVisible switch between "default" and "invisible" modes 2021-11-21 11:00:57 -08:00
87b43c2171 feat(bar): attach CSS class mode-{mode} to window when setting mode 2021-11-19 20:02:57 -08:00
ae88d7d8dc feat(bar): use "default" mode to store global options
Read `layer`, `exclusive`, `passthrough` into a special mode "default".
Drop `overlay` layer hacks, as it's easier to use `"mode": "overlay"`
for the same result.
2021-11-19 19:31:41 -08:00
6d2ba7a75b feat(bar): store modes as a map of presets
This allows to apply the mode atomically and adds possibility of
defining custom modes (to be implemented).
2021-11-19 19:29:51 -08:00
03a641ed83 feat(bar): support swaybar mode for configuring window
Use `mode` (`waybar::Bar::setMode`) as a shorthand to configure bar
visibility, layer, exclusive zones and input event handling in the same
way as `swaybar` does.
See `sway-bar(5)` for a description of available modes.
2021-09-15 22:35:50 +07:00
3e2197a82a test(util): add tests for SafeSignal
Add a fixture for writing tests that require interaction with Glib event
loop and a very basic test for SafeSignal.
2020-12-28 17:28:03 -08:00
79883dbce4 feat(util): optimize SafeSignal for events from the main thread 2020-12-28 17:31:23 -08:00
8a0e76c8d8 fix(util): avoid creating temporary functor for each event 2020-10-19 18:42:25 -07:00
285a264aae feat(util): SafeSignal class for cross-thread signals with arguments
Implement a wrapper over Glib::Dispatcher that passes the arguments to
the signal consumer via synchronized `std::queue`.
Arguments are always passed by value and the return type of the signal
is expected to be `void`.
2020-12-28 17:26:55 -08:00
587eb5fdb4 mpd: support password protected MPD
- Add MPD module option `password`, and document it.
- Add logic to send the password, directly after connecting to
  MPD.

Fixes: #576
Signed-off-by: Joseph Benden <joe@benden.us>
2020-10-19 11:54:36 -07:00
f151d435a8 Merge pull request #887 from jbenden/jbenden/mpd-module
mpd: revamped to event-driven, single-threaded v2
2020-10-19 09:05:54 +02:00
8f961ac397 mpd: revamped to event-driven, single-threaded
Fix MPD connection issues by converting/rewriting module into a
state-machine driven system. It is fully single-threaded and uses
events for transitioning between states. It supports all features
and functionality of the previous MPD module.

Signed-off-by: Joseph Benden <joe@benden.us>
2020-10-18 10:37:57 -07:00
cf5db8f663 Merge pull request #886 from Alexays/revert-877-jbenden/mpd-module
Revert "mpd: revamped to event-driven, single-threaded"
2020-10-18 10:45:44 +02:00
54beabb9dc Revert "mpd: revamped to event-driven, single-threaded" 2020-10-18 10:45:31 +02:00
41752ad5a2 Merge pull request #877 from jbenden/jbenden/mpd-module
mpd: revamped to event-driven, single-threaded
2020-10-18 10:39:12 +02:00
8349316fcd Merge branch 'master' into sway-language-module 2020-10-12 13:31:39 +03:00
4229e9b2ca Implemented format-{state} for cpu/disk/memory 2020-10-12 02:05:26 +02:00
5e86014443 Merge pull request #825 from Anakael/taskbar/remove-trim
Remove trim usage in format
2020-10-11 23:06:51 +02:00
d6381eeaff Merge branch 'master' into taskbar/remove-trim 2020-10-11 23:06:32 +02:00
45f7f9b07a Merge branch 'master' into config-reloading 2020-10-11 23:00:25 +02:00