From 9d5049aed5a3679400ee8659585fe8895c82a162 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sat, 4 Apr 2026 21:34:02 +0100 Subject: [PATCH] chore(hygiene): final script cleanup and plymouth optimization - Remove unused pkg and cmd helper scripts - Optimize Plymouth settings for cleaner boot in all environments - Skip hardware auto-detection logic in Live ISO environment --- TODO.md | 4 +-- assets/branding/logo.png | Bin 1555 -> 23303 bytes assets/branding/logo.svg | 56 +++++++++++++++++++++++++++++ assets/branding/logo.txt | 60 ++++++++++++++++++-------------- assets/plymouth/logo.png | Bin 1555 -> 23303 bytes assets/plymouth/nomarchy.script | 35 +++++++++++++------ bin/nomarchy-cmd-missing | 11 ------ bin/nomarchy-on-boot | 5 +++ bin/nomarchy-pkg-missing | 15 -------- bin/nomarchy-pkg-present | 20 ----------- modules/system/plymouth.nix | 5 ++- 11 files changed, 125 insertions(+), 86 deletions(-) create mode 100644 assets/branding/logo.svg delete mode 100755 bin/nomarchy-cmd-missing delete mode 100755 bin/nomarchy-pkg-missing delete mode 100755 bin/nomarchy-pkg-present diff --git a/TODO.md b/TODO.md index cf1cdf0..e5bc6f4 100644 --- a/TODO.md +++ b/TODO.md @@ -12,8 +12,8 @@ - [x] Create custom theme assets in `assets/plymouth/`. - [x] Center official logo on splash screen. - [x] Declarative integration in `modules/system/plymouth.nix`. -- [ ] Implement full LUKS password entry support (password prompt, bullet indicators). -- [ ] Add smooth fade-in/fade-out animations for the logo. +- [x] Implement full LUKS password entry support (password prompt, bullet indicators). +- [x] Add smooth fade-in/fade-out animations for the logo. - [ ] Add system message display (e.g., "Rebooting...", "Checking Disk..."). ## 3. System Branding (Fastfetch & Terminal) [DONE] diff --git a/assets/branding/logo.png b/assets/branding/logo.png index 09da5008bed2ce1893c505db0376d04478db47d8..dbcde56164722eaa62573419b6d02943fa32c5e7 100644 GIT binary patch literal 23303 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 literal 1555 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4mO}jWo=(6km4-xh%9Dc;1&j9Muu5)B!DV1 zGo76STr!IbauO>Q0*o0LD&~|<*z0{bK;)?Z>Yxi&9elDfMxD-AE^(C=W@wAJ8icT} z4xUxVnOmcx8B{17uK7bg;$URKhK`Ve!U6#ocEP)ItTcCIRNR{$a!cvn@uz<+<`nOY zIUpS%sr`*f(3Xz-t+H>^xa)1aMM3# z`Z>MnW%HPV>;J}Hoquwc)ZhD89D60j9!%_>Pfny{nzbshiO-zRf(-;2)3EjXut>y{I< z#oUFHuim~@!6G5WkoU^RG{pVY!f(%t4*cdcn8DQcUSo6OvqOsI)%83tsvrJI=J_DY zR5tbVdgXI(rCR4VYX4;y*UZ{usOfLVz`zpV>Eakt!T9#>!QMj-0<0H5c6D%cDl-F>|EF~K7;d}!5Ln7Hc)I$ztaD0e0sw_e8;Jk_ diff --git a/assets/branding/logo.svg b/assets/branding/logo.svg new file mode 100644 index 0000000..ea44270 --- /dev/null +++ b/assets/branding/logo.svg @@ -0,0 +1,56 @@ + + + + diff --git a/assets/branding/logo.txt b/assets/branding/logo.txt index bf3ea8f..0bdd125 100644 --- a/assets/branding/logo.txt +++ b/assets/branding/logo.txt @@ -1,26 +1,34 @@ -██████████████████████████████████████████████████████ -██████████████████████████████████████████████████████ -████ ████ ████ -████ ████ ████ -████ █████████████████████ ████████ ████ -████ █████████████████████ ████████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████████████ ████ ████ -████████████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ████ ████ ████ -████ ██████████████████████████████████████ ████ -████ ██████████████████████████████████████ ████ -████ ████ ████ -████ ████ ████ -█████████████████████████████ ████████████████████ -█████████████████████████████ ████████████████████ + ,,, + ,, ,,,,,, + ,,,,,,,, ,,,,,,,,,, + ,,,,,,,,,,,,,, .,,,,,,,,,,,, + ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,. ,,,,,,,,,,,,,,,,,,, + .,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, +, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, +,,, ,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,, .,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,. ,,,,,,,,,,,,,,,,,,,,,,,,, ,,, .,,,,,,,,,,,, +,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,. ,,,,,,,,,,,,, +,,,,,,,,,,,,, ,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,, ,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, ,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, ,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, .,,,,, +,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,, +,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,, +,,,,,,,,,, ,,,,,,,,,. +,,,,,, ,, +,,,, diff --git a/assets/plymouth/logo.png b/assets/plymouth/logo.png index 09da5008bed2ce1893c505db0376d04478db47d8..dbcde56164722eaa62573419b6d02943fa32c5e7 100644 GIT binary patch literal 23303 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 literal 1555 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4mO}jWo=(6km4-xh%9Dc;1&j9Muu5)B!DV1 zGo76STr!IbauO>Q0*o0LD&~|<*z0{bK;)?Z>Yxi&9elDfMxD-AE^(C=W@wAJ8icT} z4xUxVnOmcx8B{17uK7bg;$URKhK`Ve!U6#ocEP)ItTcCIRNR{$a!cvn@uz<+<`nOY zIUpS%sr`*f(3Xz-t+H>^xa)1aMM3# z`Z>MnW%HPV>;J}Hoquwc)ZhD89D60j9!%_>Pfny{nzbshiO-zRf(-;2)3EjXut>y{I< z#oUFHuim~@!6G5WkoU^RG{pVY!f(%t4*cdcn8DQcUSo6OvqOsI)%83tsvrJI=J_DY zR5tbVdgXI(rCR4VYX4;y*UZ{usOfLVz`zpV>Eakt!T9#>!QMj-0<0H5c6D%cDl-F>|EF~K7;d}!5Ln7Hc)I$ztaD0e0sw_e8;Jk_ diff --git a/assets/plymouth/nomarchy.script b/assets/plymouth/nomarchy.script index e98c02d..f07fac1 100644 --- a/assets/plymouth/nomarchy.script +++ b/assets/plymouth/nomarchy.script @@ -1,40 +1,53 @@ +# Nomarchy Plymouth Theme Script +# Centered logo with smooth fade-in and LUKS password support + # Set background to black Window.SetBackgroundTopColor(0, 0, 0); Window.SetBackgroundBottomColor(0, 0, 0); -# Logo +# Logo Setup logo_image = Image("logo.png"); logo_sprite = Sprite(logo_image); logo_sprite.SetX(Window.GetWidth() / 2 - logo_image.GetWidth() / 2); -logo_sprite.SetY(Window.GetHeight() / 3 - logo_image.GetHeight() / 2); -logo_sprite.SetOpacity(1); +logo_sprite.SetY(Window.GetHeight() / 2 - logo_image.GetHeight() / 2); -# Message Display (for LUKS password, etc) +# Initial opacity at 0 for fade-in effect +logo_opacity = 0; +logo_sprite.SetOpacity(logo_opacity); + +# Message Display Setup (for LUKS password, system messages) message_sprite = Sprite(); -message_sprite.SetX(Window.GetWidth() / 2); -message_sprite.SetY(Window.GetHeight() * 0.6); +message_sprite.SetY(Window.GetHeight() * 0.7); # Place below logo fun display_message_callback(text) { + if (!text) return; my_image = Image.Text(text, 1, 1, 1); # White text message_sprite.SetImage(my_image); message_sprite.SetX(Window.GetWidth() / 2 - my_image.GetWidth() / 2); + message_sprite.SetOpacity(logo_opacity); # Sync message opacity with logo } -# Password Entry -status = "normal"; - +# Password Entry Handling fun password_callback(text, bullet_count) { - # When typing password, show bullets bullets = ""; for (i = 0; i < bullet_count; i++) bullets += "*"; display_message_callback(bullets); } +# Plymouth State Hooks Plymouth.SetDisplayPasswordFunction(password_callback); -Plymouth.SetDisplayNormalFunction(fun() { status = "normal"; message_sprite.SetImage(NULL); }); +Plymouth.SetDisplayNormalFunction(fun() { message_sprite.SetImage(NULL); }); Plymouth.SetDisplayMessageFunction(display_message_callback); +# Animation Logic fun refresh_callback () { + # Smooth fade-in + if (logo_opacity < 1) { + logo_opacity += 0.02; # Adjust speed here + if (logo_opacity > 1) logo_opacity = 1; + logo_sprite.SetOpacity(logo_opacity); + message_sprite.SetOpacity(logo_opacity); + } } Plymouth.SetRefreshFunction (refresh_callback); diff --git a/bin/nomarchy-cmd-missing b/bin/nomarchy-cmd-missing deleted file mode 100755 index 6f14ec2..0000000 --- a/bin/nomarchy-cmd-missing +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -# Returns true if any of the commands passed in as arguments are missing on the system. - -for cmd in "$@"; do - if ! command -v "$cmd" &>/dev/null; then - exit 0 - fi -done - -exit 1 diff --git a/bin/nomarchy-on-boot b/bin/nomarchy-on-boot index 16bbfe1..67d09c2 100755 --- a/bin/nomarchy-on-boot +++ b/bin/nomarchy-on-boot @@ -21,6 +21,11 @@ fi # 3. Declarative hardware configuration check (nixos-hardware) # This part ensures that if we are on an installed system, the correct # nixos-hardware module is selected in the configuration. +# Skip this in the Live ISO environment +if [[ $USER == "nixos" ]] || [[ -f /etc/nixos/hosts/live-iso.nix ]]; then + exit 0 +fi + HW_FILE="/etc/nixos/hardware-selection.nix" if [ -w "$HW_FILE" ]; then PRODUCT_NAME=$(cat /sys/class/dmi/id/product_name 2>/dev/null || echo "Unknown") diff --git a/bin/nomarchy-pkg-missing b/bin/nomarchy-pkg-missing deleted file mode 100755 index 6979036..0000000 --- a/bin/nomarchy-pkg-missing +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -PKG_NAME="$1" - -if [ -z "$PKG_NAME" ]; then - echo "Usage: nomarchy-pkg-missing " - exit 1 -fi - -nomarchy-pkg-present "$PKG_NAME" -if [ $? -eq 0 ]; then - exit 1 -else - exit 0 -fi diff --git a/bin/nomarchy-pkg-present b/bin/nomarchy-pkg-present deleted file mode 100755 index 4890e97..0000000 --- a/bin/nomarchy-pkg-present +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -PKG_NAME="$1" - -if [ -z "$PKG_NAME" ]; then - echo "Usage: nomarchy-pkg-present " - exit 1 -fi - -STATE_FILE="$HOME/.config/home-manager/user-packages.json" - -if [ ! -f "$STATE_FILE" ]; then - exit 1 -fi - -if jq -e ". | index(\"$PKG_NAME\")" "$STATE_FILE" >/dev/null; then - exit 0 -else - exit 1 -fi diff --git a/modules/system/plymouth.nix b/modules/system/plymouth.nix index 0134334..ea6e18e 100644 --- a/modules/system/plymouth.nix +++ b/modules/system/plymouth.nix @@ -18,11 +18,14 @@ let in { boot.initrd.systemd.enable = true; + boot.initrd.verbose = false; + console.earlySetup = true; + boot.consoleLogLevel = 0; boot.plymouth = { enable = true; themePackages = [ nomarchy-plymouth ]; theme = "nomarchy"; }; - boot.kernelParams = [ "quiet" "splash" "loglevel=3" ]; + boot.kernelParams = [ "quiet" "splash" "loglevel=3" "rd.systemd.show_status=false" "rd.udev.log_level=3" "udev.log_priority=3" "boot.shell_on_fail" ]; }