--- created: 2026-04-08 path: Sources/Venture project: editor-stack-upgrade status: active tags: - editors - neovim - zed - zellij - lazyvim - homelab - workflow type: project-plan updated: 2026-04-08 --- # 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