Skip to content

ardinusawan/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

This setup uses GNU Stow.

GNU Stow is a symlink farm manager which takes distinct packages of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in the same place. Perfect for managing dotfiles.


Pre-required

  1. Install Xcode CLI tools (macOS):

    xcode-select --install
  2. Install packages:

    brew install stow ripgrep fd ack ctags jesseduffield/lazygit/lazygit tig git-delta jq
  3. Install Homebrew

  4. Install oh-my-zsh

  5. Install Clipy

  6. Install oh-my-zsh plugin

  7. Install iTerm2

  8. Install tmux

  9. Install Neovim

  10. Install asdf

  11. Install asdf-nodejs

  12. Install Node.js:

    asdf install nodejs 22.18.0
    asdf global nodejs 22.18.0
  13. LazyVim Font Setup

    brew install --cask font-jetbrains-mono-nerd-font
    brew install --cask font-fira-code-nerd-font

    Configure in iTerm2 → Preferences → Profiles → Text → Font.

    • Pick JetBrainsMono Nerd Font (or whichever you installed).
    • Ensure it says Nerd Font, not just JetBrains Mono.
    • Uncheck “Use a different font for non-ASCII text”.
    • Restart iTerm2.
  14. Install and configure vim-tmux-navigator

  15. Install TPM (Tmux Plugin Manager):

    git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
    tmux source ~/.tmux.conf

    Press prefix + I (capital i) to fetch the plugin.

  16. Instal go-dlv go install github.com/go-delve/delve/cmd/dlv@latest


Sync using Stow

1. Basic usage

From the dotfiles/ repo root, run:

stow zsh
stow tmux
stow git
stow nvim

2. When conflicts occur

If you see warnings like:

cannot stow .../.zshrc over existing target ~/.zshrc
  • Adopt existing files into the repo (if $HOME has the latest):

    stow --adopt zsh
  • Backup and remove old files (if repo is the source of truth):

    mv ~/.zshrc ~/.zshrc.bak
    stow zsh

3. .stowrc

We keep a .stowrc in the repo root:

--target=~
--verbose
--restow

This makes stow default to home directory, be verbose, and update symlinks.
Add --adopt if you want stow to move conflicts automatically (⚠️ use with care).

4. Fresh machine workflow

  1. Clone repo:

    git clone git@github.com:ardinusawan/dotfiles.git ~/Code/dotfiles
    cd ~/Code/dotfiles
  2. Run stow:

    stow zsh tmux git nvim
  3. Done.


Multiple GitHub Accounts

Configure ~/.ssh/config:

# Personal
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

# Work
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

Clone work repos with:

git clone git@github-work:org/repo.git

Credit

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published