Personal config files, managed with GNU Stow.
dotfiles/
├── os-specific/
│ ├── mac/
│ │ ├── zsh/
│ │ │ └── .zshrc
│ │ └── ...
│ └── linux/
│ ├── zsh/
│ │ └── .zshrc
│ └── ...
└── os-agnostic/
├── tmux/
│ └── .tmux.conf
├── ghostty/
│ └── ...
└── yazi/
└── ...
- Git
- Gnu Stow
# macOS
brew install stow
# Ubuntu / Debian
sudo apt install stow
# Arch
sudo pacman -S stowMake sure you're in Home directory. Otherwise change the commands accordingly.
git clone https://github.com/Toha764/dotfiles ~/dotfiles
cd ~/dotfilesstow -d <source directory> -t ~ <package>
-dis where Stow looks for packages (defaults to the current directory)-tis where Stow creates the symlinks (your home directory)
Apply everything for your OS at once:
# macOS
cd ~/dotfiles/os-specific/mac && stow -t ~ */
# Linux
cd ~/dotfiles/os-specific/linux && stow -t ~ */Or pick and choose:
# Just zsh on mac
stow -d ~/dotfiles/os-specific/mac -t ~ zsh
# Just zsh on linux
stow -d ~/dotfiles/os-specific/linux -t ~ zshApply shared packages (OS agnostic stuff):
stow -d ~/dotfiles/os-agnostic -t ~ tmux
stow -d ~/dotfiles/os-agnostic -t ~ ghostty
stow -d ~/dotfiles/os-agnostic -t ~ yazi
# Or all of them at once
cd ~/dotfiles/os-agnostic && stow -t ~ */# Reapply a package (useful after adding new files to it)
stow -R -d ~/dotfiles/os-agnostic -t ~ tmux
# Remove a package's symlinks
stow -D -d ~/dotfiles/os-agnostic -t ~ tmux
# Dry run — see what Stow *would* do without actually doing it
stow -n -d ~/dotfiles/os-agnostic -t ~ tmux
# Verbose dry run (see every symlink it plans to create)
stow -nv -d ~/dotfiles/os-agnostic -t ~ tmuxTurn off all animations on mac
defaults write -g NSScrollViewRubberbanding -int 0
defaults write -g NSAutomaticWindowAnimationsEnabled -bool false
defaults write -g NSScrollAnimationEnabled -bool false
defaults write -g NSWindowResizeTime -float 0.001
defaults write -g QLPanelAnimationDuration -float 0
defaults write -g NSScrollViewRubberbanding -bool false
defaults write -g NSDocumentRevisionsWindowTransformAnimation -bool false
defaults write -g NSToolbarFullScreenAnimationDuration -float 0
defaults write -g NSBrowserColumnAnimationSpeedMultiplier -float 0
defaults write com.apple.dock autohide-time-modifier -float 0
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock expose-animation-duration -float 0
defaults write com.apple.dock springboard-show-duration -float 0
defaults write com.apple.dock springboard-hide-duration -float 0
defaults write com.apple.dock springboard-page-duration -float 0
defaults write com.apple.finder DisableAllAnimations -bool true
defaults write com.apple.Mail DisableSendAnimations -bool true
defaults write com.apple.Mail DisableReplyAnimations -bool true
defaults write NSGlobalDomain NSWindowResizeTime .001
defaults write com.apple.dock expose-animation-duration -int 0; killall Dock
defaults write com.apple.dock expose-animation-duration -float 0.1; killall Dock