diff --git a/bumblebee/modules/disk.py b/bumblebee/modules/disk.py index aee40ac..0ed4895 100644 --- a/bumblebee/modules/disk.py +++ b/bumblebee/modules/disk.py @@ -6,6 +6,10 @@ Parameters: * disk.warning: Warning threshold in % of disk space (defaults to 80%) * disk.critical: Critical threshold in % of disk space (defaults ot 90%) * disk.path: Path to calculate disk usage from (defaults to /) + * disk.open: Which application / file manager to launch (default xdg-open) + * disk.showUsed: Show used space (defaults to yes) + * disk.showSize: Show total size (defaults to yes) + * disk.showPercent: Show usage percentage (defaults to yes) """ import os @@ -20,18 +24,41 @@ class Module(bumblebee.engine.Module): bumblebee.output.Widget(full_text=self.diskspace) ) self._path = self.parameter("path", "/") + self._sused = self.parameter("showUsed", "yes") + self._ssize = self.parameter("showSize", "yes") + self._spercent = self.parameter("showPercent", "yes") + self._app = self.parameter("open", "xdg-open") self._perc = 0 self._used = 0 self._size = 0 engine.input.register_callback(self, button=bumblebee.input.LEFT_MOUSE, - cmd="nautilus {}".format(self._path)) + cmd="{} {}".format(self._app, + self._path)) def diskspace(self, widget): - return "{} {}/{} ({:05.02f}%)".format(self._path, - bumblebee.util.bytefmt(self._used), - bumblebee.util.bytefmt(self._size), self._perc - ) + if self._sused == "yes": + used_str = bumblebee.util.bytefmt(self._used) + else: + used_str = "" + if self._ssize == "yes": + size_str = bumblebee.util.bytefmt(self._size) + else: + size_str = "" + if self._spercent == "yes": + percent_str = self._perc + else: + percent_str = "" + if self._sused != "yes" or self._ssize != "yes": + separator = "" + else: + separator = "/" + + return "{} {}{}{} ({:05.02f}%)".format(self._path, + used_str, + separator, + size_str, + percent_str) def update(self, widgets): st = os.statvfs(self._path)