homelab-projects/homelab/ Editor-Stack/editor-stack-upgrade.md

4.5 KiB

project type status tags created updated path
editor-stack-upgrade project-plan active
editors
neovim
zed
zellij
lazyvim
homelab
workflow
2026-04-08 2026-04-08 PBS-Planning/Homelab/Editor-Stack

Editor Stack Upgrade

Context

VS Code Remote-SSH crashed production server after 6 instances were accidentally left open (each spawns its own Node server process on the remote). Replacing with a two-track editor workflow: a lightweight GUI for heavier refactors, and a terminal-native stack for quick edits and street cred.

Goals

  • Eliminate VS Code Remote-SSH resource bloat on production server
  • Establish Zed as primary GUI editor with remote SSH workflow
  • Build terminal-native editing muscle memory with Neovim + LazyVim
  • Replace tmux workflow with Zellij (modern, discoverable keybinds)
  • Keep production server stable during rollout (test everything on tower first)

Track A: Zed (GUI path)

Phase A1 — Install on tower

  • Install Zed on Manjaro tower
    curl -f https://zed.dev/install.sh | sh
    
  • Verify binary at ~/.local/bin/zed
  • Launch and complete first-run setup
  • Sign in (optional, for settings sync)

Phase A2 — Remote SSH setup

  • Confirm production server is in ~/.ssh/config with alias
  • Load SSH key into ssh-agent if passphrase-protected
    eval $(ssh-agent)
    ssh-add ~/.ssh/id_ed25519
    
  • In Zed: ctrl+shift+p → "remote: connect to host" → add prod server
  • Verify remote agent installs to ~/.local/bin on production server
  • Open a test project over SSH and confirm LSP works

Phase A3 — Validate resource footprint

  • Check process count on prod server after Zed connect
    ps aux | grep zed
    
  • Compare RAM usage vs old VS Code Remote-SSH baseline
  • Document findings in session notes

Track B: Terminal path (Zellij + Neovim + LazyVim)

Phase B1 — Zellij on tower

  • Install Zellij
    cargo install --locked zellij
    
    or via pacman/AUR if preferred
  • Launch and work through built-in tutorial
  • Learn core keybinds (shown at bottom of screen — that's the whole point)
  • Create first layout file for homelab workflow
    ~/.config/zellij/layouts/homelab.kdl
    

Phase B2 — Neovim + LazyVim on tower

  • Install Neovim (need ≥0.9.0 for LazyVim)
    sudo pacman -S neovim
    
  • Install prerequisites: git, make, unzip, gcc, ripgrep, fd, a Nerd Font
  • Back up any existing Neovim config
    mv ~/.config/nvim ~/.config/nvim.bak
    mv ~/.local/share/nvim ~/.local/share/nvim.bak
    
  • Clone LazyVim starter
    git clone https://github.com/LazyVim/starter ~/.config/nvim
    rm -rf ~/.config/nvim/.git
    
  • First launch: let Lazy.nvim install all plugins
  • Run :LazyHealth and resolve any warnings
  • Run :Mason and install LSPs for Python, Go, Bash, Lua

Phase B3 — Learn the basics (week 1)

  • Complete vimtutor (comes with Neovim, ~30 min)
  • Daily driver for config edits only — don't force it on real work yet
  • Learn: motions (h/j/k/l, w/b/e), modes (i/a/o, esc), save/quit (:w/:q)
  • Learn LazyVim extras: `` leader menu, ff find files, sg grep
  • Learn file tree: e

Phase B4 — Zellij + Neovim integration

  • Create Zellij layout with Neovim + terminal panes
  • Test detach/reattach workflow
    zellij attach homelab
    
  • Configure Neovim to respect Zellij pane navigation (if desired)

Phase B5 — Roll out to production server

  • Install Zellij on prod server
  • Install Neovim + LazyVim on prod server
  • Sync LazyVim config via git (store in trucktrav/dotfiles or similar)
  • Create persistent Zellij session for prod work
    zellij attach -c prod-work
    
  • Document SSH + zellij attach workflow

Decision points

  • Dotfiles repo strategy — new repo or add to existing?
  • LazyVim customization — keep starter minimal or add personal tweaks early?
  • Zed vs Neovim split — when to reach for which? (document after 2 weeks of use)

Success criteria

  • Zero VS Code processes on production server
  • Can SSH into prod, zellij attach, and resume work from any device
  • Comfortable enough in Neovim to edit configs without reaching for Zed
  • Production server RAM usage during editing sessions documented and reduced

Notes & learnings

(populate as you go)

Next session

Start with Phase A1 (Zed install on tower) — fastest win, immediately usable, low risk.

...sent from Jenny & Travis