add a scrolling module that can be used to scroll the whole bar to an
arbitrary number of widgets.
its parameter is "width", which determines the number of widgets to
display.
see #921
* initialize first line of output earlier (before modules are
initialized, so that module/thread output cannot interfere)
* make sure that update and draw are protected against concurrent access
This reverts commit 72a888748e, reversing
changes made to d57ef9364a.
This merge causes really high CPU load if using both pasink and
pasource, because those two modules trigger each other, and there's not
a terrible lot I can do about that, unfortunately.
* initialize first line of output earlier (before modules are
initialized, so that module/thread output cannot interfere)
* make sure that update and draw are protected against concurrent access
according to research (Jakob Nielsen '93), roughly 0.1s is what is
required for the user to feel "instantaneous".
based on this, rate-limit updates to only once per ~0.03s (0.1 felt
really laggy for me, so let's be conservative)
Simplify the previous autohide functionality by adding a flag that lets
a module (e.g. progress) indicate that the current state should be
"revealed" (not auto-hidden).
This vastly simplifies the implementation.
see #835
Add a new "hide-able" state "mayhide" that can be utilized by modules
without warning state. This state indicates that the module *may* be
hidden by autohide, if the user configures it like this.
see #835
Add a new set of parameters to allow modules to be customly minimized.
It works like this: If a module has the parameter "minimize" set to a
true value, it will *not* use the built-in minimizer, and instead look
for "minimized" parameters (e.g. if date has the "format" parameter, it
would look for "minimized.format" when in minimized state). This allows
the user to have different parametrization for different states.
Also, using the "start-minimized" parameter allows for modules to start
minimized.
Note: This is hinging off the *module*, not the *widget* (the current,
hard-coded hiding is per-widget). This means that modules using this
method will only show a single widget - the first one - when in
minimized state. The module author has to account for that.
see #791
c77f3aa accidentially broke "sparse" updates (i.e. updates that do not
trigger during each update interval).
Introduce a new update parameter, "force", to model the use case "update
everything on SIGUSR1".
fixes#692
make it possible to toggle the display state of a widget between
"displayed" and "minimized" also for modules that re-create their
widgets during each iteration.
see #661
by default, allow toggling the minimized state of a widget via the
middle mouse and draw a single unicode char instead of the actual
widget, maintaining all states.
fixes#661
OK - so I have to admit I *hate* the fact that PIP seems to require a
subdirectory named like the library.
But since the PIP package is something really nifty to have (thanks to
@tony again!!!), I updated the codebase to hopefully conform with what
PIP expects. Testruns so far look promising...