Personal dotfiles configuration for Zsh, Tmux, Neovim, and Git.
To see icons in tmux/neovim, install a Nerd Font:
macOS:
# Option 1: Via Homebrew
brew install font-sf-mono
# Option 2: Hack Nerd Font
brew install --cask font-hack-nerd-fontLinux:
# Option 1: Via apt
sudo apt install fonts-firacode
# Option 2: Download manually
# Go to: https://www.nerdfonts.com/font-downloadsSet in iTerm2 (macOS):
- Open iTerm2 →
Preferences(Cmd+,) - Go to
Profiles→Texttab - Click
Change Font - Select Hack Nerd Font or SF Mono
Set in Tilix/Terminal (Linux):
- Open Preferences → Profile → Custom Font
- Select FiraCode Nerd Font or Hack Nerd Font
One-command install on macOS or Linux:
curl -sS https://raw.githubusercontent.com/toomij99/dev-environment-files/main/install.sh | bash| Command | Description |
|---|---|
curl ... | bash |
Fresh install (default) |
curl ... | bash -s -- --update |
Update dotfiles |
curl ... | bash -s -- --fix |
Re-stow configurations |
curl ... | bash -s -- --help |
Show help |
-
Clone repository:
git clone --recurse-submodules git@github.com:toomij99/dev-environment-files.git ~/.dotfiles cd ~/.dotfiles
-
Stow configurations:
stow . -
Restart terminal.
-
Start tmux.
-
Install tmux plugins with
Ctrl-a I. -
Reload tmux config with
Ctrl-a r.
- Zsh: Oh My Zsh with Powerlevel10k theme, plugins for git, docker, python, etc.
- Tmux: Custom keybindings, plugins for navigation, session persistence, and Tokyo Night theme.
- Neovim: Lua-based configuration with various plugins.
- Git: Basic user configuration.
| Command | Description |
|---|---|
y |
Open yazi file manager |
vim |
Open neovim |
fk |
Fix last command (thefuck) |
| Command | Description |
|---|---|
<leader>ee |
Toggle file explorer |
<leader>ef |
Toggle explorer on current file |
<leader>ec |
Collapse explorer |
<leader>er |
Refresh explorer |
| Command | Description |
|---|---|
<leader>ff |
Find files |
<leader>fr |
Find recent files |
<leader>fs |
Find string in cwd |
<leader>fc |
Find string under cursor |
<leader>ft |
Find todos |
<leader>fk |
Find keymaps |
| Command | Description |
|---|---|
gd |
Go to definition |
gR |
Show references |
gD |
Go to declaration |
gi |
Show implementations |
gt |
Show type definitions |
K |
Show documentation |
<leader>ca |
Code actions |
<leader>rn |
Smart rename |
<leader>rs |
Restart LSP |
| Command | Description |
|---|---|
]h / [h |
Next/Prev hunk |
<leader>hs |
Stage hunk |
<leader>hr |
Reset hunk |
<leader>hp |
Preview hunk |
<leader>hd |
Diff this |
| Command | Description |
|---|---|
<leader>r |
Substitute motion |
<leader>rr |
Substitute line |
<leader>wr |
Restore session |
<leader>ws |
Save session |
<leader>l |
Show linting |
| Command | Description |
|---|---|
Ctrl-a I |
Install plugins |
| `Ctrl-a | ` |
Ctrl-a - |
Split vertical |
Ctrl-a h/j/k/l |
Navigate panes |
Ctrl-a r |
Reload config |
This setup includes tmux-resurrect and tmux-continuum.
install.sh installs TPM, but tmux plugins are installed by TPM from inside a tmux session.
- Start tmux and run
Ctrl-a Ionce to install the configured plugins. - Reload the config with
Ctrl-a r, or restart tmux. tmux-continuumthen autosaves tmux state in the background.- To restore a saved session manually, use
prefix + Ctrl-rfromtmux-resurrect.
By default, automatic restore is disabled in tmux.conf:
set -g @continuum-restore 'off'To enable automatic restore when tmux starts, change it to:
set -g @continuum-restore 'on'After changing the setting, reload tmux with Ctrl-a r.
| Command | Description |
|---|---|
z + directory |
zoxide (cd alternative) |
cdf |
cd to git repo root |
# Pull latest dotfiles
cd ~/.dotfiles && git pull && git submodule update --init --recursive
# Re-stow configurations
cd ~/.dotfiles && stow .- Zsh
- Oh My Zsh
- Tmux
- Neovim
- GNU Stow
- Various tools like fzf, bat, zoxide, etc. (see .zshrc for details)