Tobias Witek
286aff2aa0
[output] Allow modules to pass back a single widget
...
Since "single widget" is the 99% use-case, make it easier for a module
to return a single widget.
2016-11-05 13:12:30 +01:00
Tobias Witek
2cfb0997a0
[modules] Re-enable battery module
...
Enable battery module with new states:
* discharging-[10,25,50,80,100]
* charging
* charged
2016-11-05 13:09:28 +01:00
Tobias Witek
18d7e1befb
[config] Allow parameter passing via commandline
...
Allow the user to specify arbitrary configuration parameters from the
commandline and evaluate those in the modules (and elsewhere). Re-enable
the CPU module as a first showcase of this functionality.
2016-11-05 12:28:05 +01:00
Tobias Witek
353c47d76e
[general] Very minor refactoring
2016-11-05 12:18:30 +01:00
Tobias Witek
73d62d7ded
[widgets] Pass through some information to the underlying module object
...
For determining status, critical/warning state, etc. simply let the
widget pass through a call to the underlying object.
2016-11-05 12:14:33 +01:00
Tobias Witek
2f0cc30c38
[config] Write custom action for printing theme/module details
2016-11-05 12:07:54 +01:00
Tobias Witek
998db40a2d
[theme] Re-implement rotation of values for theme entries
...
Allow theme entries to be lists that are then iterated. For this
purpose, extend the Config class so that it can serve as generic store
for data items. That makes it easy to centralize code used for rotation
etc. in a single place.
2016-11-05 11:57:09 +01:00
Tobias Witek
98acd15edf
[theme] Re-implement colorscheme cycling
...
Again, allow the "default" section to contain cycles that are used one
after the other for each widget.
2016-11-05 11:40:27 +01:00
Tobias Witek
bab7821607
[all] Refactor module <-> output communication
...
Modules now return "bumblebee.output.Widget" objects, so that they can
actually define a list of items to be drawn in the bar.
2016-11-05 08:59:43 +01:00
Tobias Witek
7f91b8298f
[modules] Refactor module initialization
...
Modules now get an output and a complete config object. This should make
customization much easier in the future.
2016-11-05 08:11:08 +01:00
Tobias Witek
c2adf38b92
[engine] Remove obsolete Argument class
2016-11-05 08:00:47 +01:00
Tobias Witek
a8b29ed22e
[config] Beautify help output a bit
2016-11-05 07:59:58 +01:00
Tobias Witek
a58610f3ee
[config] Start refactoring by creating separate config class
...
Add a class that will hold all configuration and argument information
and serve as central repository for this kind of information.
2016-11-05 07:54:36 +01:00
Tobias Witek
df27355977
[tests] Add framework for unittests
2016-11-05 07:54:16 +01:00
Tobias Witek
9da9fdaaa5
[engine] Add missing import
2016-11-05 06:47:22 +01:00
Tobias Witek
55474aadc3
[general] Minor refactoring
...
Shuffled some code around in an attempt to make it easier to read and
understand.
2016-11-04 21:41:22 +01:00
Tobias Witek
47935942f0
[engine] Reformat a bit (line breaking)
...
Break some extensively long lines
2016-11-04 21:18:07 +01:00
Tobias Witek
ea27ccb2c1
[output] Add waiting capability to output
...
Engine now calls wait on output for further data, is interrupted
on new data.
2016-11-04 21:10:21 +01:00
Tobias Witek
d62258c89d
[all] Major refactoring
...
Introduce an "Engine" class to abstract some of the details of loading
modules, registering events, etc.
2016-11-04 21:03:12 +01:00
Tobias Witek
a6bdd0557c
[doc] rename i3bumblebee -> bumblebee-status
...
As the prefix i3* is reserved for official i3 packages, rename
i3bumblebee to bumblebee-status.
2016-11-04 20:20:46 +01:00
Tobias Witek
b99c454a5a
[main] Redraw on click
...
Whenever a module in the bar is clicked, immediately redraw the line, to
make for a snappier user experience (especially when muting/unmuting).
2016-11-04 19:11:10 +01:00
Tobias Witek
89b97d7283
[modules/dnf] Only do update check every 'interval'
...
Yet another bug in the DNF module - really a troublesome one. Only call
the dnf updateinfo every interval, not every second. That significantly
reduces CPU load.
2016-11-04 19:01:19 +01:00
Tobias Witek
1f440673a8
[main] Small refactoring
...
Put some functionality into separate methods for better legibility.
2016-11-04 18:56:45 +01:00
Tobias Witek
fb6337c625
[modules/dnf] DNF module was not updating properly
...
Due to name-clashing of the datetime module's "time" alias, time.sleep
didn't work (as it was looked up from the i3bumblebee module),
consequently, the DNF poll thread exited.
While at it, "beautify" the thread cancelling a bit by waiting until
the main thread is not running anymore.
2016-11-04 18:50:38 +01:00
Tobias Witek
6e8acc2765
[modules/memory] Show used instead of free RAM
2016-11-03 19:45:48 +01:00
Tobias Witek
29131e2f65
[modules/nic] Exclude docker and vbox interfaces
...
Until I have a clue on how to correctly handle them, exclude
docker and vbox network interfaces.
2016-11-03 19:45:12 +01:00
Tobias Witek
5532526595
[modules/dnf] Fix a bug wrt. counter extraction
...
Bugfixes and enhancements were wrongly extracted.
2016-11-03 19:44:34 +01:00
Tobias Witek
6fa7f9d789
[modules/disk] Show used instead of free disk
2016-11-03 19:44:11 +01:00
Tobias Witek
329f546879
[modules/battery] Cap capacity at 100%
...
Seems like my laptop at work is overly enthusiastic when it comes to
charging. I don't believe in 105% capacity.
2016-11-03 19:43:30 +01:00
Tobias Witek
7b62aeb67c
[output/i3] Restrict workspace rotation to current output
2016-11-01 08:31:59 +01:00
Tobias Witek
4c34cd37d4
[modules] Add default click events to various modules
...
* cpu+memory: Open "gnome-system-monitor"
* disk: Open nautilus
* pulseaudio: Mute/unmute, open "pavucontrol" on right-click, raise/lower
volume on mouse wheel up/down
2016-11-01 08:18:46 +01:00
Tobias Witek
fca3171556
[modules] Allow modules to provide default click actions
...
Pass the "output" object to the modules' constructor to allow them to
define their own callbacks.
Any user-provided callbacks take precedence and override those of the
module.
2016-11-01 08:09:10 +01:00
Tobias Witek
63e041259f
[main] Add commandline parameter for specifying events
...
Allow a user to specify click events with the following format:
-e "<module name><splitter><button ID><splitter><command to execute>"
for example:
-e "disk::1::nautilus {instance}"
2016-11-01 07:59:39 +01:00
Tobias Witek
a63094af47
[output] Using "instance" for callback registration doesn't make sense
...
"instance" is actually better suited to be an argument to the callback
(which it already is) than part of the key for callback lookup.
2016-11-01 07:58:50 +01:00
Tobias Witek
7c2170f58a
[i3] Use Popen instead of call - async call
...
subprocess.call() blocks until the command finishes - Popen is better
for executing in the background :)
2016-11-01 07:58:12 +01:00
Tobias Witek
579381978e
[output] Add support for click-events in i3
...
The i3 output now has a separate thread that continuously monitors stdin
for incoming click events. The generic output class also has methods for
registering callbacks (as commands). For now, by default, scroll events
will be used to emulate the next/previous workspace.
2016-11-01 07:46:26 +01:00
Tobias Witek
36ff727165
[doc] More linebreaks
2016-10-31 20:02:04 +01:00
Tobias Witek
35c14da6ef
[doc] Add small thank-you note to README
2016-10-31 19:57:37 +01:00
Tobias Witek
8c4720d425
[doc] Add sample screenshots for individual modules
2016-10-31 19:36:15 +01:00
Tobias Witek
9cbb3c67bd
[doc] Add some more info to the README
2016-10-31 18:28:44 +01:00
Tobias Witek
d28a608fa7
[doc] Add some README.md
2016-10-31 18:27:39 +01:00
Tobias Witek
ceeb4b2136
[doc] Updated screenshots for better visibility
...
Shorter, but bigger font size
2016-10-31 18:13:54 +01:00
Tobias Witek
43fcbd9306
[doc] Add updated themes and screenshots
2016-10-31 17:58:50 +01:00
Tobias Witek
9b17cf619e
[main] Fix a small typo in the help text
2016-10-31 17:29:32 +01:00
Tobias Witek
a0f6b193ca
[main] Make module/argument splitter string configurable
...
It's still hacky, but not as bad: The user can now configure the
separator between module and arguments.
2016-10-31 16:51:34 +01:00
Tobias Witek
f02c49286b
[main] Add available themes to listing output
2016-10-31 16:47:34 +01:00
Tobias Witek
c0421163d4
[doc] Add description, usage and notes to all modules
2016-10-31 16:08:03 +01:00
Tobias Witek
598f3e70e9
[main] Initial support for "-l" parameter
...
List all available modules and query their description, notes and usage.
2016-10-31 15:49:15 +01:00
Tobias Witek
b2e9515861
[themes/solarized-powerline] switch default colors
2016-10-31 15:31:07 +01:00
Tobias Witek
f72d905d97
[modules] Add "spacer"
...
Add a very, very basic module that simply adds a spacer (and empty
element) to the bar.
2016-10-31 15:23:59 +01:00