def handle_activation_request(self, focus_on_window_activation: str) -> None:
        """Respond to XDG activation requests targeting this window."""
        assert self.qtile is not None

        if self.group is None:
            # Likely still pending, ignore this request.
            return

        if focus_on_window_activation == "focus":
            logger.debug("Focusing window (focus_on_window_activation='focus')")
            self.qtile.current_screen.set_group(self.group)
            self.group.focus(self)

        elif focus_on_window_activation == "smart":
            if not self.group.screen:
                logger.debug("Ignoring focus request (focus_on_window_activation='smart')")
            elif self.group.screen == self.qtile.current_screen:
                logger.debug("Focusing window (focus_on_window_activation='smart')")
                self.qtile.current_screen.set_group(self.group)
                self.group.focus(self)
            else:
                self._urgent = True
                hook.fire("client_urgent_hint_changed", self)

        elif focus_on_window_activation == "urgent":
            self._urgent = True
            hook.fire("client_urgent_hint_changed", self)
Respond to XDG activation requests targeting this window.
libqtile/backend/wayland/xdgwindow.py