Commit graph

864 commits

Author SHA1 Message Date
Tobias Witek
7152bb17f2 [core] Generic collapsible widgets
Each widget can now be collapsed and expanded using the middle mouse
click, by default.
2018-09-15 14:40:52 +02:00
Aaron Moser
ba934dc675 Add xkcd module
Added a module that opens a random xkcd comic when clicked.
2018-09-11 16:49:57 +02:00
tobi-wan-kenobi
440b5379dd
Merge pull request #291 from lucassouto/master
Add module arch-update
2018-09-09 08:11:09 +02:00
lucassouto
63bb771df2 Fix for previous versions of python 2018-09-08 18:59:55 -03:00
Lucas Souto
edee95b57a Fix code for lint 2018-09-07 22:38:15 -03:00
Lucas Souto
17131c5bdc Merge branch 'master' of git://github.com/tobi-wan-kenobi/bumblebee-status 2018-09-07 22:22:07 -03:00
Lucas Souto
c617a478bf Add module arch-update 2018-09-07 22:21:57 -03:00
Rémi Dupré
384f23c34f
Module progress: added states 2018-09-07 17:14:40 +02:00
Rémi Dupré
56426ee0a6
Added parameters to module "progress" to change bar design, changed
format keys
2018-09-07 16:48:03 +02:00
Rémi Dupré
870d4d75d5
Using progress's speed measures 2018-09-07 16:36:09 +02:00
Rémi Dupré
090306d37c
Added module progress 2018-09-07 16:17:09 +02:00
WORD559
a969fc0b75 Added parameter to pulseaudio module that allows users to specify the percentage change of the volume when scrolling on the module. 2018-09-01 14:40:18 +01:00
Frank Scherrer
62150b3030
trying to remove codeclimate complain
* Sorry, I don't have codeclimate
* did little refactoring, hope it helps.
2018-08-24 10:44:42 +02:00
Frank Scherrer
8c12daa407
add 'which' function to utils and use for 'iwgetid' 2018-08-24 10:22:28 +02:00
abdoulaye
2461621b56 docs: fix notmuch_count module doc english errors 2018-08-21 14:21:40 +02:00
abdoulaye
797230da94 feat: add notmuch count module
Displays the result of a notmuch count query
default : unread emails wich path do not contained "Trash" (notmuch count "tag:unread AND NOT path:/.*Trash.*/")

Parameters:
    notmuch_count.query: notmuch count query to show result

Errors:
    if the notmuch query failed, the shown value is  -1

Dependencies:
    notmuch (https://notmuchmail.org/)
2018-08-21 11:56:09 +02:00
WORD559
59bca44267 Added playback status indicator to spotify module 2018-08-20 17:44:49 +01:00
WORD559
2f76df51e2 Added the media control rebinding parameters to the spotify module 2018-08-08 14:12:42 +01:00
WORD559
bffa7028d0 Added three additional parameters to deadbeef module so that the media controls can be rebound with parameters. 2018-08-08 14:08:48 +01:00
WORD559
1a272b50dd Created a module to display current playing song in DeaDBeeF media player and to allow basic media controls 2018-08-08 13:54:53 +01:00
Michael Hauser-Raspe
37929d4903 Respect autostart parameter. 2018-08-08 00:05:09 +01:00
soenke
9ef3da8b88 [modules/sensors] Prefer sensors command if available, solves #275 2018-07-30 18:25:37 +02:00
abdoulaye
f4b7f90c2a fix todo module path expansion 2018-06-30 15:56:38 +02:00
susmus
e8970f1bd4 [module/amixer] Add on/off mute check 2018-06-09 22:22:16 +02:00
Frederic Junod
841f6e131d Remove unnecessary parens 2018-06-04 15:03:39 +02:00
Frederic Junod
62f79beb90 Use 'is False' instead of '== False' 2018-06-04 14:53:01 +02:00
Frederic Junod
f46671a85f Use 'is None' instead of '== None' 2018-06-04 14:50:51 +02:00
4shadoww
403b5ddd13 added new test to check is locale defined 2018-05-31 14:12:39 +03:00
Tobias Witek
290f95d6b4 [core] Collapse modules by using middle mouse
When pressing the middle mouse button (and it's not assigned to any
other functionality), the module (i.e. all widgets of that module) will
disappear and be replaced with the module's icon (or prefix, as
fallback) and an ellipsis.

fixes #264
2018-05-30 10:42:31 +02:00
Tobias Witek
455707c583 [core/theme] Handle errors during color loading
When loading a color scheme (e.g. wal) fails for some reason, do not
abort bumblebee-status. Instead, log an error message and continue
without the colors.

fixes #263
2018-05-30 09:42:41 +02:00
Tobias Witek
c99a2d253e [modules/pacman] Use slight refactoring for consistency 2018-05-13 07:15:42 +02:00
tobi-wan-kenobi
e07932892f
Merge pull request #258 from freed00m/master
[module] - adding caps/num/scrl indicator widget; pacman to sum the digits
2018-05-13 07:09:29 +02:00
Antonin Dach
8946322bd5 [modul pacman] - enable suming up all updates to save screen real estate 2018-05-12 20:23:55 +02:00
Antonin Dach
52b4bfac35 [module] - adding caps/num/scrl indicator widget 2018-05-12 19:37:19 +02:00
WORD559
841b5e0905 Fixed issue where pulseaudio module could monitor the wrong device if certain pa modules have been loaded (e.g. monitoring 'alsa_output.pci-0000_00_1b.0.analog-stereo.echo-cancel' rather than 'alsa_output.pci-0000_00_1b.0.analog-stereo' 2018-05-12 13:46:51 +01:00
WORD559
705c18dbcd Can force status bar to update early by sending a USR1 signal to the process 2018-05-06 09:31:46 +01:00
Tobias Witek
6cbf866b63 [modules/memory] Use MemAvailable, if present
If the kernel supports it, MemAvailable contains an estimation
of the memory available for usage.

Use this to calculate the amount of free memory (as this seems to
closely match the output of gnome-system-monitor).

fixes #253
2018-05-01 10:01:36 +02:00
Tobias Witek
7af362f5c3 [themes/ionicons] Minor tweaks 2018-04-29 21:11:58 +02:00
Tobias Witek
b858fef834 [tests] Minor adaptions to satisfy tests
* Default value for Theme() constructor
* Don't fail fatally when unable to load taskwarrior module
2018-04-29 20:45:58 +02:00
Tobias Witek
8e80923f14 [core/theme] Add option to override iconset + add experimental icons
Add an option to load a user-specified icon theme (which will override
the theme's icons).

Also, commit a first version of a set of icons from the ionicons set
(see http://ionicons.com/).

see #252
2018-04-29 16:12:39 +02:00
tobi-wan-kenobi
fa9ad10549
Merge pull request #251 from kunalshetye/issue-250
Added a hidden method to hide mpd widget when no music is playing
2018-04-20 16:24:52 +02:00
Kunal Shetye
9514f1fb01 Added a hidden method to hide mpd widget when no music is playing 2018-04-20 06:34:35 +02:00
Tobias Witek
bbe4bfeebc [modules/nic] Do not fail if iwgetid is not available
Instead of throwing an error, simply return an empty SSID. Also, for
these cases, make sure the module doesn't output multiple whitespaces as
the end.

fixes #248
2018-04-14 05:33:35 +02:00
tobi-wan-kenobi
0fa27cca10
Merge pull request #246 from kunalshetye/master
[module/nic] Added option to get the ssid (for wifi networks)
2018-04-14 05:23:11 +02:00
Avindra Goolcharan
56088be995
publicip: use checkip.amazonaws.com in us-east
I'm on the east coast, and on average the amazon endpoint is a bit faster. AWS is also a more well known name.
2018-04-11 21:48:17 -04:00
Kunal Shetye
fb6a9b1f7d Added option to get the ssid (for wifi networks) 2018-04-11 20:42:12 +02:00
tobi-wan-kenobi
8a95cb1b0f
Merge pull request #243 from kunalshetye/master
[module/nic] Added format parameter to control the widget output
2018-04-11 20:14:45 +02:00
Frederic Junod
b2d709ab5f Remove unused yaml import 2018-04-11 12:57:56 +02:00
Kunal Shetye
b23b97625e Added format parameter to control the widget output 2018-04-11 07:30:16 +02:00
Pavle Portic
682dcc775a
[modules/traffic] Add parameter to hide down networks 2018-04-01 19:39:14 +02:00
Tobias Witek
0c03c1c48b [core/config] Skip unavailable modules
If a module cannot be loaded (presumably, because some python modules
are missing), do not show them in the list of available modules.

fixes #237
2018-03-24 08:08:19 +01:00
Frederic Junod
95fab517c6 Update required modules list in README 2018-03-14 08:35:51 +01:00
tobi-wan-kenobi
52312b7331
Merge pull request #231 from torvitas/patch-3
fixes typo in documentation of dnf module
2018-02-14 18:24:03 +01:00
Sascha Marcel Schmidt
3febc0a473
fixes typo in documentation 2018-02-14 12:15:40 +01:00
Sascha Marcel Schmidt
604a795f9e
fixes typo 2018-02-14 12:09:11 +01:00
Tobias Witek
b77fee4af2 [modules/memory] Fix "percentage used" calculation
For some reason, using "used/total" is more accurate than "(total -
free)/total". Probably there's some missing gap of what is counted as
used vs. what is counted as free.

fixes #229
2018-02-12 20:35:50 +01:00
tobi-wan-kenobi
519dc1dafe
Merge pull request #226 from caianrais/brightness-format-fix
[modules/brightness] Fix return format
2018-02-01 18:57:34 +01:00
Tobias Witek
186169343d [engine] do not fail on module import
If a module import fails, simply log a warning. The module, clearly,
cannot be used, though.

fixes #227
2018-02-01 18:44:48 +01:00
Caian R. Ertl
a75c71920e [modules/brightness] Fix return format
What: Fixes the return format in `brightness` module
Why: To remove the initial zero in the brightness indicator when below hundred.
2018-01-31 18:52:16 -02:00
Pierre Dorbais
cc72814b83 [modules] add taskwarrior module 2018-01-30 16:58:09 +01:00
Tobias Witek
cb3a7b826b [modules/datetime] Fall back to en_US.UTF-8
If no default locale is available, fall back to en_US.UTF-8.

see #159
2018-01-21 08:55:42 +01:00
Tobias Witek
be20a36805 [core/theme] Make unittest (hopefully) run through 2018-01-17 19:29:11 +01:00
Tobias Witek
4716481087 [core/theme] Small bugfix (widget needs to have linked module)
This is mainly for the autotests
2018-01-17 18:56:12 +01:00
Tobias Witek
9f77514a1c [core/theme] Add per-module theme override
Allow users to override theme values via parameter, such as:

bumblebee-status -m spacer -p spacer.theme.bg=#ff0000

for a red spacer.

see #223
2018-01-17 18:51:01 +01:00
Tobias Witek
bf84498df3 [core/engine] handle single-module errors
instead of terminating the whole status bar when an error occurs, just
show a (truncated) error for that single widget.

this should also enable auto-recovery if the module returns to a "good"
state, but that hasn't been tested yet.

see #221 and #222
2018-01-12 18:39:36 +01:00
Tobias Witek
04ce2de228 [modules/getcrypto] Handle missing results 2018-01-11 20:32:15 +01:00
Tobias Witek
650e0b933e Revert "[modules/getcrypto] Deal with kraken service downtime"
This reverts commit 3615e60e5b.

Time to go to sleep, so many mistakes...
2018-01-11 20:31:48 +01:00
Tobias Witek
3615e60e5b [modules/getcrypto] Deal with kraken service downtime
see #222
2018-01-11 20:29:45 +01:00
Tobias Witek
5f96b603a8 [modules/battery] fix syntax error
see #221
2018-01-11 20:26:49 +01:00
Tobias Witek
166437649c Revert "[modules/battery] Fix syntax error"
This reverts commit f236c24b92.
2018-01-11 20:26:14 +01:00
Tobias Witek
f236c24b92 [modules/battery] Fix syntax error
see #221
2018-01-11 20:22:30 +01:00
Tobias Witek
bbfb6fc095 [modules/battery] Ignore errors when reading status
Reading status - similar to reading the capacity - might fail, just
ignore that error.

see #221
2018-01-11 20:05:46 +01:00
Tobias Witek
82db0a14c1 [modules/ping] Revert changes reg. interval handling
Similarily to getcrypto, do not use the generic interval handling
for the ping module.

see #220
2018-01-07 20:41:14 +01:00
Tobias Witek
3638aa2420 [modules/various] Use new interval mechanism
Use generic interval mechanism in most of the modules that use slow
updates.

Only exception: getcrypto, as the interval is specified in seconds there
and I want to retain backwards-compatibility.

fixes #220
2018-01-07 20:27:11 +01:00
Tobias Witek
776be11137 [engine] Add generic interval mechanism
Add a generic mechanism to set a specific interval (in minutes, as this
is primarily intended for modules that want to "slow down" updates).

This gives *all* modules the parameter "interval" and allows each module
to set the default interval using the method "interval(<value>) in the
module constructor.

see #220
2018-01-07 20:25:32 +01:00
Tobias Witek
a6b7e329c7 [module/stock] Error message if stock service unavailable
If the stock rate cannot be retrieved for some reason, print an error
message in the log and present the value as "n/a".

fixes #219
2018-01-07 19:37:31 +01:00
Tobias Witek
13d27d4b81 [themes] Do not automatically download symbols.json
In order to use symbol files, symbol.json needs to be created manually
now.

Also, remove symbol usage from the prepackaged themes to avoid
breakage.

fixes #216
2018-01-03 15:58:57 +01:00
Tobias Witek
8f44a1bf63 [modules/redshift] Do not block status line
Redshift might block when no network connectivity is available (if it
tries to determine the location automatically). To avoid this blocking
the whole status line, immediately release the lock in the query thread.
2018-01-01 08:59:21 +01:00
Tobias Witek
bac3d6bc57 [core/theme] Add FontAwesome name resolution
Theme writers are now able to use FontAwesome names and IDs instead of
the symbols itself!

The implementation itself is *slightly* hacky and might get improved in
the future: Upon the first start, a YAML file containing the FontAwesome
symbols is fetched from
https://raw.githubusercontent.com/FortAwesome/Font-Awesome/master/src/icons.yml

Note: This is only done once - to retrigger this (i.e. for an update),
please just delete the file and restart bumblebee-status.

Then, in the *icon* theme itself, you can use ${<name or id>} instead of
the actual symbol.

Names and IDs can be found here:
http://fontawesome.io/cheatsheet/

(simply remove the "fa-" prefix)

An example is provided in themes/icons/awesome-fonts.json.

(finally) fixes #20

sorry for taking so long :)
2017-12-29 14:49:13 +01:00
Tobias Witek
2a95e9fcc2 [modules/redshift] Update in separate thread
Move updating of redshift information into a separate thread so that
errors like missing network connectivity do not block the whole status
bar.

fixes #61
2017-12-29 11:18:07 +01:00
Tobias Witek
63ef6b0bf8 [core/themes] Fix new theme code for Python 3.x 2017-11-26 20:05:28 +01:00
Tobias Witek
197c4c92a9 Merge branch 'theme-directories'
fixes #203
2017-11-26 19:57:31 +01:00
Tobias Witek
3fe2088d06 [tests] fix unit tests 2017-11-26 19:56:57 +01:00
Adam Dej
5766fedc46 [modules] Add zpool module 2017-11-25 13:01:59 +01:00
Tobias Witek
56b2981379 [core/themes] Fix exception on missing theme
If no theme is found, raise an exception.

see #203
2017-11-18 14:59:30 +01:00
Tobias Witek
9d81d83d37 Merge branch 'master' into theme-directories 2017-11-18 14:57:41 +01:00
Tobias Witek
15c78cd6a6 [core/themes] Add theme merging from different locations
Theme files with the same name, but in different theme locations, are
now merged together.

see #203
2017-11-18 14:56:44 +01:00
Tobias Witek
9d7fc5c1d4 [core/themes] De-duplicate theme names
List themes only once, even if they are present multiple times in
different locations.

(Yes, I know that list(set(result)) would do the same, but here, I'd
like to not waste memory and be a bit faster).

see #203
2017-11-18 14:51:25 +01:00
Tobias Witek
8a0fae529a Revert "[modules/datetime] Rename datetime to date-time"
This reverts commit 4bc96987db.
2017-11-18 11:26:42 +01:00
Frederic Junod
34ac317bfa Use absolute_import in uptime module 2017-11-18 09:27:12 +01:00
Tobias Witek
4bc96987db [modules/datetime] Rename datetime to date-time
Finally fix the datetime import errors by renaming the bumblebee
datetime module (*bad* idea from the start).

Apologies to everyone for whom it now breaks.
2017-11-13 18:54:54 +01:00
tobi-wan-kenobi
a5154ded73
Merge pull request #205 from ccoors/master
[modules/uptime] Add uptime module
2017-11-13 18:44:42 +01:00
Christian F. Coors
6b61d43648 Add uptime module 2017-11-13 16:04:00 +01:00
Camilo Celis Guzman
c75518e8f7 [modules] added new shortcut module
This modules makes it very easy to create shortcuts as widgets, for which the user can define the command to be executed when left clicking on it. It supports single or multiple shortcuts
2017-11-13 15:54:25 +09:00
Tobias Witek
f72ac0ca99 [core/theme] Add ~/.config/bumblebee-status/themes to theme directories
Allow users to create themes outside the main theme tree.

see #203
2017-11-05 09:08:01 +01:00
tobi-wan-kenobi
3455ad3da4
Merge pull request #199 from cacyss0807/title_bug_fix
[modules/title] fixed runtime exception
2017-10-27 18:21:20 +02:00
Frederic Junod
f75d321b20 Add new hipchat module
Displays the unread messages count for an HipChat user
2017-10-27 15:05:38 +02:00
Camilo Celis Guzman
fb1ce0e9af [modules/title] fixed runtime exception
From i3ipc the find_focused().name can return  a None instead of a string, this will casue a runtime exception
2017-10-27 17:42:10 +09:00
Camilo Celis Guzman
28ee0b474d added format parameter to cpu module 2017-10-25 19:09:04 +09:00
Camilo Celis Guzman
a84e568746 [modules/rotation] create a widget per display once on refresh
* This module only updates some information on the screen when a new
display is added/removed, hence it makes sense to update it only when
the i3-bar is refreshed.
2017-10-25 18:37:54 +09:00
Tobias Witek
57064dcf54 [core/engine] Option to disable workspace wrap
Add a new parameter engine.workspacewrap (default to true) that, if set
to false, makes the workspace change via mouse wheel stop when hitting
the first/last workspace of an output (identical to how i3wm bar itself
behaves).

fixes #188
2017-10-21 13:06:36 +02:00
Tobias Witek
abd58d2fba [core/engine] Add parameter 'engine.workspacewheel'
Add a parameter that allows the user to enable/disable workspace
scrolling via the status bar.

By default, scrolling is enabled, to disable it, add the following
parameter to your bumblebee-status invokation:

-p <other parameters> engine.workspacewheel=false

see #188
2017-10-21 08:46:48 +02:00
Tobias Witek
34d9278c6e [modules/mpd] Add scrollable modifier 2017-10-21 08:21:37 +02:00
max-kov
36e7cc8dbb [modules/mpd] Removed unneeded if statement 2017-10-20 16:39:48 +01:00
max-kov
3c0d53831b [modules/mpd] Fixed song duration parse bug
After listening to an audio stream for longer than 10 minutes "mpc -f "tag artist %artist%\ntag title %title%"" will start producing lines with slightly different separation, which caused the bar to fail.
2017-10-20 12:22:42 +01:00
Frederic Junod
a13e593012 Fix unused-import errors found by pylint 2017-10-18 08:38:26 +02:00
Frederic Junod
70a58715f3 Fix unused-variables errors found by pylint 2017-10-18 08:36:07 +02:00
tobi-wan-kenobi
851be18d72 Merge pull request #192 from fredj/currency_use_ft
[modules/current] Use markets.ft.com instead of fixer.io
2017-10-17 20:20:06 +02:00
Frederic Junod
d341c90c53 [modules/currency] Add symbol for JPY 2017-10-17 19:13:26 +02:00
Frederic Junod
1eb49ab53e [modules/currency] Use a list for the data to preserve the order 2017-10-17 19:03:08 +02:00
Frederic Junod
4b1ba93109 [modules/currency] Use markets.ft.com instead of fixer.io 2017-10-17 19:01:57 +02:00
Frederic Junod
6f28726758 Fix unused-import errors found by pylint 2017-10-17 18:59:28 +02:00
Frederic Junod
5f20fa6134 Fix trailing-whitespace errors found by pylint 2017-10-17 18:59:26 +02:00
Frederic Junod
57204a215e Fix bad-whitespace errors found by pylint 2017-10-17 18:59:23 +02:00
Tobias Witek
7af57c7fc4 [core/input] Handle epoll interrupts
Sometimes epoll poll() calls get interrupted by the system - handle that
more gracefully.
2017-10-17 18:53:58 +02:00
Tobias Witek
c041e33bc0 [core/config] Make unit test go through 2017-10-17 18:53:02 +02:00
Camilo Celis Guzman
3f7f8e29de [modules/rotation] new module to loop through orientations 2017-10-11 20:11:10 +09:00
Tobias Witek
5d1d994dce [core] Add support for custom colorsets (e.g. pywal)
In a theme file, it is now possible to provide an array of "color
definitions", which allow you to use names instead of colors throughout
the theme file.

Currently, only the colorset "wal" is supported, which reads all colors
from the wal JSON file (~/.cache/wal/colors.json) and makes them usable
in the theme (as "foreground", "background", "cursor", "color12", etc.).

An example of this can be found in the theme wal-powerline.

see #185
2017-10-08 08:13:10 +02:00
Avindra Goolcharan
9c52624ecb nvidiagpu.py: remove invalid shebang
This file has no actionable code when executed directly from a shell. It contains only a `class` as it is a bumblebee module.

so the shebang should be removed.
2017-10-06 22:15:46 -04:00
Tobias Witek
7c17516874 [modules/layout-xkb] Gracefully handle missing xkbgroup library
Show "n/a" is xkbgroup is not installed/available

see #177
2017-10-01 05:45:52 +02:00
Tobias Witek
e0e59b863c [modules/xkbgroup] Remove thirdparty xkb, use system xkb
Providing a custom-built xkb module obviously doesn't really work, so
use the system one instead.

see #177
2017-10-01 05:42:29 +02:00
Tobias Witek
855012f05d [modules/layout-xkb] Parameter to show full layout name
If parameter "showname" is specified, do not show the symbol (e.g.
"us"), but the full layout name (e.g. "English (US)").

see #177
2017-09-30 16:26:20 +02:00
Tobias Witek
ad4246d52d [modules/layout-xkb] Use set-xkbmap to switch layouts
Use the data retrieved via xkb and set the new layouts and variants
using set-xkbmap.

see #177
2017-09-30 16:21:51 +02:00
Tobias Witek
0dd8a4ffeb [modules/layout-xkb] Ignore errors 2017-09-30 11:53:28 +02:00
Tobias Witek
9525b18653 [modules/layout-kxb] Add docstring 2017-09-30 11:50:33 +02:00
Tobias Witek
d45b80dc52 [modules] Add layout-xkb using xkbgroup to display current layout
Package xkbgroup as "thirdparty", because it was slightly patched
for python2.x compatibility.

see #177
2017-09-30 11:18:36 +02:00
tobi-wan-kenobi
2384ecd475 Merge pull request #184 from paxy97/module/weather
[modules/weather] Show city in weather module
2017-09-29 17:57:03 +02:00
Pavle Portic
c462bd3472 [modules/weather] Show city in weather module 2017-09-29 14:31:42 +02:00
ibrokemypie
b544393c63 modules/sensors: Try intel scaling current frequency
On intel pstate drivers only the normal frequency is written to /proc/cpuinfo, not accounting for scaling/turbo.
This should fix that, though it needs testing on other computers (AMD, intel without pstate) because I am not
certain that the file only exists on Intel pstate.
2017-09-29 12:16:32 +10:00
Tobias Witek
f3ee6e0c67 [themes] Add non-powerline solarized-dark with awesome fonts
In order to do that, change the theme engine so that a theme can
override settings in the iconsets. Was probably a bug to begin with that
this was not possible.
2017-09-20 08:59:23 +02:00
Tobias Witek
81e1b25687 [modules/memory] Use /proc/meminfo instead of psutil
Try to be more accurate in calculating memory by using the /proc/meminfo
interface directly.

fixes #181
2017-09-20 06:26:39 +02:00
Tobias Witek
18131a3efe [modules/layout] Remove parameter for language configuration
Switch layout module to do full auto-detection by parsing the output of
xrandr -query.

fixes #177
2017-09-19 09:15:36 +02:00
tobi-wan-kenobi
4bbc67a6c4 Merge pull request #178 from chrismullins/fix-github-module
BUG: github module count breaks in python3
2017-09-18 19:53:28 +02:00
Frederic Junod
e70ba50a30 [module/title] Use bumblebee.util.asbool function 2017-09-18 08:30:44 +02:00
Christopher Mullins
42b42c1294 BUG: github module count breaks in python3
In python2, filter returned a list, but in python3 it returns an iterator. So
we wrap this in a list() so that it works in both.  We also want to count the
unread notifications, so this should be reflected in the code.
2017-09-17 18:54:38 -04:00
Tobias Witek
dfb1e39421 [core + modules/cmus] Have another go at fixing unicode issues
Override sys.stdout and sys.stderr in an attempt to enforce utf-8
encoding. Probably this will cause all kinds of weird issues down the
line, but at least, it seems to solve the immediate issue.

fixes #176
2017-09-16 12:22:20 +02:00
Pier-Angelo Gaetani
da21eba0d7 [module/title] added scrollable title option 2017-09-15 17:46:24 -06:00
Tobias Witek
4a9782a517 [modules/title] Make unittests run through
see #174
2017-09-15 20:05:09 +02:00
Tobias Witek
ecbde508d2 [modules/title] Python < 3.4 compatibility
Replace textwrap.shorten() with custom implementation, since it is only
available since Python 3.4. While at it, catch i3 exceptions in order to
make unit tests (hopefully) run through.

Also, Updated README.md

see #174
2017-09-15 20:02:07 +02:00
Pier-Angelo Gaetani
8bba1d1e0d [module/title] Requirement update in README.md + linting 2017-09-15 10:03:58 -06:00
Pier-Angelo Gaetani
55f48d5618 Added title module. 2017-09-15 09:51:14 -06:00
Tobias Witek
75140c77b4 [modules/currency] Make output format configurable
Add two format strings:
* sourceformat to specify the "base" format
* destinationdelimiter to format how multiple rates are delimited
2017-09-10 18:37:11 +02:00
Tobias Witek
bf53c5912c [modules/currency] Enable base and symbol configuration
The "base" currency can now be configured using the parameter "source",
and the "symbols" to be resolved can be configured using the parameter
"destination", which is a comma-separated list.

see #169
2017-09-10 09:34:02 +02:00
Tobias Witek
5551eb1d74 [modules/traffic] Use boolean util methods
see #171
2017-09-10 09:16:21 +02:00
Tobias Witek
b8bfc5b889 Merge branch 'patch-2' of git://github.com/batman-nair/bumblebee-status into batman-nair-patch-2 2017-09-10 09:14:00 +02:00
Arjun Nair
a6d7653873 Added parameter showname to hide network interface
Becomes a needless info for personal laptop usages where only one interface is used.
2017-09-10 00:23:41 +05:30
Arjun Nair
dc85a8e936 Removed returning n/a
Better not to show
2017-09-09 23:26:39 +05:30
Tobias Witek
a08db28da0 [modules/currency] Fix runaway docstring 2017-09-07 16:22:30 +02:00
Tobias Witek
f7555f8d6b [modules/currency] Add documentation and screenshot
see #169
2017-09-07 16:19:37 +02:00
Tobias Witek
4ebce517cc [modules/currency] Use unicode strings
see #169
2017-09-07 16:16:35 +02:00
Tobias Witek
86de505cda [modules] rename fx to currency
see #169
2017-09-07 16:10:22 +02:00
Antonis Karamitros
975027820f Add an fx module to track GBP/EUR and GBP/USD 2017-09-07 12:54:29 +01:00
Tobias Witek
a9ae3c5ed4 Merge branch 'master' of github.com:tobi-wan-kenobi/bumblebee-status 2017-09-07 05:12:06 +02:00
Tobias Witek
b2d0979050 [core/input] Ignore errors during callbacks
If a callback command cannot be executed, do not terminate the whole
bar. Furthermore, if such a failure occurs, try to fall back to a
globally (i.e. non widget-specific) command, so that callbacks
registered in the engine itself (such as mouse-wheel scrolling) still
function properly.

fixes #166
2017-09-07 05:10:47 +02:00
Elin Angelov
9ab02cb92b fix: exception occurred when screen is locked 2017-08-21 10:37:38 +03:00
Tobias Witek
93768e3380 [doc] Updated README.md + small logging refactor
* Fix minor grammatical errors in README.md
* Make logfile configuration a bit nicer
2017-08-20 10:59:39 +02:00
Tobias Witek
919dfdd6e1 [modules/cmus] Remove accidential print 2017-08-20 10:44:38 +02:00
Tobias Witek
f7f6783659 [modules/cmus] Fix Python3 compatibility issue 2017-08-19 16:33:42 +02:00
Tobias Witek
d2bef950ba [modules/cmus] Fix missing position/duration
Wrong parameter was used as key value, so position and duration were
missing.
2017-08-19 16:23:38 +02:00
Tobias Witek
054ad96ec2 [modules/getcrypto] Simplify code a bit
Make codeclimate happy...
2017-08-19 16:14:42 +02:00
Tobias Witek
5e007acb5c [modules/cmus] Refactor and simplify code 2017-08-19 16:07:52 +02:00
ibrokemypie
6bbeb416f8 [Modules/mpd] Add MPD host parameter
MPC uses localhost by default, but some configurations require otherwise.
Default behaviour is unchanged.
2017-08-17 17:21:42 +10:00
Tobias Witek
9619f7a754 [modules/datetime] Fix for Python3 2017-08-12 17:13:02 +02:00
Tobias Witek
9f69cc6ae9 [core] Add ability to "hide" a module with all its widgets
* A module can override the method "hidden" to specify when all it's
widgets should be hidden.
* Implement hidden for cmus and spotify
* Fix problem that cmus widgets were not displayed correctly

fixes #157
2017-08-12 17:03:04 +02:00
Tobias Witek
8376e406e5 [modules/datetime] Add encoding for locale
When creating the date/time string, use the locale's preferred encoding
to format the string.

hopefully, this

fixes #158
2017-08-12 16:44:17 +02:00
Tobias Witek
474da05929 [modules/datetime] Simplify locale logic
see #156
2017-08-07 18:32:02 +02:00
Naya Verdier
7e1e020443
[module/datetime] Fix case when no locale is set 2017-08-06 11:46:05 -07:00
Naya Verdier
aa9941ceda
[module/datetime] Add locale parameter to override system default
This change mostly affects the %x and %X variables, for example to
change to 24 hour time you might set the locale to 'en_UK.UTF-8'.
2017-08-06 11:29:41 -07:00
Frederic Junod
2183b229e3 [module/spotify] Add new format string parameter 2017-08-04 11:37:31 +02:00
Tobias Witek
e763b55b86 [modules/disk] Backwards compatibility
Add support for showUsed, showSize and showPercent, but mark them as
deprecated.

see #151
2017-08-02 05:52:53 +02:00
kymon
2fcff4c2c9 disk module enhancement 2017-08-01 17:06:11 +02:00
Frederic Junod
9be1dbc1e0 [module/battery] Simplify remaining time computation
The `power` module already return a special value on AC: `power.common.TIME_REMAINING_UNLIMITED`
2017-07-30 08:59:50 +02:00
Tobias Witek
77b962a2f5 Merge branch 'master' of github.com:tobi-wan-kenobi/bumblebee-status 2017-07-29 14:25:59 +02:00
Vidyu Krastev
216ef815c7 Locale for datetime module 2017-07-27 16:01:56 +02:00
Tobias Witek
115f03cb0f [module/battery] Add remaining time, if available
Add remaining time directly to widget, if available, and if not on
charge.

see #146
2017-07-26 16:41:30 +02:00
Frederic Junod
78adbc0b4a [module/github] Add pagination support
The GitHub API returns 50 items per page.
2017-07-25 06:52:39 +02:00
Rafael Cavalcanti
eb0035fdd0 Add click events to Spotify module 2017-07-24 11:19:39 -03:00
Tobias Witek
6a0578d2c3 [modules/battery] Incorporate @yvesh's estimated time remaining
Move changes proposed by @yvesh to show the remaining battery time into
the battery module.

see #146
2017-07-23 18:45:07 +02:00
Tobias Witek
a312269240 [modules/sensors] Add fallback for temperature retrieval
If /sys/class/ data cannot be read, fall back to "sensors -u", by
popular demand :P

see #145
2017-07-22 11:44:56 +02:00
ibrokemypie
58298d5e30 [modules/sensors] Remove sensors dependency and read from device
was having some problems with the current implementation as i have multiple values with the same name in sensors -u.
this way it is unambiguous and *should* just work everywhere with no lm_sensors required, though some distros might move the pseudo file elsewhere, not sure, but thats why it is configurable.
testing would be great.
also, the file is simpler too.
2017-07-19 22:14:00 +10:00
tobi-wan-kenobi
14f0af373c Merge pull request #143 from fredj/memory_format
[module/memory] Add new format string parameter
2017-07-15 10:32:57 +02:00
Frederic Junod
37434aa5e5 [module/memory] Add new format string parameter 2017-07-15 09:48:23 +02:00
Frederic Junod
c2f9b2634a [module/getcrypto] Use bumblebee.util.asbool for the boolean parameters 2017-07-15 08:36:33 +02:00
Tobias Witek
5ca9ab796d [engine] Add logging for configuration file
For troubleshooting.

see #138
2017-07-14 17:11:20 +02:00
Frederic Junod
effea548ce [engine] Use RawConfigParser instead of SafeConfigParser
To allow percent signs in the config file
2017-07-14 09:33:24 +02:00
Frederic Junod
fe9c2835ad [engine] Add debug logging 2017-07-14 09:33:24 +02:00
Tobias Witek
ab989d8ddf [engine] Allow config parameter fallback to config file
If a configuration parameter is *not* specified with -p on the
commandline, look for a INI style configuration file as fallback in
~/.bumblebee-status.conf or ~/.config/bumblebee-status.conf.

Section must be "module-parameters", like this:
[module-parameters]
github.token=<your github token>

fixes #138
2017-07-12 18:37:59 +02:00
tobi-wan-kenobi
8941f60572 Merge pull request #133 from fredj/battery_click
[module/battery] Open gnome-power-statistics on left click
2017-07-08 09:10:33 +02:00
tobi-wan-kenobi
c93c03eb15 Merge pull request #134 from fredj/doc_debug_file
Fix doc about the debug file location
2017-07-08 09:09:41 +02:00
Frederic Junod
dc5e657bc3 [module/github] Doc for github.token OAuth scope 2017-07-08 08:27:59 +02:00
Frederic Junod
30ea9e2e69 [module/github] Refresh on right click 2017-07-08 08:22:52 +02:00
Frederic Junod
1252a548a0 Fix doc about the debug file location 2017-07-08 08:12:16 +02:00
Frederic Junod
d8018db2c2 [module/battery] Open gnome-power-statistics on left click 2017-07-08 07:07:00 +02:00
Frederic Junod
b0268a412b Add bumblebee.util.asbool function
Harmonize the boolean parameter value. Now `t`, `true`, `y`, `yes`, `on`, `1` are considered truthy and
everything else falsy.
2017-07-08 06:56:20 +02:00
tobi-wan-kenobi
ccc952b12c Merge pull request #126 from fredj/spelling
[module/pacman] Fix spelling
2017-07-07 17:44:25 +02:00
Frederic Junod
7abe3b7918 [module/github] Fix requirements for GitHub module 2017-07-07 17:25:02 +02:00
Frederic Junod
a834a7d356 [module/pacman] Fix spelling 2017-07-07 17:16:07 +02:00
tobi-wan-kenobi
1b95f55851 Merge pull request #123 from fredj/github_module_simplify
[module/github] Use json function from requests and 'filter' instead of a loop
2017-07-07 16:22:07 +02:00
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
tobi-wan-kenobi
7153c5fa0d Merge pull request #68 from meain/remove-unused
Remove unused variable in battery module
2017-04-21 07:21:13 +02:00
Abin Simon
14943a69cb traffic module added 2017-04-21 10:46:16 +05:30
Abin Simon
243e4b326c remove unused variable 2017-04-21 08:32:06 +05:30
mike-work
b1ce9645ac Remove decimal places for sensors. 2017-04-20 23:18:11 +01:00
Tobias Witek
2052f58dde [modules/sensors] Minor cosmetic changes + screenshot
Cosmetic changes:
* replace all single ticks with double ticks
* add vim line

Added screenshot for sensors module.
2017-04-19 18:53:45 +02:00
mike-work
3d50024e5f Create sensors module. 2017-04-19 12:36:35 +01:00
tobi-wan-kenobi
e6df55b3cb [config] Add logfile location parameter
Add commandline parameter to specify the logfile location.

see #62
2017-04-04 15:14:54 +02:00
Tobias Witek
e5db3d825d [modules/cmus] Declare file encoding
This seems to fix #51
2017-04-02 08:58:12 +02:00
Tobias Witek
251f8d2e9f [core] Add debugging capabilities
* If an exception is thrown, catch it and show a (somewhat) nice error
  message in the i3bar instead of the normal content
* Add a flag "-d" for debugging into a debug log. Currently, this only
  logs commandline calls as they occur and their return values, as well
  as exceptions.

fixes #58
2017-04-02 08:31:23 +02:00
Tobias Witek
11235d6883 [modules/weather] Set indicator to "?" when data is invalid
If retrieving weather information fails, replace the temperature data
with a "?".

fixes #60
2017-04-01 16:53:39 +02:00
Michal Siedlaczek
d826e250c8 Catch RequestException when fetching weather 2017-04-01 09:23:32 -04:00
Tobias Witek
f0bacdecd8 [modules/xrandr] Fix a crash caused by Python3
Python3 does not have sys.maxint anymore, so replace it with
sys.maxsize, which is available in both Python2 and Python3.

fixes #59
2017-03-28 19:08:17 +02:00
Chris LaRose
fe11bad826 Silence ImportErrors for optional dependencies. Fixes #55. 2017-03-25 18:35:56 -07:00
Tobias Witek
b20e83cb8a [engine] Fix interval configuration
Until now, manually specifying an interval did not work, as a cast to
float was missing. Now, it's possible to specify an update interval in
seconds via "-p interval=<interval>"

fixes #54
2017-03-16 21:04:24 +01:00
zetxx
289b42b26a fix: state, check regex result before use it 2017-03-15 23:12:55 +02:00
zetxx
0b961e2304 fix: init type 2017-03-15 23:02:13 +02:00
zetxx
69e4780182 feat: added volume level for amixer 2017-03-15 22:55:05 +02:00
Yashar Shahi
c203cd6173 [modules/pacman] Update url filtering
Arch mirrors can also have rsync protocol
2017-03-10 21:18:34 +03:30
Yashar Shahi
e2fcbfae4f [modules/pacman] Remove extra debugging raise 2017-03-10 20:02:28 +03:30
Yashar Shahi
82ce0ac834 [modules/pacman] Set thresholds
Compute weighted sum and set thresholds accordingly
2017-03-10 19:53:52 +03:30
Yashar Shahi
b9a4b590a4 [modules/pacman] Update list of repositories 2017-03-10 19:09:31 +03:30
Yashar Shahi
50d7a27487 Bug fix: pacman.py freezes the bar
Move update in a seperate thread.
2017-03-10 18:51:30 +03:30
yashar-sb-sb
88e3b8c146 Update pacman.py
Use widget to store parameters instead of using private variables.
2017-03-10 16:22:54 +03:30
Tobi-wan Kenobi
16c202a7ed [modules/disk] Remove stray unicode character in output 2017-03-10 08:17:43 +01:00
yashar-sb-sb
422348e01d Update diskspace()
Delete extra space! (looks better without the extra space. and now it's consistent with other widgets.)
2017-03-09 23:41:55 +03:30
yashar-sb-sb
3f96102b28 Update diskspace()
Add hdd icon.
2017-03-09 23:38:31 +03:30
yashar-sb-sb
dfb5bfe71c Update comment
Re-add the comment which was deleted by mistake.
2017-03-09 22:51:28 +03:30
yashar-sb-sb
9efca45b02 Update update()
Fix the issue with computation of used space.
2017-03-09 22:37:41 +03:30
yashar-sb-sb
3f17f0382e Update update module
Used shutil.disk_usage(path) instead of os.statvfs(path)
2017-03-09 20:39:40 +03:30
Tobi-wan Kenobi
826c568625 [tests] Add generic module tests
These tests check that all widgets of all modules conform to some basic
principles, at least.
2017-03-05 13:30:10 +01:00
Tobi-wan Kenobi
f9984ba386 [tests] Add unit tests for load module 2017-03-05 13:16:13 +01:00
Tobi-wan Kenobi
8724af2906 [tests/battery] Add tests for battery module 2017-03-05 09:35:56 +01:00
Tobi-wan Kenobi
90dd636b43 [tests/engine] Add test for module aliasing 2017-03-04 18:53:31 +01:00
Tobi-wan Kenobi
6a14681a65 [tests/theme] Add tests for theme.py 2017-03-04 14:17:27 +01:00
Tobi-wan Kenobi
f65ab6bcae [tests/config] Add unit tests for config.py 2017-03-04 12:11:43 +01:00
Tobi-wan Kenobi
6dbe440cb5 [tests] Purge tests and start with a clean implementation of subprocess
Seems like subprocess and friends (Popen, communicate) are not so easy
to mock cleanly. Therefore, start from scratch and carefully write test
by test, until (at least) the old test coverage has been restored.
2017-03-04 11:25:52 +01:00
Tobi-wan Kenobi
fe5bbd4b46 [modules/kernel] Use Python standard module "platform"
Instead of executing an external call to "uname", use the standard
Python module "platform" to retrieve information about the kernel used.

Positive side-effect: This is portable, if i3 ever exists on Windows :P
2017-03-03 19:18:25 +01:00
Tobi-wan Kenobi
955f123b88 [modules/kernel] Add documentation and vim hints 2017-03-03 19:13:30 +01:00
Pierre
bc514265d4 new module that displays current kernel
it uses the output of 'uname -r' prefixed with the linux font-awesome icon
2017-03-03 16:01:59 +01:00
Tobi-wan Kenobi
ec19f48853 [modules/weather] Remove remaining timer references
Remove obsolete _timer references.
2017-02-26 15:30:07 +01:00
Pavle Portic
44aa1bc564 [modules/weather] Add API key parameter documentation and round temperature to int 2017-02-26 14:17:26 +01:00
Tobi-wan Kenobi
a3f4b0aa6d [input] Cleaner termination logic, also, remove /tmp/bee.log
Accidentially opened file /tmp/bee.log, without writing anything to it.
2017-02-26 09:13:44 +01:00
Tobi-wan Kenobi
6d47240d6a [modules/nic] reduce code complexity (hopefully)
fixes #37
2017-02-26 09:08:36 +01:00
Tobi-wan Kenobi
8dc07e666e [modules/weather] Replace urllib with requests
Since requests works the same for python2.7 and python3.x, use requests
instead of urllib (which returns a string in python2.7, but byte data in
python3.0, at least).
2017-02-26 08:19:30 +01:00
Tobi-wan Kenobi
feb5719ecc [modules/weather] Minor reworks
* Use app-specific API key for bumblebee-status
* Add some parameters (location, unit, update interval)
* Make interval calculation based on time, not number of calls
2017-02-26 08:07:58 +01:00
Pavle Portic
49af9c14d6 [modules/weather] Add rudimentary weather module 2017-02-26 02:42:27 +01:00
Tobi-wan Kenobi
188ee36780 [modules] Add redshift module
New module that shows the current state of redshift
(day/night/transition) and, if in transition, also shows
the day/night percentages.

fixes #40
2017-01-21 11:23:29 +01:00
Tobi-wan Kenobi
87714f12ee [modules/*] Add required executables/commandline tools to help output
fixes #39
2017-01-05 04:55:14 +01:00
Tobi-wan Kenobi
d3fc5094f8 [modules/gpmdp] Make unit tests run through
* full_text needs to return a string *always*
* relax full_text check to also allow unicode results
2017-01-02 22:26:57 +01:00
Pavle Portic
0f1725982a [modules/gpmdp] Add Google play music desktop player support 2017-01-02 21:44:53 +01:00
Tobi-wan Kenobi
a705adf207 [modules/pulseaudio] Fix status extraction
With multiple devices, extracting mute status and volumes failed
(because the loop would continue even after it found the correct device)
2016-12-20 07:49:21 +01:00
Tobi-wan Kenobi
846d28714a [tests] Add tests for bumblebee.util
Add tests for the utility functions and fix a few embarrassing bugs in
the process.
2016-12-17 09:00:49 +01:00