From 7b07ef538a4800ced196b122044c51810514a7d1 Mon Sep 17 00:00:00 2001 From: Tobias Witek Date: Sat, 19 Jan 2019 14:51:48 +0100 Subject: [PATCH] [core] Add "autohide" for distraction-free programming 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. --- bumblebee/config.py | 5 +++++ bumblebee/output.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/bumblebee/config.py b/bumblebee/config.py index 9f6384a..68bd796 100644 --- a/bumblebee/config.py +++ b/bumblebee/config.py @@ -63,6 +63,8 @@ def create_parser(): help="Location of the debug log file") parser.add_argument("-i", "--iconset", default="auto", help="Specify the name of an iconset to use (overrides theme default)") + parser.add_argument("-a", "--autohide", nargs="+", default=[], + help="Specify a list of modules to hide when not in warning/error state") return parser @@ -108,4 +110,7 @@ class Config(bumblebee.store.Store): def logfile(self): return os.path.expanduser(self._args.logfile) + def autohide(self): + return self._args.autohide + # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 diff --git a/bumblebee/output.py b/bumblebee/output.py index 35c1895..5c6ff92 100644 --- a/bumblebee/output.py +++ b/bumblebee/output.py @@ -122,6 +122,9 @@ class I3BarOutput(object): full_text = widget.full_text() if widget.get_module() and widget.get_module().hidden(): return + if widget.get_module() and widget.get_module().name in self._config.autohide(): + if not any(state in widget.state() for state in ["warning", "critical"]): + return padding = self._theme.padding(widget) prefix = self._theme.prefix(widget, padding) suffix = self._theme.suffix(widget, padding)