https://github.com/htlin222/dotfiles
π¦ My macOS dotfiles β Neovim, Zsh, Tmux, Hammerspoon, and more. Optimized for productivity.
https://github.com/htlin222/dotfiles
dotfiles dotfiles-macos hammerspoon macos neovim neovim-dotfiles terminal tmux tmux-conf zsh zshrc
Last synced: 9 days ago
JSON representation
π¦ My macOS dotfiles β Neovim, Zsh, Tmux, Hammerspoon, and more. Optimized for productivity.
- Host: GitHub
- URL: https://github.com/htlin222/dotfiles
- Owner: htlin222
- License: mit
- Created: 2022-06-20T08:41:34.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2026-06-11T19:22:05.000Z (11 days ago)
- Last Synced: 2026-06-11T20:17:07.950Z (11 days ago)
- Topics: dotfiles, dotfiles-macos, hammerspoon, macos, neovim, neovim-dotfiles, terminal, tmux, tmux-conf, zsh, zshrc
- Language: Lua
- Homepage: https://the-terminal-way.netlify.app/
- Size: 53.6 MB
- Stars: 77
- Watchers: 0
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: newsboat.symlink/config
- Funding: .github/FUNDING.yml
- License: LICENSE.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
---
title: "htlin's dotfiles"
slug: "readme"
date: "2023-02-16"
enableToc: false
---
# htlin's dotfiles
> Your dotfiles are how you personalize your system. These are mine.
[](https://github.com/htlin222/dotfiles/stargazers)
[](https://github.com/htlin222/dotfiles/commits/master)
[](LICENSE.md)
[](#)
[](https://the-terminal-way.netlify.app/)
Personal dotfiles for macOS development environment, featuring **Zsh**, **Neovim**, **tmux**, **Hammerspoon**, and modern CLI tools.
**[ηΉι«δΈζη README](README_zh-TW.md)**
---
## Table of Contents
- [Screenshots](#screenshots)
- [Features](#features)
- [Quick Start](#quick-start)
- [Oh-My-Zsh Setup](#oh-my-zsh-setup)
- [What's Included](#whats-included)
- [Optional: Fix Homebrew PATH](#optional-fix-homebrew-path)
- [Optional: Python Setup with pyenv](#optional-python-setup-with-pyenv)
- [macOS Settings](#macos-settings)
- [Troubleshooting](#troubleshooting)
- [Documentation](#documentation)
- [Disclaimer](#disclaimer)
- [License](#license)
- [Acknowledgments](#acknowledgments)
## Screenshots
> Screenshots coming soon. In the meantime, check out [The Terminal Way](https://the-terminal-way.netlify.app/) for a full walkthrough.
## Features
- **Zsh** with Oh-My-Zsh and Powerlevel10k theme
- **Neovim** configuration
- **tmux** for terminal multiplexing
- **Hammerspoon** for macOS automation and window management
- **Git** configuration with useful aliases
- **Modern CLI tools**: fzf, ripgrep, fd, lsd, lazygit, and more
- **Automated setup** via bootstrap scripts
- **Homebrew** package management with Brewfile
## Quick Start
```bash
# 1. Clone the repo
git clone https://github.com/htlin222/dotfiles.git ~/.dotfiles
# 2. Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 3. Install packages
brew bundle --file="~/.dotfiles/Brewfile"
# 4. Symlink dotfiles
cd ~/.dotfiles/start && ./link_dotfiles
```
> For a detailed walkthrough, see the [step-by-step guide](#step-by-step-installation) below.
### Step-by-step Installation
#### Prerequisites
- macOS (tested) or Linux
- Git
- Internet connection
#### 1. Change shell to Zsh
```bash
sudo -v && \
chsh -s /bin/zsh && \
touch ~/.hushlogin
```
#### 2. Install Homebrew
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Follow the instructions to add Homebrew to your PATH
```
#### 3. Clone this repository
```bash
git clone https://github.com/htlin222/dotfiles.git ~/.dotfiles
```
#### 4. Install packages via Brewfile
```bash
brew bundle --file="~/.dotfiles/Brewfile"
brew cleanup --prune=all
rm -rf "$(brew --cache)"
```
#### 5. Bootstrap dotfiles
```bash
cd ~/.dotfiles/start
./link_dotfiles
```
This will symlink configuration files to your home directory.
## Oh-My-Zsh Setup
```bash
# Install Oh-My-Zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Install plugins
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/jeffreytse/zsh-vi-mode $ZSH_CUSTOM/plugins/zsh-vi-mode
git clone https://github.com/qoomon/zsh-lazyload $ZSH_CUSTOM/plugins/zsh-lazyload
git clone https://github.com/MichaelAquilina/zsh-you-should-use.git $ZSH_CUSTOM/plugins/you-should-use
git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab
```
## What's Included
| Category | Files |
| ----------- | -------------------------------- |
| Shell | `.zshrc`, `.zshenv`, `.zprofile` |
| Git | `.gitconfig`, `.gitignore` |
| tmux | `.tmux.conf` |
| Neovim | `.config/nvim/` |
| Hammerspoon | `.hammerspoon/` |
| R | `.Rprofile` |
## Optional: Fix Homebrew PATH
If Homebrew binaries don't appear in `/usr/local/bin`:
```bash
sudo mkdir -p /usr/local/bin && \
sudo ln -s /opt/homebrew/bin/im-select /usr/local/bin/im-select && \
sudo ln -s /opt/homebrew/bin/nvim /usr/local/bin/nvim && \
sudo ln -s /opt/homebrew/bin/node /usr/local/bin/node
```
## Optional: Python Setup with pyenv
```bash
# Find and install Python version
pyenv install -l | grep 3\\.12\\.
pyenv install 3.12.0
# Create virtualenv for Neovim
pyenv virtualenv 3.12.0 neovim3
pyenv activate neovim3
pip install neovim pynvim
pyenv deactivate
```
## macOS Settings
Apply recommended macOS settings:
```bash
sh ~/.dotfiles/macos.sh
```
## Troubleshooting
### App shows "damaged, can't be opened"
```bash
sudo xattr -r -d com.apple.quarantine /path/to/app.app
```
## Documentation
For a comprehensive guide to terminal-based development workflow, see the [docs](docs/) directory, which contains "The Terminal Way" - a complete guide covering:
- Shell configuration and customization
- tmux for terminal multiplexing
- Neovim setup and usage
- Modern CLI tools (fzf, ripgrep, fd, etc.)
- Git workflow optimization
- And much more...
Read the full guide at **[the-terminal-way.netlify.app](https://the-terminal-way.netlify.app/)**.
## Disclaimer
**USE AT YOUR OWN RISK.** This repository contains my personal configuration files and scripts. Before using:
1. **Review the code** - Understand what each script does before running it
2. **Backup your data** - These scripts may overwrite existing configuration files
3. **No warranty** - This software is provided "as is", without warranty of any kind
4. **Not responsible** - I am not responsible for any damage or data loss caused by using these dotfiles
5. **Test first** - Consider testing on a virtual machine before applying to your main system
The scripts include operations that:
- Modify system preferences
- Create/overwrite symlinks in your home directory
- Install software packages
- Change shell configurations
**Always backup your existing dotfiles before running any bootstrap scripts.**
## License
MIT License - See [LICENSE.md](LICENSE.md) for details.
## Acknowledgments
Inspired by various dotfiles repositories in the community. Special thanks to all the open-source tools and their maintainers.