Skip to content

Esequiel378/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal macOS dotfiles for zsh, tmux, kitty, Neovim, and Rectangle.

Layout

.
├── zsh/
│   ├── .zshrc          # symlink target for ~/.zshrc
│   └── .p10k.zsh       # symlink target for ~/.p10k.zsh
├── .tmux.conf          # symlink target for ~/.tmux.conf
├── kitty/
│   └── kitty.conf      # symlink target for ~/.config/kitty/kitty.conf
├── nvim/               # symlink target for ~/.config/nvim
└── RectangleConfig.json # imported via Rectangle's UI

Prerequisites

Install these before linking the configs — the shell, tmux, and editor configs reference them directly and will warn or break without them.

1. Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Core packages

brew install zsh tmux neovim kitty lsd git make gnupg
brew install --cask rectangle
Tool Used by
tmux .tmux.conf
neovim nvim/ config (with Lazy.nvim)
kitty kitty/kitty.conf
lsd ls alias in .zshrc
gnupg GPG_TTY export for signed commits
git, make telescope-fzf-native build inside Neovim
rectangle RectangleConfig.json

3. JetBrainsMono Nerd Font

Required by kitty.conf and the Neovim UI icons.

brew install --cask font-jetbrains-mono-nerd-font

4. oh-my-zsh

.zshrc sets export ZSH="$HOME/.oh-my-zsh" and sources $ZSH/oh-my-zsh.sh. Without it, the shell will start but the theme and plugins below won't load.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended

The plugins=(...) array in .zshrc enables these oh-my-zsh built-ins (no extra install needed): git, node, tmux. They ship with oh-my-zsh itself.

5. Powerlevel10k (zsh theme)

.zshrc sets ZSH_THEME="powerlevel10k/powerlevel10k" and sources ~/.p10k.zsh (which is symlinked from zsh/.p10k.zsh in this repo). The instant-prompt block at the top of .zshrc also depends on it.

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
  "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"

6. zsh-autosuggestions

Listed in the plugins=(...) array in .zshrc. Provides fish-style "ghost text" suggestions from history as you type.

git clone https://github.com/zsh-users/zsh-autosuggestions \
  "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"

7. zsh completion

.zshrc runs autoload -Uz compinit && compinit -C and adds ~/.zfunc to fpath. compinit is built into zsh — nothing to install — but if you have custom completion functions, drop them in ~/.zfunc.

8. tmux plugin manager (TPM)

.tmux.conf ends with run '~/.tmux/plugins/tpm/tpm' and uses tmux-sensible, tmux-yank, tmux-resurrect, and tmux-gruvbox.

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

After linking the config, install plugins from inside tmux with prefix + I (prefix is Ctrl-a).

9. Node version manager (nvm)

.zshrc sources $HOME/.nvm/nvm.sh.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Optional

These are referenced in .zshrc only when present — install only what you actually use:

  • Gobrew install go (config exports GOPATH=$HOME/go)
  • Rust / cargocurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • pnpmcurl -fsSL https://get.pnpm.io/install.sh | sh -
  • Pulumicurl -fsSL https://get.pulumi.com | sh
  • Google Cloud SDK — install via the official installer into $HOME/google-cloud-sdk

Linking the configs

From the repo root:

# zsh
ln -sf "$PWD/zsh/.zshrc"   ~/.zshrc
ln -sf "$PWD/zsh/.p10k.zsh" ~/.p10k.zsh

# tmux
ln -sf "$PWD/.tmux.conf" ~/.tmux.conf

# kitty
mkdir -p ~/.config/kitty
ln -sf "$PWD/kitty/kitty.conf" ~/.config/kitty/kitty.conf

# Neovim
ln -sf "$PWD/nvim" ~/.config/nvim

Back up any pre-existing files first if you want to keep them.

Rectangle

Open Rectangle → preferences → Import → select RectangleConfig.json.

First launch

  1. zsh: open a new terminal. Powerlevel10k will start its config wizard on first run; settings are written to ~/.p10k.zsh (already symlinked to this repo, so they'll persist).
  2. tmux: start tmux, then press Ctrl-a then I to install plugins via TPM.
  3. Neovim: launch nvim. Lazy.nvim bootstraps itself, then installs all plugins listed under nvim/lua/plugins/. Mason auto-installs the language servers listed in nvim/CLAUDE.md.
  4. kitty: quit and relaunch so the font and key bindings take effect.

Notes

  • The tmux and kitty configs include a workaround that maps Shift+Enter to ESC [13;2u so apps like Claude Code receive a literal newline instead of submitting.
  • kitty.conf remaps Ctrl+Shift+6 to Ctrl+^ for Neovim alternate-buffer switching on Corne keyboards.
  • tmux prefix is Ctrl-a (not the default Ctrl-b).

About

Dotfiles is a repo where I keep track of my dev config

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors