Your dotfiles are how you personalize your system. These are mine.
This repository contains configuration files and automation scripts for setting up a development environment on macOS with modern command-line tools, applications, and personalized settings.
Just run the following commands in your system:
git clone https://github.com/igalarzab/dotfiles ~/.config/dotfiles
cd ~/.config/dotfiles
./sidot run- Shell:
xonshas the primary interactive shell, with parallel Bash/zsh configuration - Editor: Neovim with optimized settings
- Terminal: iTerm2 configurations
- Version Control: Git with helpful aliases and configurations
- Package Management: Homebrew bundle with essential tools
- Modern replacements:
bat,fd,fzf,ripgrep,delta,zoxide - Development tools:
gh,jq,mise,uv,llm - System utilities:
coreutils,gnu-sed,watch,tree,pstree
Automatically installs productivity and development applications via Homebrew Cask including:
- Browsers: Arc
- Development: Visual Studio Code, ChatGPT, Claude
- Productivity: Raycast, Rectangle Pro, Fantastical, Notion
- Utilities: 1Password, AppCleaner, The Unarchiver, Cryptomator
The setup is managed by sidot (SImple DOTfiles Script), a custom Python tool that:
- Installs Homebrew and all packages defined in
packages/Brewfile - Symlinks configuration files using pattern-based rules:
*.symlinkfiles →~/.*(hidden files in home directory)*.configsymlinkfiles →~/.config/*(XDG config directory)
- Sets up development tools via
mise(version manager)
Each topic area has its own directory with relevant configurations:
- aws/: AWS CLI configurations
- bin/: Custom scripts added to
$PATH - git/: Git configuration and aliases
- gnupg/: GPG settings for commit signing
- kubernetes/: kubectl and k8s tool configurations
- macos/: macOS-specific settings
- mise/: Runtime version management
- vim/: Neovim configuration
- xonsh/: Shell configuration and custom functions
- zsh/: zsh startup used by interactive shells and Codex
App-specific shell configuration stays with the app and is loaded by extension:
env.shandinit.sh: shared by xonsh, zsh, and Bash*.xsh: xonsh-specific setup*.zsh: zsh-specific setup*.bash: Bash-specific setup
Xonsh and zsh load this configuration automatically. The shared files are ready for Bash too, but Bash does not have its own startup loader yet.
Create local configuration files that won't be tracked by git:
Git Configuration (~/.config/git/config-local):
[user]
name = Your Name
email = your.email@example.com
signingkey = your-gpg-key-id
[github]
user = your-github-usernameSSH Configuration (~/.ssh/config-local):
# Add your custom SSH configurations here
- Add new topic directories: Create a new directory (e.g.,
python/) and add configuration files - Install additional packages: Edit
packages/Brewfileto add more Homebrew formulas or casks - Modify automation: Update
sidot.tomlto add custom setup steps
- 🍎 macOS (tested on recent versions)
- 🌐 Internet connection for downloading packages
- 🔑 Administrative privileges for some installations
- Run
./sidot runagain to retry failed installations - Check
packages/Brewfileif specific packages fail to install - Verify symlinks with
ls -la ~/.*andls -la ~/.config/
Note: Fork this repository and customize it for your own needs. These configurations are tailored to my personal workflow and preferences.