My collection of plugins for the Qtile window manager.
git clone https://mcol.xyz/code/qtools
Log | Files | Refs | README

commit 4d5855043b6278b513a5c982903c510cf29b3daf
parent 7aeca15ddc1f2b26ffd68a01316bbd47e3156b14
Author: mcol <mcol@posteo.net>
Date:   Fri,  4 Sep 2020 22:42:41 +0100

import qtile and Popup from libqtile

Diffstat:
Mqtools/notification/notification.py | 28+++++++++++-----------------
1 file changed, 11 insertions(+), 17 deletions(-)

diff --git a/qtools/notification/notification.py b/qtools/notification/notification.py @@ -14,12 +14,11 @@ Example usage: """ -from libqtile import configurable, hook, images, pangocffi +from libqtile import configurable, hook, images, pangocffi, qtile from libqtile.lazy import lazy from libqtile.log_utils import logger from libqtile.notify import notifier - -from qtools import Popup +from libqtile.popup import Popup class Server(configurable.Configurable): @@ -100,13 +99,12 @@ class Server(configurable.Configurable): ('fullscreen', 'show', 'What to do when in fullscreen: show, hide, or queue.'), ('screen', 'focus', 'How to select a screen: focus, mouse, or an int.'), ] - capabilities = {'body', 'body-markup'} + capabilities = {'body', 'body-markup', 'actions'} # specification: https://developer.gnome.org/notification-spec/ def __init__(self, **config): configurable.Configurable.__init__(self, **config) self.add_defaults(Server.defaults) - self.qtile = None self._hidden = [] self._shown = [] self._queue = [] @@ -139,13 +137,11 @@ class Server(configurable.Configurable): if not isinstance(value, (tuple, list)): setattr(self, attr, (value,) * 3) - def configure(self, qtile): + def configure(self): """ This method needs to be called to set up the Server with the Qtile manager and create the required popup windows. """ - self.qtile = qtile - if self.horizontal_padding is None: self.horizontal_padding = self.font_size / 2 if self.vertical_padding is None: @@ -162,7 +158,7 @@ class Server(configurable.Configurable): popup_config[key] = value for win in range(self.max_windows): - popup = Popup(self.qtile, **popup_config) + popup = Popup(qtile, **popup_config) popup.win.handle_ButtonPress = self._buttonpress(popup) popup.replaces_id = None self._hidden.append(popup) @@ -188,7 +184,7 @@ class Server(configurable.Configurable): self._queue.append(notif) return - if self.qtile.current_window and self.qtile.current_window.fullscreen: + if qtile.current_window and qtile.current_window.fullscreen: if self.fullscreen != 'show': if self.fullscreen == 'queue': if self._unfullscreen not in hook.subscriptions: @@ -213,7 +209,7 @@ class Server(configurable.Configurable): """ Begin displaying of queue notifications after leaving fullscreen. """ - if not self.qtile.current_window.fullscreen: + if not qtile.current_window.fullscreen: hook.unsubscribe.float_change(self._unfullscreen) self._renotify() @@ -273,9 +269,7 @@ class Server(configurable.Configurable): elif timeout < 0: timeout = self.timeout[urgency] if timeout > 0: - self.qtile.call_later( - timeout / 1000, self._close, popup, self._current_id - ) + qtile.call_later(timeout / 1000, self._close, popup, self._current_id) def _get_text(self, notif): summary = '' @@ -292,11 +286,11 @@ class Server(configurable.Configurable): def _get_coordinates(self): x, y = self._positions[len(self._shown) - 1] if isinstance(self.screen, int): - screen = self.qtile.screens[self.screen] + screen = qtile.screens[self.screen] elif self.screen == 'focus': - screen = self.qtile.current_screen + screen = qtile.current_screen elif self.screen == 'mouse': - screen = self.qtile.find_screen(*self.qtile.mouse_position) + screen = qtile.find_screen(*qtile.mouse_position) return x + screen.x, y + screen.y def _close(self, popup, nid=None):