# nyarchlinux/nyarchlinux architecture

> Architecture diagram of the GitHub repository nyarchlinux/nyarchlinux, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nyarchlinux/nyarchlinux
- Repository: https://github.com/nyarchlinux/nyarchlinux

## Overview

NyarchLinux is an Arch-based Linux distribution built on EzArcher, represented here through its GNOME live/install image, installer configuration, and preconfigured desktop. The main user journey is to boot the image and install a configured system with Calamares; its sampled GRUB-theme module detects live display resolution and installs a bundled theme package. The README also describes the distribution’s Arch package-update basis and desktop-specific application choices. Most image contents are configuration and bundled assets, so relationships beyond the sampled installer module are shown only where documentation supports them.

Main entry points: [`Gnome/usr/lib/calamares/modules/grubtheme/main.py`](https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/usr/lib/calamares/modules/grubtheme/main.py) (GRUB theme module), [`Gnome`](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome) (GNOME live image), [`Gnome/etc/calamares`](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/calamares) (Calamares installer), [`Gnome/etc/calamares/settings.conf`](https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/etc/calamares/settings.conf) (Install workflow config)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_image["Live image"]
  node_live["GNOME live image"]
  node_boot["EFI boot entries"]
  node_liveconfig["Live system setup"]
  node_display["Live display server"]
end

subgraph group_install["System installation"]
  node_installer["Calamares installer"]
  node_installsettings["Install workflow config<br/>[settings.conf]"]
  node_installmodules["Install modules"]
  node_grubtheme["GRUB theme module<br/>[main.py]"]
  node_repo["Bundled theme package"]
  node_target["Installed system"]
end

subgraph group_desktop["Desktop experience"]
  node_desktopdefaults["User defaults"]
  node_gnomeextensions["GNOME extensions<br/>[extensions]"]
  node_nyarchassets["Nyarch desktop assets"]
  node_plymouth["Boot splash theme"]
end

subgraph group_base["Distribution base"]
  node_arch["Arch Linux"]
  node_ezarcher["EzArcher"]
  node_pacman["Arch package manager"]
end

node_user(("Installer user"))

node_user -.->|"boots image"| node_live
node_live -.->|"boots via"| node_boot
node_live -.->|"configures"| node_liveconfig
node_user -.->|"starts install"| node_installer
node_installer -.->|"uses settings"| node_installsettings
node_installsettings -.->|"configures steps"| node_installmodules
node_installer -.->|"runs module"| node_grubtheme
node_grubtheme -->|"queries resolution"| node_display
node_grubtheme -->|"loads package"| node_repo
node_grubtheme -->|"installs package"| node_pacman
node_grubtheme -->|"targets install"| node_target
node_installer -.->|"installs system"| node_target
node_target -.->|"includes defaults"| node_desktopdefaults
node_target -.->|"includes extensions"| node_gnomeextensions
node_target -.->|"includes assets"| node_nyarchassets
node_target -.->|"includes splash"| node_plymouth
node_arch -->|"provides base"| node_live
node_ezarcher -->|"provides foundation"| node_live
node_arch -->|"supplies updates"| node_target

click node_live "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome"
click node_boot "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/efiboot"
click node_liveconfig "https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/customize_airootfs.sh"
click node_installer "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/calamares"
click node_installsettings "https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/etc/calamares/settings.conf"
click node_installmodules "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/calamares/modules"
click node_grubtheme "https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/usr/lib/calamares/modules/grubtheme/main.py"
click node_repo "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/opt/ezrepo"
click node_desktopdefaults "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/skel"
click node_gnomeextensions "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/skel/.local/share/gnome-shell/extensions"
click node_nyarchassets "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/usr/share/nyarch"
click node_plymouth "https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/usr/share/plymouth/themes"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_live,node_boot,node_liveconfig,node_display,node_user toneBlue
class node_installer,node_installsettings,node_installmodules,node_grubtheme,node_repo,node_target toneAmber
class node_desktopdefaults,node_gnomeextensions,node_nyarchassets,node_plymouth toneMint
class node_arch,node_ezarcher,node_pacman toneRose
```

## Components

### Live image

- [GNOME live image](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome): `Gnome`
- [EFI boot entries](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/efiboot): `Gnome/efiboot`
- [Live system setup](https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/customize_airootfs.sh): `Gnome/customize_airootfs.sh`
- **Live display server**

### System installation

- [Calamares installer](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/calamares): `Gnome/etc/calamares`
- [Install workflow config](https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/etc/calamares/settings.conf): `Gnome/etc/calamares/settings.conf`
- [Install modules](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/calamares/modules): `Gnome/etc/calamares/modules`
- [GRUB theme module](https://github.com/nyarchlinux/nyarchlinux/blob/main/Gnome/usr/lib/calamares/modules/grubtheme/main.py): `Gnome/usr/lib/calamares/modules/grubtheme/main.py`
- [Bundled theme package](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/opt/ezrepo): `Gnome/opt/ezrepo`
- **Installed system**

### Desktop experience

- [User defaults](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/skel): `Gnome/etc/skel`
- [GNOME extensions](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/etc/skel/.local/share/gnome-shell/extensions): `Gnome/etc/skel/.local/share/gnome-shell/extensions`
- [Nyarch desktop assets](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/usr/share/nyarch): `Gnome/usr/share/nyarch`
- [Boot splash theme](https://github.com/nyarchlinux/nyarchlinux/tree/main/Gnome/usr/share/plymouth/themes): `Gnome/usr/share/plymouth/themes`

### Distribution base

- **Arch Linux**
- **EzArcher**
- **Arch package manager**

### Other components

- **Installer user**

## Connections

- Installer user → GNOME live image: boots image
- GNOME live image → EFI boot entries: boots via
- GNOME live image → Live system setup: configures
- Installer user → Calamares installer: starts install
- Calamares installer → Install workflow config: uses settings
- Install workflow config → Install modules: configures steps
- Calamares installer → GRUB theme module: runs module
- GRUB theme module → Live display server: queries resolution (evidence: `Gnome/usr/lib/calamares/modules/grubtheme/main.py`)
- GRUB theme module → Bundled theme package: loads package (evidence: `Gnome/usr/lib/calamares/modules/grubtheme/main.py`)
- GRUB theme module → Arch package manager: installs package (evidence: `Gnome/usr/lib/calamares/modules/grubtheme/main.py`)
- GRUB theme module → Installed system: targets install (evidence: `Gnome/usr/lib/calamares/modules/grubtheme/main.py`)
- Calamares installer → Installed system: installs system
- Installed system → User defaults: includes defaults
- Installed system → GNOME extensions: includes extensions
- Installed system → Nyarch desktop assets: includes assets
- Installed system → Boot splash theme: includes splash
- Arch Linux → GNOME live image: provides base (evidence: `README.md`)
- EzArcher → GNOME live image: provides foundation (evidence: `README.md`)
- Arch Linux → Installed system: supplies updates (evidence: `README.md`)
