This repository contains my personal dotfiles, as well as several scripts to install applications and configure settings. Although the shell configuration settings should (mostly) work on any Unix-based system, most of these scripts were only designed to run on macOS and likely won't run at all on any other OS.
Here's a short description of each script in this repository:
bootstrap.sh
bootstrap install everything, including cloning this repositoryrun.sh
install Homebrew and run all the following scriptsdotsync.sh
sync and symlink dotfiles from this repository to your home directorymacos.sh
configure several macOS settingsinstall.sh
install fonts, tools, and apps using Homebrew,uv
, and the Mac App Storedock.sh
configure macOS docklocal.sh
final local settings, like configuring git user details and registering apps using keys stored in 1Passwordbash_traceback.sh
helper script used by other scripts to print a more helpful traceback on failure (does nothing by itself)
All these scripts are idempotent, meaning they can be run multiple times without issue.
Warning: Running these dotfiles blindly will overwrite settings and install apps and fonts that you probably don't need. Use at your own risk!
On a fresh (or not so fresh) macOS install, run the following command to install Homebrew and run all scripts:
bash <(curl -s https://raw.githubusercontent.com/martimlobao/dotfiles/main/bootstrap.sh)
For my own convenience, I have a shorter https://dot.lobao.io
URL that redirects to the same script. However, you probably shouldn't run arbitrary code from a stranger on the internet, so unless you're me or you fully trust me, it might be best to use the longer version.
The easier-to-remember command is:
bash <(curl -L dot.lobao.io)
To run the script without interactive prompts, just add -y
to the end:
bash <(curl -sL https://dot.lobao.io) -y
1Password is required to store secrets used by these scripts. These include:
op user get --me
to set your gituser.name
op://Private/GitHub/email
andop://Private/GitHub/username
to configure git and push to Githubop://Private/GitHub SSH Commit Signing Key/public key
to configure SSH commit signingop://Private/iStat Menus 6/registered email
andop://Private/iStat Menus 6/license key
to register iStat Menus 6op://Private/Charles/registered name
andop://Private/Charles/license key
to register Charles- SSH keys for AWS
Several people and repositories have contributed to or been a source of inspiration for this repository:
- @mathiasbyens/dotfiles, off of which this repository was initially based
- @kevinsuttle/macOS-Defaults
- @ryanpavlick/add_to_dock
- @MichaelAquilina/zsh-auto-notify
- @Niraj-Kamdar/macos-the-long-running-task-notifier
- @ikuwow/dotfiles
- @kennethreitz/dotfiles
- @br3ndonland/dotfiles
- @pablopunk/dotfiles
- @demophoon/dotfiles
- @lupin3000/macOS-defaults