{"id":29126494,"url":"https://github.com/htlin222/dotfiles","last_synced_at":"2026-06-13T21:01:29.415Z","repository":{"id":37306279,"uuid":"505360524","full_name":"htlin222/dotfiles","owner":"htlin222","description":"🦎 My macOS dotfiles — Neovim, Zsh, Tmux, Hammerspoon, and more. Optimized for productivity.","archived":false,"fork":false,"pushed_at":"2026-06-11T19:22:05.000Z","size":56183,"stargazers_count":77,"open_issues_count":3,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T20:17:07.950Z","etag":null,"topics":["dotfiles","dotfiles-macos","hammerspoon","macos","neovim","neovim-dotfiles","terminal","tmux","tmux-conf","zsh","zshrc"],"latest_commit_sha":null,"homepage":"https://the-terminal-way.netlify.app/","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/htlin222.png","metadata":{"files":{"readme":"README.md","changelog":"newsboat.symlink/config","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"buy_me_a_coffee":"htl.lizard"}},"created_at":"2022-06-20T08:41:34.000Z","updated_at":"2026-06-11T19:22:09.000Z","dependencies_parsed_at":"2023-10-01T17:16:03.922Z","dependency_job_id":"a7af188d-4d00-42fe-b66a-6931e82c7082","html_url":"https://github.com/htlin222/dotfiles","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/htlin222/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htlin222%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htlin222%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htlin222%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htlin222%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/htlin222","download_url":"https://codeload.github.com/htlin222/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htlin222%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34300116,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","dotfiles-macos","hammerspoon","macos","neovim","neovim-dotfiles","terminal","tmux","tmux-conf","zsh","zshrc"],"created_at":"2025-06-29T23:38:33.451Z","updated_at":"2026-06-13T21:01:29.409Z","avatar_url":"https://github.com/htlin222.png","language":"Lua","funding_links":["https://buymeacoffee.com/htl.lizard"],"categories":[],"sub_categories":[],"readme":"---\ntitle: \"htlin's dotfiles\"\nslug: \"readme\"\ndate: \"2023-02-16\"\nenableToc: false\n---\n\n\u003cdiv align=\"center\"\u003e\n\n# htlin's dotfiles\n\n\u003e Your dotfiles are how you personalize your system. These are mine.\n\n[![GitHub stars](https://img.shields.io/github/stars/htlin222/dotfiles?style=flat-square\u0026logo=github)](https://github.com/htlin222/dotfiles/stargazers)\n[![Last Commit](https://img.shields.io/github/last-commit/htlin222/dotfiles?style=flat-square\u0026logo=git\u0026logoColor=white)](https://github.com/htlin222/dotfiles/commits/master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE.md)\n[![macOS](https://img.shields.io/badge/macOS-supported-brightgreen?style=flat-square\u0026logo=apple\u0026logoColor=white)](#)\n[![The Terminal Way](https://img.shields.io/badge/docs-The%20Terminal%20Way-orange?style=flat-square\u0026logo=netlify\u0026logoColor=white)](https://the-terminal-way.netlify.app/)\n\nPersonal dotfiles for macOS development environment, featuring **Zsh**, **Neovim**, **tmux**, **Hammerspoon**, and modern CLI tools.\n\n**[繁體中文版 README](README_zh-TW.md)**\n\n\u003c/div\u003e\n\n---\n\n## Table of Contents\n\n- [Screenshots](#screenshots)\n- [Features](#features)\n- [Quick Start](#quick-start)\n- [Oh-My-Zsh Setup](#oh-my-zsh-setup)\n- [What's Included](#whats-included)\n- [Optional: Fix Homebrew PATH](#optional-fix-homebrew-path)\n- [Optional: Python Setup with pyenv](#optional-python-setup-with-pyenv)\n- [macOS Settings](#macos-settings)\n- [Troubleshooting](#troubleshooting)\n- [Documentation](#documentation)\n- [Disclaimer](#disclaimer)\n- [License](#license)\n- [Acknowledgments](#acknowledgments)\n\n## Screenshots\n\n\u003c!-- Add your terminal screenshots here --\u003e\n\u003c!-- Example: --\u003e\n\u003c!-- ![Terminal](screenshots/terminal.png) --\u003e\n\u003c!-- ![Neovim](screenshots/neovim.png) --\u003e\n\u003c!-- ![tmux](screenshots/tmux.png) --\u003e\n\n\u003e Screenshots coming soon. In the meantime, check out [The Terminal Way](https://the-terminal-way.netlify.app/) for a full walkthrough.\n\n## Features\n\n- **Zsh** with Oh-My-Zsh and Powerlevel10k theme\n- **Neovim** configuration\n- **tmux** for terminal multiplexing\n- **Hammerspoon** for macOS automation and window management\n- **Git** configuration with useful aliases\n- **Modern CLI tools**: fzf, ripgrep, fd, lsd, lazygit, and more\n- **Automated setup** via bootstrap scripts\n- **Homebrew** package management with Brewfile\n\n## Quick Start\n\n```bash\n# 1. Clone the repo\ngit clone https://github.com/htlin222/dotfiles.git ~/.dotfiles\n\n# 2. Install Homebrew (if not already installed)\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\n# 3. Install packages\nbrew bundle --file=\"~/.dotfiles/Brewfile\"\n\n# 4. Symlink dotfiles\ncd ~/.dotfiles/start \u0026\u0026 ./link_dotfiles\n```\n\n\u003e For a detailed walkthrough, see the [step-by-step guide](#step-by-step-installation) below.\n\n### Step-by-step Installation\n\n#### Prerequisites\n\n- macOS (tested) or Linux\n- Git\n- Internet connection\n\n#### 1. Change shell to Zsh\n\n```bash\nsudo -v \u0026\u0026 \\\nchsh -s /bin/zsh \u0026\u0026 \\\ntouch ~/.hushlogin\n```\n\n#### 2. Install Homebrew\n\n```bash\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n# Follow the instructions to add Homebrew to your PATH\n```\n\n#### 3. Clone this repository\n\n```bash\ngit clone https://github.com/htlin222/dotfiles.git ~/.dotfiles\n```\n\n#### 4. Install packages via Brewfile\n\n```bash\nbrew bundle --file=\"~/.dotfiles/Brewfile\"\nbrew cleanup --prune=all\nrm -rf \"$(brew --cache)\"\n```\n\n#### 5. Bootstrap dotfiles\n\n```bash\ncd ~/.dotfiles/start\n./link_dotfiles\n```\n\nThis will symlink configuration files to your home directory.\n\n## Oh-My-Zsh Setup\n\n```bash\n# Install Oh-My-Zsh\nsh -c \"$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"\n\n# Install plugins\ngit clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k\ngit clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions\ngit clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting\ngit clone https://github.com/jeffreytse/zsh-vi-mode $ZSH_CUSTOM/plugins/zsh-vi-mode\ngit clone https://github.com/qoomon/zsh-lazyload $ZSH_CUSTOM/plugins/zsh-lazyload\ngit clone https://github.com/MichaelAquilina/zsh-you-should-use.git $ZSH_CUSTOM/plugins/you-should-use\ngit clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab\n```\n\n## What's Included\n\n| Category    | Files                            |\n| ----------- | -------------------------------- |\n| Shell       | `.zshrc`, `.zshenv`, `.zprofile` |\n| Git         | `.gitconfig`, `.gitignore`       |\n| tmux        | `.tmux.conf`                     |\n| Neovim      | `.config/nvim/`                  |\n| Hammerspoon | `.hammerspoon/`                  |\n| R           | `.Rprofile`                      |\n\n## Optional: Fix Homebrew PATH\n\nIf Homebrew binaries don't appear in `/usr/local/bin`:\n\n```bash\nsudo mkdir -p /usr/local/bin \u0026\u0026 \\\nsudo ln -s /opt/homebrew/bin/im-select /usr/local/bin/im-select \u0026\u0026 \\\nsudo ln -s /opt/homebrew/bin/nvim /usr/local/bin/nvim \u0026\u0026 \\\nsudo ln -s /opt/homebrew/bin/node /usr/local/bin/node\n```\n\n## Optional: Python Setup with pyenv\n\n```bash\n# Find and install Python version\npyenv install -l | grep 3\\\\.12\\\\.\npyenv install 3.12.0\n\n# Create virtualenv for Neovim\npyenv virtualenv 3.12.0 neovim3\npyenv activate neovim3\npip install neovim pynvim\npyenv deactivate\n```\n\n## macOS Settings\n\nApply recommended macOS settings:\n\n```bash\nsh ~/.dotfiles/macos.sh\n```\n\n## Troubleshooting\n\n### App shows \"damaged, can't be opened\"\n\n```bash\nsudo xattr -r -d com.apple.quarantine /path/to/app.app\n```\n\n## Documentation\n\nFor a comprehensive guide to terminal-based development workflow, see the [docs](docs/) directory, which contains \"The Terminal Way\" - a complete guide covering:\n\n- Shell configuration and customization\n- tmux for terminal multiplexing\n- Neovim setup and usage\n- Modern CLI tools (fzf, ripgrep, fd, etc.)\n- Git workflow optimization\n- And much more...\n\nRead the full guide at **[the-terminal-way.netlify.app](https://the-terminal-way.netlify.app/)**.\n\n## Disclaimer\n\n**USE AT YOUR OWN RISK.** This repository contains my personal configuration files and scripts. Before using:\n\n1. **Review the code** - Understand what each script does before running it\n2. **Backup your data** - These scripts may overwrite existing configuration files\n3. **No warranty** - This software is provided \"as is\", without warranty of any kind\n4. **Not responsible** - I am not responsible for any damage or data loss caused by using these dotfiles\n5. **Test first** - Consider testing on a virtual machine before applying to your main system\n\nThe scripts include operations that:\n\n- Modify system preferences\n- Create/overwrite symlinks in your home directory\n- Install software packages\n- Change shell configurations\n\n**Always backup your existing dotfiles before running any bootstrap scripts.**\n\n## License\n\nMIT License - See [LICENSE.md](LICENSE.md) for details.\n\n## Acknowledgments\n\nInspired by various dotfiles repositories in the community. Special thanks to all the open-source tools and their maintainers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhtlin222%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhtlin222%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhtlin222%2Fdotfiles/lists"}