My personal development environment for WSL2(Debian), centered around Fish, Neovim, Tmux, and curated set of CLI tools.
| Config | Tool |
|---|---|
fish/ |
Fish shell + abbreviations |
nvim/ |
Neovim with Lazy.nvim |
tmux/ |
Tmux configuration |
yazi/ |
Terminal file manager |
git/ |
.gitconfig with GitHub CLI auth |
wsl/ |
wsl.conf for WSL2 settings |
starship/ |
Shell prompt |
scripts/ |
Setup, verify and update scripts |
| Tool | Description |
|---|---|
| fish | Shell |
| nvim | Text editor |
| tmux | Terminal multiplexer |
| yazi | File manager |
| starship | Shell prompt |
| eza | Modern ls replacement |
| bat | Modern cat + syntax highlighting |
| fd | Fast find replacement |
| fzf | Fuzzy finder |
| ripgrep | Fast grep replacement |
| zoxide | Smart cd replacement |
| lazygit | TUI for Git |
| glow | Markdown viewer in terminal |
| gh | GitHub CLI |
| micro | Simple terminal editor |
| node@24 + pnpm | JavaScript runtime + package manager |
- WSL2 with Debian
- git available
# 1. Clone the repository
git clone https://github.com/JacobEscoto/dotfiles ~/dotfiles
# 2. Run setup
cd ~/dotfiles
bash scripts/setup.sh
# 3. Restart WSL (from PowerShell)
wsl --shutdown
# 4. Reopen WSL and authenticate GitHub
gh auth loginbash ~/dotfiles/scripts/verify.shChecks that all tools are installed, symlinks exist, and GitHub auth is active.
bash ~/dotfiles/scripts/update.shUpdates Homebrew packages, Neovim plugins, Fish plugins, and pnpm in one command.
| Key | Action |
|---|---|
<A-j> |
Move current line down |
<A-k> |
Move current line up |
<A-d> |
Duplicate current line |
<C-d> |
Scroll down half page |
<C-u> |
Scroll up half page |
<leader>e |
Toggle file explorer |
<leader>ff |
Find files (Telescope) |
<leader>fg |
Live grep (text search) |
<leader>fb |
List open buffers |
<leader>lg |
Open LazyGit layout |
<C-\> |
Open floating terminal |
<C-\> |
Close terminal |
<leader>c |
Close current buffer |