zellide/README.md

108 lines
3.7 KiB
Markdown
Raw Permalink Normal View History

2026-02-08 11:09:35 +01:00
# 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