Skip to content

martimlobao/dotfiles

Repository files navigation

Martim's dotfiles

Screenshot of my shell prompt

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 repository
  • run.sh install Homebrew and run all the following scripts
  • dotsync.sh sync and symlink dotfiles from this repository to your home directory
  • macos.sh configure several macOS settings
  • install.sh install fonts, tools, and apps using Homebrew, uv, and the Mac App Store
  • dock.sh configure macOS dock
  • local.sh final local settings, like configuring git user details and registering apps using keys stored in 1Password
  • bash_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!

Installation

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 requirements

1Password is required to store secrets used by these scripts. These include:

  • op user get --me to set your git user.name
  • op://Private/GitHub/email and op://Private/GitHub/username to configure git and push to Github
  • op://Private/GitHub SSH Commit Signing Key/public key to configure SSH commit signing
  • op://Private/iStat Menus 6/registered email and op://Private/iStat Menus 6/license key to register iStat Menus 6
  • op://Private/Charles/registered name and op://Private/Charles/license key to register Charles
  • SSH keys for AWS

Thanks and inspiration

Several people and repositories have contributed to or been a source of inspiration for this repository: