4.5 KiB
4.5 KiB
| project | type | status | tags | created | updated | path | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| editor-stack-upgrade | project-plan | active |
|
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/configwith alias - Load SSH key into
ssh-agentif passphrase-protectedeval $(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/binon 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
or via pacman/AUR if preferredcargo install --locked zellij - 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
:LazyHealthand resolve any warnings - Run
:Masonand 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,
fffind files,sggrep - 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/dotfilesor 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