Skip to content

Dotfiles for Unix-like OS

License

Notifications You must be signed in to change notification settings

hwhang0917/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

162 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

profile image of running refrigerator

Dotfiles

Configuration files for my development environment.

GitHub License

Prerequisites

Quick Start

git clone https://github.com/hwhang0917/dotfiles.git ~/dotfiles
cd ~/dotfiles
./bootstrap.sh

The bootstrap script will:

  1. Check for required dependencies (git, stow, curl)

  2. Initialize git submodules

  3. Detect your platform (linux, wsl, macos, windows)

  4. Check for optional tools and offer to install missing ones:

    Tool Description Install method
    fzf Fuzzy finder pacman / apt / brew
    zoxide Smarter cd pacman / brew / install script
    eza Modern ls pacman / brew / cargo
    bat Modern cat pacman / apt / brew
    gum Shell scripting toolkit pacman / brew / go install
    starship Prompt pacman / brew / install script
    fnm Fast Node Manager pacman / brew / install script
    zplug Zsh plugin manager pacman / brew / install script
  5. Prompt for stow package selection:

    • Y - Stow all suggested packages for your platform
    • n - Skip package installation
    • custom - Choose specific packages to stow
  6. Optionally set up git local configuration

Platform packages

Platform Stow packages
Common (all) git, zsh, tmux, nvim, vim, scripts, tig, yazi
Linux hypr, sway, ghostty, kime
WSL (common only)
macOS ghostty
Windows komorebi, glzr, autohotkey

Manual Installation

Linux / macOS / WSL

  1. Clone the repository:

    git clone https://github.com/hwhang0917/dotfiles.git ~/dotfiles
  2. Initialize submodules:

    cd ~/dotfiles
    git submodule update --init --recursive
  3. Stow packages:

    stow <package>

Windows

Windows does not support GNU Stow. Use symbolic links manually instead.

  1. Clone the repository:

    git clone https://github.com/hwhang0917/dotfiles.git $HOME\dotfiles
    cd $HOME\dotfiles
    git submodule update --init --recursive
  2. Create symbolic links (run PowerShell as Administrator):

    # Komorebi
    New-Item -ItemType SymbolicLink -Path "$HOME\.config\komorebi" -Target "$HOME\dotfiles\komorebi\.config\komorebi"
    
    # GlazeWM
    New-Item -ItemType SymbolicLink -Path "$HOME\.glzr" -Target "$HOME\dotfiles\glzr\.glzr"
    
    # AutoHotkey (adjust path as needed)
    New-Item -ItemType SymbolicLink -Path "$HOME\Documents\AutoHotkey" -Target "$HOME\dotfiles\autohotkey\Documents\AutoHotkey"

    Or use mklink in Command Prompt (as Administrator):

    mklink /D "%USERPROFILE%\.config\komorebi" "%USERPROFILE%\dotfiles\komorebi\.config\komorebi"

Git Configuration

After stowing git, set up your local credentials:

./setup/gitconfig_init.sh

Or manually copy the example file:

cp ~/dotfiles/git/.gitconfig.local.example ~/.gitconfig.local

Edit ~/.gitconfig.local with your name, email, and signing key.

Uninstallation

To uninstall a package, you can use GNU Stow with the -D option:

stow -D <package>

Troubleshooting

Stow conflicts with existing files

If stow fails due to existing files:

stow -D <package>  # Remove any partial stow
mv ~/.config/<file> ~/.config/<file>.backup  # Backup existing file
stow <package>  # Try again

zplug not found

Install zplug manually:

curl -sL --proto-redir -all,https https://raw.githubusercontent.com/zplug/installer/master/installer.zsh | zsh

Submodule issues

If submodules fail to initialize:

git submodule sync
git submodule update --init --recursive --force

Missing optional tool warnings

The bootstrap script can install these automatically. To re-run just the install step:

./bootstrap.sh

Or install manually — see the optional tools table above for links.

Bootstrap fails with "Missing required dependencies"

Install the prerequisites first:

# Debian/Ubuntu
sudo apt install git stow curl

# Arch
sudo pacman -S git stow curl

# macOS
brew install git stow curl