Commit graph

2686 commits

Author SHA1 Message Date
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
Tobias Witek
6784aaa0d5 [doc] Add user-contrib link
fixes #554
2020-02-14 20:48:09 +01:00
Tobias Witek
59663e9d1c [doc] Update Module.md (escaping)
fixes #546
2020-02-12 21:17:29 +01:00
tobi-wan-kenobi
b9cdb0e12a
Merge pull request #549 from somospocos/iconmarkup
Iconmarkup
2020-02-12 21:10:08 +01:00
me
89c6afb493 implement --iconmarkup argument
WARNING: highly experimental
This allows fine tuning of icons via raw Pango markup. Is backwards
compatible with icon foreground/background support in themes (if those
settings are present in the theme but are missing from the icon markup
template - they are merged in).
2020-02-12 19:43:01 +02:00
me
f44d48e7bd [core/output] micro-optimization refactoring
If markup isn't pango, skip the add_prefix_colors() call entirely
2020-02-12 18:11:22 +02:00
me
d1238f9dca [core/output] make prefix bg/fg variables instance variables
There are plans to use them in more than one method
2020-02-12 18:08:03 +02:00
me
f988be041f [core/output] rename variables to more suggestive names
Getting ready for next small refactoring.
2020-02-12 18:04:45 +02: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
tobi-wan-kenobi
75cf28a1ea
Merge pull request #545 from somospocos/refactor-draw
Refactor draw
2020-02-09 13:08:31 +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
d2240b4ed9 [README] Add nord-powerline 2020-02-08 12:56:15 +01:00
tobi-wan-kenobi
f952eb33bc Merge pull request #544 from uselessthird/nord-powerline-theme
Add nord-powerline theme
2020-02-08 12:53:18 +01:00
John Young
56a482001e Add nord-powerline theme 2020-02-08 11:23:53 +00: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
tobi-wan-kenobi
6cce69ff93
Merge pull request #540 from ginsburgnm/use_resources
using pkg_resources
2020-02-07 21:08:23 +01:00
Tobias Witek
1ddcbc454b [modules/pulseaudio] Only start daemon if not running
Before starting the pulseaudio daemon, ensure that it is not running by
using pulseaudio --check.

fixes #542
2020-02-07 21:05:15 +01:00
nginsburg
a19484289e reversing symlinks 2020-02-07 13:33:22 -05:00
nginsburg
dcc42036e8 using pkg_resources 2020-02-04 19:06:26 -05: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