Commit graph

37 commits

Author SHA1 Message Date
tobi-wan-kenobi
bac38ece5d [core/module] only log an error when a module cannot be loaded
improve logging of import errors

see #606
2020-05-02 13:29:20 +02:00
tobi-wan-kenobi
8e71201030 [core/module] name of a widget now equals the module name
to make it easier to trigger events programmatically, the IDs for
modules are not auto-generated UUIDs anymore, but rather the module name
(which has to be unique, anyhow).
2020-05-02 09:40:09 +02:00
tobi-wan-kenobi
2ab575d190 [core] do not scroll errors
to make errors easier to diagnose, do not scroll them, but instead fully
show them.

also, re-introduce the supplementary fields for the dwm bridge, kudos to
@somospocos
2020-05-01 15:34:29 +02:00
tobi-wan-kenobi
2a663deb7b [core/modules] Add widget producer for module
simplifies and debugs widget creation
2020-05-01 10:03:50 +02:00
tobi-wan-kenobi
1e4955d4b8 [core/module] Make name and module_name attributes 2020-04-30 12:50:24 +02:00
tobi-wan-kenobi
b27956071f [core/widget] Make module an attribute
Instead of having an artifical getter/setter method, just make module a
plain attribute.
2020-04-30 12:46:57 +02:00
tobi-wan-kenobi
9cd9ff626d [core] make widget name an attribute
first, this fixes #607

also, i think it slightly simplifies code to make "simple" stuff like
names, etc. attributes instead of methods all the time.

so, expect this to be extended to other components, as well.
2020-04-30 12:42:34 +02:00
tobi-wan-kenobi
f1341772e5 [core/output] Evaluate "hidden()" callback of modules 2020-04-28 20:13:31 +02:00
tobi-wan-kenobi
28bdf4355b [core] Add theme to modules 2020-04-26 16:40:48 +02:00
tobi-wan-kenobi
1f94eab927 [core] Add themes to module constructor 2020-04-26 16:39:13 +02:00
tobi-wan-kenobi
b87dcad9c2 [core/module] For errors, always set update interval to 1 2020-04-13 09:43:45 +02:00
tobi-wan-kenobi
1a5a324498 [core/module] improved handling of import errors
Now, the error message includes the name of the module that was not
imported, and there's checks to ensure the "more specific" error (i.e. a
failing import *inside* the module) "wins".
2020-04-11 12:59:39 +02:00
tobi-wan-kenobi
f22561cf90 [core/module] remove debug output 2020-04-08 11:48:16 +02:00
tobi-wan-kenobi
cde06bd33b [core/module] Re-enable aliases 2020-04-07 21:23:42 +02:00
tobi-wan-kenobi
3aeec1c7e6 [core/module] Use __ for private variables 2020-04-04 13:55:54 +02:00
tobi-wan-kenobi
c625baa47a [core] Move "every" to decorators module 2020-03-29 14:36:44 +02:00
tobi-wan-kenobi
bd7ff3c8f1 [core] Allow modules to specify default update interval
Expanding on the implementation in d582016, add a decorator
`core.module.every()` that allows a module to specify how often to
update the module's state.

This can still be overridden using the CLI parameter `interval`.
2020-03-29 14:32:47 +02:00
tobi-wan-kenobi
d5820160dc [modules/sensors2] Fix runtime errors 2020-03-28 13:44:45 +01:00
Tobias Witek
e8288ef793 [core] Add per-module interval configuration
Allow individual modules to set different update intervals by using an
overriding 'interval' parameter.

see #574
2020-03-23 15:32:06 +01:00
Tobias Witek
5851b104c5 [modules/xrandr] Adapt to new API 2020-03-13 13:56:08 +01:00
Tobias Witek
b841ba3c93 [modules/battery] Re-enable battery module 2020-03-06 20:57:32 +01:00
Tobias Witek
d2e8057141 [modules] Add CPU module
Also, change minwidth from theme.minwidth to widget property
2020-03-06 14:33:40 +01:00
Tobias Witek
efc2e4f94e [modules] Separate modules into core & contrib
Also, improve errors when importing a module fails.

Also, add more tests.
2020-03-06 14:14:34 +01:00
Tobias Witek
0a0e39b516 [modules] Re-add load module 2020-03-05 21:13:15 +01:00
Tobias Witek
533b8ca0cc [modules] Re-add module nic 2020-03-01 14:36:12 +01:00
Tobias Witek
a1aec8fff6 [core/module] Add error widgets if a module throws
Module should have to care less about thrown exceptions.
2020-03-01 14:08:16 +01:00
Tobias Witek
162398c6b6 [core/output] Make error widgets critical 2020-02-24 15:07:34 +01:00
Tobias Witek
84833dc7db [core] Add (partial) support for states
Add states to the modules and widgets. Widgets are mostly just a
pass-through (backwards compatibility, and ease of use - making states
directly inside the widgets would require more code inside the modules
to ensure that each widget is correctly updated).

Still missing:
- Separators during partial update (right now, it takes one interval
until separators are drawn correctly)
2020-02-23 21:13:49 +01:00
Tobias Witek
5e673482d3 [core] Nicify error widget 2020-02-23 14:52:58 +01:00
Tobias Witek
65186baea6 [core] Make error widget scrollable
Restrict error module to 15 characters and make it scrollable.
2020-02-23 14:47:47 +01:00
Tobias Witek
99cca7002c [core/module] Fix error display 2020-02-15 14:04:53 +01:00
Tobias Witek
e0df8b84e5 [core] Add input handling
Add a (half-finished) input library, that for now simply allows
registration and triggering of events.

As next steps, the trigger will happen as part of a separate thread that
reads input events.

Additionally, invoking commands via a execute() will be supported.

Thirdly, there is need of a way to selectively update the affected
modules (widgets), which should be possible given that the event
contains both the instance (widget ID) and name (module name).
2020-02-07 21:28:29 +01:00
Tobias Witek
6adc497f68 [core] Add support for module parameters
Parse '-p' parameters and make them accessible via 'parameter()' from
within a module (basically, restore the previous configuration
facility).

Still TODO: Add support for configuration files.
2020-02-04 21:09:11 +01:00
Tobias Witek
3a531c359f [core/module] Add config to module
Add access for all modules to the commandline parameters (called
"config" in bumblebee-status)
2020-02-03 21:30:06 +01:00
Tobias Witek
7a9cb8b533 [core/module] Add very basic widget capability 2020-01-26 14:06:09 +01:00
Tobias Witek
bd12a51bfb [core] Add simple module loading
Add a way to load modules located in modules/*
2020-01-19 16:06:21 +01:00
Tobias Witek
8622673114 [core] Re-enable preliminary module loading (stubbed)
Add logic for parsing commandline options, and a preliminary stub for
loading modules.

Note: The idea is that core.module.load() will return a valid, but
empty, module that displays an error, if the module cannot be loaded
2020-01-19 15:36:52 +01:00