Skip to content

natenberenstein/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal development environment configuration for Ubuntu/Debian. Covers the shell, terminal multiplexer, editor, prompt, and AI tooling.

Structure

dotfiles/
├── bash/
│   └── .bashrc               # Shell config, aliases, PATH, tool init
├── nvim/                     # Neovim config (lazy.nvim) — see nvim/README.md
├── opencode/
│   └── oh-my-opencode.jsonc  # oh-my-opencode agent/model routing config
├── starship/
│   └── starship.toml         # Starship prompt config
├── tmux/
│   └── .tmux.conf            # tmux config with vim-tmux-navigator
├── scripts/
│   ├── install-tools.sh      # Install all CLI tools on a fresh machine
│   └── setup.sh              # Symlink configs to their expected locations
└── cli-cheatsheet.md         # Personal command reference

Fresh machine setup

git clone <repo-url> ~/dotfiles
cd ~/dotfiles

# 1. Install CLI tools
bash scripts/install-tools.sh

# 2. Symlink configs
bash scripts/setup.sh

# 3. Reload shell
source ~/.bashrc

setup.sh backs up any existing files before overwriting (e.g. ~/.bashrc~/.bashrc.bak).


Configs

Bash (bash/.bashrc)

Key customizations on top of the Ubuntu default:

What Detail
Prompt Starship (eval "$(starship init bash)")
ls Replaced with eza
cat Replaced with bat
vim Aliased to nvim
cd Enhanced with zoxide
Fuzzy search fzf sourced from ~/.fzf.bash
Python versions pyenv + pyenv-virtualenv
Node versions nvm
Python tooling uv (with shell completion)
Neovim binary /opt/nvim-linux-x86_64/bin on PATH
direnv eval "$(direnv hook bash)"
ROS colcon_cd, ROS_DOMAIN_ID=0

Neovim (nvim/)

Full Neovim config using lazy.nvim. See nvim/README.md for the complete plugin list, keymaps, LSP servers, and Mason tools.

Highlights: snacks.nvim (file explorer + picker), blink-cmp, LSP via mason-lspconfig, conform.nvim formatting, nvim-lint, nvim-dap, neotest, treesitter, catppuccin theme, vim-tmux-navigator.

Starship (starship/starship.toml)

Full-featured prompt showing: OS icon, user, host, directory, git branch/status/metrics, active language runtimes, cloud context (AWS/GCP/Azure/k8s), command duration, time (right prompt), and battery.

tmux (tmux/.tmux.conf)

Binding Action
prefix + | Split horizontal
prefix + - Split vertical
prefix + r Reload config
prefix + h/j/k/l Resize pane
prefix + m Toggle pane zoom
C-h/j/k/l Navigate panes (vim-tmux-navigator)
v / y (copy mode) Begin selection / copy

Plugins: tpm, vim-tmux-navigator, tmux-resurrect, tmux-continuum, catppuccin theme.

Sessions auto-saved and restored via tmux-continuum.

OpenCode (opencode/oh-my-opencode.jsonc)

oh-my-opencode agent routing config with a tiered multi-agent setup:

Tier Agents Purpose
1 — Orchestrators sisyphus, atlas Top-level coordination
2 — Planning prometheus, metis, momus Structured planning + validation
2 — Execution hephaestus, oracle Implementation + debugging
3 — Specialists sisyphus-junior, librarian, explore, multimodal-looker Fast execution, research, vision

CLI tools

Documented and reinstallable via scripts/install-tools.sh.

Tool Purpose Install method
uv Python package/project manager curl astral.sh/uv
pyenv Python version manager curl pyenv.run
nvm Node version manager curl nvm install script
starship Shell prompt curl starship.rs/install.sh
fzf Fuzzy finder git clone + install
zoxide Smarter cd curl install.sh
eza Modern ls apt / cargo
bat cat with syntax highlighting apt / cargo
delta Git diff pager cargo install git-delta
fd Faster find apt / cargo
btop System monitor apt / snap
yq YAML/JSON processor uv tool install yq
direnv Per-directory env vars curl direnv.net/install.sh
xh Modern HTTP client (httpie-compatible) GitHub release binary
Neovim Editor GitHub release tarball → /opt/

About

My dev configuration files

Topics

Resources

Stars

Watchers

Forks

Contributors