Tobias Witek
37e1deaa6f
[tests] Add (partial) decorator tests
2020-02-24 14:20:54 +01:00
Tobias Witek
0a266b607e
[core/output] Unify common i3 attributes
2020-02-24 14:06:57 +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
fd57af9325
[tests] Make tests pass again
2020-02-23 14:55:13 +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
a69e058dd1
[core] Add decorators library
...
For now, simply add a decorator that allows for scrolling of text
2020-02-23 14:47:20 +01:00
Tobias Witek
a2446a36af
[core/theme] Better separator handling
...
Add a generic method to the theme to get the "previous" value of an
attribute.
2020-02-23 14:31:30 +01:00
Tobias Witek
66bdfacf6f
[modules/pulseaudio] Show bar charts
...
Re-enable optional display of barcharts
2020-02-23 13:59:47 +01:00
Tobias Witek
b2064142d0
[util] Add graph library
...
Add a library for drawing horizontal and vertical bar graphs (thanks to
@somospocos for contributing!)
2020-02-23 13:59:22 +01:00
Tobias Witek
3496fa622a
[modules] Add preliminary version of pulseaudio module
...
Add pasink/pasource and __pulseaudio (internal module, not intended for
direct use).
2020-02-23 13:45:42 +01:00
Tobias Witek
30c539f1f2
[util/cli] Add option to ignore return codes
...
Add an option that ignores the return code of an execute, instead of
throwing an error (which sometimes causes ugly try/except blocks in
client code)
2020-02-23 13:44:49 +01:00
Tobias Witek
7a1cd4b613
[util] Add 'formatting' utility methods
...
Add helpers to unify formatting of bool/list/int values.
2020-02-23 13:43:44 +01:00
Tobias Witek
a9c1c3581a
[core/theme] Iconset needs to be auto by default
2020-02-22 14:11:10 +01:00
Tobias Witek
30d34b12e0
[core/theme] Fix loading of custom iconset
2020-02-22 14:08:28 +01:00
Tobias Witek
3bb857f250
[core/theme] Add iconset support
...
Allow themes to specify iconsets. To do so, add a new util library
"util.algorithm", which currently contains support for deep merging of
dicts.
2020-02-22 14:07:24 +01:00
Tobias Witek
ef75e593f7
[core/config] Add stub for autohide
...
Add stub for autohide so that my status bar doesn't terminate with an
error (easier testing)
2020-02-22 13:44:44 +01:00
Tobias Witek
38410adcb8
[core/theme|output] Add separators
...
Add a way for themes to specify custom separators. Doing that, make
nicer interfaces for drawing "supplementary" components (separators)
for widgets and generalize the attribute retrieval within the theme.
2020-02-22 13:42:44 +01:00
Tobias Witek
d3fc648c08
[core/theme] Dynamically create theme accessors
...
Dynamically generate the accessors for a theme's attributes.
NB: This might be even nicer coming from a JSON rather than inside the
code.
2020-02-16 21:15:14 +01:00
Tobias Witek
6143c5e5a1
[doc] NOTES: Add more notes
...
Otherwise, I'll forget about them
2020-02-16 14:55:26 +01:00
Tobias Witek
808c46f551
[core/theme] Add separator-block-width
2020-02-16 14:54:20 +01:00
Tobias Witek
6e5e297d93
[core/theme] Add true cycling support
...
Using the freshly introduced eventing system, enable cycling of widget
attributes.
2020-02-16 14:39:10 +01:00
Tobias Witek
a4904d998f
[core] Use core.event to decouple main and output
...
Make output act on events, not on concrete calls.
2020-02-16 14:30:45 +01:00
Tobias Witek
c1df1686c1
[core/event] Initial commit of simplistic event engine
2020-02-16 14:27:17 +01:00
Tobias Witek
26ae63b5ad
[core/theme] Add preliminary cycling support
...
Add support for cycling values in a theme, for now as long as the cycle
size is 0 :P
2020-02-16 14:02:21 +01:00
Tobias Witek
f05098a120
[main] Add error widget for 'all' errors
...
One exception: Wrong arguments aren't handled, because argparse doesn't
throw in this circumstance.
2020-02-16 13:50:15 +01:00
Tobias Witek
0bae9e33bb
[themes] restore all themes
2020-02-16 13:43:45 +01:00
Tobias Witek
dc8da374fb
[themes] Re-add gruvbox-powerline-light
2020-02-15 14:06:45 +01:00
Tobias Witek
affeba5b8f
[core/theme] Add simple theme stub
...
Add support for default fg/bg colors
2020-02-15 14:05:27 +01:00
Tobias Witek
99cca7002c
[core/module] Fix error display
2020-02-15 14:04:53 +01:00
Tobias Witek
5d971267db
[core/theme] Add preparatory work for themes
...
Add two new parameters: theme and iconset
Add a placeholder class core.theme.Theme, an instance of which is passed
in to the i3 output object (which is the only object that should ever
have need of the theme, hopefully).
2020-02-09 13:46:56 +01:00
Tobias Witek
b157aa9fb5
[core/output] Minor refactoring - widget assembly
2020-02-09 13:30:40 +01:00
Tobias Witek
4e2a645bd3
[core/input] Separate module/widget update and retrieval
...
To make it easier to update individual modules, separate the call to
update() and the call to actually drawing the status.
Additionally, this avoids the "side effect" of updating when drawing the
status line.
2020-02-09 13:25:34 +01:00
Tobias Witek
5810a12944
[core/output] Start implementation of a partial update
...
Add a "patch()" method that eventually will only update affected
modules.
2020-02-08 14:22:43 +01:00
Tobias Witek
cc0139e517
[tests/input] Add test for non-callable callback
2020-02-08 14:09:14 +01:00
Tobias Witek
468e30ce66
[main] Add input thread logic and logging
...
To the main application, add an input thread that "simply" reads
sys.stdin events and transmits them via core.input.
Additionally, set up some initial logging (yeah, for threading, this is
needed immediately)
2020-02-08 13:56:52 +01:00
Tobias Witek
fca364554e
[core/output] Add id of widget and module to output
...
In the process of that, fix a bug in how the parent class constructors
were invoked.
2020-02-08 13:45:52 +01:00
Tobias Witek
4d34fa9261
[core/input] Use util.cli to execute commands
...
If the registered callback is not callable (i.e. no Python method),
assume it's a command that should be invoked via a shell.
2020-02-08 13:40:51 +01:00
Tobias Witek
9d4936b596
[util/cli] Add new CLI utilities
...
For now, this just allows executing commands
2020-02-08 13:39:35 +01:00
Tobias Witek
f9267f2131
[core/widget] fix small bug (wrong indentation)
2020-02-07 21:32:20 +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
a70c82dc4c
[modules] Add date, time, datetime
...
Add modules to show date, time and date and time. Instead of introducing
a "fancy" aliasing mechanism, simply implement time and date in terms of
datetime, by inheriting and overwriting selectively.
2020-02-04 21:10:05 +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
74e74bb78b
[core/output] Make bar actually work (flush output)
...
Seems adding a \n isn't sufficient for flushing, instead explicitly
flush stdout to produce a result reliably in the i3bar.
2020-02-02 21:21:24 +01:00
Tobias Witek
eb38e1ce96
[travis] Exclude codeclimate
...
doesn't run on development branches anyhow, and for some reason produces
errors on python 3.8
2020-02-02 14:42:32 +01:00
Tobias Witek
1801e83322
[tests] Do not show stdout/stderr by default
2020-02-02 14:41:45 +01:00
Tobias Witek
854d7dc470
[modules] Add first "real" module: kernel
...
Since 'kernel' is small and shows static information, have this be the
very first module added.
2020-02-02 14:41:22 +01:00
Tobias Witek
445c5a65f1
[core/output] Move widget/module handling inside output
...
The core.output module now manages the list of modules and retrieves the
widgets inside draw() itself. That way, details of drawing/updating
widgets are not visible from the outside anymore.
2020-02-02 14:18:13 +01:00
Tobias Witek
96c7b762b2
[travis] switch to coverage instead of nosetest
2020-02-02 14:06:44 +01:00