# ZellIDE Eine Terminal-basierte IDE-Umgebung gebaut auf Zellij, Helix, Yazi und lazygit. ## Vision Weg von VSCode, zurück ins Terminal - aber mit modernem Komfort. Eine IDE-Erfahrung die sich anfühlt wie eine richtige IDE, aber komplett im Terminal läuft und keine Electron-Bloat mitbringt. ## Kernideen ### Auto-Detection & Session Management **Git-basierte Projekterkennung:** - Beim `cd` in ein Git-Repository wird automatisch erkannt ob es ein IDE-Projekt ist - Session-Namen werden vom Git-Root-Namen abgeleitet - Format: `ide:projektname` - Eine `.zellij-ide` Datei im Git-Root markiert das Projekt **Intelligentes Session-Handling:** - Beim Betreten eines Projekts: Angebot die IDE zu starten oder zu einer laufenden Session zu attachen - Kein Nesting: Wenn bereits in einer Zellij-Session, kein erneuter Prompt - Manuelles Attachen jederzeit möglich via Helper-Script ### Session-Naming-Schema Verschiedene Session-Typen für verschiedene Use-Cases: **IDE Sessions:** `ide:projektname` - Immer für Git-Projekte - Name vom Repository-Root abgeleitet - Persistente Layout-Konfiguration **Shell Sessions:** `zsh:fancy-name` oder `zsh:verzeichnisname` - Fancy-Names: Zufällige Kombinationen wie "super-koala", "elegant-mammoth" - Oder: Aktuelles Verzeichnis als Name - Für ad-hoc Terminal-Arbeit **Custom Sessions:** Offen für weitere Typen - Prefix-System ermöglicht Erweiterung - z.B. `debug:`, `monitor:`, etc. ### Layout-Struktur **Haupt-Layout für IDE:** ``` ┌─────────────┬──────────────────────────┐ │ yazi │ │ │ (file tree) │ helix │ │ │ (main editor) │ │ │ │ ├─────────────┤ │ │ lazygit │ │ │ │ │ └─────────────┴──────────────────────────┘ ``` **Floating Pane:** - Ad-hoc Terminal via Keybind (z.B. Ctrl+t) - Für schnelle Befehle ohne Layout zu zerstören - Ansible-Playbooks ausführen, docker-compose up, etc. ### Integration & Features **Helix LSP Support:** - YAML (ansible-language-server) - Docker Compose - TOML/JSON für Configs - Bash/Shell Scripts - Später: Rust (rust-analyzer) **Git-Integration:** - Inline Git-Gutter in Helix - lazygit für visuelle Git-Operationen - Beide Tools arbeiten auf dem gleichen Repo **File Navigation:** - yazi als File-Explorer mit Previews - Helix fuzzy file finder (Space+f) - Buffer-Switcher (Space+b) ## Workflow-Beispiel 1. `cd ~/git/infrastructure` 2. Prompt: "IDE für 'infrastructure' starten? [y/N]" 3. Bei 'y': Zellij startet mit IDE-Layout, Session `ide:infrastructure` 4. Bei 'n': Normale Shell, später `ide-attach` zum Starten 5. Arbeit in der IDE: yazi für Navigation, helix zum Editieren, lazygit für Commits 6. Floating Terminal (Ctrl+t) für ansible-playbook Ausführung 7. Detach jederzeit, Re-Attach von überall im Projekt ## Ziele - **Komfort:** Fühlt sich an wie eine richtige IDE - **Performance:** Kein Electron, native Terminal-Tools - **Flexibilität:** Erweiterbar, anpassbar, scriptbar - **Konsistenz:** Gleiche Umgebung lokal und auf Remote-Servern - **Muscle Memory:** Helix-Keybinds lernen und überall nutzen ## Nächste Schritte 1. Basis-Setup: Zsh-Hooks, Session-Detection 2. Zellij-Layout definieren 3. Helix-Konfiguration mit LSP 4. Helper-Scripts für Session-Management 5. Testing mit infrastructure-Repo 6. Migration von tmux auf Servern 7. Rust-Entwicklungsumgebung aufsetzen