refactor: implement component-based architecture for enhanced maintainability

- Reorganize directory structure into core/, features/, and themes/
- Colocate application Nix logic, configs, scripts, and theme overrides
- Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts
- Update flake.nix and shared library paths to match the new structure
- Document the new Feature-Centric architecture in README.md
This commit is contained in:
Bernardo Magri
2026-04-12 14:51:15 +01:00
parent a9ee79a5ce
commit bbdf34ced8
535 changed files with 119 additions and 127 deletions

View File

@@ -13,14 +13,24 @@
---
## 📂 Component-Based Architecture
Nomarchy uses a **Feature-Centric Directory Structure**. Instead of grouping files by type (e.g., all scripts in one folder, all configs in another), everything related to a specific component is colocated.
- **`core/`**: Foundational OS & User defaults (Bootloader, Audio, Bluetooth, basic shell).
- **`features/`**: Isolated modules containing Nix logic, raw dotfiles, and scripts for a specific app or service (e.g., `features/desktop/waybar/`).
- **`themes/`**: The global theming engine. It holds pure color data and logic. *Theme-specific app layouts* (like a custom Waybar layout for `summer-night`) are stored directly inside the app's feature folder (`features/desktop/waybar/themes/`), solving the matrix problem of theming.
---
## 📥 Installation
### 1. Try it in a VM (Recommended)
Verify the experience without touching your hardware:
```bash
./bin/nomarchy-test-installer
./bin/utils/nomarchy-test-installer
```
This builds a full graphical VM of the installer environment. Once inside, click the **Install Nomarchy** icon or run `sudo /etc/install-nomarchy.sh`.
This builds a full graphical VM of the installer environment. Once inside, click the **Install Nomarchy** icon or run `nomarchy-install`.
### 2. Build the Installer ISO
To install on physical hardware, generate your own bootable image:
@@ -32,14 +42,13 @@ The ISO will be located at `./result/iso/nixos-*.iso`. Flash it to a USB drive a
### 3. Run the Installer
Once booted into the Live environment, launch the installer:
```bash
sudo /etc/install-nomarchy.sh
nomarchy-install
```
The wizard will guide you through:
- **Networking:** An interactive wizard to connect to Wi-Fi if needed.
- **Hardware:** Optimized profiles for Dell XPS, Framework, Apple T2, and more.
- **Storage:** Choice between Standard Ext4 or Encrypted BTRFS with optional **Impermanence**.
- **Localization:** Searchable timezones and keyboard layout selection.
- **Profiles:** One-click setups for Development, Gaming, and Media Production.
---