Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package bumblebee-status for
openSUSE:Factory checked in at 2021-02-26 21:59:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bumblebee-status (Old)
and /work/SRC/openSUSE:Factory/.bumblebee-status.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bumblebee-status"
Fri Feb 26 21:59:23 2021 rev:12 rq:875141 version:2.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/bumblebee-status/bumblebee-status.changes
2021-01-20 18:27:44.719535381 +0100
+++
/work/SRC/openSUSE:Factory/.bumblebee-status.new.2378/bumblebee-status.changes
2021-02-26 21:59:25.643819553 +0100
@@ -1,0 +2,15 @@
+Thu Feb 25 11:14:36 UTC 2021 - John Vandenberg <[email protected]>
+
+- Add explicit BR for pyusb to fix Leap builds
+- Add Suggests for all modules
+
+-------------------------------------------------------------------
+Thu Feb 25 10:16:30 UTC 2021 - Michael Vetter <[email protected]>
+
+- Update to 2.1.2:
+ * make configuration file name configurable (#764)
+ * Support for spotifyd (#752)
+ * add /usr/share/ as theme directory (#753)
+ * playerctl improvements
+
+-------------------------------------------------------------------
Old:
----
bumblebee-status-2.1.1.tar.gz
New:
----
bumblebee-status-2.1.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bumblebee-status.spec ++++++
--- /var/tmp/diff_new_pack.ggxtxh/_old 2021-02-26 21:59:26.263820098 +0100
+++ /var/tmp/diff_new_pack.ggxtxh/_new 2021-02-26 21:59:26.267820102 +0100
@@ -18,7 +18,7 @@
%define skip_python2 1
Name: bumblebee-status
-Version: 2.1.1
+Version: 2.1.2
Release: 0
Summary: Modular, theme-able status line generator for the i3 window
manager
License: MIT
@@ -45,6 +45,7 @@
BuildRequires: %{python_module python-dateutil}
BuildRequires: %{python_module python-yubico}
BuildRequires: %{python_module pytz}
+BuildRequires: %{python_module pyusb}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module simplejson}
BuildRequires: %{python_module suntime}
@@ -98,7 +99,6 @@
Recommends: iputils
# wireless-tools provides iwgetid, used by core module nic
Recommends: wireless-tools
-Recommends: bumblebee-status-theme-powerline = %{version}
Recommends: bumblebee-status-module-caffeine = %{version}
Recommends: bumblebee-status-module-indicator = %{version}
Recommends: bumblebee-status-module-layout = %{version}
@@ -110,8 +110,41 @@
Recommends: bumblebee-status-module-sun = %{version}
Recommends: bumblebee-status-module-title = %{version}
Recommends: bumblebee-status-module-xrandr = %{version}
+Recommends: bumblebee-status-theme-powerline = %{version}
+Suggests: bumblebee-status-module-alsa = %{version}
+Suggests: bumblebee-status-module-arandr = %{version}
+Suggests: bumblebee-status-module-brightness = %{version}
+Suggests: bumblebee-status-module-cmus = %{version}
+Suggests: bumblebee-status-module-deadbeef = %{version}
+Suggests: bumblebee-status-module-deezer = %{version}
+Suggests: bumblebee-status-module-docker-ps = %{version}
+Suggests: bumblebee-status-module-duns = %{version}
+Suggests: bumblebee-status-module-git = %{version}
+Suggests: bumblebee-status-module-hddtemp = %{version}
+Suggests: bumblebee-status-module-layout-xkbswitch = %{version}
+Suggests: bumblebee-status-module-libvirt = %{version}
+Suggests: bumblebee-status-module-mocp = %{version}
+Suggests: bumblebee-status-module-mpd = %{version}
+Suggests: bumblebee-status-module-notmuch = %{version}
+Suggests: bumblebee-status-module-nvidia-prime = %{version}
+Suggests: bumblebee-status-module-octoprint = %{version}
Suggests: bumblebee-status-module-progress = %{version}
-BuildArch: noarch
+Suggests: bumblebee-status-module-redshift = %{version}
+Suggests: bumblebee-status-module-smartstatus = %{version}
+Suggests: bumblebee-status-module-speedtest = %{version}
+Suggests: bumblebee-status-module-spotify = %{version}
+Suggests: bumblebee-status-module-taskwarrior = %{version}
+Suggests: bumblebee-status-module-vault = %{version}
+Suggests: bumblebee-status-module-vpn = %{version}
+Suggests: bumblebee-status-module-watson = %{version}
+Suggests: bumblebee-status-module-yubikey = %{version}
+BuildArch: noarch
+# SECTION missing dependencies
+#Suggests: bumblebee-status-module-nvidia = %{version}
+#Suggests: bumblebee-status-module-pihole = %{version}
+#Suggests: bumblebee-status-module-twmn = %{version}
+#Suggests: bumblebee-status-module-zfs = %{version}
+# /SECTION
%description
bumblebee-status is a modular, themeable status line generator for the i3
window manager.
++++++ bumblebee-status-2.1.1.tar.gz -> bumblebee-status-2.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.1.1/README.md
new/bumblebee-status-2.1.2/README.md
--- old/bumblebee-status-2.1.1/README.md 2020-12-07 10:00:20.000000000
+0100
+++ new/bumblebee-status-2.1.2/README.md 2021-02-20 14:49:45.000000000
+0100
@@ -8,6 +8,7 @@
[](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status)
[](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status/coverage)
[](https://codeclimate.com/github/tobi-wan-kenobi/bumblebee-status)
+
**Many, many thanks to all contributors! I am still amazed by and deeply
grateful for how many PRs this project gets.**
@@ -76,6 +77,8 @@
pip install --user bumblebee-status
```
+There is also a SlackBuild available here:
[slackbuilds:bumblebee-status](http://slackbuilds.org/repository/14.2/desktop/bumblebee-status/)
- many thanks to [@Tonus1](https://github.com/Tonus1)!
+
# Dependencies
[Available
modules](https://bumblebee-status.readthedocs.io/en/main/modules.html) lists
the dependencies (Python modules and external executables)
for each module. If you are not using a module, you don't need the
dependencies.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/core/config.py
new/bumblebee-status-2.1.2/bumblebee_status/core/config.py
--- old/bumblebee-status-2.1.1/bumblebee_status/core/config.py 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/core/config.py 2021-02-20
14:49:45.000000000 +0100
@@ -148,6 +148,13 @@
description="bumblebee-status is a modular, theme-able status line
generator for the i3 window manager.
https://github.com/tobi-wan-kenobi/bumblebee-status/wiki"
)
parser.add_argument(
+ "-c",
+ "--config-file",
+ action="store",
+ default=None,
+ help="Specify a configuration file to use"
+ )
+ parser.add_argument(
"-m", "--modules", nargs="+", action="append", default=[],
help=MODULE_HELP
)
parser.add_argument(
@@ -173,6 +180,13 @@
help="Specify a list of modules to hide when not in warning/error
state",
)
parser.add_argument(
+ "-e",
+ "--errorhide",
+ nargs="+",
+ default=[],
+ help="Specify a list of modules that are hidden when in state
error"
+ )
+ parser.add_argument(
"-d", "--debug", action="store_true", help="Add debug fields to i3
output"
)
parser.add_argument(
@@ -196,13 +210,18 @@
self.__args = parser.parse_args(args)
- for cfg in [
- "~/.bumblebee-status.conf",
- "~/.config/bumblebee-status.conf",
- "~/.config/bumblebee-status/config",
- ]:
+ if self.__args.config_file:
+ cfg = self.__args.config_file
cfg = os.path.expanduser(cfg)
self.load_config(cfg)
+ else:
+ for cfg in [
+ "~/.bumblebee-status.conf",
+ "~/.config/bumblebee-status.conf",
+ "~/.config/bumblebee-status/config",
+ ]:
+ cfg = os.path.expanduser(cfg)
+ self.load_config(cfg)
parameters = [item for sub in self.__args.parameters for item in sub]
for param in parameters:
@@ -302,14 +321,21 @@
def iconset(self):
return self.__args.iconset
- """Returns which modules should be hidden if their state is not
warning/critical
+ """Returns whether a module should be hidden if their state is not
warning/critical
- :return: list of modules to hide automatically
- :rtype: list of strings
+ :return: True if module should be hidden automatically, False otherwise
+ :rtype: bool
"""
def autohide(self, name):
return name in self.__args.autohide
+ """Returns which modules should be hidden if they are in state error
+
+ :return: returns True if name should be hidden, False otherwise
+ :rtype: bool
+ """
+ def errorhide(self, name):
+ return name in self.__args.errorhide
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/core/module.py
new/bumblebee-status-2.1.2/bumblebee_status/core/module.py
--- old/bumblebee-status-2.1.1/bumblebee_status/core/module.py 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/core/module.py 2021-02-20
14:49:45.000000000 +0100
@@ -17,7 +17,6 @@
log = logging.getLogger(__name__)
-
"""Loads a module by name
:param module_name: Name of the module to load
@@ -33,20 +32,30 @@
error = None
module_short, alias = (module_name.split(":") + [module_name])[0:2]
config.set("__alias__", alias)
- for namespace in ["core", "contrib"]:
+
+ try:
+ mod = importlib.import_module("modules.core.{}".format(module_short))
+ log.debug("importing {} from core".format(module_short))
+ return getattr(mod, "Module")(config, theme)
+ except ImportError as e:
try:
- mod = importlib.import_module(
- "modules.{}.{}".format(namespace, module_short)
- )
- log.debug(
- "importing {} from {}.{}".format(module_short, namespace,
module_short)
- )
+ log.warning("failed to import {} from core:
{}".format(module_short, e))
+ mod =
importlib.import_module("modules.contrib.{}".format(module_short))
+ log.debug("importing {} from contrib".format(module_short))
return getattr(mod, "Module")(config, theme)
except ImportError as e:
- log.debug("failed to import {}: {}".format(module_name, e))
- error = e
- log.fatal("failed to import {}: {}".format(module_name, error))
- return Error(config=config, module=module_name, error=error)
+ usermod =
os.path.expanduser("~/.config/bumblebee-status/modules/{}.py".format(module_short))
+ if os.path.exists(usermod):
+ try:
+ log.warning("failed to import {} from system:
{}".format(module_short, e))
+ mod =
importlib.machinery.SourceFileLoader("modules.{}".format(module_short),
+ os.path.expanduser(usermod)).load_module()
+ log.debug("importing {} from user".format(module_short))
+ return getattr(mod, "Module")(config, theme)
+ except ImportError as e:
+ log.fatal("import failed: {}".format(e))
+ log.fatal("failed to import {}".format(module_short))
+ return Error(config=config, module=module_name, error="unable to load
module")
class Module(core.input.Object):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/core/output.py
new/bumblebee-status-2.1.2/bumblebee_status/core/output.py
--- old/bumblebee-status-2.1.1/bumblebee_status/core/output.py 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/core/output.py 2021-02-20
14:49:45.000000000 +0100
@@ -216,6 +216,8 @@
continue
if module.hidden():
continue
+ if "critical" in widget.state() and
self.__config.errorhide(widget.module.name):
+ continue
blocks.extend(self.separator_block(module, widget))
blocks.append(self.__content_block(module, widget))
core.event.trigger("next-widget")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/core/theme.py
new/bumblebee-status-2.1.2/bumblebee_status/core/theme.py
--- old/bumblebee-status-2.1.1/bumblebee_status/core/theme.py 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/core/theme.py 2021-02-20
14:49:45.000000000 +0100
@@ -17,6 +17,7 @@
os.path.join(THEME_BASE_DIR, "../../themes"),
os.path.expanduser("~/.config/bumblebee-status/themes"),
os.path.expanduser("~/.local/share/bumblebee-status/themes"), # PIP
+ "/usr/share/bumblebee-status/themes",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/hddtemp.py
new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/hddtemp.py
--- old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/hddtemp.py
2020-12-07 10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/hddtemp.py
2021-02-20 14:49:45.000000000 +0100
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-"""Fetch hard drive temeperature data from a hddtemp daemon
+"""Fetch hard drive temperature data from a hddtemp daemon
that runs on localhost and default port (7634)
contributed by `somospocos <https://github.com/somospocos>`_ - many thanks!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/playerctl.py
new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/playerctl.py
--- old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/playerctl.py
2020-12-07 10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/playerctl.py
2021-02-20 14:49:45.000000000 +0100
@@ -5,57 +5,113 @@
Requires the following executable:
* playerctl
-contributed by `smitajit <https://github.com/smitajit>`_ - many thanks!
+Parameters:
+ * playerctl.format: Format string (defaults to '{artist} - {title}')
+ Available values are: {album}, {title}, {artist}, {trackNumber}
+ * playerctl.layout: Comma-separated list to change order of widgets
(defaults to song, previous, pause, next)
+ Widget names are: playerctl.song, playerctl.prev, playerctl.pause,
playerctl.next
+
+Parameters are inherited from `spotify` module, many thanks to its developers!
+contributed by `smitajit <https://github.com/smitajit>`_ - many thanks!
"""
import core.module
import core.widget
import core.input
import util.cli
+import util.format
+
+import logging
class Module(core.module.Module):
- def __init__(self,config , theme):
- widgets = [
- core.widget.Widget(name="playerctl.prev"),
- core.widget.Widget(name="playerctl.main",
full_text=self.description),
- core.widget.Widget(name="playerctl.next"),
- ]
- super(Module, self).__init__(config, theme , widgets)
-
- core.input.register(widgets[0], button=core.input.LEFT_MOUSE,
- cmd="playerctl previous")
- core.input.register(widgets[1], button=core.input.LEFT_MOUSE,
- cmd="playerctl play-pause")
- core.input.register(widgets[2], button=core.input.LEFT_MOUSE,
- cmd="playerctl next")
+ def __init__(self, config, theme):
+ super(Module, self).__init__(config, theme, [])
- self._status = None
- self._tags = None
+ self.background = True
- def description(self, widget):
- return self._tags if self._tags else "..."
+ self.__layout = util.format.aslist(
+ self.parameter(
+ "layout", "playerctl.prev, playerctl.song, playerctl.pause,
playerctl.next"
+ )
+ )
+
+ self.__song = ""
+ self.__cmd = "playerctl "
+ self.__format = self.parameter("format", "{artist} - {title}")
+
+ widget_map = {}
+ for widget_name in self.__layout:
+ widget = self.add_widget(name=widget_name)
+ if widget_name == "playerctl.prev":
+ widget_map[widget] = {
+ "button": core.input.LEFT_MOUSE,
+ "cmd": self.__cmd + "previous",
+ }
+ widget.set("state", "prev")
+ elif widget_name == "playerctl.pause":
+ widget_map[widget] = {
+ "button": core.input.LEFT_MOUSE,
+ "cmd": self.__cmd + "play-pause",
+ }
+ elif widget_name == "playerctl.next":
+ widget_map[widget] = {
+ "button": core.input.LEFT_MOUSE,
+ "cmd": self.__cmd + "next",
+ }
+ widget.set("state", "next")
+ elif widget_name == "playerctl.song":
+ widget_map[widget] = [
+ {
+ "button": core.input.LEFT_MOUSE,
+ "cmd": self.__cmd + "play-pause",
+ }, {
+ "button": core.input.WHEEL_UP,
+ "cmd": self.__cmd + "next",
+ }, {
+ "button": core.input.WHEEL_DOWN,
+ "cmd": self.__cmd + "previous",
+ }
+ ]
+ else:
+ raise KeyError(
+ "The playerctl module does not have a {widget_name!r}
widget".format(
+ widget_name=widget_name
+ )
+ )
+
+ for widget, callback_options in widget_map.items():
+ if isinstance(callback_options, dict):
+ core.input.register(widget, **callback_options)
def update(self):
- self._load_song()
-
- def state(self, widget):
- if widget.name == "playerctl.prev":
- return "prev"
- if widget.name == "playerctl.next":
- return "next"
- return self._status
-
- def _load_song(self):
- info = ""
try:
- status = util.cli.execute("playerctl status").lower()
- info = util.cli.execute("playerctl metadata xesam:title")
- except :
- self._status = None
- self._tags = None
- return
- self._status = status.split("\n")[0].lower()
- self._tags = info.split("\n")[0][:20]
+ self.__get_song()
-# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
+ for widget in self.widgets():
+ if widget.name == "playerctl.pause":
+ playback_status = str(util.cli.execute(self.__cmd +
"status")).strip()
+ if playback_status != "":
+ if playback_status == "Playing":
+ widget.set("state", "playing")
+ else:
+ widget.set("state", "paused")
+ elif widget.name == "playerctl.song":
+ widget.set("state", "song")
+ widget.full_text(self.__song)
+ except Exception as e:
+ logging.exception(e)
+ self.__song = ""
+
+ def __get_song(self):
+ album = str(util.cli.execute(self.__cmd + "metadata
xesam:album")).strip()
+ title = str(util.cli.execute(self.__cmd + "metadata
xesam:title")).strip()
+ artist = str(util.cli.execute(self.__cmd + "metadata
xesam:albumArtist")).strip()
+ track_number = str(util.cli.execute(self.__cmd + "metadata
xesam:trackNumber")).strip()
+
+ self.__song = self.__format.format(
+ album = album,
+ title = title,
+ artist = artist,
+ trackNumber = track_number
+ )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/shortcut.py
new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/shortcut.py
--- old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/shortcut.py
2020-12-07 10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/shortcut.py
2021-02-20 14:49:45.000000000 +0100
@@ -4,7 +4,7 @@
when clicking on it.
For more than one shortcut, the commands and labels are strings separated by
-a demiliter (; semicolon by default).
+a delimiter (; semicolon by default).
For example in order to create two shortcuts labeled A and B with commands
cmdA and cmdB you could do:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/spotify.py
new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/spotify.py
--- old/bumblebee-status-2.1.1/bumblebee_status/modules/contrib/spotify.py
2020-12-07 10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/modules/contrib/spotify.py
2021-02-20 14:49:45.000000000 +0100
@@ -10,6 +10,8 @@
Widget names are: spotify.song, spotify.prev, spotify.pause, spotify.next
* spotify.concise_controls: When enabled, allows spotify to be controlled
from just the spotify.song widget.
Concise controls are: Left Click: Toggle Pause; Wheel Up: Next;
Wheel Down; Previous.
+ * spotify.bus_name: String (defaults to `spotify`)
+ Available values: spotify, spotifyd
contributed by `yvesh <https://github.com/yvesh>`_ - many thanks!
@@ -35,6 +37,8 @@
self.background = True
+ self.__bus_name = self.parameter("bus_name", "spotify")
+
self.__layout = util.format.aslist(
self.parameter(
"layout",
"spotify.song,spotify.prev,spotify.pause,spotify.next",
@@ -46,7 +50,11 @@
self.__pause = ""
self.__format = self.parameter("format", "{artist} - {title}")
- self.__cmd = "dbus-send --session --type=method_call
--dest=org.mpris.MediaPlayer2.spotify \
+ if self.__bus_name == "spotifyd":
+ self.__cmd = "dbus-send --session --type=method_call
--dest=org.mpris.MediaPlayer2.spotifyd \
+ /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player."
+ else:
+ self.__cmd = "dbus-send --session --type=method_call
--dest=org.mpris.MediaPlayer2.spotify \
/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player."
widget_map = {}
@@ -104,9 +112,14 @@
def __get_song(self):
bus = self.__bus
- spotify = bus.get_object(
- "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2"
- )
+ if self.__bus_name == "spotifyd":
+ spotify = bus.get_object(
+ "org.mpris.MediaPlayer2.spotifyd", "/org/mpris/MediaPlayer2"
+ )
+ else:
+ spotify = bus.get_object(
+ "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2"
+ )
spotify_iface = dbus.Interface(spotify,
"org.freedesktop.DBus.Properties")
props = spotify_iface.Get("org.mpris.MediaPlayer2.Player", "Metadata")
self.__song = self.__format.format(
@@ -120,14 +133,20 @@
try:
self.__get_song()
+ if self.__bus_name == "spotifyd":
+ bus = self.__bus.get_object(
+ "org.mpris.MediaPlayer2.spotifyd",
"/org/mpris/MediaPlayer2"
+ )
+ else:
+ bus = self.__bus.get_object(
+ "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2"
+ )
+
for widget in self.widgets():
if widget.name == "spotify.pause":
playback_status = str(
dbus.Interface(
- self.__bus.get_object(
- "org.mpris.MediaPlayer2.spotify",
- "/org/mpris/MediaPlayer2",
- ),
+ bus,
"org.freedesktop.DBus.Properties",
).Get("org.mpris.MediaPlayer2.Player",
"PlaybackStatus")
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/bumblebee-status-2.1.1/bumblebee_status/modules/core/time.py
new/bumblebee-status-2.1.2/bumblebee_status/modules/core/time.py
--- old/bumblebee-status-2.1.1/bumblebee_status/modules/core/time.py
2020-12-07 10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/bumblebee_status/modules/core/time.py
2021-02-20 14:49:45.000000000 +0100
@@ -12,7 +12,6 @@
class Module(Module):
- @core.decorators.every(seconds=59) # ensures one update per minute
def __init__(self, config, theme):
super().__init__(config, theme)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.1.1/docs/development/module.rst
new/bumblebee-status-2.1.2/docs/development/module.rst
--- old/bumblebee-status-2.1.1/docs/development/module.rst 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/docs/development/module.rst 2021-02-20
14:49:45.000000000 +0100
@@ -11,6 +11,7 @@
``bumblebee-status`` (i.e.??a module called
``bumblebee_status/modules/contrib/test.py`` will be loaded using
``bumblebee-status -m test``)
+- Alternatively, you can put your module in
``~/.config/bumblebee-status/modules/``
- The module name must follow the `Python Naming Conventions
<https://www.python.org/dev/peps/pep-0008/#package-and-module-names>`_
- See below for how to actually write the module
- Test (run ``bumblebee-status`` in the CLI)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.1.1/docs/features.rst
new/bumblebee-status-2.1.2/docs/features.rst
--- old/bumblebee-status-2.1.1/docs/features.rst 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/docs/features.rst 2021-02-20
14:49:45.000000000 +0100
@@ -1,6 +1,25 @@
Advanced usage
===========================
+Intervals
+---------
+
+Some modules define their own update intervals (e.g. most modules that query
+an online service), such as to not cause a storm of "once every second"
queries.
+
+For such modules, the "global" interval defined via the ``interval`` parameter
effectively defines the
+highest possible "resolution". If you have a global interval of 10s, for
example,
+any other module can update at 10s, 20s, 30s, etc., but not every 25s. The
status
+bar will internally always align to the next future time slot.
+
+The update interval can also be changed on a per-module basis, like
+this (overriding the default module interval indicated above):
+
+.. code-block:: bash
+
+ $ ./bumblebee-status -m cpu memory -p cpu.interval=5s memory.interval=1m
+
+
Events
------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.1.1/docs/introduction.rst
new/bumblebee-status-2.1.2/docs/introduction.rst
--- old/bumblebee-status-2.1.1/docs/introduction.rst 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/docs/introduction.rst 2021-02-20
14:49:45.000000000 +0100
@@ -19,6 +19,9 @@
# will install bumblebee-status into ~/.local/bin/bumblebee-status
pip install --user bumblebee-status
+
+There is also a SlackBuild available here:
[slackbuilds:bumblebee-status](http://slackbuilds.org/repository/14.2/desktop/bumblebee-status/)
- many thanks to [@Tonus1](https://github.com/Tonus1)!
+
Dependencies
------------
@@ -56,12 +59,15 @@
$ ./bumblebee-status -m <list of modules> -p interval=<interval in seconds>
-The update interval can also be changed on a per-module basis, like
-this:
+The update interval is the global "refresh" interval of the modules (i.e. how
often
+the bar will be updated with new data). The default interval is one second. It
is
+possible to use suffixes such as "m" (for minutes), or "h" for hours (e.g.
+``-p interval=5m`` to update once every 5 minutes.
-.. code-block:: bash
+Note that some modules define their own intervals (e.g. most modules that query
+an online service), such as to not cause a storm of "once every second"
queries.
- $ ./bumblebee-status -m cpu memory -p cpu.interval=5s memory.interval=1m
+For more details on that, please refer to :doc:`features`.
All modules can be given ???aliases??? using ``<module name>:<alias>``, by
which they can be parametrized, for example:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.1.1/docs/modules.rst
new/bumblebee-status-2.1.2/docs/modules.rst
--- old/bumblebee-status-2.1.1/docs/modules.rst 2020-12-07 10:00:20.000000000
+0100
+++ new/bumblebee-status-2.1.2/docs/modules.rst 2021-02-20 14:49:45.000000000
+0100
@@ -63,6 +63,7 @@
* disk.path: Path to calculate disk usage from (defaults to /)
* disk.open: Which application / file manager to launch (default xdg-open)
* disk.format: Format string, tags {path}, {used}, {left}, {size} and
{percent} (defaults to '{path} {used}/{size} ({percent:05.02f}%)')
+ * disk.system: Unit system to use - SI (KB, MB, ...) or IEC (KiB, MiB,
...) (defaults to 'IEC')
.. image:: ../screenshots/disk.png
@@ -620,8 +621,6 @@
Left click toggles pause, scroll up skips the current song, scroll
down returns to the previous song.
-Requires the following library:
- * subprocess
Parameters:
* deadbeef.format: Format string (defaults to '{artist} - {title}')
Available values are: {artist}, {title}, {album}, {length},
@@ -772,7 +771,7 @@
hddtemp
~~~~~~~
-Fetch hard drive temeperature data from a hddtemp daemon
+Fetch hard drive temperature data from a hddtemp daemon
that runs on localhost and default port (7634)
contributed by `somospocos <https://github.com/somospocos>`_ - many thanks!
@@ -1051,6 +1050,14 @@
Requires the following executable:
* playerctl
+Parameters:
+ * playerctl.format: Format string (defaults to '{artist} - {title}')
+ Available values are: {album}, {title}, {artist}, {trackNumber}
+ * playerctl.layout: Comma-separated list to change order of widgets
(defaults to song, previous, pause, next)
+ Widget names are: playerctl.song, playerctl.prev, playerctl.pause,
playerctl.next
+
+Parameters are inherited from `spotify` module, many thanks to its developers!
+
contributed by `smitajit <https://github.com/smitajit>`_ - many thanks!
.. image:: ../screenshots/playerctl.png
@@ -1225,7 +1232,7 @@
when clicking on it.
For more than one shortcut, the commands and labels are strings separated by
-a demiliter (; semicolon by default).
+a delimiter (; semicolon by default).
For example in order to create two shortcuts labeled A and B with commands
cmdA and cmdB you could do:
@@ -1265,7 +1272,6 @@
Requires the following libraries:
* requests
- * regex
Parameters:
* spaceapi.url: String representation of the api endpoint
@@ -1298,6 +1304,8 @@
Widget names are: spotify.song, spotify.prev, spotify.pause, spotify.next
* spotify.concise_controls: When enabled, allows spotify to be controlled
from just the spotify.song widget.
Concise controls are: Left Click: Toggle Pause; Wheel Up: Next;
Wheel Down; Previous.
+ * spotify.bus_name: String (defaults to `spotify`)
+ Available values: spotify, spotifyd
contributed by `yvesh <https://github.com/yvesh>`_ - many thanks!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bumblebee-status-2.1.1/tests/core/test_module.py
new/bumblebee-status-2.1.2/tests/core/test_module.py
--- old/bumblebee-status-2.1.1/tests/core/test_module.py 2020-12-07
10:00:20.000000000 +0100
+++ new/bumblebee-status-2.1.2/tests/core/test_module.py 2021-02-20
14:49:45.000000000 +0100
@@ -55,7 +55,8 @@
module = core.module.load(module_name="test", config=config)
assert module.__class__.__name__ == "Error"
- assert module.widget().full_text() == "test: some-error"
+ assert module.widget().full_text() == "test: some-error" or \
+ module.widget().full_text() == "test: unable to load module"
def test_loadvalid_module():