Commit graph

416 commits

Author SHA1 Message Date
tobi-wan-kenobi
a7448c78e3 Merge pull request #124 from fredj/github_module_left_click
[module/github] Open GitHub notifications on left click
2017-07-07 16:21:21 +02:00
Frederic Junod
fd0a09945b [module/memory] Fix parameter prefix in doc 2017-07-07 08:49:31 +02:00
Frederic Junod
b48c02a3e2 [module/github] Open GitHub notifications on left click 2017-07-07 06:56:16 +02:00
Frederic Junod
0ce2a25d4e [module/github] Use 'json' from requests and 'filter' instead of a loop 2017-07-07 06:51:57 +02:00
Frederic Junod
be7fa79e8a [modules/github] Move the requests.get inside the try/except 2017-07-06 13:52:14 +02:00
tobi-wan-kenobi
494b11be88 Merge pull request #121 from quartje/master
Add error handling and the ability to change currencies for the getcrypto module
2017-06-27 18:20:34 +02:00
Bart Geesink
915cfc681a [modules/getcrypto] Add the option to display the price in other
currencies than USD.
2017-06-26 22:35:33 +02:00
jmg5e
11f86b75c8 removed xbacklight dependency for brightness module 2017-06-26 05:31:44 -05:00
Bart Geesink
43a25486ba [modules/getcrypto] Add error handling to the api request. This prevents
a bumblebee crash when no internet connection is present (like when a
laptop resumes from sleep mode)
2017-06-24 17:41:40 +02:00
Tobias Witek
d69f13f0b4 [modules/battery] Autodetect battery devices
The module now creates a widget for each battery device it detects and
shows the status for each of them (I don't know of anyone with more than
a single battery, but if I'm overhauling the module anyhow, might as
well do it comprehensively).

fixes #117
2017-06-18 11:35:06 +02:00
Tobias Witek
ba843355eb [engine/popup] Make tkinter module optional
If tkinter is not available, status bar should still work as expected
(but all the popup functionality will not work and likely throw errors).
2017-06-16 15:36:56 +02:00
Tobias Witek
d5875827fa Merge branch 'popups' of git://github.com/brunosmmm/bumblebee-status into brunosmmm-popups 2017-06-16 15:29:14 +02:00
Tobias Witek
6183054ac6 [modules/todo] Make path to TODO file configurable 2017-06-16 11:24:55 +02:00
Tobias Witek
4337c2b087 [modules/todo] Make unit test pass
Return value of full_text must be a string.
2017-06-16 11:22:08 +02:00
Michael Skelton
66ecf73760 Updated todo module to agnostic user path 2017-06-16 16:52:01 +10:00
Michael Skelton
250c0135e6 added bumblebee module 2017-06-16 16:51:27 +10:00
Tobias Witek
76404bf90b [modules/pulseaudio] Default pulseaudio autostart to false
To pacify @ibrokemypie ;-)

Joking aside: Not autostarting the pulseaudio daemon by default makes a
lot of sense, so adjust default behaviour.

see #108
2017-06-15 14:14:16 +02:00
Tobias Witek
d189b3a335 [modules/battery] Remove leading zeroes and use minwidth 2017-06-15 13:22:27 +02:00
Tobias Witek
68e0b51178 [modules/pulseaudio] Automatically restart pulseaudio daemon
If the current volume and mute status cannot be retrieved, the most
likely explanation is that the pulseaudio daemon is not running.
Automatically start it in such a case.

Also, add a parameter "autostart" to the pulseaudio module to disable
this behaviour in case it causes issues.

see #108
2017-06-15 11:09:00 +02:00
Tobias Witek
7e45e797f1 [modules/cpu] Enforce minimum width
Set the minimum width of the CPU widget to 99.9% to avoid constant size
changes as the utilization fluctuates between one and two digit numbers.
2017-06-15 11:00:22 +02:00
Tobias Witek
215bfd23df [modules/sensors] Remove unused imports and minor reformatting 2017-06-15 07:48:25 +02:00
Tobias Witek
df6e323fa4 Merge branch 'master' of git://github.com/dnfm/bumblebee-status into dnfm-master 2017-06-15 07:42:05 +02:00
Fernando Chu
f635bed4d0 Changed _curprice to string 2017-06-14 14:31:31 -05:00
Fernando Chu
82af91f737 Forgot to change the left-click interaction 2017-06-14 12:00:51 -05:00
Ryunaq
8d842eb043 [modules/getcrypto] Get crypto prices module
Extremely niche module that will probably never be used for getting the price of BTC, ETH and/or LTC from Kraken.
2017-06-14 11:30:48 -05:00
Ryunaq
2d3b153f0c [modules/getcrypto] Get crypto prices module
A module for getting the prices of BTC, ETH and/or LTC from Kraken.
2017-06-14 11:26:04 -05:00
Justin Wheeler
29f3e7b515 Add weather icons.
Add icons to the weather output to show condition to go with current
temperature.
2017-06-12 22:26:33 -04:00
Justin Wheeler
e93e1120f7 Show CPU MHz in sensors output.
This may need some tweaking (specifically parameters settings) to show
at what speed your CPU is running when showing sensors output.
2017-06-12 22:19:30 -04:00
Justin Wheeler
2b5c85cb8c Add packet loss to ping.
Show packet loss in ping response.
2017-06-12 22:18:49 -04:00
Tobias Witek
82d8cf1370 [modules/mocp] Initialize variables 2017-06-12 18:50:08 +02:00
Chrugi
6fd168993f Added Module for mocp (Music On Console Player)
This Module Displays the Status, Song, Artist and Time of the current song played or paused in mocp.
Clicking the Modules toggles play/pause.
I'm no programmer so alteration and feedback is welcome.
Best regards, Chrugi
2017-06-12 15:06:56 +02:00
Tobias Witek
37f3a11f68 [modules/nvidiagpu] Added docstring 2017-06-11 14:43:59 +02:00
Riley Redpath
06c85b4dc4 Added nvidiagpu module, which parses nvidia-smi to get the gpu name, temperature and vram usage. 2017-06-10 15:33:53 -05:00
Tobias Witek
7d13268f66 [engine] Report current module when error occurs
Keep track of the latest updated module in the engine part, so that the
module causing an exception can be reported correctly.

fixes #110
2017-06-10 14:08:49 +02:00
Tobias Witek
dc06611fb1 [modules] weather & github: Protect against missing data
If data cannot be retrieved for some reason (be pretty generous about
that by catching generic exceptions), instead of terminating the whole
status bar, simply report unknown data.

see #110
2017-06-10 13:59:44 +02:00
Tobias Witek
b89e384b20 [modules/pulseaudio] Ignore errors when starting pulseaudio daemon
This does not really solve the issue indicated in the ticket, but at
least it should leave the user with a working bar.

see #108
2017-06-09 11:01:25 +02:00
Tobias Witek
2eff6b4933 [modules/pulseaudio] Start pulseaudio daemon, if not running
Since the module requires the pulseaudio daemon to be running, in order
to query system information such as the default source/sink and the
current volume, start the daemon, if necessary.

fixes #108
2017-06-06 10:49:33 +02:00
Tobias Witek
d48e661d97 [modules/traffic] Fix delta calculation
A previous commit broke the traffic module by deleting widgets during
each iteration. This is fatal as the widgets contain the traffic
information from the previous iteration, for delta calculation.

Store previous traffic data in the module itself instead.
2017-06-05 15:06:56 +02:00
Tobias Witek
937e61a863 [modules/pulseaudio] Localization independence
In order to (hopefully) achieve localization independence, switch from
using pactl for retrieving pulseaudio information to pacmd, which seems
to be unaffected by the LANG environment variable.

fixes #103
2017-06-05 15:01:10 +02:00
tobi-wan-kenobi
63a14cb590 Merge branch 'master' into pep8 2017-06-05 10:56:28 +02:00
tobi-wan-kenobi
ac9c71cdb9 Merge pull request #107 from RobertSacks/publicip-region
[modules/publicip] Added 'region' and 'service' options
2017-06-05 10:55:04 +02:00
ibrokemypie
b21a62e823
[modules/cpu] Linting 2017-06-05 18:27:51 +10:00
Robert Sacks
a167ac9381 [modules/publicip] Added option to use own ip retrieval service 2017-06-05 03:53:44 -04:00
Robert Sacks
c5a1555618 [modules/publicip] Added region option to publicip module and switched to 'requests' package 2017-06-05 03:30:23 -04:00
ibrokemypie
644c55292d
[modules/sensors] Linting
Un-import os, fix indentation
2017-06-05 12:56:39 +10:00
ibrokemypie
3317b6d2d8
[module/github] Linting
Removed some unused imports, fixed indentations, removed unused variables.
2017-06-05 12:56:37 +10:00
ibrokemypie
ae536ee70d
[modules/github] Use header for token
Doesnt allow sniffers to get the access token from url.
Closes #104
2017-06-05 12:42:02 +10:00
Tobias Witek
0bfb725ae0 [modules/traffic] Recreate widget list during each iteration
To avoid "stray" devices being kept in the list, empty the widgets list
during each iteration and re-populate it from the list of available
interfaces.

fixes #101
2017-06-03 15:26:00 +02:00
Tobias Witek
2d99bdf314 [modules/traffic] Allow for state filtering
The optional parameter "states" can now be used to filter which
interfaces to display. "^" can be used for negation.

For example, to only show "up" interfaces:

-p traffic.states=up

To show all interfaces not in "down" state:

-p traffic.states=^down

fixes #98
2017-06-03 15:20:27 +02:00
ibrokemypie
277ea2f255 [module/cpu] More useful rounding
psutil.cpu_percent() only outputs to one decimal place anyway, so the trailing 0 is useless.
The prepended 0 is also not important, will only be not 0 at 100% utilization, so why not let it be 100% then and take up one less column otherwise?
2017-06-02 16:25:49 +10:00
brunosmmm
85ec7c4331 example usage of popup menu in the bluetooth module. 2017-06-01 20:25:40 -04:00
brunosmmm
2e152d1be4 simple popup menu implementation using tkinter 2017-06-01 20:23:18 -04:00
tobi-wan-kenobi
3b1c28955d Merge pull request #95 from brunosmmm/disk-options
Disk options
2017-06-01 19:57:22 +02:00
brunosmmm
40d767ae6e added an option to select which file manager to open 2017-06-01 12:27:39 -04:00
tobi-wan-kenobi
7410f96aa1 Merge pull request #94 from brunosmmm/bluetooth-plugin
Simple bluetooth module with toggling and status display
2017-06-01 18:23:39 +02:00
brunosmmm
d13ffcd9f7 added more options to the disk module 2017-06-01 12:21:10 -04:00
brunosmmm
185690f030 Simple bluetooth module with toggling and status display 2017-06-01 12:12:49 -04:00
ibrokemypie
7527cfcb48 [modules/memory] Add parameter to only show used memory
No change to default behaviour, but adds boolean to only display used rather than used, total and percentage.

To only show used  memory:
-p memory.usedonly=1
2017-06-02 00:29:09 +10:00
Robert Sacks
c57ddc48fe Removed unwanted comments in publicip module 2017-05-30 04:49:58 -04:00
Robert Sacks
d98a998c2a Added publicip module 2017-05-30 04:33:53 -04:00
Tobias Witek
bbe43dccf4 [modules/spotify] More generic error handling
OK - I admit it: Mostly for the benefit of Travis and automated testing,
which complains about the DBusException, move to a more generic
exception.

However, this is probably a good idea anyhow, because independently of
the error, setting the song to an empty string is probably the best bet.
2017-05-27 13:29:08 +02:00
tobi-wan-kenobi
3fdfc7b272 Merge pull request #88 from yvesh/spotifymodule
[modules/spotify] Add rudimentary spotify currently playing module
2017-05-27 13:15:56 +02:00
tobi-wan-kenobi
27a06fc666 Merge pull request #87 from alrayyes/mpd
Mpd widget
2017-05-27 11:29:18 +02:00
Yves Hoppe
ec2b39f04c
[Output] Only draw widget when full text is not empty 2017-05-26 21:36:01 +02:00
Yves Hoppe
cffd2b8609
handling closed spotify better 2017-05-26 21:33:58 +02:00
Yves Hoppe
c3789a1399
[modules/spotify] Add rudimentary spotify currently playing module 2017-05-26 21:14:05 +02:00
Ryan
49f9cc90bc added mpd support 2017-05-26 19:48:23 +02:00
Tobias Witek
710342d7d4 [modules/github] Minor refactoring
* Use requests library instead of curl
* Exactly parse the github API responses
* Return a string value in order to pass unit tests

see #86
2017-05-26 13:32:47 +02:00
Yves Hoppe
320b4b466e
Plugin description 2017-05-26 11:11:58 +02:00
Yves Hoppe
99080e7ac3
[modules/github] Add rudimentary GitHub unread messages module 2017-05-26 11:06:20 +02:00
Tobias Witek
27f5091ae3 [modules/nic] Add parameter to filter by state
Allow the user to filter the state of devices that should be displayed.
It's possible to use both white- and blacklists (and combinations).

For example, to only show devices in state "up":
-p nic.states=up

To only show devices that are not down:
-p nic.states=^down

fixes #84
2017-05-22 18:09:00 +02:00
Moses Miller
84d4e87fbf
Fixed the bug of ping.interval raising an exception with any value 2017-05-15 20:57:24 -07:00
thunderstruck47
50330e38d1 using io.open, instead of open (python 2.6/2.7) 2017-05-13 17:41:43 +03:00
thunderstruck47
8d4db0282f explicity encoding only for Python 3 2017-05-13 17:16:34 +03:00
thunderstruck47
bfa06cead1 dont rely on platform specific encoding 2017-05-13 16:36:25 +03:00
Tobias Witek
12a3aa5456 [modules/stock] Modify symbol decoding for Python3 compatibility
In Python3, string doesn't have a "decode" method. I will need to find a
proper fix for this, but for now, the workaround seems to do the trick.
2017-05-11 19:43:59 +02:00
Michael P. Soulier
c73a3cfa34 Merge remote-tracking branch 'tobi-wan-kenobi/master' 2017-05-10 15:46:57 -04:00
Michael P. Soulier
ba38a9d4a0 Added a currencies parameter to the stock ticker. 2017-05-10 15:38:44 -04:00
Tobias Witek
fdcc908d83 [core] Use class theme, if no specific module theme matches
For modules that use aliases, until now, *only* the alias theme was
considered. This is typically a bad idea (tm), as the "generic" case is
that of a module theme (e.g. "disk", not that of a theme per instance of
the module (i.e. "home", "root", etc.)).

Therefore, introduce the concept of a "class" theme that can be
optionall overridden by a specific module theme.

As a pleasant side-effect, this should bring back the disk icons for all
instances of the disk module :)

fixes #79
2017-05-10 20:01:29 +02:00
Michael P. Soulier
b4576e846f Adding simple stock ticker. 2017-05-09 13:23:18 -04:00
Tobias Witek
f52702fbb5 [modules/traffic] Refactor code for simplicity
Try to reduce code duplication by having a helper function that creates
the traffic widgets and do widget generation more generically.
2017-05-05 20:58:15 +02:00
Tobias Witek
ea7227dc53 [core] Convert command output to utf-8
Instead of fixing encoding in every individual module (cmus, gpmdp, ...)
perform decoding to utf-8 directly in the core.

(hopefully) fixes #74
2017-04-26 07:51:11 +02:00
Tobias Witek
02f3559734 [input] Terminate i3 protocol header with newline
According to https://i3wm.org/docs/i3bar-protocol.html, the header block
needs to be terminated by a newline.

fixes #76
2017-04-26 07:37:47 +02:00
graynk
0dfa80fc7a fix should work for Python 2 and 3 2017-04-24 23:18:15 +05:00
graynk
612c3605b5 fix for non-latin symbols in GPM module 2017-04-24 22:12:00 +05:00
Tobias Witek
2e5ea91291 Merge branch 'meain-traffic' 2017-04-23 07:18:15 +02:00
Tobias Witek
30bdab2767 [modules/traffic] Make traffic icons prefixes again
For consistent look, make the traffic icons prefixes, and change the
alignment to left again, in order to avoid "jumping" of the icons.
2017-04-23 07:15:30 +02:00
Tobias Witek
1a82a717fa [core] Calculate minwidth including pre/suffix
Add the length of the prefix and suffix to the minimum width, if
applicable.
2017-04-23 07:15:07 +02:00
Tobias Witek
434473c875 [general] Minor edit: Move from "theme-" to "theme." prefix
Thinking about it, I find domain delimitors using "." more intuitive
than "-", so fix that.
2017-04-22 13:11:59 +02:00
Tobias Witek
1670890491 [modules/cmus] Make text description scrollable
Since the description of a song can get pretty lengthy, make it
scrollable.

fixes #27
2017-04-22 13:10:13 +02:00
Tobias Witek
928940d848 [core] Add a "scrollable" modifier for widget texts callbacks
If a module defines a callback for a widget's text, an optional
decorator "@bumblebee.output.scrollable" can be used to make the text
scrollable.

In those cases, the desired width is set to (in decreasing order of
priority):
1. whatever the widget defines as "theme.width"
2. whatever the theme defines as "width" for the module
3. whatever the commandline parameter "width" for the module is set to
4. 30 (determined by unfair dice roll)

see #27
2017-04-22 13:07:50 +02:00
Tobias Witek
92be7d3020 [core] Added min-width and alignment themeing
Added theme-options ("minwidth" and "align") for setting the minimum
width and the alignment of a widget.

Also, allow widget to provide defaults for the theme options by setting
an attribute in their store called "theme-<name of the theme option>".

For example, a widget can now define a default alignment by using:
widget.set("theme-align", "default-value").
2017-04-22 13:00:53 +02:00
Tobias Witek
547910611c [modules/traffic] fix docstring location 2017-04-22 11:10:01 +02:00
Tobias Witek
e6357f4c90 [modules/traffic] Add alignment and minimum width
Set the minimum width for uplink and downlink widgets to "down 1000MB",
which should be plenty, and change alignment to right (personally, I
find this looks nicer).

To not have the icons on the left side "jump around" depending on the
value, make them suffixes.

If this solution is not sufficient, alternatively, the widget itself
could perform value padding. In that case, the whole alignment and
min-width settings would be obsolete and the icons could remain on the
left side.
2017-04-22 08:26:28 +02:00
Tobias Witek
5db5e02086 [core] Added min-width and alignment themeing
Added theme-options ("minwidth" and "align") for setting the minimum
width and the alignment of a widget.

Also, allow widget to provide defaults for the theme options by setting
an attribute in their store called "theme-<name of the theme option>".

For example, a widget can now define a default alignment by using:
widget.set("theme-align", "default-value").
2017-04-22 08:24:52 +02:00
Tobias Witek
430c9f5e93 [modules/traffic] Minor refactoring
* use psutil instead of "ifconfig" in order to avoid external command
calls
* fix a small bug in the ascii theme (missing colon)
* show statistics per-nic
2017-04-22 08:11:55 +02:00
Tobias Witek
16359c883b Merge branch 'traffic' of git://github.com/meain/bumblebee-status into meain-traffic 2017-04-22 07:45:22 +02:00
Abin Simon
bc26cd5dd6 basic exception handling 2017-04-21 14:52:19 +05:30
Abin Simon
a8693dcada seperate up and down speeds for traffic widget 2017-04-21 11:40:02 +05:30
Abin Simon
ed3d9bd595 remove interface name from traffic 2017-04-21 10:52:41 +05:30