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
This commit is contained in:
4
TODO.md
4
TODO.md
@@ -12,8 +12,8 @@
|
|||||||
- [x] Create custom theme assets in `assets/plymouth/`.
|
- [x] Create custom theme assets in `assets/plymouth/`.
|
||||||
- [x] Center official logo on splash screen.
|
- [x] Center official logo on splash screen.
|
||||||
- [x] Declarative integration in `modules/system/plymouth.nix`.
|
- [x] Declarative integration in `modules/system/plymouth.nix`.
|
||||||
- [ ] Implement full LUKS password entry support (password prompt, bullet indicators).
|
- [x] Implement full LUKS password entry support (password prompt, bullet indicators).
|
||||||
- [ ] Add smooth fade-in/fade-out animations for the logo.
|
- [x] Add smooth fade-in/fade-out animations for the logo.
|
||||||
- [ ] Add system message display (e.g., "Rebooting...", "Checking Disk...").
|
- [ ] Add system message display (e.g., "Rebooting...", "Checking Disk...").
|
||||||
|
|
||||||
## 3. System Branding (Fastfetch & Terminal) [DONE]
|
## 3. System Branding (Fastfetch & Terminal) [DONE]
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 23 KiB |
56
assets/branding/logo.svg
Normal file
56
assets/branding/logo.svg
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="210mm"
|
||||||
|
height="297mm"
|
||||||
|
viewBox="0 0 210 297"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
xml:space="preserve"
|
||||||
|
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
|
||||||
|
sodipodi:docname="logo.svg"
|
||||||
|
inkscape:export-filename="logo.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:zoom="0.82803284"
|
||||||
|
inkscape:cx="216.175"
|
||||||
|
inkscape:cy="452.27675"
|
||||||
|
inkscape:window-width="1914"
|
||||||
|
inkscape:window-height="1012"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="layer1" /><defs
|
||||||
|
id="defs1" /><g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"><g
|
||||||
|
id="g4"
|
||||||
|
transform="translate(3.1953242,-22.686801)"
|
||||||
|
style="fill:#000088;fill-opacity:1"><path
|
||||||
|
style="fill:#000088;stroke-width:0.264583;fill-opacity:1"
|
||||||
|
d="M 25.136891,85.823024 25.557592,210.77125 88.452409,174.38061 67.417351,160.49747 57.110174,166.38729 V 105.80633 Z"
|
||||||
|
id="path1" /><path
|
||||||
|
style="fill:#000088;stroke-width:0.264583;fill-opacity:1"
|
||||||
|
d="M 67.728991,112.41131 182.54178,185.60757 153.16137,202.85259 67.830432,148.17947 Z"
|
||||||
|
id="path2" /><path
|
||||||
|
style="fill:#000088;stroke-width:0.264583;fill-opacity:1"
|
||||||
|
d="M 139.74857,145.88014 140.00405,110.4959 54.800856,56.333749 25.675926,73.32329 Z"
|
||||||
|
id="path3" /><path
|
||||||
|
style="fill:#000088;stroke-width:0.264583;fill-opacity:1"
|
||||||
|
d="M 182.2863,172.70573 V 48.286069 l -62.59305,36.406166 20.82177,13.668277 10.21927,-5.74834 0.12774,60.165978 z"
|
||||||
|
id="path4" /></g></g></svg>
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -1,26 +1,34 @@
|
|||||||
██████████████████████████████████████████████████████
|
,,,
|
||||||
██████████████████████████████████████████████████████
|
,, ,,,,,,
|
||||||
████ ████ ████
|
,,,,,,,, ,,,,,,,,,,
|
||||||
████ ████ ████
|
,,,,,,,,,,,,,, .,,,,,,,,,,,,
|
||||||
████ █████████████████████ ████████ ████
|
,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,
|
||||||
████ █████████████████████ ████████ ████
|
,,,,,,,,,,,,,,,,,,,,,,,. ,,,,,,,,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
.,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,, ,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,, .,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,. ,,,,,,,,,,,,,,,,,,,,,,,,, ,,, .,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,
|
||||||
████████████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,. ,,,,,,,,,,,,,
|
||||||
████████████ ████ ████
|
,,,,,,,,,,,,, ,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,,, ,,,,, ,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, ,,,, ,,,,,,,,,,,,
|
||||||
████ ██████████████████████████████████████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, ,, ,,,,,,,,,,,,
|
||||||
████ ██████████████████████████████████████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,
|
||||||
████ ████ ████
|
,,,,,,,,,,,,, ,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,
|
||||||
█████████████████████████████ ████████████████████
|
,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, .,,,,,
|
||||||
█████████████████████████████ ████████████████████
|
,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,
|
||||||
|
,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
|
,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
|
,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,
|
||||||
|
,,,,,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,,
|
||||||
|
,,,,,,,,,,,,, ,,,,,,,,,,,,,,
|
||||||
|
,,,,,,,,,, ,,,,,,,,,.
|
||||||
|
,,,,,, ,,
|
||||||
|
,,,,
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 23 KiB |
@@ -1,40 +1,53 @@
|
|||||||
|
# Nomarchy Plymouth Theme Script
|
||||||
|
# Centered logo with smooth fade-in and LUKS password support
|
||||||
|
|
||||||
# Set background to black
|
# Set background to black
|
||||||
Window.SetBackgroundTopColor(0, 0, 0);
|
Window.SetBackgroundTopColor(0, 0, 0);
|
||||||
Window.SetBackgroundBottomColor(0, 0, 0);
|
Window.SetBackgroundBottomColor(0, 0, 0);
|
||||||
|
|
||||||
# Logo
|
# Logo Setup
|
||||||
logo_image = Image("logo.png");
|
logo_image = Image("logo.png");
|
||||||
logo_sprite = Sprite(logo_image);
|
logo_sprite = Sprite(logo_image);
|
||||||
logo_sprite.SetX(Window.GetWidth() / 2 - logo_image.GetWidth() / 2);
|
logo_sprite.SetX(Window.GetWidth() / 2 - logo_image.GetWidth() / 2);
|
||||||
logo_sprite.SetY(Window.GetHeight() / 3 - logo_image.GetHeight() / 2);
|
logo_sprite.SetY(Window.GetHeight() / 2 - logo_image.GetHeight() / 2);
|
||||||
logo_sprite.SetOpacity(1);
|
|
||||||
|
|
||||||
# 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 = Sprite();
|
||||||
message_sprite.SetX(Window.GetWidth() / 2);
|
message_sprite.SetY(Window.GetHeight() * 0.7); # Place below logo
|
||||||
message_sprite.SetY(Window.GetHeight() * 0.6);
|
|
||||||
|
|
||||||
fun display_message_callback(text) {
|
fun display_message_callback(text) {
|
||||||
|
if (!text) return;
|
||||||
my_image = Image.Text(text, 1, 1, 1); # White text
|
my_image = Image.Text(text, 1, 1, 1); # White text
|
||||||
message_sprite.SetImage(my_image);
|
message_sprite.SetImage(my_image);
|
||||||
message_sprite.SetX(Window.GetWidth() / 2 - my_image.GetWidth() / 2);
|
message_sprite.SetX(Window.GetWidth() / 2 - my_image.GetWidth() / 2);
|
||||||
|
message_sprite.SetOpacity(logo_opacity); # Sync message opacity with logo
|
||||||
}
|
}
|
||||||
|
|
||||||
# Password Entry
|
# Password Entry Handling
|
||||||
status = "normal";
|
|
||||||
|
|
||||||
fun password_callback(text, bullet_count) {
|
fun password_callback(text, bullet_count) {
|
||||||
# When typing password, show bullets
|
|
||||||
bullets = "";
|
bullets = "";
|
||||||
for (i = 0; i < bullet_count; i++) bullets += "*";
|
for (i = 0; i < bullet_count; i++) bullets += "*";
|
||||||
display_message_callback(bullets);
|
display_message_callback(bullets);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Plymouth State Hooks
|
||||||
Plymouth.SetDisplayPasswordFunction(password_callback);
|
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);
|
Plymouth.SetDisplayMessageFunction(display_message_callback);
|
||||||
|
|
||||||
|
# Animation Logic
|
||||||
fun refresh_callback () {
|
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);
|
Plymouth.SetRefreshFunction (refresh_callback);
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -21,6 +21,11 @@ fi
|
|||||||
# 3. Declarative hardware configuration check (nixos-hardware)
|
# 3. Declarative hardware configuration check (nixos-hardware)
|
||||||
# This part ensures that if we are on an installed system, the correct
|
# This part ensures that if we are on an installed system, the correct
|
||||||
# nixos-hardware module is selected in the configuration.
|
# 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"
|
HW_FILE="/etc/nixos/hardware-selection.nix"
|
||||||
if [ -w "$HW_FILE" ]; then
|
if [ -w "$HW_FILE" ]; then
|
||||||
PRODUCT_NAME=$(cat /sys/class/dmi/id/product_name 2>/dev/null || echo "Unknown")
|
PRODUCT_NAME=$(cat /sys/class/dmi/id/product_name 2>/dev/null || echo "Unknown")
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
PKG_NAME="$1"
|
|
||||||
|
|
||||||
if [ -z "$PKG_NAME" ]; then
|
|
||||||
echo "Usage: nomarchy-pkg-missing <package-name>"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
nomarchy-pkg-present "$PKG_NAME"
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
PKG_NAME="$1"
|
|
||||||
|
|
||||||
if [ -z "$PKG_NAME" ]; then
|
|
||||||
echo "Usage: nomarchy-pkg-present <package-name>"
|
|
||||||
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
|
|
||||||
@@ -18,11 +18,14 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
boot.initrd.systemd.enable = true;
|
boot.initrd.systemd.enable = true;
|
||||||
|
boot.initrd.verbose = false;
|
||||||
|
console.earlySetup = true;
|
||||||
|
boot.consoleLogLevel = 0;
|
||||||
boot.plymouth = {
|
boot.plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
themePackages = [ nomarchy-plymouth ];
|
themePackages = [ nomarchy-plymouth ];
|
||||||
theme = "nomarchy";
|
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" ];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user