diff --git a/pkg/PKGBUILD b/pkg/PKGBUILD index 70a1942..df066f9 100644 --- a/pkg/PKGBUILD +++ b/pkg/PKGBUILD @@ -4,7 +4,7 @@ # Maintainer: Dominik Kressler pkgname=moonlock-git -pkgver=0.2.0.r0.g7cee4f4 +pkgver=0.3.0.r1.gfe6421c pkgrel=1 pkgdesc="A secure Wayland lockscreen with GTK4, PAM and fingerprint support" arch=('any') diff --git a/src/moonlock/lockscreen.py b/src/moonlock/lockscreen.py index ca34c47..d305712 100644 --- a/src/moonlock/lockscreen.py +++ b/src/moonlock/lockscreen.py @@ -53,6 +53,9 @@ class LockscreenWindow(Gtk.ApplicationWindow): self._setup_keyboard() self._password_entry.grab_focus() + # Fade-in after window is mapped + self.connect("map", self._on_map_fade_in) + # Start fingerprint listener if available (only once across shared instances) if self._fp_available and not self._fp_listener._running: self._fp_listener.start( @@ -61,6 +64,10 @@ class LockscreenWindow(Gtk.ApplicationWindow): on_failure=self._on_fingerprint_failure, ) + def _on_map_fade_in(self, widget: Gtk.Widget) -> None: + """Trigger fade-in once the window is visible.""" + GLib.idle_add(lambda: self.add_css_class("visible") or GLib.SOURCE_REMOVE) + def _build_ui(self) -> None: """Build the lockscreen layout.""" # Main overlay for background + centered content diff --git a/src/moonlock/style.css b/src/moonlock/style.css index 690e14f..21cff5f 100644 --- a/src/moonlock/style.css +++ b/src/moonlock/style.css @@ -6,6 +6,12 @@ window.lockscreen { background-color: #1a1a2e; background-size: cover; background-position: center; + opacity: 0; + transition: opacity 350ms ease-in; +} + +window.lockscreen.visible { + opacity: 1; } /* Central login area */ diff --git a/uv.lock b/uv.lock index 1b730b1..397b138 100644 --- a/uv.lock +++ b/uv.lock @@ -4,7 +4,7 @@ requires-python = ">=3.11" [[package]] name = "moonlock" -version = "0.2.0" +version = "0.3.0" source = { editable = "." } dependencies = [ { name = "pygobject" },