7ee9645437
Added a second check for indications of possible change of public IP address since netifaces does not properly handle all Linux routing tables (ref: http://linux-ip.net/html/routing-tables.html) which can lead to changes being missed if only looking at defauilt route. Consequently an additional check for changes to the network interface names/numbers was added to further help in identifying potentially notable changes. Note that netifaces is no longer being maintained so the underlying issue with its handling of gateways is unlikely to be resolved (https://github.com/al45tair/netifaces). An alternative would be to use direct calls to the OS like 'ip route list table all' (note the difference to 'ip route list all') but this might lead to unpredicatble results between distributions/flavours so probably best to stick with a library for now. all') but this might lead to unpredicatble results between distributions/flavours so probably best to stick with a library for now. Introduced time.sleep(2) following calls to util.location.reset() since it can take util.location a while to update following a call to .reset() which can cause calls to .location_info() to return unpredicatable/unuseful results. |
||
---|---|---|
.github | ||
bin | ||
bumblebee_status | ||
docs | ||
man | ||
requirements | ||
screenshots | ||
tests | ||
themes | ||
util | ||
.codeclimate.yml | ||
.coveragerc | ||
.gitignore | ||
.readthedocs.yaml | ||
bumblebee-ctl | ||
bumblebee-status | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
coverage.sh | ||
generate-base-tests.py | ||
LICENSE | ||
MANIFEST.in | ||
README.md | ||
setup.cfg | ||
setup.py | ||
versioneer.py |
bumblebee-status
Many, many thanks to all contributors! I am still amazed by and deeply grateful for how many PRs this project gets.
Click here for a list of available modules
bumblebee-status is a modular, theme-able status line generator for the i3 window manager.
Focus is on:
- ease of use, sane defaults (no mandatory configuration file)
- easy creation of custom themes
- easy creation of custom modules
I hope you like it and I appreciate any kind of feedback: bug reports, feature requests, etc. :)
Thanks a lot!
Required i3wm version: 4.12+ (in earlier versions, blocks won't have background colors)
Supported Python versions: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9
Supported FontAwesome version: 4 (free version of 5 doesn't include some of the icons)
NOTE
The default branch for this project is main
. If you are curious why: ZDNet:github-master-alternative
Example usage:
bar {
status_command <path>/bumblebee-status -m cpu memory battery time \
pasink pasource -p time.format="%H:%M" -t solarized
}
Documentation
See the docs for detailed documentation.
See FAQ for. well, FAQs.
Other resources:
Installation
# from git (development snapshot)
$ git clone git://github.com/tobi-wan-kenobi/bumblebee-status
# from AUR:
git clone https://aur.archlinux.org/bumblebee-status.git
cd bumblebee-status
makepkg -sicr
# from PyPI (thanks @tony):
# will install bumblebee-status into ~/.local/bin/bumblebee-status
pip install --user bumblebee-status
There is also a SlackBuild available here: slackbuilds:bumblebee-status - many thanks to @Tonus1!
An ebuild, for Gentoo Linux, is available on gallifrey overlay. Instructions for adding the overlay can be found here.
Dependencies
Available modules lists the dependencies (Python modules and external executables) for each module. If you are not using a module, you don't need the dependencies.
Some themes (e.g. all ‘powerline’ themes) require Font Awesome http://fontawesome.io/ and a powerline-compatible font (powerline-fonts) https://github.com/powerline/fonts
Usage
Normal usage
In your i3wm configuration, modify the status_command for your i3bar like this:
bar {
status_command <path to bumblebee-status/bumblebee-status> \
-m <list of modules> \
-p <list of module parameters> \
-t <theme>
}
You can retrieve a list of modules (and their parameters) and themes by entering:
$ cd bumblebee-status
$ ./bumblebee-status -l themes
$ ./bumblebee-status -l modules
To change the update interval, use:
$ ./bumblebee-status -m <list of modules> -p interval=<interval in seconds>
The update interval can also be changed on a per-module basis, like this:
$ ./bumblebee-status -m cpu memory -p cpu.interval=5s memory.interval=1m
All modules can be given "aliases" using <module name>:<alias>
, by which they can be parametrized, for example:
$ ./bumblebee-status -m disk:root disk:home -p root.path=/ home.path=/home
As a simple example, this is what my i3 configuration looks like:
bar {
font pango:Inconsolata 10
position top
tray_output none
status_command ~/.i3/bumblebee-status/bumblebee-status -m nic disk:root cpu \
memory battery date time pasink pasource dnf \
-p root.path=/ time.format="%H:%M CW %V" date.format="%a, %b %d %Y" \
-t solarized-powerline
}
Restart i3wm and - that's it!