Skip to content

dporkka/dev-setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lightweight LazyVim starter for JS/TS, Go, Python, Rust

A minimal Neovim configuration tuned for remote VPS development.

Quick bootstrap

On a fresh Ubuntu/Debian VPS, run the included script:

# Clone or copy this repo to the VPS, then:
CHEZMOI_REPO=yourusername/dotfiles bash bootstrap-vps.sh

The script installs Neovim, LazyVim, chezmoi, mise, languages, LSPs, tmuxp, zsh, and Docker. Log out and back in when it finishes.

Manual install

If you prefer to install step by step:

# 1. Install Neovim
mkdir -p ~/.local/bin
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux64.tar.gz
export PATH="$PATH:/opt/nvim-linux64/bin"

# 2. Install LazyVim starter
mv ~/.config/nvim{,.bak}
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git

# 3. Copy these files into the LazyVim config
cp -r lua/config/options.lua ~/.config/nvim/lua/config/
cp -r lua/plugins/lang-overrides.lua ~/.config/nvim/lua/plugins/

# 4. Install language extras via LazyVim
#    Open Neovim and run:
#    :LazyExtras
#    Enable: typescript, json, go, python, rust

# 5. Install tools via mise/npm/go/pip
mise use -g node@lts go@latest python@3.12 rust@latest
npm install -g typescript typescript-language-server @biomejs/biome
pip install ruff pyright debugpy
go install golang.org/x/tools/gopls@latest mvdan.cc/gofumpt@latest github.com/go-delve/delve/cmd/dlv@latest
rustup component add rust-analyzer clippy rustfmt

# 6. Copy tmuxp template and Justfile into your project
cp tmuxp/project.yaml ~/.config/tmuxp/myproject.yaml
# Edit ~/.config/tmuxp/myproject.yaml and set start_directory + session_name
# Copy Justfile to project root and customize as needed

# 7. Start Neovim
nvim

Layout

nvim-starter/
├── lua/
│   ├── config/
│   │   └── options.lua        # performance + editor options
│   └── plugins/
│       └── lang-overrides.lua # JS/TS, Go, Python, Rust LSP/formatting
├── tmuxp/
│   └── project.yaml           # tmux session template
├── Justfile                   # polyglot task runner
├── bootstrap-vps.sh           # one-shot VPS installer
└── README.md

tmuxp session

The tmuxp/project.yaml template creates a 5-window session:

  • code — Neovim
  • agent — claude-code
  • testsjust test-watch
  • logsjust logs
  • shell — general shell

Copy and customize per project:

cp tmuxp/project.yaml ~/.config/tmuxp/myproject.yaml
# Edit session_name and start_directory

Launch with:

tmuxp load myproject

Justfile tasks

Task Description
just dev Launch tmuxp dev session
just fmt Format all code
just lint Lint all code
just typecheck Type check all code
just test Run all tests
just test-watch Run test watcher
just build Build Go/Rust binaries
just logs Run dev server or tail logs
just agent Launch claude-code
just ci Run full local CI pipeline
just clean Remove build artifacts and caches

Each task auto-detects the project type by file presence (package.json, go.mod, pyproject.toml, Cargo.toml) and only runs relevant commands.

Daily workflow

cd ~/projects/myproject
just dev   # launches tmuxp session with nvim + agent + tests

Key bindings

LazyVim defaults plus:

  • Space leader key
  • <leader>ff find files
  • <leader>fg live grep
  • <leader>cf format buffer
  • <leader>ca code action
  • <leader>rn rename
  • gd go to definition
  • gr go to references

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors