Skip to content

martimlobao/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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 (callable using bootstrap)
  • 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
  • aerials.py download macOS Aerial live wallpapers (callable using aerials)
  • install.sh install fonts, tools, and apps using Homebrew, uv, and the Mac App Store (callable using syncapps)
  • app.py CLI tool to manage and install applications listed in apps.toml (callable using app)
  • dock.sh configure macOS dock
  • code.sh install Cursor extensions
  • 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 but are not limited to:

  • op://Private/GitHub/name 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

Features

  • Symlink dotfiles from this repository to your home directory
  • Install apps, fonts, and tools using Homebrew, uv, and the Mac App Store
  • Set up straightforward Python configuration using uv
  • Set up macOS Dock with most used apps
  • Register and configure iStat Menus 6, Charles, 1Password, AWS CLI, and GitHub CLI
  • TouchID for sudo
  • Configure git user details
  • Configure SSH client
  • Configure GPG client

Managing apps with app

Use the app CLI (backed by scripts/app.py) to keep apps.toml up to date:

app add <app> <source> [--group <group>] [--description <text>]
app remove <app>

By default, adding an app will also install it via the chosen source, and removing an app will uninstall it. Pass --no-install to skip those steps and only update apps.toml.

Aerial live wallpapers

This repository contains a script that downloads the wallpapers from Apple's servers and caches them to your local machine. It can also delete existing wallpapers and list all available wallpapers.

To use the script, run uv run scripts/aerials.py or simply ./scripts/aerials.py (requires installing uv).

You can even run the script directly from GitHub using uv:

curl -LsSf https://astral.sh/uv/install.sh | sh  # Install uv if not already installed
uv run https://raw.githubusercontent.com/martimlobao/dotfiles/refs/heads/main/scripts/aerials.py

Aerials live wallpapers

Thanks and inspiration

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

About

๐Ÿ›  My dotfiles, optimized for macOS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages