feat: fade-in animation, PKGBUILD for system installation
- CSS opacity transition (350ms ease-in) for panel and wallpaper - PKGBUILD for makepkg/pacman installation - .gitignore for makepkg build artifacts
This commit is contained in:
+13
-3
@@ -107,6 +107,12 @@ class WallpaperWindow(Gtk.ApplicationWindow):
|
||||
background.set_vexpand(True)
|
||||
self.set_child(background)
|
||||
|
||||
self.connect("map", self._on_map)
|
||||
|
||||
def _on_map(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)
|
||||
|
||||
|
||||
class PanelWindow(Gtk.ApplicationWindow):
|
||||
"""Fullscreen power menu window for the primary monitor."""
|
||||
@@ -242,10 +248,14 @@ class PanelWindow(Gtk.ApplicationWindow):
|
||||
self.add_controller(controller)
|
||||
|
||||
def _on_map(self, widget: Gtk.Widget) -> None:
|
||||
"""Grab focus on the first action button once the window is visible."""
|
||||
# Delay focus grab — layer shell keyboard interactivity may not
|
||||
# be ready at map time
|
||||
"""Trigger fade-in and grab focus once the window is visible."""
|
||||
GLib.idle_add(self._fade_in)
|
||||
|
||||
def _fade_in(self) -> bool:
|
||||
"""Add visible class to trigger CSS opacity transition, then grab focus."""
|
||||
self.add_css_class("visible")
|
||||
GLib.idle_add(self._grab_initial_focus)
|
||||
return GLib.SOURCE_REMOVE
|
||||
|
||||
def _grab_initial_focus(self) -> bool:
|
||||
"""Set focus on the first action button."""
|
||||
|
||||
@@ -6,11 +6,23 @@ window.panel {
|
||||
background-color: @theme_bg_color;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
opacity: 0;
|
||||
transition: opacity 350ms ease-in;
|
||||
}
|
||||
|
||||
window.panel.visible {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Wallpaper-only window for secondary monitors */
|
||||
window.wallpaper {
|
||||
background-color: @theme_bg_color;
|
||||
opacity: 0;
|
||||
transition: opacity 350ms ease-in;
|
||||
}
|
||||
|
||||
window.wallpaper.visible {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Round avatar image */
|
||||
|
||||
Reference in New Issue
Block a user