A comprehensive dotfiles configuration managed with YADM for macOS and Linux systems, featuring a carefully curated development environment with powerful CLI tools and integrations.
- Overview
- Screenshots
- Features
- Quick Start
- Post-Installation
- Configuration
- Development Tools
- Maintenance
- Acknowledgments
This repository contains my personal dotfiles configuration, providing a consistent and productive development environment across different machines. It uses YADM (Yet Another Dotfiles Manager) for seamless synchronization and supports both macOS and Linux platforms with platform-specific configurations.
| Tool | Preview |
|---|---|
| Zsh | ![]() |
| Yazi | ![]() |
| Neovim | ![]() |
This dotfiles setup includes:
-
π Shell Configuration
-
π Editor Configuration
-
π€ Automation & Quality
- Pre-commit hooks for shell, markdown, Ruby, Lua, and formatting checks
- CI validations (pre-commit, Neovim config load, luacheck, bootstrap lint, gitleaks)
- Update scripts for brew, mise, zinit, and Neovim plugin health
-
π§ Development Tools
-
π¨ Terminal Enhancements
-
π¦ Package Management
-
π Security & Privacy
- 1Password with CLI integration
- SSH configuration
- GPG setup
- Secure credential management
Prerequisites:
- Log in to the App Store
- Install Xcode and accept the license agreement
Installation:
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
eval "$(/opt/homebrew/bin/brew shellenv)"
# Install YADM
brew install yadm
# Clone dotfiles repository
yadm clone --no-bootstrap https://github.com/pedropombeiro/dotfiles.git
# Set class configuration (Personal or Work)
yadm config local.class Personal
# Run bootstrap script to set up environment
yadm bootstrap
# Reload shell configuration
source ~/.zshrc.shared# Install YADM
sudo apt update && sudo apt install -y yadm
# Clone dotfiles and bootstrap
yadm clone --no-bootstrap https://github.com/pedropombeiro/dotfiles.git
yadm config local.class Personal
yadm bootstrap
source ~/.zshrc.sharedAfter installing the dotfiles, ensure the Syncthing-managed config files are linked:
~/.config/yadm/scripts/relink-dotfiles.shAfter Factory Reset:
-
Install any available OS upgrades
-
Install Xcode from the App Store and accept the T&C
-
Run the quick start installation steps above
-
Verify SSH connectivity:
ssh -T git@github.com ssh -T git@gitlab.com
-
After first Syncthing sync, restore Mackup backup:
mackup restore
Verify SSH connectivity to Git services:
ssh -T git@github.com
ssh -T git@gitlab.comManual configuration steps:
- Change the computer name in System Preferences
- Set default terminal font to 'MesloLGS NF'
- Disable notifications when screen is off
- Disable Location Services (if desired)
- Configure keyboard shortcuts:
- Set input source switching shortcuts
The definitive list of packages lives in the Homebrew bundle file and App Store list:
- Homebrew brews and casks:
.Brewfile - Mac App Store apps:
.Brewfile(masentries)
The README highlights key tooling, but the Brewfile is the source of truth.
Key tools included in this setup:
- Version Manager: mise for runtime installs and CLI tooling
(
node,ruby,go,redis, plus linters and helpers) - Languages: Ruby, Go, Node.js (plus tooling like
ruby-lsp,neovim-remote,renovate,markdownlint) - Databases: PostgreSQL (via
pgcli,pspg, andlibpq) - Containerization: Docker, plus lightweight tooling for container ops
- CLI Essentials: ripgrep, fd, bat, eza, yazi, jq/yq, hyperfine, tealdeer
- Git Tooling: gh, git-delta, git-extras, git-peek, lazygit
To identify slow startup times, use zprof:
# Add at the beginning of your .zshrc
zmodload zsh/zprof
# ... your configuration ...
# Add at the end
zprof- Create Time Machine or SuperDuper! backup
- Verify application-specific backups
- Backup hidden files in repository
- Push all Git branches
- Search for "what folders to backup"
- Verify iCloud sync is complete (check Finder status bar)
- Confirm all critical data is backed up
- Add Terminal, iTerm, VS Code, and IDEs to
System Preferences β Security & Privacy β Privacy β Developer Toolsto avoid Apple notarization slowdowns - Configure
$HOME/.git-peekfor repository peeking - Restore relevant folders from backup under
~/Library/Application Supportand~/Library/Preferences
Use Vim in YADM Git context:
Running vim from inside YADM ensures proper fzf.vim integration and Git worktree configuration:
yadm enter vimUpdate all packages:
brew update && brew upgrade && brew cleanupUpdate dotfiles tooling:
~/.config/yadm/scripts/update.shCheck YADM status:
yadm status
yadm diffThis dotfiles configuration was inspired by and builds upon ideas from:
License: See LICENSE file for details


