Pepe44DEV 7ab1a466cc fix: Array-Bug verhinderte Paketinstallation + optional/install in FRESH_MODULES
- all_packages=("$(remove_duplicates ...)") kollabierte Newlines → alle
  Pakete wurden ein einzelnes Array-Element → pacman -Si matchte nichts
  → nichts installiert. Fix: readarray -t statt $()-Subshell.
- optional/install in FRESH_MODULES aufgenommen, damit die Software-Auswahl
  auch auf --fresh erscheint.
2026-05-27 21:06:41 +02:00

ᎾᎷᎬᏒᎾᏁ

Modular System Setup Framework für Arch/Hyprland

Omeron ist ein modulares, interaktives Setup-Framework, das Dotfiles-Konsolidierung, Paketverwaltung und Systemkonfiguration in einem sauberen, wartbaren Projekt vereint.


Features

  • Fresh-Install Detection — Erkennt automatisch ein neues System und installiert Hyprland, GPU-Treiber + alle Dependencies
  • GPU-Erkennung — Intel/AMD/NVIDIA via PCI Vendor-ID, installiert passende Treiber
  • Modularer Installer — Jede Komponente ist ein eigenständiges Modul
  • Interaktive TUI — Basierend auf gum, mit fallback auf einfaches CLI
  • Idempotent — Beliebig oft ausführbar, Backup vor jeder Änderung
  • Dotfiles-Management — Automatische Sicherung und Deployment
  • Homelab-Integration — Unraid-Server-Konfiguration für das AGS Control Center
  • Theme-Engine — Zwei vollständige Themes (Forest Neon, Rose Night)
  • Optionale Software — Interaktive Auswahl via TUI
  • Logging — Alle Schritte werden protokolliert
  • Erweiterbar — Einfaches Plugin-System für eigene Module

Projektstruktur

Omeron/
├── install.sh                # Main Installer (Einstiegspunkt)
├── README.md
├── config/
│   ├── omeron.yaml           # Installer-Konfiguration
│   └── homelab.yaml          # Homelab Standard-Konfiguration
├── lib/
│   ├── log.sh                # Logging-Framework
│   ├── tui.sh                # TUI-Wrapper (gum/basic)
│   ├── config.sh             # YAML/Shell-Konfiguration
│   ├── utils.sh              # Utility-Funktionen
│   └── modules.sh            # Modul-Manager
├── modules/
│   ├── core/                 # Core-Module (obligatorisch)
│   │   ├── preflight.sh      # System-Detection (GPU, Fresh-Install, AUR-Helper)
│   │   ├── packages.sh       # System-Pakete inkl. GPU-Treiber installieren
│   │   ├── dotfiles.sh       # Dotfiles deployen
│   │   ├── services.sh       # Systemd-Services aktivieren
│   │   └── sddm.sh           # SDDM-Theme installieren
│   ├── optional/
│   │   ├── install.sh        # Optionale Software-Auswahl
│   │   └── packages/         # Einzelpaket-Installer
│   ├── homelab/
│   │   └── setup.sh          # Homelab-Konfiguration
│   └── post/
│       └── apply-theme.sh    # Theme nach Installation anwenden
├── dotfiles/                 # Konsolidierte Dotfiles
│   ├── hypr/                 # Hyprland + AGS Widgets
│   ├── waybar/               # Waybar Status Bar
│   ├── wofi/                 # Application Launcher
│   ├── swaync/               # Notification Center
│   ├── kitty/                # Terminal
│   ├── gtk-3.0/              # GTK3-Theme
│   ├── gtk-4.0/              # GTK4-Theme
│   ├── qt5ct/                # Qt5-Theme
│   ├── qt6ct/                # Qt6-Theme
│   ├── starship.toml         # Shell Prompt
│   └── wallpapers/           # Mitgelieferte Wallpaper
└── templates/
    └── homelab/              # Config-Templates

Installation

Voraussetzungen

  • Arch Linux / CachyOS (oder andere Arch-Derivate)
  • bash >= 4.0
  • gum (optional, aber empfohlen) — sudo pacman -S gum
  • git

Schnellstart

git clone <your-repo-url>/Omeron.git
cd Omeron
./install.sh

Optionen

Autodetect (Fresh Install)

Wird ./install.sh auf einem frischen Arch-System ohne Hyprland ausgeführt, erkennt der Installer dies automatisch und installiert:

  • Hyprland + alle Komponenten (Hyprlock, Hyprpaper, Hypridle)
  • GPU-Treiber (Intel/AMD/NVIDIA automatisch erkannt)
  • Audio (PipeWire + WirePlumber)
  • Netzwerk (NetworkManager + Bluetooth)
  • Fonts & Themes (Nerd Fonts, Papirus Icons)
  • Dotfiles inkl. Theme und Services

Ohne --fresh und ohne --modules startet der interaktive Modus mit Step-by-Step Auswahl.

Optionen

Flag Beschreibung
--fresh Full System Setup (Hyprland + GPU + alle Dependencies)
--modules m1,m2 Nur bestimmte Module ausführen
--skip m1,m2 Bestimmte Module überspringen
--skip-packages Paketinstallation überspringen
--with-sddm SDDM-Theme inkludieren
--list-modules Verfügbare Module anzeigen
--help Hilfe anzeigen

Beispiele

# Automatisch: erkennt Fresh-Install oder interaktiv
./install.sh

# Fresh Install auf neuem System (oder forcieren)
./install.sh --fresh

# Nur Dotfiles und Theme deployen
./install.sh --modules core/dotfiles,post/apply-theme

# Komplette Installation ohne Pakete
./install.sh --skip-packages

# Mit SDDM-Theme
./install.sh --with-sddm

Module Erstellen

Jedes Modul ist eine Bash-Datei in modules/ mit folgenden Funktionen:

#!/usr/bin/env bash

module_description() { printf "My Module - does something\n"; }
module_required()     { return 1; }   # 0 = immer ausführen
module_should_skip()  { return 1; }   # 0 = überspringen
module_prereqs()      { require mycmd mypackage; }

module_main() {
  log_section "My Module"
  # Your code here
}

Homelab-Konfiguration

Der Installer fragt beim Homelab-Modul ab:

  • Server-Adresse (IP oder Domain)
  • SSH-Benutzername

Gespeichert in ~/.config/homelab/config.yaml:

server:
  address: "192.168.1.100"
  username: "root"
  port: 22

Themes

Theme Akzent Hintergrund Wallpaper
Forest Neon #00ff9c (grün) #14141e forest.jpg
Rose Night #f38ba8 (pink) #18141f rose-pink.jpg

Theme-Wechsel via:

~/.config/hypr/Scripts/theme-menu.sh

Verzeichnis-Layout

Pfad Zweck
Omeron/.gitignore Git-Ignore-Regeln
Omeron/install.sh Main Installer (Einstiegspunkt)
Omeron/config/omeron.yaml Installer-Konfiguration
Omeron/lib/ Framework-Bibliotheken (Log, TUI, Config, Utils, Module)
Omeron/modules/core/ Core-Module (Preflight, Packages, Dotfiles, Services, SDDM)
Omeron/modules/optional/ Optionale Software-Auswahl
Omeron/modules/homelab/ Homelab-Konfiguration
Omeron/dotfiles/ Alle Konfigurationsdateien
~/.config/hypr/ Hyprland-Konfiguration + Scripts
~/.config/hypr/Scripts/ Alle Steuerungsskripte (19 Stück)
~/.config/hypr/ags/ AGS Widgets (Panel, Switcher, Package Manager, Homelab)
~/.config/hypr/Themes/ Theme-Definitionen
~/.config/waybar/ Status Bar
~/.config/wofi/ Application Launcher
~/.config/swaync/ Notification Center
~/.config/starship.toml Shell Prompt
~/.dotfiles-backup/ Automatische Backups
~/.config/homelab/config.yaml Homelab-Server-Konfiguration
~/.local/share/omeron/ Installer-Logs

Lizenz

MIT

Description
No description provided
Readme 4.6 MiB
Languages
Shell 52.4%
TypeScript 34.4%
CSS 6.6%
Python 3.4%
QML 3.2%