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

163 lines
4.5 KiB
Markdown

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