Skip to content

pedropombeiro/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Pedro's Dotfiles πŸ› οΈ

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

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.

Screenshots

Tool Preview
Oh-my-zsh Oh-my-zsh
Yazi Yazi
Neovim Neovim

Features

This dotfiles setup includes:

  • 🐚 Shell Configuration

    • Oh-my-zsh with custom themes and plugins
    • Custom aliases and functions for productivity
    • fzf integration - fuzzy file finder (use **<TAB> for fuzzy completion, e.g., vim **<TAB>)
    • autojump - intelligent directory navigation
    • direnv - environment switcher for the shell
  • πŸ“ Editor Configuration

    • Neovim with comprehensive plugin setup
    • Neovide - Neovim GUI client
    • Vim configuration with fzf integration
    • VS Code settings sync
  • πŸ”§ Development Tools

  • 🎨 Terminal Enhancements

    • iTerm2 with shell integration
    • Custom color schemes
    • Yazi - blazing fast terminal file manager
    • bat - cat clone with syntax highlighting
    • eza - modern replacement for ls
    • btop - resource monitor
    • grc - generic colouriser
  • πŸ“¦ Package Management

    • Homebrew bundle configuration
    • mise - polyglot runtime manager (modern alternative to asdf)
    • Language-specific package managers
  • πŸ” Security & Privacy

    • 1Password with CLI integration
    • SSH configuration
    • GPG setup
    • Secure credential management

Quick Start

macOS

Prerequisites:

  1. Log in to the App Store
  2. 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

Linux (Debian/Ubuntu)

# 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.shared

Post-Installation

After installing the dotfiles, symlink the configuration files in Syncthing:

~/.config/yadm/scripts/relink-dotfiles.sh

Fresh Installation - macOS

After Factory Reset:

  1. Install any available OS upgrades

  2. Install Xcode from the App Store and accept the T&C

  3. Run the quick start installation steps above

  4. Verify SSH connectivity:

    ssh -T git@github.com
    ssh -T git@gitlab.com
  5. After first Syncthing sync, restore Mackup backup:

    mackup restore

Fresh Installation - Linux

Verify SSH connectivity to Git services:

ssh -T git@github.com
ssh -T git@gitlab.com

Configuration

macOS Settings

Manual 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

Apps to Install

Installed via Homebrew:

Productivity & Utilities:

  • 1Password - Password manager with CLI support
  • Alfred - Productivity launcher
  • Raycast - Launcher and productivity tool
  • Bartender - Menu bar organizer
  • Mackup - Application settings backup
  • Muzzle - Notification manager for screen sharing
  • Notion - Note-taking and collaboration
  • AirBuddy - AirPods companion app

Development Tools:

File Management & Comparison:

Media & Entertainment:

System Tools & Utilities:

Web Browsers:

Communication:

Hardware & Specialty Tools:

Networking & Security:

Misc:

Installed via mas-cli (Mac App Store):

Post-Installation Setup:

Configure the following applications:

  • Beyond Compare - Import settings backup and install command line tools
  • Password Manager - Set up 1Password
  • Syncthing - Configure synchronization
  • Time Machine - Set up backups
  • Microsoft Edge - Configure browser settings
  • Visual Studio Code - Enable settings sync
  • Printers - Add network/local printers

Development Tools

Key tools included in this setup:

Maintenance

Profiling ZSH

To identify slow startup times, use zprof:

# Add at the beginning of your .zshrc
zmodload zsh/zprof

# ... your configuration ...

# Add at the end
zprof

Checklist Before Reinstall

  • 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

Checklist After Install

  • Add Terminal, iTerm, VS Code, and IDEs to System Preferences β†’ Security & Privacy β†’ Privacy β†’ Developer Tools to avoid Apple notarization slowdowns
  • Configure $HOME/.git-peek for repository peeking
  • Restore relevant folders from backup under ~/Library/Application Support and ~/Library/Preferences

Useful Commands

Use Vim in YADM Git context:

Running vim from inside YADM ensures proper fzf.vim integration and Git worktree configuration:

yadm enter vim

Update all packages:

brew update && brew upgrade && brew cleanup

Check YADM status:

yadm status
yadm diff

Acknowledgments

This dotfiles configuration was inspired by and builds upon ideas from:


License: See LICENSE file for details

About

My personal dotfiles

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •