diff --git a/docs/source/overview.rst b/docs/source/overview.rst index ef930b56..95014013 100644 --- a/docs/source/overview.rst +++ b/docs/source/overview.rst @@ -179,3 +179,23 @@ Then add the ``powerline_widget`` to your ``wibox``: .. code-block:: lua right_layout:add(powerline_widget) + +Qtile widget +------------ + +Add the following to your :file:`~/.config/qtile/config.py`: + +.. code-block:: python + + from powerline.bindings.qtile.widget import Powerline + + screens = [ + Screen( + top=bar.Bar([ + # ... + Powerline(timeout=2), + # ... + ], + ), + ), + ] diff --git a/powerline/bindings/qtile/__init__.py b/powerline/bindings/qtile/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/powerline/bindings/qtile/widget.py b/powerline/bindings/qtile/widget.py new file mode 100644 index 00000000..c241793c --- /dev/null +++ b/powerline/bindings/qtile/widget.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- + +from libqtile import bar +from libqtile.widget import base + +from powerline.core import Powerline as PowerlineCore + + +class Powerline(base._TextBox): + def __init__(self, timeout=2, text=" ", width=bar.CALCULATED, **config): + base._TextBox.__init__(self, text, width, **config) + self.timeout_add(timeout, self.update) + self.powerline = PowerlineCore(ext='wm', renderer_module='pango_markup') + + def update(self): + self.text = self.powerline.renderer.render(side='right') + self.bar.draw() + + def cmd_update(self, text): + self.update(text) + + def cmd_get(self): + return self.text + + def _configure(self, qtile, bar): + base._TextBox._configure(self, qtile, bar) + self.layout = self.drawer.textlayout( + self.text, + self.foreground, + self.font, + self.fontsize, + self.fontshadow, + markup=True)