Commit Graph

302 Commits

Author SHA1 Message Date
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
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 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
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
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 f592e3d38b
Merge branch 'master' into fmt 2019-08-29 11:29:48 +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
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
Alex bb99e6cf5b fix: check before destroy 2019-07-15 10:06:01 +02:00
Alex a6980fca7f feat: ellipsize modules 2019-06-28 14:16:09 +02:00
Alex ff9d598c16 fix: add proper mutex 2019-06-17 11:39:45 +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
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 564fdcb369 fix(custom): exit status 2019-06-11 22:09:47 +02:00
Patrick Hilhorst ae397c8fa2
ALabel: add smooth-scrolling-threshold 2019-06-11 17:56:10 +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
Thomas Kerpe d20a586734 Prevent zombie apocalypse by ignoring SIGCHLD
Fixes Issue #369
2019-06-05 14:35:25 +02:00
Alex 1962caf144 refactor(window): gtk stuff in update method 2019-06-04 17:34:00 +02:00
Alex fcf2d18a01 refactor: destroy threads first 2019-05-29 17:53:22 +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 6e73c6db61 refactor(network): remove last_ext_iface_ 2019-05-26 23:16:09 +02:00
Alex ecec02c8be refactor(network): better events handler 2019-05-26 22:36:26 +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 85d60f95c4 refactor(network): const methods 2019-05-22 22:20:50 +02:00
Alex 9e1200ae32 refactor: also pass id to custom modules 2019-05-22 12:20:13 +02:00
Alex d24d85bebf refactor: move label name and id to label contructor 2019-05-22 12:06:24 +02:00
Max Reppen 00ada46dfc feat(Battery) Time remaining on tooltip 2019-05-21 13:36:14 -04:00
Max Reppen 2db81a6107 fix(Battery) "current" unused and removed 2019-05-21 13:35:39 -04:00
Alex 48a58cd979 fix(network): switch between ifaces upon disconnection 2019-05-21 17:38:47 +02:00
Alex bb4af295bc feat(pulseaudio): source info 2019-05-21 14:53:31 +02:00
Alex e3879559a2
Merge pull request #330 from Organic-Code/master
Adding sway/workspaces:persistant_workspaces
2019-05-20 14:33:31 +02:00
Alex 67593b8c0f
Merge pull request #332 from Organic-Code/enhancement/spdlog
Adding spdlog
2019-05-20 12:07:58 +02:00
Alex f2edc8f965 feat(Watcher): define watcher_id 2019-05-20 11:47:52 +02:00
Lucas Lazare 51be97f9aa Adding spdlog 2019-05-18 19:44:45 -04:00
Lucas Lazare 1a76aa0c8c Improving ordering 2019-05-18 11:58:01 -04:00
Alex ff28de0482 feat(custom): update on click/scroll 2019-05-18 16:07:55 +02:00
Alex 93a644eec4
Merge branch 'master' into master 2019-05-18 15:42:27 +02:00
Alex 4865a9ad6c fix(network): reset frequency 2019-05-18 13:57:50 +02:00
Lucas Lazare 794fb12e8c Adding bandwidth support for network module [linux only] 2019-05-17 23:39:51 -04:00
Alex d2d9db23b5 fix: uninitialized bool 2019-05-17 14:23:52 +02:00
Alex cb2d6e1997 feat(Network): frequency 2019-05-17 11:27:38 +02:00
Alex 4d4cadb5ae refactor: simpler code 2019-05-17 09:59:37 +02:00
RX14 b45dcdf74e
Allow scrolling on the entire bar surface 2019-05-16 22:18:43 +01:00
Alex 31f63398dc
Merge pull request #319 from Alexays/network
Network improvements
2019-05-16 14:11:32 +02:00
Alex 841576497a refactor: cleaner events 2019-05-16 11:22:22 +02:00
Alex 963d4f68e4 refactor: remove useless param 2019-05-16 09:39:06 +02:00
unresolvedsymbol 7e8eee0571 fix state behavior 2019-05-15 22:14:51 -05:00
Alex 5b3402e110 feat(Battery): plugged status 2019-05-14 15:43:57 +02:00
Alex 362c393b1d refactor: try/catch, sigc trackable 2019-05-13 15:15:50 +02:00
Alex 0c3c548bc0 fix(Window): avoid concurrency 2019-05-13 14:35:45 +02:00
Alex 4f1defe6d5 fix(Pulseaudio): avoid handleScroll override 2019-05-13 11:46:12 +02:00
Alex 92967c7c06 fix(Label): reverse only battery states 2019-05-13 11:36:34 +02:00
Alex fcb23d3104 feat(temperature): format-icons 2019-05-13 11:31:05 +02:00
Alex 80e9ea746b fix(battery): use path for the / operator 2019-05-12 19:53:22 +02:00
Dan e343cf4b00 fix(btformat): fixes an issue where btformat was not being correctly detected 2019-05-10 12:07:17 -04:00
Alex 4688002f23 feat: margins 2019-05-09 15:10:13 +02:00
Alex 5bf0ca85ac refactor: try/catch around json parse 2019-05-09 10:30:54 +02:00
Alex 5a44c8c6de refactor: avoid unneeded json parsing 2019-05-07 13:43:48 +02:00
Alex b75e0bb0d0 refactor: remove useless bar param 2019-05-07 13:21:18 +02:00
Dan dd0ebe117c chore(cr): cr cleanup 2019-05-03 08:08:55 -04:00
Dan 3bac96945c Revert "feat(percent): adds a percent class to numeric modules"
This reverts commit 82302e58f3b611f7ff6d686d1783b1c32914f7c9.
2019-05-02 22:24:29 -04:00
Dan e158a3e132 feat(states): add generic 'states' to all labels 2019-05-02 22:24:29 -04:00
Dan 472363a623 feat(percent): adds a percent class to numeric modules 2019-05-02 22:24:29 -04:00
Alex 5623bbecfe feat(idle_inhibitor): pass status to click events exec 2019-05-02 16:56:45 +02:00
Alex d027243a19 fix: json thread safe 2019-05-02 14:24:54 +02:00
Alex bb8ff5a99f feat(Bar): add class depend of window in the workspace 2019-04-25 16:47:51 +02:00
Alex 79a5e9ecee feat: multiple bar with same process 2019-04-25 13:25:06 +02:00
Alex 9504b7ac03 fix(Bar): typo 2019-04-24 12:42:16 +02:00
Alex 311c34ecbc feat(Bar): handle widget size changes 2019-04-24 12:37:24 +02:00
Alex 90d89fe974 refactor: kill custom modules scripts en destroy 2019-04-23 15:56:38 +02:00
Alex cccf60c30e fix(Workspaces): fix concurrence and move json parser to ipc client 2019-04-23 11:42:08 +02:00
Minijackson b50650f63f
fix(mpd): regularly timeout the event listener to prevent timeout
The MPD server has a connection_timeout that defaults to 60. If no data
is transferred in this timespan, the connection is closed. If the
connection is closed while the event listener is listening for events,
it will block forever. By timing out the event listening and
re-connecting regularly, we prevent this issue. An option "timeout" has
been added for users that have a lower server connection_timeout than
default. Fixes #277
2019-04-21 10:58:40 +02:00
Cole Helbling 160837b900
Ensure no NULL tags are set
Because `mpd_song_get_tag` from libmpdclient can return NULL, verify the
value of tag is valid. Otherwise, set a default string of "N/A". Also
adds configuration to specify what this default string should be.
2019-04-20 09:12:30 -07:00
Alex 8cf19826aa fix(Tray): Unexport on exit 2019-04-19 17:03:46 +02:00
Alex cbb6f2a307 refactor(Workspaces, IPC): no more mutex in the workspaces modules, moved to the IPC client for a proper handling 2019-04-19 16:48:02 +02:00
Alex e77c155ede fix(workspaces): avoid mutex block 2019-04-19 12:11:55 +02:00
Alex 171ecd53aa refactor(Bar): roundtrip before setup widgets 2019-04-19 11:56:40 +02:00
Alex bb1cf7570e refactor(IPC): use sigc signal 2019-04-19 11:09:06 +02:00
Alex 6ed8f94dab refactor: format code 2019-04-18 17:52:00 +02:00
Alex 807ef32357 refactor: format && better output management 2019-04-18 17:47:40 +02:00
Minijackson ab43d34a1e
refactor(mpd): Add module name to log messages 2019-04-18 15:57:57 +02:00
Minijackson cd92b475ad
chore: Add clang-format configuration and format MPD module 2019-04-18 15:57:57 +02:00
Minijackson 235997fa73
feat(mpd): Add support for elapsed and total time 2019-04-18 15:55:46 +02:00
Minijackson 80a12d0238
feat(mpd): play/pause on click & stop on right-click 2019-04-18 15:55:46 +02:00
Minijackson 07dab2baec
feat(mpd): Add support for options (random, repeat, etc.) 2019-04-18 15:55:45 +02:00
Minijackson cbfcec4867
feat(mpd): Add support for play/pause icons 2019-04-18 15:55:45 +02:00
Minijackson 557b786ce0
feat(mpd): Allow for specifying the reconnect interval 2019-04-18 15:55:45 +02:00
Minijackson 06aff70e2e
feat: Add basic support for MPD 2019-04-18 15:55:45 +02:00
Alex 6d6df4be00 refactor(sni-item): better way to search in default theme 2019-04-17 22:15:18 +02:00