Commit graph

1399 commits

Author SHA1 Message Date
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
Tobias Witek
69eb1ada0d [tests] Move from nosetests to unittest
Since coverage doc says nosetests hasn't been maintained for a while,
switch to unittest.
2020-02-02 13:27:03 +01:00
Tobias Witek
66537fbe05 [core/output] Rewrite to hide sys.stout
Add generic "draw()" method that redirects internally to the actual
calls. These can now produce JSON, which is nicer because:

1. Easier to use during testing
2. More flexible
3. Centralizes printing (somewhat)

Still, the "suffix" concept isn't really nice, but so far, I have no
better approach.
2020-02-01 21:37:38 +01:00
Tobias Witek
b7ca5eb3a5 [doc] Add pylint to not forget about it 2020-01-26 14:20:09 +01:00
Tobias Witek
fbd44618dc [test] Python 3.5 compatibility
Use assert_called_once_with() instead of assert_called_once() to
maintain compatibility with Python 3.5
2020-01-26 14:17:14 +01:00
Tobias Witek
2f78ee4beb [travis] drop python 2.7 support 2020-01-26 14:11:58 +01:00
Tobias Witek
7a9cb8b533 [core/module] Add very basic widget capability 2020-01-26 14:06:09 +01:00
Tobias Witek
da792f9b7b [doc] Update notes
Add more stuff that needs to be considered for backwards compatibility
2020-01-26 13:59:11 +01:00
Tobias Witek
fee7cf7882 [core/widget] Add widget class
To maintain backwards compatibility (and because I think it's an OK
design choice), keep the widget concept (a single module can produce
multiple widgets).
2020-01-26 13:58:29 +01:00
Tobias Witek
a17cd4759c [core/output] Implement simple wait
To pace the output lines, implement a simple wait() call for the i3
output.
2020-01-26 13:31:20 +01:00
Tobias Witek
fed80fb470 [doc] Add notes for redevelopment 2020-01-25 14:28:38 +01:00
Tobias Witek
acf9d6214e [tests] Restructure
Put tests into directory structure equivalent to that of the code
itself, for better separation (hopefully)
2020-01-25 14:27:41 +01:00
Tobias Witek
5a60a23ebd [core/config] Add interval (as parameter store)
Add a generic parameter store to the configuration and use it to set the
parameter "interval" (backwards compatibility)
2020-01-25 14:24:21 +01:00
Tobias Witek
8a2ef5ea5d [core] Add util.store for store-like get/set 2020-01-25 14:20:25 +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
Tobias Witek
f234f81aa9 Add missing __init__.py 2020-01-19 14:22:56 +01:00
Tobias Witek
e931bb93c6 [core] Rework core implementation
Experimental re-implementation of core functionality with the aim:
- Depend only on the Python Standard Library for core
- If modules are missing elsewhere, *never* throw
- Unit test *everything*
- Cleaner and more minimal implementation
- Better integration points for existing implementations (charts,
  braille, etc.)
- Full backwards-compatibility with existing module system (except where
  modules can be vastly simplified)
2020-01-19 13:29:34 +01:00
Tobias Witek
72f88b3409 [doc] Add custom theme location
see #486
2020-01-18 13:55:53 +01:00
Tobias Witek
627a5eb617 [modules/battery] add documentation 2020-01-18 13:52:23 +01:00
tobi-wan-kenobi
91ca082627
Merge pull request #523 from hoamer/display_power_consumption
added option for displaying the power consumption
2020-01-18 13:48:48 +01:00
hoamer
4b9300f5fb fixed unintentionally changed line 2020-01-15 12:23:28 +01:00
tobi-wan-kenobi
fd72d84fec
Merge pull request #525 from somospocos/bytefmt-refactor
bumblebee.util.bytefmt() refactor
2020-01-13 14:15:21 +01:00
me
d952661b28 add tests with custom format for bumblebee.util.bytefmt() 2020-01-12 20:33:51 +02:00
me
5496e307c8 add format argument to bumblebee.util.bytefmt()
it has a default value to be backwards compatible
2020-01-12 20:28:49 +02:00
me
eca8fbcf22 add dosctring to bumblebee.util.bytefmt() 2020-01-12 20:24:18 +02:00
Tobias Witek
629b3381f2 [theme] Add pango markup for prefix/suffix
Add 4 new theme specifiers:
- prefixfg
- prefixbg
- suffixfg
- suffixbg

All of those are only evaluated if markup type is pango, and result in
pango-formatted prefixes/suffixes.

fixes #520
2020-01-11 13:54:53 +01:00
tobi-wan-kenobi
3d4ba73460
Merge pull request #522 from somospocos/pulseaudio-module-improvement
[modules/pulseaudio] add support for volume bars
2020-01-11 13:33:22 +01:00
tobi-wan-kenobi
7ef8f423ed
Merge pull request #521 from somospocos/cpu2-module
[module/cpu2] add module
2020-01-11 13:30:57 +01:00
hoamer
9ed253acb2 added option for displaying the power consumption 2020-01-10 13:10:47 +01:00
me
e542751643 [modules/pulseaudio] add support for volume bars 2020-01-07 10:28:18 +02:00
me
7b7e925525 [modules/cpu2] fix fan icon
By mistake, I have added a NerdFont fan icon in previous version.
2020-01-06 23:18:32 +02:00
me
31801dfdca [module/cpu2] add module 2020-01-06 21:50:30 +02:00
tobi-wan-kenobi
f48c468975
Merge pull request #519 from somospocos/mpd-module-refactor
[modules/mpd] refactor to use layout
2020-01-06 13:30:46 +01:00
me
03c28cbb0f [modules/mpd] refactor to use layout 2020-01-04 17:59:54 +02:00
tobi-wan-kenobi
fd657c7c03
Merge pull request #516 from somospocos/cmus-module-improvement
[modules/cmus] add file tags
2020-01-04 14:14:10 +01:00
tobi-wan-kenobi
fcbca12c35
Merge pull request #515 from somospocos/txtbar
add txtbars
2020-01-04 14:13:22 +01:00