All Projects → jasonbarone → Dotfiles

jasonbarone / Dotfiles

Setup your Mac and sync it with your other machines.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Dotfiles

Clean-macOS
💻 A simple script to setup a clean environment on macOS
Stars: ✭ 155 (+154.1%)
Mutual labels:  dotfiles, mac
Mac Setup
🛠️ Front end web development setup for macOS.
Stars: ✭ 265 (+334.43%)
Mutual labels:  dotfiles, mac
configs
all config files that I use/used
Stars: ✭ 14 (-77.05%)
Mutual labels:  config, dotfiles
Syncthing Macos
Frugal and native macOS Syncthing application bundle
Stars: ✭ 1,096 (+1696.72%)
Mutual labels:  sync, mac
Mrm
Codemods for your project config files
Stars: ✭ 900 (+1375.41%)
Mutual labels:  dotfiles, config
syncTabs
Sync your firefox tabs with Safari on iOS
Stars: ✭ 25 (-59.02%)
Mutual labels:  mac, sync
dotfiles
My arch setup script and dotfiles
Stars: ✭ 37 (-39.34%)
Mutual labels:  config, dotfiles
Awesome Ban
Awesome WM 4.x theme configs
Stars: ✭ 122 (+100%)
Mutual labels:  dotfiles, config
Wlh Dotfiles
my dotfiles
Stars: ✭ 18 (-70.49%)
Mutual labels:  dotfiles, config
Awesome Dotfiles
Dotfiles for awesome people using the awesomewm linux environment
Stars: ✭ 409 (+570.49%)
Mutual labels:  dotfiles, config
Dotfiles
Collection of i3-gaps Dotfiles
Stars: ✭ 143 (+134.43%)
Mutual labels:  dotfiles, config
Macos Config
Setup for macOS that I've built for personal use case.
Stars: ✭ 28 (-54.1%)
Mutual labels:  dotfiles, mac
Dotfiles
Config for vim sublime awesome xmonad etc.
Stars: ✭ 140 (+129.51%)
Mutual labels:  dotfiles, config
autorice
Autorice 9001 ~ Simple and fast arch setup in minutes
Stars: ✭ 55 (-9.84%)
Mutual labels:  config, dotfiles
Dotfiles
⚡️ Awesome configurations for the development environments
Stars: ✭ 137 (+124.59%)
Mutual labels:  dotfiles, config
eRCaGuy dotfiles
.bashrc file, terminal prompt that shows current git branch, Arduino setup, Eclipse setup, git diff with line numbers, helpful scripts, improved Linux productivity, etc.
Stars: ✭ 84 (+37.7%)
Mutual labels:  config, dotfiles
Macos
💻 When I do a clean macOS installation.
Stars: ✭ 118 (+93.44%)
Mutual labels:  dotfiles, config
Dotfiles
OzzyCzech dotfiles for macOS
Stars: ✭ 118 (+93.44%)
Mutual labels:  dotfiles, mac
Dotbare
Manage dotfiles and any git directories interactively with fzf
Stars: ✭ 327 (+436.07%)
Mutual labels:  dotfiles, config
Awesome Hammerspoon
awesome configuration for Hammerspoon.
Stars: ✭ 928 (+1421.31%)
Mutual labels:  dotfiles, config

dotfiles

Setup and sync your Mac system in the quickest way possible.

Overview

This dotfiles project is a combination of some shell scripts and configuration files. The shell scripts automate setup and installation of dev tools, apps, symlinks, and other things. The "dotfiles" are simply local configuration files that we're moving to Dropbox in order to sync multiple systems to the same configuration.

Why?

New computers are hard to setup without automation and keeping all of your machines in sync is painful. A system like this solves it all.

How It Works

It's pretty straightforward. This system:

  • Runs a shell script that automates the installations of command line tools, package managers, and Mac applications.
  • Runs a shell script that automates your MacOS preferences.
  • Symlinks your shell configurations, git configs and any other configs to Dropbox, allowing all of your machines to sync up to the same configuration.
  • Symlinks application configurations using Mackup.
  • Allows you to separate your personal and work configurations to keep things organized.

** Note: Mackup can automate your entire system for you, but I chose not to use that because it's hard to keep track of what Mackup is doing. Instead, I only use Mackup to sync apps that do not support native Dropbox sync.

Folder Structure

I store this repo in Dropbox, in a folder named _config. I also keep 2 more folders in here that are not open source, my dotfiles-work folder, and my appdata folder. dotfiles-work contains additional bash configurations that I use on my work machine. appdata stores my application configurations.

My entire configuration folder looks something like this:

_config/
├── README.md
├── appdata
│   ├── 1password
│   ├── Alfred
│   ├── iTerm
│   └── Mackup
├── dotfiles
│   ├── scripts
│   │   ├──  bootstrap
│   │   ├──  setup_mac
│   │   └──  setup_symlinks
│   ├── aliases
│   ├── gitconfig
│   ├── gitconfig.personal
│   ├── intro
│   └── mackup.cfg
│   └── zshrc
└── dotfiles-work
    ├── scripts
    │   └──  setup_symlinks
    ├── aliases.work
    └── gitconfig.work

Setup scripts

  • bootstrap - Install and configure packages managed by Homebrew, Yarn/NPM, Homebrew Cask, Mac App Store.
  • setup_mac - Set your macOS defaults. Reboot required.
  • setup_symlinks - Symlinks local config files to your Dropbox config folder.

Initial Setup

Since we're setting up our system to sync to Dropbox, the first thing you want to do on your brand new Mac is download and install the Dropbox app.

Setup Dropbox for Selective Sync

After downloading, installing, and logging in to Dropbox, we need to immediately setup Selective Sync to avoid pulling down our entire Dropbox yet. I use a _config folder in my Dropbox folder to store all of my configuration files, so I'll do the following:

  • Go to Dropbox Preferences
  • Select the Account tab
  • Select the "Change Settings" button next to "Selective Sync"
  • Select only the _config folder
  • Wait for sync to finish

Setup

Now we're ready to run our setup scripts. Open up Terminal then head over to your config folder.

cd ~/Dropbox/_config/dotfiles/scripts

Then run your setup scripts. If this is your first time setting up dotfiles, you'll probably have to run chmod +x on your files to make them executable. Otherwise you can just run them as is. I normally run these scripts one by one to ensure things are going smoothly.

./bootstrap

./setup_mac

./setup_symlinks

Note: Before moving forward, see App-specific setup notes below. Some apps require specific setup options that can't be automated.

Using Github instead of Dropbox

I use Github as a backup, reference, and place to share this repo. My latest configuration always stays here and I can easily pull down this repo and setup my machine. The benefit of Dropbox is the real time syncing. So when I make edits to my configuration, my other systems are being updated in real time due to the Dropbox. When I'm finished I push my edits to this repo for safe keeping. If you do not wish to use Dropbox, you can keep the exact same folder structure and use git to manage your config in a repo. To sync, you'd simply need to push/pull your updates as you make them.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].