Super opinionated tools, apps and defaults for macOS.
This over-engineered macOS bootstrap is intended to be run after a fresh install of macOS, but can be run safely on established machines too.
It's unlikely that the chosen applications and system defaults will suit your purposes exactly, but you should find it easy enough to customise.
Pull requests are very welcome!
Before formatting your machine
- Go through Atom packages and themes, and 'star' the ones you want to keep
- Run
brew bundle dump
to create aBrewfile
based on your current installation - Run
mackup --dry-run backup
to see which apps are compatible with mackup- If you'd like to backup everything listed, just run the command again without
--dry-run
- If you'd like to only backup selected apps, read more here
- If you'd like to backup everything listed, just run the command again without
You can use this information to start crafting your own config.yaml
Open a terminal window and run:
bash <(curl -s https://raw.githubusercontent.com/d3v1an7/fresh/master/bin/setup)
This will install the tools required to run the script, and download this repo to ~/.fresh
.
I highly recommend getting familiar with what's in ~/.fresh/config.yaml
before proceeding further. Feel free to remove chunks you aren't interested in (i.e. .misc.font
) and update any values that aren't to your liking.
Once you're happy, run:
~/.fresh/bin/fresh
- Use homebrew to install apps and tools in config (
brew bundle install
) - Use mackup to restore .dotfiles, app config & licences (
mackup restore
) - Use plutil to check and update system defaults (
plutil -replace
) - Use a bunch of bash to configure
misc
settings
Manual steps
- Remove taps, formulae and casks in the generated
~/.fresh/Brewfile
- Check the
~/.fresh/fresh.log
for original system defaults and fix as required - Check all
misc_
named functions in~/.fresh/bin/fresh
and clean up as required
Commands
$ mackup uninstall
$ rm ~/.mackup.cfg
$ rm -R ~/.fresh
Finder > Preferences > Sidebar
- Uncheck all, except the following
- Favorites: iCloud Drive, AirDrop, Desktop, Home
- Shared: Connected servers
- Devices: Hard disks, External disks, CDs
[New Finder window]
- Add
~/Applications
- Set order of sidebar
- Desktop
- Home
- ~/Applications
- AirDrop
~/.fresh/config.yaml
Although it's not as straightforward as just using a shell script, I like the idea of all the tools, apps, and system settings in a single file and format. It requires a bit of love, but I think it's worth it ✨
~/.fresh/fresh.log
Just executing someone else's giant dotfile config gives me the willies. What if something doesn't feel right afterwards? So every change to defaults
will be appended to fresh.log
, so you can manually revert changes if you aren't feeling it.
~/mackup.cfg
Thi exists as I only want Mackup to handle the the apps in config.yaml
as I tend to install a bunch of stuff 'for fun' over time, which I don't necessarily want to store config for.
If you have any questions or suggestions, you can:
- Submit a pull request
- Please see style guide here
- Please lint with ShellCheck before submitting PRs (
make check
)
- Submit an issue, or
- Say hello on Twitter
Shout out to the many who have tread this ground before:
- boxen/our-boxen
- mathiasbynens/dotfiles
- ptb/osx-setup
- necolas/dotfiles
- rafeca/dotfiles
- pongstr/dotfiles
- paularmstrong/dotfiles
This would not be possible without:
And much ❤️ to: