def setup_listener(self) -> None:
        """Setup a listener for the given qtile instance"""
        logger.debug("Adding io watch")
        # destroy the old one and load a new one with config settings
        self._cursor_manager.destroy()
        self._cursor_manager = XCursorManager(
            self.qtile.config.wl_xcursor_theme, self.qtile.config.wl_xcursor_size
        )
        self.cursor.set_xcursor(self._cursor_manager, "default")
        self.fd = lib.wl_event_loop_get_fd(self.event_loop._ptr)
        if self.fd:
            asyncio.get_running_loop().add_reader(self.fd, self._poll)
        else:
            raise RuntimeError("Failed to get Wayland event loop file descriptor.")
Setup a listener for the given qtile instance
libqtile/backend/wayland/core.py