Initial commit: Omeron modular Hyprland setup framework
- Modular installer with gum-based TUI - Fresh-install detection with auto GPU driver selection - Preflight module for system detection (Intel/AMD/NVIDIA) - Core modules: packages, dotfiles, services, SDDM - Optional software installer (Obsidian, Neovim, VS Code, etc.) - Homelab config module with dynamic AGS integration - Two complete themes: Forest Neon and Rose Night - 19 Hyprland control scripts + 4 AGS widgets - Idempotent dotfile deployment with automatic backup - YAML-based configuration, extensible module system - Full logging to ~/.local/share/omeron/
This commit is contained in:
219
README.md
Normal file
219
README.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# ᎾᎷᎬᏒᎾᏁ
|
||||
|
||||
**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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
#!/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`:
|
||||
|
||||
```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:
|
||||
|
||||
```bash
|
||||
~/.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
|
||||
Reference in New Issue
Block a user