Commit Graph

88 Commits

Author SHA1 Message Date
42fda5b105 feat(plugin): Add initial draft plugin architecture.
Modules and other features that require optional libraries are now
dynamically loaded on the construction of the controller via dlopen().
This allows polybar to be built with support for all of the features on
one machine, but gracefully fall back and disable those features on
machines where the required optional shared libraries are not found.
2018-09-20 15:50:51 -05:00
61dba1b2dc refactor(modules): Use self-registration for modules. 2018-09-20 15:50:51 -05:00
4cb0b18389 fix(controller): don't draw window if writing to stdout (#1322)
fixes #1314.
2018-07-24 19:39:32 +02:00
20f3d9a141 refactor: Don't initialize forward declared members
Using brace initialization here causes bar.hpp to not compile when
included on its own, forcing all clients to also include
tray_manager.hpp and so on, which defeats the purpose of forward
declaring those classes.

This also allows us to remove the tray_manager.hpp, renderer.hpp and
parser.hpp includes from the clients of bar.hpp
2018-05-10 00:05:18 +02:00
0fd614b0a9 refactor(controller): Print error message on select fail 2018-02-15 19:26:35 -08:00
06dee3dedd fix(volume): Warn instead of throw 2018-01-23 14:33:11 +01:00
b6c5563b0b feat(ipc): Add visibility commands 2017-05-12 17:55:05 +02:00
23a7717120 fix(controller): Remove unused function 2017-05-12 17:55:05 +02:00
eb5c82a5c3 fix(modules): Warmup in runner thread to avoid block 2017-01-27 13:29:10 +01:00
6692b4a8da refactor(x11): Cleanup 2017-01-24 10:49:14 +01:00
a5d6670121 refactor(clang-tidy): Apply fixes 2017-01-24 08:01:04 +01:00
8b9461e63e wip(refactor): Cairo drawing 2017-01-24 07:41:46 +01:00
5e1886a312 wip(refactor): Cairo drawing 2017-01-24 07:11:14 +01:00
47a2cce03d fix: Ensure reloading when IN_IGNORED fired on config (#371)
This fixes a "bug" where polybar wouldn't reload on a configuration
file change on some configurations of vim, which don't actually issue
any IN_MODIFY events because they choose to move the file, replace it
with a new one, and then delete the file instead.

To work around this, we now also listen for IN_IGNORED which fires when
the file we are watching is destroyed. When this happens, we re-attach
the configuration file watcher to the new file and reload.
2017-01-24 07:10:55 +01:00
480c2cb44b controller: Lower verbosity of uncaught event msg 2017-01-14 00:34:35 +01:00
57e8914fa6 fix: Force update after running input command 2017-01-13 14:33:16 +01:00
f72ddf9294 refactor(signals): Use full namespace 2017-01-12 16:34:14 +01:00
da9f1d90f4 fix(controller): Ensure module runstate 2017-01-12 16:33:41 +01:00
f33d383726 refactor: Wait with tray initialization until ready 2017-01-12 16:12:54 +01:00
f4406783e2 fix(signals): Use pointer to value
Only pass pointers to emitted signal value since the signal receivers
will be called on the same thread as the signal emitter.

Refs #302
2017-01-09 18:52:04 +01:00
3d6084f0c0 fix(controller): Always process forced update events 2017-01-09 16:35:28 +01:00
6925415501 fix(tray): Force bar update on change
Refs #295
2017-01-09 14:27:56 +01:00
a2bcb1a627 refactor(signals): Avoid reinterpret_cast 2017-01-01 20:31:09 +01:00
dd960cc5b5 refactor(fd_streambuf): Cleanup 2016-12-31 15:42:46 +01:00
78bb3695e6 refactor(config): Deduce return type from default value 2016-12-30 23:32:05 +01:00
a0f1d97c2b fix(controller): UB sanitizer patch 2016-12-30 23:28:58 +01:00
18cf9df86c refactor: Cleanup 2016-12-27 04:58:41 +01:00
baaba4adf9 refactor(ipc): Rename signals 2016-12-26 10:36:14 +01:00
11aabac227 refactor(connection: Use custom base 2016-12-26 09:46:48 +01:00
789800a68f refactor(signals): Simple types 2016-12-23 22:19:42 +01:00
b422d1d1a4 refactor(modules): Input handling 2016-12-23 20:43:52 +01:00
92424f0d49 refactor(cmake): Install components 2016-12-23 18:10:19 +01:00
1cb8e455fb fix(controller): Invalid move constructions
Refs #268, #265
2016-12-23 13:03:05 +01:00
e551dbfea9 fix(controller): Raise signal on quit from eventqueue 2016-12-23 05:51:33 +01:00
8cc275ccd1 refactor(controller): Process eventqueue concurrently 2016-12-23 05:10:40 +01:00
8cff01e3d8 refactor(event_handler): Abstract sink attaching 2016-12-23 05:08:19 +01:00
417d90f411 refactor(controller): Store module input handlers locally
Refs #265, #262
2016-12-23 00:54:14 +01:00
e47e439954 refactor(modules): Replace callbacks with signals
Refs #265
2016-12-22 22:11:30 +01:00
bc9b9f0d12 refactor: Cleanup 2016-12-21 23:22:02 +01:00
185363056a refactor(x11): Cleanup 2016-12-21 15:04:16 +01:00
7979f5b3d4 refactor(modules): Handle events using signal_receiver 2016-12-21 08:38:44 +01:00
c01f111e34 refactor(modules): Move setup to constructor 2016-12-21 08:00:09 +01:00
81e6fb062f wip: Window autohide 2016-12-21 04:50:43 +01:00
cd31d92713 fix(controller): Check eventpipe reads/writes 2016-12-20 05:36:10 +01:00
a89c4ef2dd refactor: Move all event handling to the controller 2016-12-20 05:16:04 +01:00
519172b6ec feat(xkeyboard): Switch layout group on click
When serveral layout groups are defined for the keyboard
they can be cycled when clicking on the module.

   For example:

   $ setxkbmap -layout us,sv,fr

Ref #84
2016-12-16 11:31:08 +01:00
f50f43af02 refactor: Cleanup 2016-12-16 10:23:54 +01:00
f9062d031c refactor(clang-tidy): Apply fixes 2016-12-15 03:30:41 +01:00
e11798253a fix(controller): Module margin require surrounding text 2016-12-14 19:03:59 +01:00
eca870774f fix: Handle single input events 2016-12-14 11:01:44 +01:00