zellide/README.md
2026-02-08 11:09:35 +01:00

3.7 KiB

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