Skip to content

htlin222/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

612 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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.

GitHub stars Last Commit License: MIT macOS The Terminal Way

Personal dotfiles for macOS development environment, featuring Zsh, Neovim, tmux, Hammerspoon, and modern CLI tools.

ηΉι«”δΈ­ζ–‡η‰ˆ README


Table of Contents

Screenshots

Screenshots coming soon. In the meantime, check out The Terminal Way 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

# 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 below.

Step-by-step Installation

Prerequisites

  • macOS (tested) or Linux
  • Git
  • Internet connection

1. Change shell to Zsh

sudo -v && \
chsh -s /bin/zsh && \
touch ~/.hushlogin

2. Install Homebrew

/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

git clone https://github.com/htlin222/dotfiles.git ~/.dotfiles

4. Install packages via Brewfile

brew bundle --file="~/.dotfiles/Brewfile"
brew cleanup --prune=all
rm -rf "$(brew --cache)"

5. Bootstrap dotfiles

cd ~/.dotfiles/start
./link_dotfiles

This will symlink configuration files to your home directory.

Oh-My-Zsh Setup

# 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:

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

# 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:

sh ~/.dotfiles/macos.sh

Troubleshooting

App shows "damaged, can't be opened"

sudo xattr -r -d com.apple.quarantine /path/to/app.app

Documentation

For a comprehensive guide to terminal-based development workflow, see the 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.

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 for details.

Acknowledgments

Inspired by various dotfiles repositories in the community. Special thanks to all the open-source tools and their maintainers.

About

🦎 My macOS dotfiles β€” Neovim, Zsh, Tmux, Hammerspoon, and more. Optimized for productivity.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors