This repository contains my personal dotfiles for macOS, designed to create a streamlined and productive development environment. The setup focuses on a minimalist terminal experience with a powerful Neovim configuration.
- Terminal & Zsh
- iTerm2 Theme: Uses the Catppuccin Mocha color scheme.
- Shell: Managed by
Oh My Zsh. - Prompt: Styled with
Powerlevel10k. - Plugins:
zsh-syntax-highlighting(command validation) andzsh-autosuggestions(history-based completion).
- Neovim: A robust Neovim setup managed by
lazy.nvim.- Theming: Uses
solarized-osaka.nvimfor a clean, dark color scheme. - Keymaps: A consistent keybinding system with
<leader>set tospace, for easy navigation, window management, and text manipulation. - LSP & Completion: Integrates
mason.nvimandnvim-lspconfigfor language server protocol (LSP) support for languages like C, C++, Java, Svelte, and Python. Autocompletion is handled bynvim-cmpwithLuaSnip.
- Theming: Uses
- Command Line Tools:
zoxidefor smarter directory navigation (zreplacescd).ezaas a modernlsreplacement (with icons).batfor file viewing with syntax highlighting (replacescat).fzfwithfdfor fast and efficient file and directory searching.thefuckto correct command typos.
- Tmux: A terminal multiplexer setup for persistent sessions and pane management.
- Plugins: Uses
tpm(Tmux Plugin Manager) withtmux-tokyo-nightfor status bar theming, andtmux-resurrectandtmux-continuumto automatically save and restore sessions. - Integration: Seamlessly integrates with Neovim using
vim-tmux-navigator.
- Plugins: Uses
- VSCode: Configuration files to make VSCode feel more like Neovim.
-
Clone the repository:
git clone git@github.com:miniminjae92/dotfiles.git ~/.dotfiles -
Backup existing files
# You can move them to a different directory or add a .bak extension mv ~/.gitconfig ~/.gitconfig.bak mv ~/.zshrc ~/.zshrc.bak mv ~/.tmux.conf ~/.tmux.conf.bak mv ~/.vimrc ~/.vimrc.bak mv ~/.config/nvim ~/.config/nvim.bak
-
Create symbolic links
ln -s ~/.dotfiles/.gitconfig ~/.gitconfig ln -s ~/.dotfiles/.gitignore ~/.gitignore ln -s ~/.dotfiles/.vimrc ~/.vimrc ln -s ~/.dotfiles/.zshrc ~/.zshrc ln -s ~/.dotfiles/.config/nvim ~/.config/nvim ln -s ~/.dotfiles/.tmux.conf ~/.tmux.conf ln -sf ~/.dotfiles/.gitignore ~/.gitignore_global git config --global core.excludesFile ~/.gitignore_global
-
Install Oh My Zsh and Plugins
-
Install Oh My Zsh:
sh -c "$(curl -fsSL [https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh](https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh))"(If it asks to overwrite
~/.zshrc, you can say no, as we've already symlinked it.) -
Install Powerlevel10k Theme:
git clone --depth=1 [https://github.com/romkatv/powerlevel10k.git](https://github.com/romkatv/powerlevel10k.git) ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k -
Install Zsh Plugins (for OMZ):
git clone [https://github.com/zsh-users/zsh-syntax-highlighting.git](https://github.com/zsh-users/zsh-syntax-highlighting.git) ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone [https://github.com/zsh-users/zsh-autosuggestions.git](https://github.com/zsh-users/zsh-autosuggestions.git) ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-
Install Other CLI Tools (via Homebrew):
brew install eza bat fzf fd thefuck zoxide pyenv
-
-
Install iTerm2 Theme
- Download the
Catppuccin Mocha.itermcolorsfile from the official repository. - In iTerm2, go to Preferences (
Cmd + ,) > Profiles > Colors. - Click Color Presets... > Import... and select the downloaded file.
- Select
Catppuccin Mochafrom theColor Presets...list to apply.
- Download the
-
Install Neovim plugins
- Open Neovim (
nvim). - Run
:Lazyto install all plugins listed in the config. - Run
:MasonInstallAllto install all the LSP servers, linters, formatters, and debuggers.
- Open Neovim (
-
Setup VSCode (Optional)
- Follow the instructions in the
vscode/README.mdto create symbolic links for your VSCode settings and keybindings.
- Follow the instructions in the
- Leader Key:
<Space> - Window Management
<leader>sv: Split vertically<leader>sh: Split horizontally<leader>se: Make splits equal size<leader>sx: Close current split<leader>sm: Maximize/minimize split
- File Explorer:
<leader>eeto togglenvim-tree. - Fuzzy Finding:
<leader>ff: Find files<leader>fs: Live grep string
- Prefix:
<C-a> - Splitting Panes
|: Split vertically-: Split horizontally
- Resizing Panes: Use prefix +
h,j,k,lto resize panes.mto maximize/minimize. - Vim Integration:
<C-h>,<C-j>,<C-k>,<C-l>to navigate between Vim/Neovim splits and tmux panes.