Syncing Atom Plugins and Themes Between Multiple Machines
One thing I love about Atom is how effortless it is to sync preferences between my work and personal Macs. If you're logged into Atom's website, you can simply star any plugin or theme to save it to your starred list. Here's my list of starred plugins.
Now, if you have Atom installed, you should have access to the bundled
apm cli command.
To list your starred plugins, in a terminal run:
apm stars --user <your_github_username>
To install your starred plugins, simply add
--install to the end:
apm stars --user <your_github_username> --install
And if you love bash aliases as much as I do...
alias atom:stars='apm stars --user <your_github_username>' alias atom:update='atom:stars --install'
Syncing Atom Settings
Syncing packages is only half the battle! What about all your settings and preferences?
I personally have a private dotfiles git repo that I use to sync all system preference related things between machines. The way Atom stores your settings actually makes it really easy to sync them directly with git.
Atom creates a directory inside your home directory
~/.atom. Everything we need is stored inside there. The first thing you'll need is your own dotfiles repo which the below instructions assume you already have.
First, you'll need to close Atom since we'll be moving some things around. After Atom is closed, we are going to move the
~/.atom directory inside your dotfiles repo and then create a symlink to this new location.
mv ~/.atom <path_to_your_dotfiles_repo> ln -s <path_to_your_dotfiles_repo>/.atom ~/.atom
Now you can open Atom once again. The symlinked directory will allow Atom to operate normally, however, all preferences will now be saved directly inside
<path_to_your_dotfiles_repo>/.atom instead. If you
cd into your dotfiles repo and run
git status, there's a lot of junk you'll see that we don't want to save. To hide some of this stuff, we can create a
.gitignore file inside your
touch <path_to_your_dotfiles_repo>/.atom/.gitignore # Then, add these lines to your new .gitignore file storage compile-cache dev .npm .node-gyp blob-store packages
Now when you do
git status, you'll see only a few files:
.gitignore and maybe
keymap.cson if you've saved preferences for those. These are the files you will want to commit and push!
And that's about it. Next time you switch to another machine with Atom installed, you can just pull your dotfiles repo, add the
~/.atom symlink, run
atom:update, and be on your way.