Commit Graph

79 Commits

Author SHA1 Message Date
52eee95bf8 controller: Detach shell commands from polybar
Shell commands triggered from action tags used to block polybar until
they finished.

Since we are not actually interested in the output of the commands, it
makes sense to run them completely detached from polybar and have
polybar not block when executing these commands.

Now the spawned child processes no longer get killed when polybar
exits. This is fine because polybar is not responsible for these
processes since they were explicitly started by the user through click
commands.

Ref: #770
Ref: #1680
2020-11-29 03:53:59 +01:00
ff3340e062 controller: Cleanup process_inputdata 2020-11-26 20:53:53 +01:00
191fb2972c actions: Integrate input_handler into module
Only modules can now be action handlers.
This also slightly simplifies the controller because we don't need to
keep track of input handlers, we can just use the module list.
2020-11-26 20:53:53 +01:00
41ffc3607d controller: Make action shell command local 2020-11-26 20:53:53 +01:00
9fb75779f3 Incorporate reviews 2020-11-26 20:53:53 +01:00
5ddb6fc0c5 Move legacy action handling to separate function 2020-11-26 20:53:53 +01:00
06012af3aa controller: Deliver inputs to all input handlers
This is more natural, especially if the same module appears twice in the
module list
2020-11-26 20:53:53 +01:00
a287fb5e8c fix: Use module name in action string
Action strings now have the form '#MODULE#ACTION'

For example to trigger the action 'toggle' in the 'module/date' module
one would now use '%{A1:#date#toggle:}'

With this action strings can now be uniquely assigned to one module.

Fixes #1172
2020-11-26 20:53:53 +01:00
ba0a156bbe refactor: Deprecate throttle-input-for setting (#2117)
If an input is enqueued as a response to an input, the new input will be
swallowed because it will likely be enqueued less than 30ms after the
original event.
This is not something that is an issue right now but it is required to
finish #1907 where, in order to close the menu after a click, the menu
module gets an exec action that closes the menu and adds a command to
the event queue.

The setting also isn't too useful since it will just break polybar input
handling if inputs arrive too fast instead of (possibly) slowing down
the bar.
2020-05-30 22:45:36 +02:00
e9d2f022cd add command unit tests 2020-05-08 23:24:29 +02:00
5e5d8faf04 fix(command): broken pipe when ignoring output. 2020-05-08 23:24:29 +02:00
a119c3386b controller: Print error for duplicate modules (#1534)
* refactor: Use flat module list if possible

Before if you wanted to iterate over all loaded modules you had to first
iterate over all blocks and then over their modules even if you didn't
care about alignment.

* refactor: setup modules in separate function

* controller: Print error for duplicate modules

You can't use the same name twice inside the module lists

E.g.

  modules-left = a b c
  modules-center = a
  modules-right = b

would print an error.

We only print an error for now because we don't want to break existing
configs. But in the future this should be properly enforced.
2019-10-21 10:20:45 +02:00
6ca4f06785 doc: Convert @ to \ doxygen commands
Ref #1377
2018-11-04 19:28:27 -08:00
3de914abca feat(render): support pseudo-transparency
This adds pseudo-transparency for the background of the bar and the
background of the systray.
2018-10-04 15:52:03 +02:00
6692b4a8da refactor(x11): Cleanup 2017-01-24 10:49:14 +01:00
8b9461e63e wip(refactor): Cairo drawing 2017-01-24 07:41:46 +01:00
452afcdc68 refactor: Integral types 2017-01-24 07:11:14 +01:00
5e1886a312 wip(refactor): Cairo drawing 2017-01-24 07:11:14 +01:00
f72ddf9294 refactor(signals): Use full namespace 2017-01-12 16:34:14 +01:00
8cc885c316 refactor: Cleanup 2017-01-11 03:07:28 +01:00
6925415501 fix(tray): Force bar update on change
Refs #295
2017-01-09 14:27:56 +01:00
e3a51b235a refactor(clang-tidy): Apply fixes 2016-12-31 04:32:11 +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
00ac4bea63 refactor(x11): Header cleanup 2016-12-26 10:27:30 +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
8cc275ccd1 refactor(controller): Process eventqueue concurrently 2016-12-23 05:10:40 +01:00
fa0d77f267 refactor(file_descriptor): Use unique_ptr 2016-12-23 01:07:00 +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
a89c4ef2dd refactor: Move all event handling to the controller 2016-12-20 05:16:04 +01:00
a0d485f79d refactor: Initialize data 2016-12-15 09:30:31 +01:00
eca870774f fix: Handle single input events 2016-12-14 11:01:44 +01:00
4fca0c89b4 refactor: Object construction 2016-12-14 11:01:44 +01:00
1a2a6e5fab refactor: Construction methods 2016-12-14 11:01:44 +01:00
08be86fbe1 wip(refactor): Improve signal and event handling 2016-12-14 11:01:44 +01:00
df85a6492e refactor(eventloop): Typed events 2016-12-03 23:00:41 +01:00
086e498388 fix: Replace process on reload 2016-12-03 15:46:48 +01:00
c6540a8950 refactor: Signaling 2016-12-01 08:56:16 +01:00
ff9be848c7 refactor(clang-tidy): Apply fixes 2016-11-25 21:58:49 +01:00
8db3e79919 refactor(clang-format): Apply fixes 2016-11-25 14:17:41 +01:00
c6d85b2b92 refactor: Optimize build 2016-11-20 23:04:31 +01:00
fd57ab0f3d fix: project rename 2016-11-19 06:26:07 +01:00
2fd88c4f60 feat(ipc): New message type "action:"
Adds a new message type, prefixed "action:"
that will perform the same task as mouse actions.

This could be used to control menu modules:

  echo action:menu-open-1 > /tmp/lemonbuddy_mqueue.<pid>
  echo action:menu-close > /tmp/lemonbuddy_mqueue.<pid>

Ref #84
2016-11-18 18:37:53 +01:00
e3065d0e6c feat(ipc): New ipc module
Add a new module that allow users to configure hooks
on received ipc messages. The hook will execute the defined
shell script and the output of the script will be used
as the module content.

Ref #84
2016-11-14 09:26:40 +01:00
489f3ce480 wip: Inter-process messaging 2016-11-13 19:05:30 +01:00
23996fdcdc refactor: Tray transparency and code cleaning
- Make pseudo-transparency work as intended, fixes #158
- Fill tray pixmap in case a root pixmap is not found
- Split up bar bootstrap routine
- Formatting (clang-format)
2016-11-12 13:09:50 +01:00
869c5fe718 refactor: Code cleanup 2016-11-04 19:21:56 +01:00