Add active-task display and scrolling
This adds an option allowing you to specify "taskwarrior.show_active=true" in your bar configuration and will display the current, active task id and description on the status bar, but will show the number of pending tasks if one isn't active. This also adds the scrolling decorator, since task descriptions can be quite long.
This commit is contained in:
parent
910b9a8963
commit
754707379a
1 changed files with 12 additions and 2 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue