My personal dotfiles for a tmux + vim driven workflow.
  • Lua 60.4%
  • Shell 39.6%
Find a file
2026-06-21 21:01:51 +02:00
config.ghostty Initial commit 2026-06-21 20:15:48 +02:00
install.sh Initial commit 2026-06-21 20:15:48 +02:00
nvim-init.lua Added readme ++ 2026-06-21 21:01:51 +02:00
pi-settings.json Added readme ++ 2026-06-21 21:01:51 +02:00
README.md Added readme ++ 2026-06-21 21:01:51 +02:00
screenshot.png Added readme ++ 2026-06-21 21:01:51 +02:00
tmux.conf Initial commit 2026-06-21 20:15:48 +02:00
zshrc Initial commit 2026-06-21 20:15:48 +02:00

dotfiles

Terminal-centric setup for macOS: Ghostty + tmux + Neovim, tied together with unified hjkl navigation and a Gruvbox theme.

screenshot

Contents

File Symlinked to What
config.ghostty ~/.config/ghostty/config Ghostty terminal (Gruvbox, Fira Code)
tmux.conf ~/.tmux.conf tmux: C-a prefix, vi copy-mode, seamless vim panes
nvim-init.lua ~/.config/nvim/init.lua Neovim: LSP, git, NERDTree, Goyo
zshrc ~/.zshrc zsh prompt with git branch, aliases
pi-settings.json ~/.pi/agent/settings.json pi agent config

Install

git clone <repo> ~/Code/dotfiles
cd ~/Code/dotfiles
./install.sh

install.sh only creates symlinks, so edits in the repo take effect live.

Usage

Navigation (vim + tmux)

Key Action
C-h/j/k/l Move between vim splits and tmux panes (seamless)
Cmd+hjkl Resize the focused split/pane (maps to Alt+hjkl)

tmux (prefix C-a)

Key Action
C-a | Split horizontally
C-a - Split vertically
C-a [ Enter copy-mode
v / C-v Begin selection / block selection (copy-mode)
y or Enter Copy selection to macOS clipboard
Escape Cancel copy-mode

Neovim

Key Action
C-n Toggle NERDTree
C-g Toggle Goyo (distraction-free)
C-y Toggle Limelight
C-g d :Git diff
C-g s :Gdiffsplit
C-g f Open Diffview
C-g q Close Diffview
C-g l :Git log

zsh

Alias Expands to
vim nvim
ls / ll / la ls -hG / -hlG / -ahlG

Notes

  • C-h/j/k/l moves between vim splits and tmux panes interchangeably.
  • Cmd+hjkl (Ghostty) maps to Alt+hjkl for resizing splits/panes, keeping Option free for | on the Norwegian layout.
  • Neovim auto-reloads files changed on disk — handy when an agent edits them.

Dependencies

Ghostty, tmux (≥ 3.0), Neovim (≥ 0.12, for vim.pack), a Nerd Font / Fira Code. Plugins are managed by the built-in vim.pack; LSP servers (ty, gopls) must be installed separately.