Commit graph

2618 commits

Author SHA1 Message Date
Tobias Witek
0cc744ed15 [core/output] Cache widget output for selective redraw
To make redraw work correctly and elegantly with supplementary elements
(e.g. prefix, postfix, separators), always do a full redraw of the bar
(to make the theme update correctly, but cache the actual *data* to
display inside the output.
2020-02-24 15:05:58 +01:00
Tobias Witek
1a093a73b1 [core] Add prefix/postfix support 2020-02-24 14:54:11 +01:00
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
tobi-wan-kenobi
7c210eeac7
Merge pull request #558 from somospocos/pasink-bug
[modules/pulseaudio] fix bug #557
2020-02-20 20:45:58 +01:00
tobi-wan-kenobi
c4df758240
Merge pull request #559 from somospocos/cpu2-themecolors
Cpu2 themecolors
2020-02-20 20:45:43 +01:00
tobi-wan-kenobi
414418a922
Merge pull request #560 from ljupchokotev/patch-1
Remove print statement when aligning text
2020-02-20 20:45:24 +01:00
Ljupcho Kotev
ef1c56480e
Remove print statement when aligning text
Fixes #550. The print statement results in a "Could not parse JSON" error.
2020-02-20 14:24:06 +01:00
me
bf03ad7184 [modules/cpu2] use theme palette colors for core load bars
As discussed in #556.

- added palette red, orange, yellow, green to nord-powerline

- when used with nord-powerline (or any other theme that has these
  palette colors) and cpu2.colored=1, the cpu2 module will use these
  custom colors to display core load graphs; when colors are missing
  from a theme - it will use default colors
2020-02-20 01:24:15 +02:00
me
d0418446e1 [theme/nord-powerline] add palette colors 2020-02-20 01:10:28 +02:00
me
04e31897d4 [modules/pulseaudio] fix bug #557
most likely a copy/paste blunder. sorry
2020-02-20 00:57:07 +02:00
Tobias Witek
0751b7c084 [core/theme] Add inline named color support
Add named colors that can be specified directly in the "colors" array
within a theme.

fixes #556
2020-02-19 21:39:44 +01:00
Tobias Witek
5134ce3b5b [core/output] Add option to align scrolling
Use -p <module>.theme.align=<left|center|right> to align scrolling
output.

fixes #550
2020-02-17 20:58:42 +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
2cc6fcc5dc [doc] Add bumblebee-ctl
fixes #547
2020-02-16 13:40:51 +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
57e1b1eb81 [modules/battery-upower] Fix capacity default value
If the capacity isn't set, get() returns None, which is not comparable.

Use -1 instead, which makes the capacity unknown.

fixes #555
2020-02-15 11:39:00 +01:00
Tobias Witek
6da755ab84 [core] Fix error widget
The parameters for the error widget were wrong (dict vs. Config)
2020-02-15 11:38:36 +01:00
Tobias Witek
6f6ac97726 [bumblebee-ctl] replace name with module
see #547
2020-02-14 21:56:35 +01:00
Tobias Witek
95ac72d305 [core] Add bumblebee-ctl to trigger remote commands
see #547
2020-02-14 21:54:06 +01:00
Tobias Witek
65137f294e [engine] Small bugfix if no IDs are configured
see #547
2020-02-14 21:52:23 +01:00
Tobias Witek
ef35c957b2 [input] Add per-PID UNIX socket for additional commands
Allow passing in commands / events via a unix socket. This should allow
for "emulating" input events.

see #547
2020-02-14 21:39:55 +01:00
Tobias Witek
8ae8fbb989 [engine] Add override for widget IDs
Add a generic "<module>.id" parameter that allows a user to override the
auto-generated IDs for a widget - the parameter is a list of IDs that
will replace each widget's ID in turn.

see #547
2020-02-14 21:39:37 +01:00
Tobias Witek
bff7788514 [doc] Add missing executables to README.md
fixes #551
2020-02-14 20:54:08 +01:00