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
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
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!
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.
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
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.
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
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>
This ArgumentException was caused by me failing to rename one occurence
of a parameter when refactoring code. This went under my radar as the
API I'm usually testing against, was offline at that time, too. So I
expceted to see an Error. Just not this one.
Well, the fix comes late, but better late than never :)
Signed-off-by: Tobias Manske <tobias.manske@mailbox.org>
When padding a widget, instead of using the "min_width" field of the
i3bar protocol, which seems to "swallow" click events, perform a custom
padding by simply extending the right-hand side with spaces.
fixes#334
Some laptops, such as Dells, may display an unknown charge state when
the battery is attached to a docking station, but discharging (because
of configuration settings for longevity of the battery).
Show that nicer.
Require user to explicitly enable overwriting of i3 config files before
starting to automatically assemble the i3 config from a template and a
set of display-related config files.
fixes#322
sensors -j give JSON output, which is much easier to parse than
raw output.
Use this, together with the "path" parameter, to allow robust reading of
sensor values.
fixes#308
If the theme name provided by the user is a file, load the theme from
there.
Note: This change automatically enables a theme to load iconsets from a
file name, instead of using a iconset name.
fixes#319
Regular i3bar events *can* contain the character [, so a better
mechanism for detecting the initial opening [ is required. For now, do a
minimal change that requires the line to *start* with [. This should
never be the case for i3bar events, which are always JSON objects.
fixes#318
This was causing an ocassional crash in bumblebee/engine.py threshold_state
when checkupdates fails, perhaps due to wifi not being up yet.
For me this showed up regularly on login.
The statusbar was freezing for several minutes if it could not reach
the API endpoint. This is because of a missing timeout statement in
the call to python.requests's get function.
- Added spaceapi.timeout parameter
- Added timeout to requests
Signed-off-by: Tobias Manske <tobias.manske@mailbox.org>
SpaceAPI is a API for hackerspaces. Hackerspaces announce their state
and location using a predefined json framework. Users can use this data
to make sure the space is opened before they decide to go there.
The module was created because the author felt the need to know if his
hometown's space was open or not.
Signed-off-by: Tobias Manske <tobias.manske@mailbox.org>
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/)
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
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
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
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
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
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
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
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
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
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
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.
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 :)
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
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
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.
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
* 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.
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