Guillaume Maudoux
190b2dd922
pulseaudio: track only the default sink and source
...
When you have multiple sinks (resp. sources), the module used to display
the state of the most recently changed one. This changes remembers the
default sink name, and only records changes to that one.
2020-02-24 11:30:35 +01:00
Marc
dd7d78cd60
changes requested
2020-02-23 23:09:05 +01:00
Marc Radau
9abe1e2790
Merge branch 'master' into master
2020-02-23 23:00:09 +01:00
Vesim
7bebfebe5f
Merge branch 'master' into output-exclusion
2020-02-20 22:17:13 +01:00
Alex
2d8dc83480
Merge pull request #598 from layus/sni-watcher
...
Use the same StatusNotifierWatcher for all trays
2020-02-19 14:22:51 +01:00
Guillaume Maudoux
9a5f5114c4
pulse: track default source/sink changes
2020-02-19 12:28:36 +01:00
Guillaume Maudoux
047c2929c1
Use the same StatusNotifierWatcher for all trays
2020-02-19 12:06:35 +01:00
Vesim
9525663014
Update src/client.cpp
...
Co-Authored-By: Alex <alexisr245@gmail.com>
2020-02-18 22:40:21 +01:00
Vesim
4fcf06a164
Add a way to exclude specific output
2020-02-18 22:24:59 +01:00
Alex
543589a97b
Update pulseaudio.cpp
2020-02-16 21:48:22 +00:00
Jordan Leppert
4f8a396692
Fix for 'Network label text not updated properly when formats contain Unicode characters' ( #588 )
2020-02-15 16:51:18 +00:00
Aleksei Bavshin
e70f8d8730
fix(clock): lower precision of zoned_time to avoid fractional seconds in output
2020-02-06 10:04:22 -08:00
Alex
e1215a6d17
Merge pull request #578 from alebastr/ipc-use-after-free
...
fix(sway): resolve destruction dependency between Ipc and SleeperThread
2020-02-06 17:36:11 +00:00
Skirmantas Kligys
d1f427618f
Cache calendar per clock instance, weekdays properly handle locales.
2020-02-05 11:07:47 -08:00
Aleksei Bavshin
ae6ca36fa7
fix(sway): resolve destruction dependency between Ipc and SleeperThread
...
Ipc destructor closes socket and thus wakes up SleeperThread which was
waiting for socket data in Ipc::handleEvent.
Ipc::handleEvent then proceeds with sending signal to already destroyed
object, causing heap-use-after-free Address Sanitizer error.
2020-02-04 23:22:43 -08:00
Skirmantas Kligys
cd2db19267
Detect presence, call nl_langinfo() to get first day of week.
2020-02-03 17:18:34 -08:00
Skirmantas Kligys
4c40f9c635
Stop using a mutex for guarding CachedCalendar.
2020-02-03 17:18:34 -08:00
Skirmantas Kligys
218bb3bc2b
Simpify calendar generation, single loop handles both first week and subsequent weeks.
2020-02-02 16:06:27 -08:00
Skirmantas Kligys
f6b2005687
Cache calendar tooltip text to reduce computations.
2020-02-02 15:59:24 -08:00
Skirmantas Kligys
ea9591baea
Switch from utfcpp to Glib::ustring for UTF-8 string mangling.
2020-02-02 15:59:24 -08:00
Skirmantas Kligys
af2528952b
Merge branch 'master' of github.com:skligys/Waybar into temp
2020-02-02 15:58:40 -08:00
Andreas Stührk
527fa982d2
pulseaudio: adapt icon names to form factors
2020-01-31 22:47:26 +01:00
Skirmantas Kligys
8e05aab4d9
Current month calendar in clock tooltip.
2020-01-31 10:36:40 -08:00
Marc
6ae9f436a9
add copyright notice for rfkill util
2020-01-30 00:25:37 +01:00
Marc
58eb8ad11f
Merge branch 'master' of github.com:marcplustwo/Waybar
2020-01-26 05:35:34 +01:00
Marc
c045288ce4
add man page for bluetooth, fix bluetooth race-condition
2020-01-26 05:34:31 +01:00
Marc Radau
f9618d30f3
Merge pull request #7 from Alexays/master
...
Merge latest changes from upstream
2020-01-23 17:30:33 +01:00
Marc
e3bf6b968c
bluetooth module handles rfkill events instantly
2020-01-23 17:17:29 +01:00
Guillaume Maudoux
84b671f6b2
Attempt at supporting locale and timezones ( #1 )
2020-01-23 08:27:10 -05:00
Michael Cordover
6e30b7af3c
Remove duplicate dependency, use current locale
2020-01-23 08:27:00 -05:00
Michael Cordover
3130a57622
Add timezone support to clock module ( closes #223 )
2020-01-23 08:26:49 -05:00
Marc Radau
d85f0e1060
Merge pull request #3 from marcplustwo/addbluetoothmodule
...
Add bluetooth module
2020-01-22 11:44:25 +01:00
Marc
89cb9673d4
bluetooth module working
2020-01-22 11:37:47 +01:00
Marc
f0dbd8b78d
properly structure rfkill util
2020-01-21 17:48:45 +01:00
Marc
626af1ddc1
add rudimentary bluetooth module functionality
2020-01-21 17:04:54 +01:00
Marc
2c4369a653
add basis for bluetooth module implementation
2020-01-21 15:46:08 +01:00
Marc Radau
b8aeda794c
Merge pull request #2 from marcplustwo/airplane_mode
...
distinguish between wifi disabled and disconnected
2020-01-20 10:46:59 +01:00
Marc
2dc4ae78fc
distinguish between wifi disabled and disconnected
2020-01-20 00:35:37 +01:00
Alex
d5875c468f
Merge pull request #550 from PlusMinus0/use_form_factor
...
Use PA_PROP_DEVICE_FORM_FACTOR for device icon.
2020-01-15 10:05:34 +00:00
Aleksei Bavshin
f80270519b
refactor(client): use std::list<waybar_output> to store outputs
...
std::unique_ptr is not required here as the only benefit it gives is
stability of address on vector resize and it's easy to invalidate it
accidentaly. std::list provides the same guarantee of stable addresses
of the elements and correct destruction while avoiding smart pointer
overhead.
Also fixes #554 , caused by incorrect usage of std::remove_if.
2020-01-14 07:27:08 -08:00
PlusMinus0
8fb3211594
Use PA_PROP_DEVICE_FORM_FACTOR for device icon.
2020-01-13 11:34:33 +01:00
Louis des Landes
569f40de9b
Keep aspect ratio when scaling tray icons.
2020-01-09 17:27:10 +10:30
Luca Weiss
129713fe1b
fix(network): add missing include
...
Fixes:
../src/modules/network.cpp:68:3: error: 'assert' was not declared in this scope
68 | assert(starts_with(read, category));
| ^~~~~~
../src/modules/network.cpp:6:1: note: 'assert' is defined in header '<cassert>'; did you forget to '#include <cassert>'?
5 | #include "util/format.hpp"
+++ |+#include <cassert>
6 |
2020-01-07 20:27:31 +01:00
Cole Helbling
75c6e2e7d5
mpd: add paused format string
2020-01-07 09:15:54 -08:00
Moritz Jordan
1145788ab3
fix(network): display of IPv6 address
2020-01-06 13:15:28 +01:00
Alex
c8821a5e7f
fix(Battery): replace spaces w/ dashes
2019-12-30 13:56:34 +01:00
Alex
d40cc6f23a
fix(Battery): replace spaces w/ underscores
2019-12-30 13:55:49 +01:00
Alex
c885be369e
feat(Network): hide on empty format
2019-12-30 13:46:12 +01:00
Aleksei Bavshin
dde700f2c9
feat: use gtk-layer-shell library for correct positioning of popups
...
To enable: use sway >= 1.2, compile waybar with `-Dgtk-layer-shell=enabled` meson option.
Original behavior could be restored at runtime by setting `"gtk-layer-shell": false` in waybar config.
2019-12-27 16:42:14 -08:00
Aleksei Bavshin
d1637d34cf
refactor: fetch outputs from Gtk::Display instead of wl_registry.
...
gtk-layer-shell wants Gdk::Monitor instead of wl_output;
change code to deal with Gdk objects and slightly simplify it.
Requires gtkmm 3.22.0+ (first release with Gdk::Monitor support).
2019-12-27 16:42:12 -08:00
Jordi Pakey-Rodriguez
0f0765e517
feat(modules): call user on-update if configured
2019-12-05 14:42:36 -08:00
HardDie
eb4c76f5e4
Toggle opacity
2019-11-28 20:28:28 +03:00
Niv Sardi
6d5b502bbb
pulseaudio: export desc as a format
...
Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>
2019-11-25 05:16:58 -03:00
Alex
7f7ebb5367
fix(workspaces): add int comparison
2019-10-19 16:19:35 +01:00
Thomas Venriès
358426cb1c
fix: No need to format string with unused 'arg' named argument ( #484 )
...
The fmt::format() function looks for the "{arg}" named argument
in the given "format" string which does not exist. It will fail
if the string contains any {...} curled-brace substring.
Consequently, any "on-click*" option's command line containing for
instance substring like "${var}" or "awk '{...}'" will crash the program.
Signed-off-by: Thomas Venriès <thomas.venries@gmail.com>
2019-10-16 22:39:45 +02:00
Guillaume Maudoux
1e82982dbd
Detect timezone changes
...
Fixes #479 , because upstream does not intend to.
It may be less expensive to do that only once in a while, or to inotify-watch on /etc/timezone, but this is good enough.
2019-10-04 23:25:09 +02:00
Alex
048d8d328e
refactor(Battery): ouput 'Plugged' instead of 'Charging' in the fallback
2019-10-03 09:37:37 +01:00
Hetian Huo
3d1fd4f5ea
change audio scroll bound
...
Change default behavior from 0% - 99% to 0% - 100%.
2019-09-28 18:05:31 -05:00
Guillaume Maudoux
f4d2ca2736
custom formatter for numbers in 'pow' units format
2019-09-25 12:53:06 +02:00
Alex
211b1c2785
fix: no need to wait on start
2019-09-25 09:32:22 +01:00
Guillaume Maudoux
1d39ef5c8e
Add a disk module
2019-09-25 08:47:33 +02:00
Alex
bae83ee4e3
fix: static_cast clamp
2019-09-19 22:07:38 +01:00
Alex
52db1e8e68
Merge pull request #467 from jspngh/bugfix/mpd_module
...
Add more locking in mpd module
2019-09-19 22:03:23 +01:00
Alex
334bc1e52a
fix(Network): clamp signal strength
2019-09-19 21:59:28 +01:00
Jonas Spanoghe
e6599d8ed5
modules/mpd: take lock in waitForEvent to prevent SIGABORT
...
+ replaced deprecated MPD_IDLE_PLAYLIST with MPD_IDLE_QUEUE
+ add mutex for periodic_updater
2019-09-19 21:43:12 +02:00
Benjamin Cheng
a63bc84918
Add configurable time display for battery module
...
Adds a `format-time` configuration for the battery module so that users
can configure how they want their remaining time to be displayed.
The default format remains the same as before, i.e. `{H} h {M} min`,
but users can choose something like `{H}:{M:02d}` to give an output
like `4:29` if wanted.
2019-09-04 14:43:52 -04:00
Aleksei Bavshin
529daedcec
fix: correct handling of margins on anchored axis
2019-09-01 01:08:15 -07:00
Aleksei Bavshin
089d1299c4
fix: correct calculation of exclusive zone
2019-09-01 01:08:07 -07:00
Alex
36fc8365ee
Merge pull request #446 from bschacht/fix-typo-persistant
...
Fix typo: persistant -> persistent
2019-08-31 21:13:31 +02:00
Birger Schacht
2646390e28
Fix typo: persistant -> persistent
2019-08-31 19:57:44 +02:00
Birger Schacht
66f2cbed51
Fix typo
...
ouput -> output
2019-08-31 17:50:56 +00:00
Alex
f592e3d38b
Merge branch 'master' into fmt
2019-08-29 11:29:48 +02:00
Alex
ceedc689ec
Merge branch 'master' into master
2019-08-29 11:05:55 +02:00
Alex
a257126685
Merge branch 'master' into asan-fixes
2019-08-29 11:04:24 +02:00
Jan Beich
712424f9a8
Unbreak build with fmtlib 6.0.0
...
In file included from ../src/factory.cpp:1:
In file included from ../include/factory.hpp:4:
../include/modules/clock.hpp:5:10: fatal error: 'fmt/time.h' file not found
#include "fmt/time.h"
^~~~~~~~~~~~
In file included from ../src/bar.cpp:4:
In file included from ../include/factory.hpp:4:
In file included from ../include/modules/clock.hpp:3:
In file included from /usr/include/fmt/chrono.h:12:
/usr/include/fmt/locale.h:19:35: error: parameter type 'fmt::v5::internal::buffer' (aka 'basic_buffer<char>') is an abstract class
const std::locale& loc, buffer<Char>& buf,
^
/usr/include/spdlog/fmt/bundled/core.h:238:16: note: unimplemented pure virtual method 'grow' in 'basic_buffer'
virtual void grow(std::size_t capacity) = 0;
^
In file included from ../src/modules/sni/host.cpp:3:
/usr/include/fmt/ostream.h:22:9: error: expected member name or ';' after declaration specifiers
buffer<Char>& buffer_;
~~~~~~^
/usr/include/fmt/ostream.h:25:19: error: expected ')'
formatbuf(buffer<Char>& buf) : buffer_(buf) {}
^
/usr/include/fmt/ostream.h:25:12: note: to match this '('
formatbuf(buffer<Char>& buf) : buffer_(buf) {}
^
/usr/include/fmt/ostream.h:25:42: error: use of undeclared identifier 'buf'; did you mean 'prettify_handler::buf'?
formatbuf(buffer<Char>& buf) : buffer_(buf) {}
^~~
prettify_handler::buf
/usr/include/spdlog/fmt/bundled/format-inl.h:551:11: note: 'prettify_handler::buf' declared here
buffer &buf;
^
2019-08-29 01:38:54 +00:00
xPMo
e38df047fd
sway/mode: enable pango markup on supported modes
...
IPC reports {"mode": "mode_string", "pango_markup": bool}.
Use this to conditionally enable pango markup.
2019-08-28 19:48:33 -05:00
Aleksei Bavshin
01ad3d96d8
fix(tray): pre-create dbusmenu for tray items
...
It seems that dbusmenu is not ready to display menu immediately and
needs some time to sync data via DBus.
Fixes LIBDBUSMENU-GLIB-CRITICAL: dbusmenu_menuitem_send_about_to_show:
assertion 'DBUSMENU_IS_MENUITEM(mi)' failed.
Also fixes initial render of the menu with layer shell popups support patch.
2019-08-27 00:34:00 -07:00
Aleksei Bavshin
642fd48af1
fix(tray): restore Activate support for compliant SNI implementation
...
Set ItemIsMenu to true by default because libappindicator supports
neither ItemIsMenu nor Activate method and compiant SNI implementations
are expected to reset the flag during initial property fetch.
To be revisited if anyone finds the implementation that has Activate
but does not set ItemIsMenu.
2019-08-27 00:33:59 -07:00
Aleksei Bavshin
8f9e6c132d
fix(network): stack-use-after-return found by address sanitizer
...
Fixes compilation with clang.
2019-08-27 00:11:40 -07:00
tufteddeer
d8b1b0d0af
add support for muted bluetooth audio, fix #420
2019-08-18 16:15:21 +02:00
Joel Nordström
21a89ac46d
Typo
2019-07-15 12:21:31 +02:00
Alex
bb99e6cf5b
fix: check before destroy
2019-07-15 10:06:01 +02:00
crwxrws
617b370104
fix(pulseaudio): connect scroll event handler
...
Reconnect the event handler that was removed in commit 527144a
.
Fixes Alexays#400
2019-07-06 15:51:00 +02:00
sheenobu
a6c0bc5a52
Fix deadlock on workspace scrolling
...
Make the mutex guard lifecycle finish before the send ipc command
by adding scope around the code.
Fixes #395 .
2019-07-05 20:47:44 -07:00
James Edwards-Jones
ae88d6bc3c
feat(bar): individual bars can be named for CSS
...
Allows CSS to select individual waybars when multiple are configured
2019-07-04 02:15:56 +01:00
James Edwards-Jones
4f3c38c542
feat(bar): add CSS class for window position
2019-07-04 02:15:50 +01:00
Alex
a6980fca7f
feat: ellipsize modules
2019-06-28 14:16:09 +02:00
Alex
bd5146fdcf
fix(Label): ELLIPSIZE all label modules
2019-06-28 13:49:04 +02:00
Alex
c916fe258e
fix(network): no need to check family here
2019-06-25 07:55:55 +02:00
Alex
c621afb0c4
Merge branch 'master' into clean
2019-06-22 18:15:34 +02:00
Alex
bcf4725349
Cleanup on clean branch ( #391 )
...
Cleanup on clean branch
2019-06-18 09:43:34 +02:00
Patrick Hilhorst
12b30ca25f
AModule::getScrollDir: convert reset if-else into switch
2019-06-17 20:42:19 +02:00
Patrick Hilhorst
86d6668ed4
AModule::getScrollDir: convert if-else chain into switch statement
2019-06-17 20:40:13 +02:00
Patrick Hilhorst
7c85aec8e0
AModule::getScrollDir: get deltas in a more C++ way
2019-06-17 20:29:37 +02:00
Patrick Hilhorst
2c038d1977
AModule::getScrollDir: move `dir` inside the only scope it is relevant
2019-06-17 20:09:53 +02:00
Alex
ff9d598c16
fix: add proper mutex
2019-06-17 11:39:45 +02:00
Alex
71a9a75aad
refactor: remove fix workaround
2019-06-16 15:14:31 +02:00
Alex
05f796158b
fix: typo
2019-06-16 15:13:40 +02:00
Alex
527144a440
refactor(pulseaudio): proper scroll override
2019-06-16 15:08:08 +02:00
Patrick Hilhorst
7f13478396
AModule: handle X axis scrolling
2019-06-16 13:17:34 +02:00
Alex
90a9c0e25f
refactor: get rid of some mutex
2019-06-15 15:01:03 +02:00
Alex
340ec7be91
refactor: AModule
2019-06-15 14:57:52 +02:00
Nenad Stojanovikj
1b7068e61d
Expose total memory to the formatting directive
2019-06-14 22:48:16 +02:00
Alex
dabe2bebbb
feat(sway/window): handle floating nodes
2019-06-14 11:27:40 +02:00
Alex
486b5a5d38
fix(sway/window): check output recursively
2019-06-14 10:57:22 +02:00
Alex
11bbc3b24d
Fix twitchy scrolling on touchpads ( #381 )
...
Fix twitchy scrolling on touchpads
2019-06-14 10:38:25 +02:00
Alex
028b184f7b
fix(workspaces): persistant class with empty outputs
2019-06-12 09:50:33 +02:00
Patrick Hilhorst
396f7d4525
Workspaces: implement horizontal continuous scrolling
2019-06-11 18:44:54 +02:00
Alex
3c9b533997
fix(window): avoid hexpand
2019-06-11 17:57:17 +02:00
Patrick Hilhorst
ae397c8fa2
ALabel: add smooth-scrolling-threshold
2019-06-11 17:56:10 +02:00
Alex
ec75be0bc3
fix(Tray): click behaviour
2019-06-11 17:53:16 +02:00
Patrick Hilhorst
ed4521d113
Workspaces: fix twitchy scrolling on touchpads
...
Previously, any and all scroll events were interpreted as reason to switch
workspaces. This resulted in twitchy behaviour, where the scrolling was
practically unusable.
Now, we pool all scroll values, and only scroll if the value is larger than the
new config option "smooth-scrolling-threshold". If this option is not set, the
behaviour is unchanged.
2019-06-11 17:22:24 +02:00
Alex
c2e9ed6091
feat(workspaces): add class to persistant workspaces
2019-06-11 14:08:48 +02:00
Alex
a37b4687ff
Revert "refactor(window): we don't need to subscribe workspace events"
...
This reverts commit 648eecdd83
.
2019-06-11 14:06:31 +02:00
razic
46e5dd93d4
adds the wl output name as a css class
...
now you can have a custom styling for each bar
2019-06-08 11:04:34 -07:00
Alex
648eecdd83
refactor(window): we don't need to subscribe workspace events
2019-06-07 15:08:33 +02:00
Alex
1962caf144
refactor(window): gtk stuff in update method
2019-06-04 17:34:00 +02:00
Alex
9dbf057f58
fix(custom): hide on empty format
2019-06-03 09:50:35 +02:00
Alex
0b01b35c76
refactor(pulseaudio): only watch changes
2019-05-31 16:21:01 +02:00
Alex
fcf2d18a01
refactor: destroy threads first
2019-05-29 17:53:22 +02:00
Alex
b05d4cd413
fix(network): retry around all getExternalInterface
2019-05-29 16:17:40 +02:00
Alex
9b89fc6470
refactor: disable bar scroll by default
2019-05-28 16:11:33 +02:00
Alex
c06725aa69
fix(network): better disconnect handler
2019-05-28 11:21:59 +02:00
Alex
5ae5821929
refactor(network): re-add MAX_RETRY in order to detect external interface
2019-05-28 11:08:48 +02:00
Alex
74e40432e5
fix(network): linked state
2019-05-28 09:58:48 +02:00
Alex
6e69af8967
refactor(custon): avoid useless logic
2019-05-27 00:08:16 +02:00
Alex
be2fa743eb
refactor(custon): hide on empty text
2019-05-27 00:05:29 +02:00
Alex
6e73c6db61
refactor(network): remove last_ext_iface_
2019-05-26 23:16:09 +02:00
Alex
253366baf4
refactor(network): remove useless assignment
2019-05-26 22:40:29 +02:00
Alex
ecec02c8be
refactor(network): better events handler
2019-05-26 22:36:26 +02:00
Alex
070619fa34
revert: restore idle fix
2019-05-26 20:09:05 +02:00
Alex
d4ace4b4d8
fix(network): subscribe only wanted family
2019-05-26 20:06:27 +02:00
Alex
5fd92b3c28
fix(network): don't check IFF_UP
2019-05-26 19:53:10 +02:00
Alex
c0a39f34cd
refactor(network): don't clear ipaddr
2019-05-25 18:02:36 +02:00
Alex
2a9fa1a4b9
refactor(bar): onRealize, onMap
2019-05-25 17:50:45 +02:00
Alex
07147878a9
refactor(network): code cleaning
2019-05-24 09:49:56 +02:00
Alex
ffadd5c1a7
refactor: avoid useless class vars
2019-05-24 09:49:09 +02:00
Alex
2b34f3a30f
refactor: parse args before app creation
2019-05-23 10:13:49 +02:00
Alex
85d60f95c4
refactor(network): const methods
2019-05-22 22:20:50 +02:00
Alex
755d38d4d6
fix(custom): bad alloc
2019-05-22 19:46:56 +02:00
Alex
b673279a43
style: remove non wanted comment
2019-05-22 12:22:56 +02:00
Alex
9e1200ae32
refactor: also pass id to custom modules
2019-05-22 12:20:13 +02:00
Alex
e999cca7a6
style: don't specify included namespaces
2019-05-22 12:15:59 +02:00
Alex
d24d85bebf
refactor: move label name and id to label contructor
2019-05-22 12:06:24 +02:00
Alex
97bd637f5d
refactor(clock): avoid usless time_point_cast
2019-05-22 11:51:33 +02:00
Alex
23d4a811db
refactor(clock): avoid usless duration_cast
2019-05-22 11:48:02 +02:00
Alex
14ace24a26
style(battery): format
2019-05-22 10:09:05 +02:00
Alex
2fa581c7ea
fix(battery): multiple paths
2019-05-22 10:06:54 +02:00
Max Reppen
cf3cb4c61f
feat(Battery) Format argument for time to full|empty
2019-05-21 13:44:05 -04:00
Max Reppen
00ada46dfc
feat(Battery) Time remaining on tooltip
2019-05-21 13:36:14 -04:00