diff --git a/bumblebee_status/modules/contrib/taskwarrior.py b/bumblebee_status/modules/contrib/taskwarrior.py index 0d540b5..7bc4c39 100644 --- a/bumblebee_status/modules/contrib/taskwarrior.py +++ b/bumblebee_status/modules/contrib/taskwarrior.py @@ -27,12 +27,22 @@ class Module(core.module.Module): """Return a string with the number of pending tasks from TaskWarrior.""" try: taskrc = self.parameter("taskrc", "~/.taskrc") + show_active = self.parameter("show_active", False) w = TaskWarrior(config_filename=taskrc) - pending_tasks = w.filter_tasks({"status": "pending"}) - self.__pending_tasks = str(len(pending_tasks)) + active_tasks = ( + w.filter_tasks({"start.any": "", "status": "pending"}) or None + ) + if show_active and active_tasks: + reporting_tasks = ( + f"{active_tasks[0]['id']} - {active_tasks[0]['description']}" + ) + else: + reporting_tasks = len(w.filter_tasks({"status": "pending"})) + self.__pending_tasks = reporting_tasks except: self.__pending_tasks = "n/a" + @core.decorators.scrollable def output(self, _): """Format the task counter to output in bumblebee.""" return "{}".format(self.__pending_tasks)