chore(todo): add project TODO list and improve Plymouth LUKS support

This commit is contained in:
Bernardo Magri
2026-04-04 20:42:20 +01:00
parent e3d8c9ca75
commit 4abd4d4686
2 changed files with 62 additions and 13 deletions

30
TODO.md Normal file
View File

@@ -0,0 +1,30 @@
# Nomarchy Distribution - TODO List
## 1. Professional Installer [IN PROGRESS]
- [x] Refactor with `gum` for stylized UI.
- [x] Add clear section headers and environment checks.
- [x] Implement software profile selection.
- [ ] Add "Pre-flight Check" summary screen showing all selected options (disk, user, profiles) before proceeding.
- [ ] Implement post-install "Success" dashboard with next steps.
- [ ] Improve disk selection to show more metadata (vendor, model, serial).
## 2. Nomarchy Plymouth Theme [IN PROGRESS]
- [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.
- [ ] Add system message display (e.g., "Rebooting...", "Checking Disk...").
## 3. System Branding (Fastfetch & Terminal) [DONE]
- [x] Restore and optimize official ASCII logo (`logo.txt`).
- [x] Update `config/fastfetch/config.jsonc` to use new logo and declarative stats.
- [x] Update `nomarchy-show-logo` to use centralized branding path.
- [x] Declaratively map all branding assets via Home Manager.
## 4. Repo Hygiene & Consistency [DONE]
- [x] Remove legacy Arch Linux imperative scripts.
- [x] Move all dynamic state to unified `state.json`.
- [x] Implement professional state migration via Home Manager activation.
- [x] Declaratively link all `config/` directories with `recursive = true`.
- [x] Transition to Remote-First Upstream model.

View File

@@ -1,21 +1,40 @@
# Set background to black
Window.SetBackgroundTopColor(0, 0, 0);
Window.SetBackgroundBottomColor(0, 0, 0);
# Logo
logo_image = Image("logo.png"); logo_image = Image("logo.png");
screen_width = Window.GetWidth();
screen_height = Window.GetHeight();
logo_width = logo_image.GetWidth();
logo_height = logo_image.GetHeight();
logo_x = screen_width / 2 - logo_width / 2;
logo_y = screen_height / 2 - logo_height / 2;
logo_sprite = Sprite(logo_image); logo_sprite = Sprite(logo_image);
logo_sprite.SetX(logo_x); logo_sprite.SetX(Window.GetWidth() / 2 - logo_image.GetWidth() / 2);
logo_sprite.SetY(logo_y); logo_sprite.SetY(Window.GetHeight() / 3 - logo_image.GetHeight() / 2);
logo_sprite.SetOpacity(1); logo_sprite.SetOpacity(1);
# Message Display (for LUKS password, etc)
message_sprite = Sprite();
message_sprite.SetX(Window.GetWidth() / 2);
message_sprite.SetY(Window.GetHeight() * 0.6);
fun display_message_callback(text) {
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);
}
# Password Entry
status = "normal";
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.SetDisplayPasswordFunction(password_callback);
Plymouth.SetDisplayNormalFunction(fun() { status = "normal"; message_sprite.SetImage(NULL); });
Plymouth.SetDisplayMessageFunction(display_message_callback);
fun refresh_callback () { fun refresh_callback () {
# Simple rotation or pulse could go here
} }
Plymouth.SetRefreshFunction (refresh_callback); Plymouth.SetRefreshFunction (refresh_callback);