Source code for libqtile.widget.generic_poll_text

from libqtile.utils import acall_process
from libqtile.widget import base


[docs] class GenPollText(base.BackgroundPoll): """A generic text widget that polls using poll function to get the text Widget requirements: aiohttp_. .. _aiohttp: https://pypi.org/project/aiohttp/ """ defaults = [ ("func", None, "Poll Function"), ] def __init__(self, **config): base.BackgroundPoll.__init__(self, "", **config) self.add_defaults(GenPollText.defaults) def poll(self): if not self.func: return "You need a poll function" return self.func()
[docs] class GenPollCommand(base.BackgroundPoll): """A generic text widget to display output from scripts or shell commands""" defaults = [ ("update_interval", 60, "update time in seconds"), ("cmd", None, "command line as a string or list of arguments to execute"), ("shell", False, "run command through shell to enable piping and shell expansion"), ("parse", None, "Function to parse output of command"), ] def __init__(self, **config): base.BackgroundPoll.__init__(self, "", **config) self.add_defaults(GenPollCommand.defaults) def _configure(self, qtile, bar): base.BackgroundPoll._configure(self, qtile, bar) self.add_callbacks({"Button1": self.force_update}) async def apoll(self): out = await acall_process(self.cmd, self.shell) if self.parse: return self.parse(out) return out.strip()