Skip to content

htlin222/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

609 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.