/dotfiles

Primary LanguageShellMIT LicenseMIT

Home Sweet Home "Github Actions Status Badge

About

This repository contains all my configs and simple scripts to setup a new Mac.

I try to keep $HOME as clean as possible by using XDG Base Directory Specification.

⚠️ Make sure you review the code before blindly using it.

Install & Use

Make sure you have Xcode and/or the Command Line Tools are installed first:

xcode-select --install

Install Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Clone the repo where you want, I usually do the following:

mkdir -p ~/dev/ladislas
cd ~/dev/ladislas
git clone https://github.com/ladislas/dotfiles
cd dotfiles

or run the following (only if you are me):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/ladislas/dotfiles/master/install.sh)"

Then run the bootstrap process:

zsh bootstrap.sh [arguments]

Available arguments are:

  • --all - run all scripts
  • --force - used with --all skip the "Are you sure you want to continue" question
  • --ci - for CI
  • --verbose or -v - print stderr message of failed commands
  • -vv - print stdout & stderr messages

The rest is detailed here:

--hello --zsh --git --nvim --data --macos --computer_name=xxx --brew --apps-install --apps-config --dev

https://github.com/ladislas/dotfiles/blob/master/bootstrap.sh

Recommended Order

# check if things work
zsh bootstrap.sh --hello

# start with brew + apps
zsh boostrap.sh --brew --apps-install

# then zsh + git
zsh bootstrap.sh --zsh --git

# finally macos
zsh bootstrap.sh --macos --computer_name=xxx

# the rest is only needed if you are me
zsh bootstrap.sh --apps-config --dev --data --nvim

Brew casks/formulae

I've removed some of the heavy casks & formulae from the script as they were taking way too much time...

To instatll them, run the following:

# swiftlint needs xcode installed
brew install swiftlint

# mandatory for signing commits
brew install --no-quarantine gpg-suite-no-mail

# Formulae
brew install imagemagick

# Casks
brew install --no-quarantine adoptopenjdk
brew install --no-quarantine mactex-no-gui

Apps Settings

Apps must be launched first before syncronizing the settings. The script takes care of that but sometimes it might take a little longer or you might need to accept a dialog box.