diff -pruN 6.3.4-1/.gitlab-ci.yml 6.4.4-0ubuntu1/.gitlab-ci.yml
--- 6.3.4-1/.gitlab-ci.yml	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/.gitlab-ci.yml	2025-08-05 10:51:53.000000000 +0000
@@ -7,3 +7,6 @@ include:
       - /gitlab-templates/reuse-lint.yml
       - /gitlab-templates/linux-qt6.yml
       - /gitlab-templates/freebsd-qt6.yml
+      - /gitlab-templates/xml-lint.yml
+      - /gitlab-templates/yaml-lint.yml
+      - /gitlab-templates/linux-qt6-next.yml
diff -pruN 6.3.4-1/.kde-ci.yml 6.4.4-0ubuntu1/.kde-ci.yml
--- 6.3.4-1/.kde-ci.yml	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/.kde-ci.yml	2025-08-05 10:51:53.000000000 +0000
@@ -2,11 +2,11 @@
 # SPDX-License-Identifier: CC0-1.0
 
 Dependencies:
-- 'on': ['@all']
-  'require':
+ - 'on': ['@all']
+   'require':
     'frameworks/extra-cmake-modules': '@latest-kf6'
     'third-party/wayland': '@latest'
     'third-party/wayland-protocols': '@latest'
 
 Options:
-  require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
+ require-passing-tests-on: ['Linux', 'FreeBSD', 'Windows']
diff -pruN 6.3.4-1/CMakeLists.txt 6.4.4-0ubuntu1/CMakeLists.txt
--- 6.3.4-1/CMakeLists.txt	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/CMakeLists.txt	2025-08-05 10:51:53.000000000 +0000
@@ -4,13 +4,13 @@
 cmake_minimum_required(VERSION 3.16)
 
 project(layershellqt)
-set(PROJECT_VERSION "6.3.4")
+set(PROJECT_VERSION "6.4.4")
 set(PROJECT_VERSION_MAJOR 6)
 
 set(CMAKE_C_STANDARD 99)
 
-set(QT_MIN_VERSION "6.7.0")
-set(KF6_MIN_VERSION "6.10.0")
+set(QT_MIN_VERSION "6.8.0")
+set(KF6_MIN_VERSION "6.14.0")
 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
 
 set(CMAKE_CXX_STANDARD 20)
@@ -34,6 +34,11 @@ include(ECMQmlModule)
 include(KDEGitCommitHooks)
 
 find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS WaylandClient Qml)
+
+if (Qt6WaylandClient_VERSION VERSION_GREATER_EQUAL "6.10.0")
+    find_package(Qt6WaylandClientPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
+endif()
+
 find_package(WaylandScanner REQUIRED)
 find_package(Wayland 1.3 COMPONENTS Client Server)
 find_package(WaylandProtocols REQUIRED)
diff -pruN 6.3.4-1/debian/changelog 6.4.4-0ubuntu1/debian/changelog
--- 6.3.4-1/debian/changelog	2025-04-02 22:58:27.000000000 +0000
+++ 6.4.4-0ubuntu1/debian/changelog	2025-08-12 16:29:14.000000000 +0000
@@ -1,9 +1,41 @@
-layer-shell-qt (6.3.4-1) unstable; urgency=medium
+layer-shell-qt (6.4.4-0ubuntu1) questing; urgency=medium
 
-  [ Patrick Franz ]
-  * New upstream release (6.3.4).
+  * New upstream release (6.4.4)
+  * Update symbols from build logs.
 
- -- Patrick Franz <deltaone@debian.org>  Thu, 03 Apr 2025 00:58:27 +0200
+ -- Rik Mills <rikmills@kde.org>  Tue, 12 Aug 2025 17:29:14 +0100
+
+layer-shell-qt (6.3.5-0ubuntu1) questing; urgency=medium
+
+  * New upstream release (6.3.5)
+
+ -- Rik Mills <rikmills@kde.org>  Tue, 06 May 2025 21:34:21 +0100
+
+layer-shell-qt (6.3.4-0ubuntu1) plucky; urgency=medium
+
+  * New upstream release (6.3.4)
+
+ -- Rik Mills <rikmills@kde.org>  Wed, 02 Apr 2025 08:56:07 +0100
+
+layer-shell-qt (6.3.3-0ubuntu2) plucky; urgency=medium
+
+  * No-change rebuild for Qt 6.8.3 (LP: #2103945).
+
+ -- Simon Quigley <tsimonq2@ubuntu.com>  Sat, 29 Mar 2025 15:06:21 -0500
+
+layer-shell-qt (6.3.3-0ubuntu1) plucky; urgency=medium
+
+  * New upstream release (6.3.3)
+
+ -- Rik Mills <rikmills@kde.org>  Tue, 11 Mar 2025 15:20:13 +0000
+
+layer-shell-qt (6.3.2-2ubuntu1) plucky; urgency=medium
+
+  * Merge from Debian unstable. Remaining changes:
+    - Kubuntu Vcs and maintainer fields.
+    - Keep our symbols file.
+
+ -- Rik Mills <rikmills@kde.org>  Sun, 02 Mar 2025 16:51:04 +0000
 
 layer-shell-qt (6.3.2-2) unstable; urgency=medium
 
diff -pruN 6.3.4-1/debian/control 6.4.4-0ubuntu1/debian/control
--- 6.3.4-1/debian/control	2025-04-02 19:22:37.000000000 +0000
+++ 6.4.4-0ubuntu1/debian/control	2025-08-12 16:29:14.000000000 +0000
@@ -1,29 +1,30 @@
 Source: layer-shell-qt
 Section: kde
 Priority: optional
-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
+Maintainer: Kubuntu Developers <kubuntu-devel@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
 Uploaders: Aurélien COUDERC <coucouf@debian.org>,
            Patrick Franz <deltaone@debian.org>,
-Build-Depends: debhelper-compat (= 13),
+Build-Depends: cmake (>= 3.16~),
+               debhelper-compat (= 13),
                dh-sequence-kf6,
                dh-sequence-pkgkde-symbolshelper,
                dh-sequence-qmldeps,
-               cmake (>= 3.16~),
-               extra-cmake-modules (>= 6.10.0~),
+               extra-cmake-modules (>= 6.14.0~),
                libwayland-bin,
                libwayland-dev (>= 1.3~),
                libxkbcommon-dev,
                pkgconf,
-               qt6-base-dev (>= 6.6.0+dfsg~),
-               qt6-base-private-dev (>= 6.6.0+dfsg~),
-               qt6-declarative-dev (>= 6.7.0~),
-               qt6-wayland-dev (>= 6.7.0~),
-               qt6-wayland-private-dev (>= 6.6.0~),
+               qt6-base-dev (>= 6.8.0+dfsg~),
+               qt6-base-private-dev (>= 6.8.0+dfsg~),
+               qt6-declarative-dev (>= 6.8.0~),
+               qt6-wayland-dev (>= 6.8.0~),
+               qt6-wayland-private-dev (>= 6.8.0~),
                wayland-protocols,
 Standards-Version: 4.7.2
 Homepage: http://www.kde.org/
-Vcs-Browser: https://salsa.debian.org/qt-kde-team/kde/layer-shell-qt
-Vcs-Git: https://salsa.debian.org/qt-kde-team/kde/layer-shell-qt.git
+Vcs-Browser: https://code.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/layer-shell-qt
+Vcs-Git: https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/layer-shell-qt
 Rules-Requires-Root: no
 
 Package: layer-shell-qt
@@ -40,7 +41,7 @@ Architecture: any
 Section: libdevel
 Depends: liblayershellqtinterface6 (= ${binary:Version}),
          qml6-module-org-kde-layershell (= ${binary:Version}),
-         qt6-base-dev (>= 6.6.0+dfsg~),
+         qt6-base-dev (>= 6.8.0+dfsg~),
          ${misc:Depends},
 Description: use the Wayland wl-layer-shell protocol - development files
  Qt component to allow applications to make use of the Wayland
diff -pruN 6.3.4-1/debian/liblayershellqtinterface6.symbols 6.4.4-0ubuntu1/debian/liblayershellqtinterface6.symbols
--- 6.3.4-1/debian/liblayershellqtinterface6.symbols	2025-03-02 16:50:05.000000000 +0000
+++ 6.4.4-0ubuntu1/debian/liblayershellqtinterface6.symbols	2025-08-12 16:29:14.000000000 +0000
@@ -1,4 +1,4 @@
-# SymbolsHelper-Confirmed: 6.1.0 amd64
+# SymbolsHelper-Confirmed: 6.3.80 amd64 arm64 armhf ppc64el riscv64 s390x
 libLayerShellQtInterface.so.6 liblayershellqtinterface6 #MINVER#
 * Build-Depends-Package: liblayershellqtinterface-dev
  _ZN12LayerShellQt20QWaylandLayerSurface10sendExposeEv@Base 6.1.0
@@ -39,9 +39,11 @@ libLayerShellQtInterface.so.6 liblayersh
  _ZN12LayerShellQt6Window12layerChangedEv@Base 6.1.0
  _ZN12LayerShellQt6Window14anchorsChangedEv@Base 6.1.0
  _ZN12LayerShellQt6Window14marginsChangedEv@Base 6.1.0
+ _ZN12LayerShellQt6Window14setDesiredSizeERK5QSize@Base 6.3.80
  _ZN12LayerShellQt6Window16setExclusiveEdgeENS0_6AnchorE@Base 6.1.0
  _ZN12LayerShellQt6Window16setExclusiveZoneEi@Base 6.1.0
  _ZN12LayerShellQt6Window16staticMetaObjectE@Base 6.1.0
+ _ZN12LayerShellQt6Window18desiredSizeChangedEv@Base 6.3.80
  _ZN12LayerShellQt6Window19setCloseOnDismissedEb@Base 6.1.0
  _ZN12LayerShellQt6Window20exclusionZoneChangedEv@Base 6.1.0
  _ZN12LayerShellQt6Window20exclusiveEdgeChangedEv@Base 6.1.0
@@ -59,6 +61,7 @@ libLayerShellQtInterface.so.6 liblayersh
  _ZN12LayerShellQt6WindowD2Ev@Base 6.1.0
  _ZNK12LayerShellQt20QWaylandLayerSurface10metaObjectEv@Base 6.1.0
  _ZNK12LayerShellQt6Window10metaObjectEv@Base 6.1.0
+ _ZNK12LayerShellQt6Window11desiredSizeEv@Base 6.3.80
  _ZNK12LayerShellQt6Window13exclusionZoneEv@Base 6.1.0
  _ZNK12LayerShellQt6Window13exclusiveEdgeEv@Base 6.1.0
  _ZNK12LayerShellQt6Window16closeOnDismissedEv@Base 6.1.0
@@ -82,8 +85,8 @@ libLayerShellQtInterface.so.6 liblayersh
  _ZTVN12LayerShellQt20QWaylandLayerSurfaceE@Base 6.1.0
  _ZTVN12LayerShellQt29QWaylandLayerShellIntegrationE@Base 6.1.0
  _ZTVN12LayerShellQt6WindowE@Base 6.1.0
- _ZTVN15QtWaylandClient24QWaylandShellIntegrationE@Base 6.1.0
- _ZTVN15QtWaylandClient32QWaylandShellIntegrationTemplateIN12LayerShellQt29QWaylandLayerShellIntegrationEEE@Base 6.1.0
+ (optional|arch=armhf riscv64)_ZTVN15QtWaylandClient24QWaylandShellIntegrationE@Base 6.1.0
+ (optional|arch=armhf riscv64)_ZTVN15QtWaylandClient32QWaylandShellIntegrationTemplateIN12LayerShellQt29QWaylandLayerShellIntegrationEEE@Base 6.1.0
  (c++)"non-virtual thunk to LayerShellQt::QWaylandLayerShellIntegration::~QWaylandLayerShellIntegration()@Base" 6.1.0
  (c++)"non-virtual thunk to LayerShellQt::QWaylandLayerSurface::zwlr_layer_surface_v1_closed()@Base" 6.1.0
  (c++)"non-virtual thunk to LayerShellQt::QWaylandLayerSurface::zwlr_layer_surface_v1_configure(unsigned int, unsigned int, unsigned int)@Base" 6.1.0
diff -pruN 6.3.4-1/metainfo.yaml 6.4.4-0ubuntu1/metainfo.yaml
--- 6.3.4-1/metainfo.yaml	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/metainfo.yaml	2025-08-05 10:51:53.000000000 +0000
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: CC0-1.0
 
 maintainer:
-- vladz
+    - vladz
 description: Layer Shell Qt
 platforms:
     - name: Linux
diff -pruN 6.3.4-1/src/interfaces/window.cpp 6.4.4-0ubuntu1/src/interfaces/window.cpp
--- 6.3.4-1/src/interfaces/window.cpp	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/src/interfaces/window.cpp	2025-08-05 10:51:53.000000000 +0000
@@ -32,6 +32,7 @@ public:
     Window::KeyboardInteractivity keyboardInteractivity = Window::KeyboardInteractivityOnDemand;
     Window::Layer layer = Window::LayerTop;
     QMargins margins;
+    QSize desiredSize = QSize(0, 0);
     Window::ScreenConfiguration screenConfiguration = Window::ScreenFromQWindow;
     bool closeOnDismissed = true;
 };
@@ -97,6 +98,21 @@ QMargins Window::margins() const
     return d->margins;
 }
 
+void Window::setDesiredSize(const QSize &size)
+{
+    if (size == d->desiredSize) {
+        return;
+    }
+
+    d->desiredSize = size;
+    Q_EMIT desiredSizeChanged();
+}
+
+QSize Window::desiredSize() const
+{
+    return d->desiredSize;
+}
+
 void Window::setKeyboardInteractivity(KeyboardInteractivity interactivity)
 {
     if (d->keyboardInteractivity != interactivity) {
diff -pruN 6.3.4-1/src/interfaces/window.h 6.4.4-0ubuntu1/src/interfaces/window.h
--- 6.3.4-1/src/interfaces/window.h	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/src/interfaces/window.h	2025-08-05 10:51:53.000000000 +0000
@@ -86,6 +86,9 @@ public:
     void setMargins(const QMargins &margins);
     QMargins margins() const;
 
+    void setDesiredSize(const QSize &size);
+    QSize desiredSize() const;
+
     void setKeyboardInteractivity(KeyboardInteractivity interactivity);
     KeyboardInteractivity keyboardInteractivity() const;
 
@@ -127,6 +130,7 @@ Q_SIGNALS:
     void exclusionZoneChanged();
     void exclusiveEdgeChanged();
     void marginsChanged();
+    void desiredSizeChanged();
     void keyboardInteractivityChanged();
     void layerChanged();
 
diff -pruN 6.3.4-1/src/qwaylandlayersurface.cpp 6.4.4-0ubuntu1/src/qwaylandlayersurface.cpp
--- 6.3.4-1/src/qwaylandlayersurface.cpp	2025-04-02 03:36:53.000000000 +0000
+++ 6.4.4-0ubuntu1/src/qwaylandlayersurface.cpp	2025-08-05 10:51:53.000000000 +0000
@@ -44,7 +44,11 @@ QWaylandLayerSurface::QWaylandLayerSurfa
     setAnchor(m_interface->anchors());
     connect(m_interface, &Window::anchorsChanged, this, [this]() {
         setAnchor(m_interface->anchors());
-        setDesiredSize(m_window->windowContentGeometry().size());
+        if (m_interface->desiredSize().isNull()) {
+            setDesiredSize(m_window->windowContentGeometry().size());
+        } else {
+            setDesiredSize(m_interface->desiredSize());
+        }
     });
 
     setExclusiveZone(m_interface->exclusionZone());
@@ -61,12 +65,22 @@ QWaylandLayerSurface::QWaylandLayerSurfa
         setMargins(m_interface->margins());
     });
 
+    connect(m_interface, &Window::desiredSizeChanged, this, [this]() {
+        if (!m_interface->desiredSize().isNull()) {
+            setDesiredSize(m_interface->desiredSize());
+        }
+    });
+
     setKeyboardInteractivity(m_interface->keyboardInteractivity());
     connect(m_interface, &Window::keyboardInteractivityChanged, this, [this]() {
         setKeyboardInteractivity(m_interface->keyboardInteractivity());
     });
 
-    setDesiredSize(window->windowContentGeometry().size());
+    if (m_interface->desiredSize().isNull()) {
+        setDesiredSize(window->windowContentGeometry().size());
+    } else {
+        setDesiredSize(m_interface->desiredSize());
+    }
 }
 
 QWaylandLayerSurface::~QWaylandLayerSurface()
@@ -174,12 +188,16 @@ void QWaylandLayerSurface::setWindowGeom
         return;
     }
 
-    setDesiredSize(geometry.size());
+    if (m_interface->desiredSize().isNull()) {
+        setDesiredSize(geometry.size());
+    }
 }
 #else
 void QWaylandLayerSurface::setWindowSize(const QSize &size)
 {
-    setDesiredSize(size);
+    if (m_interface->desiredSize().isNull()) {
+        setDesiredSize(size);
+    }
 }
 #endif
 
@@ -193,6 +211,10 @@ bool QWaylandLayerSurface::requestActiva
         activation->activate(m_activationToken, window()->wlSurface());
         m_activationToken = {};
         return true;
+    } else if (const auto token = qEnvironmentVariable("XDG_ACTIVATION_TOKEN"); !token.isEmpty()) {
+        activation->activate(token, window()->wlSurface());
+        qunsetenv("XDG_ACTIVATION_TOKEN");
+        return true;
     } else {
         const auto focusWindow = QGuiApplication::focusWindow();
         const auto wlWindow = focusWindow ? static_cast<QtWaylandClient::QWaylandWindow *>(focusWindow->handle()) : window();
