Commit Graph

681 Commits (cb1c7ea12cdda26983463e7e3ab0cc0d08f674ff)

Author SHA1 Message Date
Pedro Côrte-Real 908fa2c6c2 Make the battery full-at go to 100%
full-at was capped at the value instead of allowing the battery to show
100% when you were at the full-at value. Uncapping makes more sense as
it makes the full-at value the new 100% and the scale goes down from
there. Whereas before the battery would stay at the full-at value until
it went down enough which is unrealistic.
2020-11-27 11:02:11 +00:00
Pedro Côrte-Real f45d582957 Always mark battery as full at 100%
Since we're now clamping at 100% and rounding, mark as full at that
point. Some batteries will stay in charging state for a long time while
stuck at the same charge level. Just mark them as full to not be
confusing.
2020-11-27 11:02:11 +00:00
Pedro Côrte-Real eb3f4216d4 Show battery state as rounded number
Round the battery charge state so that 99.9% shows as 100%.
2020-11-27 11:02:11 +00:00
Pedro Côrte-Real e0cdcb6e30 Handle charging above 100% gracefully
When calibrating a battery it's possible to go above 100%. Handle that
gracefully by just presenting the battery as full and 100%.
2020-11-27 11:02:11 +00:00
Pedro Côrte-Real a7056f7cce Calculate battery state from just energy values
The energy values are all that's needed to calculate the battery state.
Using other values for the total capacity results in broken results in
some cases. This matches the output of TLP and i3status, while also
being more straightforward.
2020-11-27 11:02:11 +00:00
Daniel De Graaf 3b576ae12d Add "tooltip-format" to temperature module 2020-11-26 20:23:19 -05:00
Aleksei Bavshin 2695985da0
fix: compilation error with gcc 11
../src/modules/network.cpp:22:6: error: ‘optional’ in namespace ‘std’ does not name a template type
   22 | std::optional<unsigned long long> read_netstat(std::string_view category, std::string_view key) {
      |      ^~~~~~~~
../src/modules/network.cpp:7:1: note: ‘std::optional’ is defined in header ‘<optional>’; did you forget to ‘#include <optional>’?
    6 | #include "util/format.hpp"
  +++ |+#include <optional>
    7 | #ifdef WANT_RFKILL
2020-11-26 15:42:44 -08:00
Alex 05b12602d4
fix: don't check against nullptr 2020-11-26 15:16:55 +01:00
Alex 374d5ae5a1
fix: check get_icon return non nullpt 2020-11-26 15:10:33 +01:00
Arnaud Vallette d'Osia d8dafa7ecc
add minimize-raise() action 2020-11-18 20:12:07 +01:00
Alex faacd76f62
Merge pull request #892 from alebastr/layer-surfaces-v3
Refactor layer surface implementations (again)
2020-11-02 10:17:57 +01:00
Jordan Leppert 9785a89013 Making active a bool 2020-11-01 18:25:41 +00:00
Jordan Leppert b015836e7b Ensure style class is removed from all IdleInhibitor instances by moving it to update(). 2020-11-01 18:17:51 +00:00
Jordan Leppert a9dae931c7 Renaming idle_inhibitor_modules and idle_inhibitor_status to shorter, more convenient names. 2020-11-01 17:14:05 +00:00
Jordan Leppert 071cb86b45 Moving idle inhibitor shared stuff out of Client and into idle_inhibitor module as static members. 2020-11-01 17:09:48 +00:00
Jordan Leppert c6743988d3 Removing 'click_param' as it is no longer used. 2020-11-01 16:03:39 +00:00
Jordan Leppert bb33427f65 Making idle_inhibitor_ private and initialised in constructor, as it was before. 2020-11-01 13:38:58 +00:00
Jordan Leppert 4889e655eb Since idle_inhibitor's have a surface, we should have one for each inhibitor module. Therefore, the status is stored on the Client, and all modules create or destroy their inhibitors depending on Client's idle_inhibitor_status. Also, when modules are destroyed they remove themselves from Client's idle_inhibitor_modules. 2020-11-01 13:33:28 +00:00
Jordan Leppert aa4fc3dd29 Idle inhibitor toggle no longer update all modules - a list of idle inhibitors is maintained on the Client. 2020-10-31 17:30:25 +00:00
Jordan Leppert 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
Jordan Leppert 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
Laurent Arnoud 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
Aleksei Bavshin f97de599dd
refactor: header cleanup
Replace a couple of header includes with forward declarations.
2020-10-28 08:08:03 -07:00
Aleksei Bavshin 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
Flakebi 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
nikto_b f13f49ccb5
Merge branch 'master' into sway-language-module 2020-10-20 12:22:22 +03:00
Joseph Benden 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
Joseph Benden 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
Alex 54beabb9dc
Revert "mpd: revamped to event-driven, single-threaded" 2020-10-18 10:45:31 +02:00
Alex 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
nikto_b 8349316fcd
Merge branch 'master' into sway-language-module 2020-10-12 13:31:39 +03:00
Ole Martin Handeland 4229e9b2ca Implemented format-{state} for cpu/disk/memory 2020-10-12 02:05:26 +02:00
Alex d6381eeaff
Merge branch 'master' into taskbar/remove-trim 2020-10-11 23:06:32 +02:00
Alex f270d317bb
Merge pull request #869 from lrhel/master
Add format-icons for workspace's name entry in sway/workspaces module
2020-10-11 14:39:39 +02:00
nikto_b cc3acf8102
feature: created sway language submodule; added styles & config part for a sway language submodule 2020-10-10 19:09:18 +03:00
Joseph Benden 21fdcf41c3
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-08 16:43:22 -07:00
Érico Rolim 22e46ea6cc sndio: Add reconnection support. 2020-10-04 14:59:20 -03:00
Érico Rolim e4427cb017 sndio: Add module.
- can control sndio: change volume, toggle mute
- appearance is somewhat dynamic: takes muted status into account
- uses polling inside sleeper thread to update values
- uses sioctl_* functions, requires sndio>=1.7.0.
2020-10-04 02:54:57 -03:00
lrhel 83d679bf72 Add format-icons for workspace's name entry 2020-09-26 23:06:12 +00:00
Thorben Günther 12016d35bb
disk module: add state for percentage_used 2020-09-23 14:01:25 +02:00
Alex 95f505a457 revert: restore eventfd 2020-09-21 10:56:40 +02:00
koffeinfriedhof c651670222 Added song position and queue length. 2020-09-13 18:49:47 +02:00
Alex 459df4e0c9
Merge pull request #851 from tamirzb/exec-on-event
Add an "exec-on-event" config for the custom module
2020-09-08 09:18:32 +02:00
Tamir Zahavi-Brunner 9e3e4368c7 custom: Add "exec-on-event" config
This config allows disabling the default behavior of re-executing the
script whenever an event that has a command set is triggered.

Fixes #841
2020-09-06 22:49:18 +03:00
MusiKid 225a0eccdd
Add support for memory tooltip 2020-09-02 14:35:39 +02:00
Alex 44119db436
Merge pull request #840 from tamirzb/fix-restart-interval
Fix "restart-interval" in the custom module
2020-08-28 15:38:41 +02:00
Tamir Zahavi-Brunner ba78199dd1 custom: Fix "restart-interval"
This commit fixes the issue where the process would restart immediately
and the thread would sleep after the process has restarted, and not
before.

Fixes #621
2020-08-28 01:43:19 +03:00
Daniel De Graaf 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
Marek Černoch 8fb54f47ea battery: allow custom tooltip format 2020-08-19 23:13:03 +02:00
Marek Černoch d263607b27 network: fix typo - update tooltip only when it changes 2020-08-18 23:09:35 +02:00
dmitry b54fb24745 Remove trim usage in format
Some clang-tidy fixes
2020-08-16 15:54:21 +03:00
Alex 033f0b01b7
Fix rfkill condition 2020-08-15 10:36:15 +02:00
Alex 591eb2ea38
Merge pull request #821 from danieldg/new-clock-features
New clock features
2020-08-14 22:12:48 +02:00
wjoe 4565f7f8b9 only compile rfkill into the network module if the feature is enabled. 2020-08-14 20:58:48 +02:00
Daniel De Graaf 62082bdb01 clock: scroll through multiple timezones 2020-08-13 18:53:18 -04:00
Daniel De Graaf 8cd6e13308 clock: allow custom formatting for today in calendar 2020-08-13 18:53:18 -04:00
Pedro Côrte-Real 29fa74f621 Add IDs to sway workspace buttons for CSS styling
In case you want to style a specific workspace add IDs to the workspace
buttons. Styling is done by matching button#sway-workspace-${name}.
2020-08-13 11:36:19 +01:00
Pedro Côrte-Real 8f10c9056c Add option for no workspace switch on click
In sway/workspaces, just like disable-scroll turns on/off the ability to
change workspaces by scrolling the mouse add disable-click that turns
on/off the ability to change workspaces by clicking.
2020-08-12 11:38:48 +01:00
Alex a446cd692d
Fix MPD, add missing while loop 2020-08-06 21:57:02 +02:00
NotAFile 9ebfc54eb5
switch workspace on mouse-down to match swaybar
fixes #686
2020-08-06 16:04:30 +02:00
Daniel De Graaf 4cd31cf3c3 Fix wlr/taskbar all-outputs config string 2020-08-05 20:39:12 -04:00
Daniel De Graaf 6a2d214b55 Fix titles containing & and other HTML entities 2020-08-05 20:39:12 -04:00
Eivind Uggedal fb8cda9d90 network: make missing nl80211 non-fatal
This will enable the networking module to be used for ethernet
interfaces on kernels without nl80211 support.

It should be reasonable to allow desktop systems without
wireless interfaces to run custom kenrel configs
without nl80211 compiled in.
2020-07-31 08:15:16 +02:00
Michael Rodler 006850ea5e Changed helper function for workspace->num assignment to a static method of Workspaces class
and adapted comments/method name to be consistent with the rest
2020-07-27 10:56:49 +02:00
Michael Rodler 15fe73a252 duplicate the logic to assign numbers to workspaces from sway into waybar to handle perisstent workspaces 2020-07-22 16:13:24 +02:00
Alex 759602af64
Update mpd.cpp 2020-07-18 10:23:04 +02:00
Till Smejkal bc112eaae1 Convert icon-theme option to array|string
Use the config support of using arrays in its options instead of the
complicated and error-prone parsing of the string.
2020-07-07 11:22:08 +02:00
Till Smejkal 70e368a1c6 Refactor the lower_app_id logic
Move the lower_app_id lookup logic completely in the image_load_icon
method and use it also when looking up the icon from the desktop files
as well as icon themes.
2020-07-07 10:39:28 +02:00
Till Smejkal 7d9f6096fe Respect XDG_DATA_DIRS when looking for icons.
Use the base folders as defined in $XDG_DATA_DIRS and only fall back to
/usr/share and /usr/local/share if the environment variable does not
exist.
2020-07-05 13:16:41 +02:00
Till Smejkal 06ad35c42b Add support for multiple icon themes in the config
If there are multiple icon themes defined in the config option
'icon-theme' the module will try from left to right to find an icon.
The system default will always be added to this list.
2020-07-05 13:16:38 +02:00
Till Smejkal b7e8275d90 Properly trim when splitting up the format string
Previously only single spaces would be trimmed and not multiple ones.
Now use a proper trim implementation for strings.
2020-07-05 13:13:34 +02:00
dmitry 8a13ed59bc Fix lower 2020-07-01 03:05:17 +03:00
dmitry 43500a9983 Move lower to load_icon phase 2020-07-01 02:56:44 +03:00
dmitry 8e6cbc1021 Change find icon priority and to_lower app_id 2020-07-01 02:10:22 +03:00
Till Smejkal b7a8e8e544 Fix format option for the taskbar module
When using additional format options in addition to {icon} the format is
separated into text before and text after the icon. Each of the texts is
displayed in a separate label one before and one after the image for the
icon.

The code updating the labels on changes used the wrong format strings
when updating the label after the icon.
2020-06-24 09:47:34 +02:00
Till Smejkal 7429d1f9cc Fix click events for the taskbar module
When only the option 'on-click-right' was set and no other 'on-click'
option than the taskbar module wouldn't register for click events and
hence those events were handled by the generic AModule::on-click code.
This code would try to start a shell with the specified command, which
wouldn't make any sense in this circumstances.

The taskbar code falsely checked for the 'on-click-left' option instead
for the 'on-click-right' when deciding to register for click events.
2020-06-24 09:36:28 +02:00
Jannusch Bigge 401ea05dd8 add check that all batteries from type battery 2020-06-16 12:30:21 +02:00
Isaac Freund 343a8bef22
river/tags: add module 2020-06-12 15:19:46 +02:00
Tudor Brindus 0080feb9af sway/workspaces: make clicking on workspaces idempotent
Previously, clicking on the same workspace you were on would throw you
to another workspace if `workspace_auto_back_and_forth yes` was
specified in your sway config. This also fixes workspace output moving
misbehaving and doing the same.
2020-06-09 20:43:43 -04:00
Till Smejkal adaf843048
foreign-toplevel-manager based taskbar module (#692)
Co-authored-by: Alex <alexisr245@gmail.com>
2020-05-30 12:07:38 +02:00
Alex e96a0bf799 refactor(custom): tooltip markup 2020-05-30 11:59:22 +02:00
Alex 6e7f22ac3a fix: cancel thread and fix window close 2020-05-27 09:10:38 +02:00
Alex 3b16946c25 fix(custom): avoid hide outside update 2020-05-25 09:21:04 +02:00
Alex 7b4ded306b fix: restart-interval 2020-05-24 21:33:38 +02:00
Alex 2ffc96d0b2 fix: hide box by default 2020-05-24 19:02:52 +02:00
Alex 9a123052a0 refactor: check conn 2020-05-24 18:47:50 +02:00
Alex 9b9d13ab0d feat: execNoRead 2020-05-24 18:27:21 +02:00
Alex 6ca4e14b29
Feat icons vector (#716) 2020-05-22 21:23:04 +02:00
Alex 6b32aca094 feat: debug cmd 2020-05-22 20:57:41 +02:00
Alex b251c51936 fix: spdlog 2020-05-22 20:02:09 +02:00
Alex 60bad8279e feat: add comment 2020-05-22 19:09:50 +02:00
Alex a871dcaebe fix: type 2020-05-22 18:56:32 +02:00
Alex cef5b27b48 fix: prefer default fmt date formatting unless timezone specified 2020-05-22 18:52:26 +02:00
Jan Beich 71b7b4e0f4 disk: properly calculate free/total size
On most Unix systems `f_blocks`, `f_bfree`, and `f_bavail` are
reported in units of `f_frsize`.
2020-05-19 10:43:45 +00:00
Jan Beich 4e567d0483 cpu: port parseCpuinfo to BSDs 2020-05-19 10:43:42 +00:00
Jan Beich c4f7cdeec4 memory: port parseMeminfo to BSDs 2020-05-19 10:42:21 +00:00
Jan Beich c844d7ac2e tray: drop std::filesystem dependency 2020-05-19 10:37:27 +00:00
Jan Beich d5df185ac6 cpu: make getCpuLoad more portable
../include/modules/cpu.hpp:4:10: fatal error: 'sys/sysinfo.h' file not found
 #include <sys/sysinfo.h>
          ^~~~~~~~~~~~~~~
2020-05-19 10:37:27 +00:00
Alex 45deb2472c fix: use strcmp 2020-05-19 12:14:59 +02:00
Alex 8fbaf06cbe refactor(mpd): prefer debug over warn 2020-05-16 09:29:37 +02:00