Two-layer structure: Sources (raw notes) + Wiki (compile output) Four domains: Dev (40), Venture (3), Homelab (23), Reference (0) Includes CLAUDE.md spec, index pages at all levels, compile log Co-Authored-By: Lovebug <lovebug@herbylab.dev>
163 lines
4.5 KiB
Markdown
163 lines
4.5 KiB
Markdown
---
|
|
created: 2026-04-08
|
|
path: Sources/Homelab
|
|
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 |