From 032035b7f19e4ff6e577bfe68dbb73766062f58c Mon Sep 17 00:00:00 2001 From: Damocles Date: Fri, 17 Apr 2026 14:03:40 +0200 Subject: [PATCH 1/2] lock: add glib to PATH for gdbus --- nix/package.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nix/package.nix b/nix/package.nix index a6a585e..dcdef43 100644 --- a/nix/package.nix +++ b/nix/package.nix @@ -5,6 +5,7 @@ quickshell, qt6, nova-stats, + glib, }: stdenvNoCC.mkDerivation { pname = "nova-shell"; @@ -34,7 +35,12 @@ stdenvNoCC.mkDerivation { mkdir -p $out/bin makeWrapper ${lib.getExe quickshell} $out/bin/nova-shell \ --add-flags "-p $out/share/nova-shell/shell.qml" \ - --prefix PATH : ${lib.makeBinPath [ nova-stats ]} + --prefix PATH : ${ + lib.makeBinPath [ + nova-stats + glib + ] + } runHook postInstall ''; From 9f0043cd2349f9e0c6ad6ec7075e4925cc33bef8 Mon Sep 17 00:00:00 2001 From: Damocles Date: Fri, 17 Apr 2026 14:12:40 +0200 Subject: [PATCH 2/2] lock: aggressively reclaim keyboard focus on lock surface --- modules/lock/LockSurface.qml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/lock/LockSurface.qml b/modules/lock/LockSurface.qml index daa4b3c..a7c67b9 100644 --- a/modules/lock/LockSurface.qml +++ b/modules/lock/LockSurface.qml @@ -139,14 +139,26 @@ WlSessionLockSurface { } } - // Keyboard input - focus lives on an Item since WlSessionLockSurface is a window + // Keyboard input - focus lives on an Item since WlSessionLockSurface is a window. + // Aggressively reclaim focus: Component.onCompleted may fire before the surface + // is configured, and other items can steal activeFocus during layout. Item { + id: _keyInput anchors.fill: parent focus: true Keys.onPressed: event => { if (!root._unlocking) root.auth.handleKey(event); } + onActiveFocusChanged: { + if (!activeFocus) + forceActiveFocus(); + } + } + + onVisibleChanged: { + if (visible) + _keyInput.forceActiveFocus(); } // Unlock animation