Commit Graph

782 Commits (a25cf4d18864c918ac6adaee60bed16b902fd2d4)

Author SHA1 Message Date
Aleksei Bavshin 9c566564e1
fix(bar): address some of RawSurfaceImpl resizing issues 2020-10-28 08:22:26 -07:00
Aleksei Bavshin 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
Aleksei Bavshin fe3aeb36c5
refactor(bar): wrap layer_surface pointer in unique_ptr 2020-10-28 08:15:02 -07:00
Aleksei Bavshin 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
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 f01996ae99
fix(bar): CamelCase SurfaceImpl method names 2020-10-28 08:07:40 -07:00
Aleksei Bavshin 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
Aleksei Bavshin 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
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
Alex d6381eeaff
Merge branch 'master' into taskbar/remove-trim 2020-10-11 23:06:32 +02:00
Christoffer Noerbjerg e9b2d275c8 added module group selectors for styling 2020-10-11 22:36:30 +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
Minijackson e9b5be9adb
fix: add global /etc/xdg/waybar back. fixes #714 2020-09-29 22:28:39 +02:00
lrhel 83d679bf72 Add format-icons for workspace's name entry 2020-09-26 23:06:12 +00:00
Daniel De Graaf 7ba14c2097 Fix "on-click-backward" when "on-click-forward" is not present 2020-09-26 15:55:06 -04:00
Thorben Günther 12016d35bb
disk module: add state for percentage_used 2020-09-23 14:01:25 +02:00
Alex 063c5a5ace
Merge branch 'master' into fix-network 2020-09-21 12:09:54 +02:00
Alex 95f505a457 revert: restore eventfd 2020-09-21 10:56:40 +02:00
Alex 577dc1fa00
Merge branch 'master' into poll-h 2020-09-21 10:40:46 +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
Luca Weiss 98b6d7f283
Fix non-standard usage of <sys/poll.h>
Fixes the following build warning with musl libc:

In file included from ../src/util/rfkill.cpp:24:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
    1 | #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
      |  ^~~~~~~
2020-09-06 21:48:42 +02: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
Alex 4a22057138
Merge pull request #814 from danieldg/markup-fixes
Allow enabing pango markup in the taskbar string
2020-08-28 09:01:32 +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
Pedro Côrte-Real 6f7d7e645a Prevent line breaks in ellipsized labels
If a label is being ellipsized it doesn't make sense to allow it to use
line breaks to have multiple lines.

Fixes #827
2020-08-19 23:38:59 +01: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 0cf3b25d50
Merge pull request #824 from alebastr/gls-resize
Fix resizing of the bar with gtk-layer-shell
2020-08-15 10:59:12 +02:00
Alex 033f0b01b7
Fix rfkill condition 2020-08-15 10:36:15 +02:00
Aleksei Bavshin 3663b9193d
refactor(bar): separate GTK event handlers for gtk-layer-shell
Cleanly separate resizing logic for gtk-layer-shell and manually managed
layer surface code.
2020-08-14 22:47:57 -07:00
Alex 591eb2ea38
Merge pull request #821 from danieldg/new-clock-features
New clock features
2020-08-14 22:12:48 +02:00
wjoe 4d775008df only return a bluetooth module from factory if the rfkill feature is enabled. 2020-08-14 20:59:30 +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 5ebd3594e4
Merge pull request #778 from excellentname/handle-sigchld
Handle SIGCHLD for exec/forkExec
2020-08-07 13:33:27 +02: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
excellentname c3359dec1b Replace signal handler with signal handling thread 2020-07-25 21:02:59 +10: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
excellentname 246f7bf555 Handle SIGCHLD for exec/forkExec
When forkExec is called it begins to ignore all SIGCHLD signals for
the rest of the progam's execution so that they are automatically
reaped. However, this means that subsequent waitpid calls in the exec
function will always fail. So instead handle SIGCHLD by reaping any
processes created by forkExec and ignoring all others so that they can be
handled directly by the exec function.
2020-07-21 12:36:48 +10:00
Alex 759602af64
Update mpd.cpp 2020-07-18 10:23:04 +02:00
Alex e3fdd6d94a
fix: don't a warning for a width/height of 0 2020-07-12 11:57:47 +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 e72b153f87 fix: ignore gtk unknown options 2020-05-24 22:03:41 +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 1885ecc958 bluetooth: limit to Linux due to missing /dev/rfkill
../src/modules/bluetooth.cpp:3:10: fatal error: 'linux/rfkill.h' file not found
 #include <linux/rfkill.h>
          ^~~~~~~~~~~~~~~~
2020-05-19 10:44:31 +00: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 496e782544 battery: limit to Linux due to /sys/class/power_supply
../include/modules/battery.hpp:9:10: fatal error: 'sys/inotify.h' file not found
 #include <sys/inotify.h>
          ^~~~~~~~~~~~~~~
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
Jan Beich c94ef092ff build: drop -Dout in favor of --prefix
$ meson --prefix=/tmp/foo _build
$ ninja install -C _build
[49/50] Installing files.
Installing waybar to /tmp/foo/bin
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/mesonbuild/mesonmain.py", line 127, in run
    return options.run_func(options)
  File "/usr/lib/python3.6/site-packages/mesonbuild/minstall.py", line 514, in run
    installer.do_install(datafilename)
  File "/usr/lib/python3.6/site-packages/mesonbuild/minstall.py", line 346, in do_install
    self.install_data(d)
  File "/usr/lib/python3.6/site-packages/mesonbuild/minstall.py", line 375, in install_data
    d.dirmaker.makedirs(outdir, exist_ok=True)
  File "/usr/lib/python3.6/site-packages/mesonbuild/minstall.py", line 55, in makedirs
    os.makedirs(path, exist_ok=exist_ok)
  File "/usr/lib/python3.6/os.py", line 210, in makedirs
    makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/etc/xdg'
FAILED: meson-install
2020-05-19 10:37:27 +00:00