* util.popup requires tkinter to be installed (in order to display
popups). As most people will probably use the default configuration
of the pulseaudio module (where the popup is disabled) and in order
to avoid breaking existing setups, we catch import errors and just log
them.
* added possibility to show currently selected default device in the
statusbar (default: off)
* allows to override the left mouse button click with a different
action (e.g open popup menu to change the current default device)
When registering an event (especially mouse events), if the parameter
is a valid method in the Module, execute that with the event as
parameter.
Add this in the core.spacer module as an example.
fixes#858
see #857
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
Add a new module "layout" that will eventually evolve into the only
keyboard layout module.
Right now, it uses an external binary (get-kbd-layout) to determine the
layout of a keyboard device (because I did not manage to call libX11
with ctypes correctly).
see #788
see #790
By explicitly setting "cpu.percpu=True" as parameter, it is now possible
to get the CPU utilization on a per-cpu basis.
Future extension: One widget per CPU (add ID of CPU and add
warning/error state on a per CPU basis)
see #785
add a custom event loop for popups that closes the menu on mouse button
release events and - most importantly - propagates this event back to
any parent menu.
fixes#633