Commit graph

778 commits

Author SHA1 Message Date
Tobias Witek
eb72d59ed1 [core] Each module can now access theme data
Add a method "theme()" to the generic module to have access to the theme
information.

Specifically, "theme().get(widget, attribute, default_value)" can be
used to retrieve theming for a widget with an arbitrary attribute.

This is in response to #412 - thanks to @bbernhard for the suggestion!
2019-08-01 20:41:13 +02:00
Milos Miljanic
f8cdb18861
Merge branch 'master' of github.com:tobi-wan-kenobi/bumblebee-status 2019-07-31 23:28:47 +02:00
tobi-wan-kenobi
ebd97a9495
Merge pull request #412 from bbernhard/system
system module
2019-07-31 19:51:34 +02:00
Milos Miljanic
1853723eb1
Add twmn module for switching notifications on and off 2019-07-30 19:48:08 +02:00
Bernhard B
7f8e08a832 fixed small bug in system module
* only destroy root window if it was created
2019-07-28 18:19:49 +02:00
Bernhard B
1598275b25 fix indentation in system module 2019-07-28 18:17:29 +02:00
Bernhard B
940172aab1 added new system module
* allows to shutdown/reboot the system
2019-07-28 18:14:46 +02:00
Tobias Witek
5ee612da2d [doc] Add screenshot for network_traffic
Add http status module

fix

chore: update modules number
2019-07-24 12:37:59 +02:00
tobi-wan-kenobi
286ae7a41f
Merge pull request #408 from izn/feature/basic-network-traffic-module
[module] Basic alternate network traffic module
2019-07-11 20:08:23 +02:00
Thaynã B. Moretti
92a7d95fd7
Fix comment typo 2019-07-09 22:29:34 -03:00
Thaynã B. Moretti
21e2f46564
Add network traffic icons & minor refactor 2019-07-09 22:27:59 -03:00
Tobias Witek
7d1a3f7532 [doc] Add vault count and attribution of the idea to bbernhard 2019-07-06 20:32:18 +02:00
Tobias Witek
451de4544c [modules/vault] Add a new password vault module ("pass")
Add a new module that can be used to copy passwords from a password
store into the clipboard.

Currently, only "pass" is supported.

As long as only bumblebee is used, it will also show which password is
currently in the clipboard and how long it will still stay there.
2019-07-06 20:28:21 +02:00
Tobias Witek
6deb80edda [core/popup_v2] Destroy menu on leave
When mouse leaves the menu, destroy it.
2019-07-03 18:52:12 +02:00
Tobias Witek
682d2f47dd [core/theme] State == "" causes backtraces
Empty states ("" rather than None) caused a backtrace in the theme
engine. Fix that by being a bit more robust, and add a test that checks
for regressions.

fixes #406
2019-07-02 20:19:26 +02:00
Gael Chamoulaud
49f32f9a49 Remove Microsoft Carriage Return and Line Feed.
This patch get rid of the Microsoft CR and LF in the following modules:
- pihole.py
- vpn.py

Signed-off-by: Gael Chamoulaud <gchamoul@redhat.com>
2019-07-02 11:55:19 +02:00
Jan Kočka
01c2bb6cbc [modules/arch-update] add format parameter 2019-06-30 22:49:23 +02:00
Tobias Witek
5f3530d258 [modules/battery] Use theme.exclude to not show suffix
If battery module should be "undecorated", do not show the suffix.

fixes #401
2019-06-27 20:22:40 +02:00
Tobias Witek
53462d1f0b [core/theme] Add a way to exclude themeing for widget
Allow a widget to set "theme.exclude" to extend any part of a theme
(e.g. the suffix). Note that this can later, on demand, be extended to
allow a list of elements to be passed in.

see #401
2019-06-27 20:21:53 +02:00
Tobias Witek
138bd01b76 [modules/battery] Allow hiding of icons
Use the parameter battery.decorate=False to hide icons such as the AC
indicator and the charging symbol.

warning and critical states are still propagated.

fixes #401
2019-06-26 20:36:04 +02:00
Tobias Witek
928c37a972 [core+tests] Improved poll handling
- mock poll instead of epoll
- increase timeout for poll (1ms is a lot of system load for nothing)
2019-06-23 16:51:28 +02:00
iamroo_t
b16433ab60 changed epoll to poll, updated README for FreeBSD 2019-06-23 11:38:39 +02:00
Thaynã B. Moretti
55478e2e8d
Remove useless __new__ 2019-06-21 13:14:49 -03:00
Thaynã B. Moretti
5dec1adc97
Suppress errors when no gateways are found 2019-06-21 13:10:04 -03:00
mw
7b08777d77 Add support for switching dpms 2019-06-19 22:26:48 +02:00
tobi-wan-kenobi
4db9c714bb
Merge pull request #398 from donfranio/mod-brightness-consider-brightnessctl
Mod brightness consider brightnessctl
2019-06-14 20:14:07 +02:00
Tobias Witek
71d80ded40 [modules/vpn] Fix tests
Add a guard in case nmcli is not installed or does not return anything.
2019-06-14 20:09:03 +02:00
tobi-wan-kenobi
bf57496093
Merge pull request #397 from bbernhard/vpn
vpn module
2019-06-14 20:07:10 +02:00
Frank Scherrer
0185335e66
refactoring regarding errors from codeclimate 2019-06-14 12:53:38 +02:00
Frank Scherrer
30789499f5
format code to be flake8 conform 2019-06-14 12:08:56 +02:00
Frank Scherrer
7398bf9f94
add code to consider brightnessctl binary for brightness module 2019-06-14 12:04:36 +02:00
Bernhard B
c7a0caeda5 small improvements in vpn module
* renamed "Off" to "Disconnect"
* do not show already established connection in popup menu
2019-06-10 20:12:54 +02:00
Bernhard B
a7a1da6b5d added vpn module
* shows current VPN connection
* allows to establish a VPN connection
2019-06-10 20:05:32 +02:00
Tobias Witek
ed25538bcb [core/popup_v2] Add logging if tkinter is not found 2019-06-10 14:59:43 +02:00
tobi-wan-kenobi
595847b2db
Merge pull request #396 from bbernhard/popup_menu
reworked PopupMenu implementation
2019-06-10 14:58:52 +02:00
Bernhard B
171bea4f6e added alternative bumblebee popup implementation
* the original implementation doesn't always generate click events.
  This new implementation fixes this issue.

  But as the old implementation is still in use (the bluetooth module makes use of it)
  and this implementation is probably not as matured as the old one, it
  was agreed to keep both the old and the new implementation until the
  bluetooth module has been migrated to the new implementatation.
2019-06-10 14:47:59 +02:00
Tobias Witek
210075fdf9 [modules/apt] Show error if unable to query APT
If querying APT fails for some reason, show an error message and set the
state of the widget to critical.

fixes #395
2019-06-06 20:14:16 +02:00
tobi-wan-kenobi
fcbb899e2f
Merge pull request #392 from bbernhard/callback_fix
fixed bug in bumblebee popup implementation
2019-06-04 20:36:54 +02:00
Frank Zhao
68cb2e1c79
Add datetimetz module for timezone information in date display
Allow multiple comma seperated timezones

Handle click to cycle through configured timezones
Example:
```
bumblebee-status -m datetimetz -p \
datetimetz.timezone=\
"Australia/Sydney,Pacific/Auckland,America/Los_Angeles"
```
Added dependencies to travis config
2019-06-04 17:51:46 +10:00
Bernhard B
e392385168 fixed bug in bumblebee popup implementation
* allow custom callbacks
2019-06-02 13:32:48 +02:00
tobi-wan-kenobi
cc6fa5a3f3
Merge pull request #391 from bbernhard/improve_missing_tkinter
improved error handling
2019-05-31 20:19:30 +02:00
Bernhard B
6d49685715 improved error handling
* log a warning message in case tkinter is not installed
2019-05-31 18:19:37 +02:00
tobi-wan-kenobi
222be20138
Merge pull request #388 from david-perez/master
Add support for city ids to weather module.
2019-05-21 18:23:00 +02:00
Stepan Kurennykh
c5c0fc40b6 convert title.max parameter to int 2019-05-20 21:33:19 +03:00
david-perez
8bb67642fd Add support for city ids to weather module.
Some cities (e.g. in different countries) have the same names. Providing a city
name to the weather module would previously display the first returned result by openweathermap's API.
This commit allows city ids to be provided to the weather module. If a location passed
to the weather module only contains numbers, it will be interpreted as a city id.
City ids are those handled by openweathermap's API to uniquely identify cities.

See https://openweathermap.org/current#cityid for details.
2019-05-20 19:10:39 +01:00
tobi-wan-kenobi
9d9bf0fa8e
Merge pull request #387 from bbernhard/fix_iface_down
small improvement in pi-hole module
2019-05-16 20:42:49 +02:00
Bernhard B
8996635db0 small improvement in pi-hole module
* set status to 'pi-hole unknown' in case the pi-hole status cannot be
  retrieved.
2019-05-16 19:52:35 +02:00
Tobias Witek
23377a3ed8 [modules/datetime] Fix fallback
Fallback handling for setting the locale was completely broken.

fixes #386
2019-05-14 20:46:28 +02:00
Thaynã B. Moretti
3031077713
Add Python 2.7 support 2019-05-13 20:53:31 -03:00
Thaynã B. Moretti
c0706070ab
Add encoding header 2019-05-13 20:32:16 -03:00
Thaynã B. Moretti
e9afaa2e1b
Update widget build to use keyword args 2019-05-13 20:29:09 -03:00
Thaynã B. Moretti
a2fb344aa7
Create widget with minwidth 2019-05-13 20:14:13 -03:00
Bernhard B
315328b41f Merge branch 'master' of https://github.com/bbernhard/bumblebee-status 2019-05-12 20:49:02 +02:00
Bernhard B
c7f979a735 added new pi-hole module
* allows to enable/disable pi-hole
* shows today's blocked ads
2019-05-12 20:45:08 +02:00
Frederic Junod
cef85b47a2 [doc] Add default refresh interval in doc 2019-05-09 09:21:30 +02:00
Frederic Junod
f996f8caef [doc] Fix cpu.format default value in documentation 2019-05-09 08:49:12 +02:00
Thaynã B. Moretti
87c0b170d4
Create an alternate network traffic module 2019-04-30 19:50:16 -03:00
Tobias Witek
94427ea20f [modules] dunst: try to handle errors gracefully
Try to handle dunst pause/unpause errors "gracefully" (ignore them).

fixes #381
2019-04-30 17:07:12 +02:00
Tobias Witek
86c8dd5219 [modules/battery_all] Remove defunct estimate calculation code
A decent fallback implementation would require some kind of differential
measurement to be able to calculate a rate of change.

For now, that is simply more complicated than warranted.

Thanks to @stoeps13 for pointing that out!
2019-04-24 20:09:03 +02:00
Tobias Witek
e0a7ca5b87 [modules/battery_all] Fix remaining time calculation
Thanks to @stoeps13 for pointing out a bug in the calculation of the
remaining time for multiple batteries.

see #379
2019-04-23 06:05:36 +02:00
Tobias Witek
011b3b631b [modules/nvidiagpu] Add missing initialization 2019-04-15 20:35:59 +02:00
Tobias Witek
01883c1284 [modules] Fix two minor Travis complaints 2019-04-15 20:32:21 +02:00
0xDEAD
842e4f1795 nvidiagpu: add gpu/mem clock and fan-speed 2019-04-15 12:31:24 +02:00
0xDEAD
eadc2b45c3 nvidiagpu: add option to format output (default=current format) 2019-04-15 12:30:20 +02:00
Pavle Portic
579239292b
Detect wireguard interfaces as tunnel type 2019-04-14 00:46:40 +02:00
varkokonyi
41b48cf8e8 [modules/hostname] add hostname module 2019-04-06 20:36:55 +02:00
Sönke
17caeca6a7
Add simple dunst module + icons 2019-03-24 20:39:29 +01:00
Tobias Witek
783a52427b [modules/nic] remove invalid import from debug
never, ever commit debug code *rolls eyes*
2019-03-01 21:08:09 +01:00
Tobias Witek
1359f1000f [engine] Nicer handling of module exceptions
Do not throw exceptions during exception handling, that causes really
hard-to-interpret error messages.

Instead, log a message and throw outside the exception handler (the code
could do with some cleanup, but is localized enough for now).

see #367
2019-03-01 21:02:51 +01:00
Tobias Witek
8db3435ddc [modules/nic] Add log for missing modules
When modules cannot be imported, add a warning line to the log.

see #367
2019-03-01 15:13:34 +01:00
Tobias Witek
930c70e06a [core] Allow mixing of parameter specs
Allow modules and parameters to be specified as either simple lists (-p
a b c d) or as multiple instances (-p a -p b -p c).

fixes #362
2019-02-15 18:01:06 +01:00
Tobias Witek
193305dc11 [modules/xrandr] Fix documentation bug 2019-02-14 20:12:41 +01:00
Tobias Witek
2522b428b6 [modules/prime] Minor fix for return type
Also, add module to doc
2019-02-14 20:09:41 +01:00
Jeff Eberl
76940c8dbb Added module for prime video cards (nvidia/intel hybrid computers). 2019-02-14 10:58:48 -07:00
Tobias Witek
451e3e48e5 [modules/weather] Fix location display for "auto"
When "auto" is used, the location was never shown.

Also, document the "showcity" parameter.

fixes #360
2019-02-11 20:07:10 +01:00
Tobias Witek
bb65c1cd68 [modules/location] Enable location switching
If multiple locations are provided as comma-separated list, left-click
and right-click can be used to circulate through them.

NOTE: Every click produced a new request to the weather reporting
service!

see #360
2019-02-09 13:10:35 +01:00
Tobias Witek
80892477f6 [modules/xrandr] Subscribe to i3 output events, if possible
If i3-py is available, use it to subscribe to output events to reload
the widget list whenever the outputs change.

fixes #359
2019-02-09 11:00:12 +01:00
Tobias Witek
a198b8d9e3 [modules/xrandr] Add refresh widget when autoupdate==False
If polling displays via xrandr is disabled, show an additional widget
that allows the user to manually refresh the widget list.

see #359
2019-02-08 20:11:48 +01:00
Tobias Witek
8511e57ed2 [modules/xrandr] Optionally disable polling
Add option to disable display polling via xrandr to work around kernel
issues that cause persistent lags.

see #359
2019-02-08 20:06:12 +01:00
Frederic Junod
9cb127ee21 Remove hipchat module 2019-01-31 15:44:31 +01:00
Tobias Witek
47eeac00a0 Revert "Merge branch 'partial-update-on-input'"
This reverts commit a2cc828e58, reversing
changes made to 87f185e62b.
2019-01-26 19:40:08 +01:00
Tobias Witek
a2cc828e58 Merge branch 'partial-update-on-input' 2019-01-23 20:06:17 +01:00
Tobias Witek
87f185e62b [modules/git] Nicer formatting of stati
Add separate widgets for each state, so that each state can have a
custom icon *and* a custom coloring.
2019-01-23 19:56:16 +01:00
Tobias Witek
1698e4ad4c [modules/git] Make CI (hopefully) run through
OK, so I cannot configure Travis to install pygit2, obviously. Instead,
I'll make the "git" module run though even if pygit2 is not installed.

Hope that satisfies you, Travis!
2019-01-20 19:27:04 +01:00
Tobias Witek
e6aabe5605 [CI] More package crazyness 2019-01-20 18:45:47 +01:00
Tobias Witek
5738aac1ce [modules/git] Add some status icons
Add icons for:
* local modifications
* local delete
* local add
2019-01-20 14:43:27 +01:00
Tobias Witek
212966945c [modules/git] Fix recursion error
Endless loop caused by stupid bug when trying to find the root git
repository.
2019-01-20 14:17:10 +01:00
Tobias Witek
580bc554ba [modules] Add new module to display git information
This module uses xcwd to retrieve the directory of the currently focused
window and, if any of the parent directories is a git repository,
displays basic information about the repository.

Right now, only the current branch name is displayed.
2019-01-20 14:09:42 +01:00
Tobias Witek
aab259b826 [modules/pulseaudio] More exact enforcement of limits
If increasing would exceed the volume, set it to exactly the limit
instead. Also, if channels have different volumes, ensure that the
higher channel does not exceed the volume.

fixes #354
2019-01-20 09:09:11 +01:00
Tobias Witek
b377a93e49 [core] Add debug output for partial bar update
see #353
2019-01-20 07:34:27 +01:00
Tobias Witek
d9df96adcb Merge branch 'master' into partial-update-on-input
To make sure that all conflicts are resolved and because the
autohide feature is so nice.
2019-01-19 14:56:25 +01:00
Tobias Witek
7b07ef538a [core] Add "autohide" for distraction-free programming
Add a new parameter "-a|--autohide" that allows you to specify a
list of module names (or aliases) that will be hidden from the bar
*unless* their state is either warning or critical.
2019-01-19 14:51:48 +01:00
Tobias Witek
23be352ec3 [core/engine] Ensure that full updates still take place regularly
Ensure that a full update still happens, even if continuous scrolling
triggers new events (and therefore, partial updates) all the time.

see #353
2019-01-19 14:18:48 +01:00
Tobias Witek
2b91ce5861 [core/output] Refactor full/partial refresh
Creating the "raw", cached widget data out of the widget object was done
two places now.

see  #353
2019-01-19 14:12:32 +01:00
Tobias Witek
3d9279c444 [core] Update only affected widgets on input event
When receiving an input event, only update affected widgets, identified by
their instance ID.

see #353
2019-01-19 14:07:17 +01:00
Tobias Witek
44a50c0b36 [modules/pulseaudio] Fix failing test case (wrong types) 2019-01-19 07:47:21 +01:00
Tobias Witek
3d9e170da3 [modules/pulseaudio] Add optional upper limit for volume
Add a new parameter "limit" that, if set, specifies an upper limit for
the volume.

Note: This is only enforced at the time of *setting* the volume, so you
can still use other applications, such as pavucontrol, to exceed that
limit and bumblebee-status will simply *display* the new value, not
reset to the limit.

fixes #354
2019-01-19 07:42:11 +01:00
Michael Kwardakov
6531038bc5 Describe requirement for nic module 2019-01-18 13:49:07 +03:00
tobi-wan-kenobi
7ed7d48db1
Merge pull request #351 from rad4day/master
[modules/spaceapi] Performance optimization - JSON
2019-01-17 19:28:55 +01:00
Tobias Manske
f53cd062ae
[modules/spaceapi] Performance optimization - JSON
The module now flattens the JSON structure when it is received from the
API endpoint instead of every time the statusbar is updated. This should
make the module much more performant.

Signed-off-by: Tobias Manske <tobias.manske@mailbox.org>
2019-01-17 01:03:11 +01:00