25d9a361d6b147eb8b413080f631e77acd0efb80
gum spin --title ... -- sudo_run pacman ...
→ gum startet sudo_run als externes Programm, nicht als Bash-Funktion
→ 'executable file not found in path'
Fix: tui_spin benutzt immer die einfache Ausführung ('▶ ... OK/FAILED'),
da gum spin mit Shell-Funktionen (sudo_run) nicht kompatibel ist.
ᎾᎷᎬᏒᎾᏁ
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.0gum(optional, aber empfohlen) —sudo pacman -S gumgit
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
Languages
Shell
52.4%
TypeScript
34.4%
CSS
6.6%
Python
3.4%
QML
3.2%