Syncing settings & packages between machines


#22

I’ve used something similar before, but had quite a few issues with sync conflicts occasionally, this with Dropbox. I guess I need to try it again. Tks.


#23

Yes. And a publicly-safe repo created for you would be great (perhaps with GitHub desktop client to help).

I also noticed that my .atom folder has a .gitignore in it, with the following:

storage
compile-cache
dev
.npm
.node-gyp

But I’d add to it:

.apm/
packages/
atom-shell/

I’d also like to see a packages.cson file so the references and preferences are kept, not the entire packages themselves.


#24

package-sync creates a packages.cson for you to sync your packages with :slight_smile:


#25

Perfect solution here. It could probably be even more automated but for now this works provided I only ‘star’ packages that I want synced across machines.

I guess the only problem is that if this solution becomes more popular we’ll find loads of packages only get starred if they’re being synced across machines, not necessarily because they’ve been favourited.


#26

True, but I would consider “I use this on all my machines” a pretty good measure of “I really like this package and find it useful”.


#27

Sorry to be late to the party, but!

Is there a consensus on one or two “best practices” for syncing atom across several machines?

Thanks.


#28

Helped me learn about ln command and how files works in Linux. Thanks.


#29

As a new Atom user I did my research and put few syncing methods into one post. Have a look and pick one that suits your needs. Leave a feedback on comments section below article or here. Thanks guys.


#30

I’ve been using symlinks with Dropbox.
The downside is that the tree view always reset when I change machine (I use different folders in different machines).


#31

For the record, I use the aforementioned package-sync with Syncthing to sync across 5 machines: 2x macOS, 2x Linux, 1x Windows (I have too many tablets and tools).

My Syncthing .stignore settings are:

// atom
!.atom/packages/package-sync
.atom/packages/*
.atom/storage
.atom/compile-cache
.atom/dev
.atom/.npm
.atom/.node-gyp
.atom/.apm
.atom/atom-shell

The first two lines are the most critical.

I’ll translate for non-Syncthing users:

1) yes, include the single package on all syncs for .atom/packages/package-sync    
2) now, ignore ALL OTHER .atom/packages/* in this directory.

What this does is for new Atom installs using this sync’d local directory, it installs the single package Package Sync only. After it loads that package, I run Sync from with Atom and it loads up all the packages.

This gives me a tad bit of fine grain control over massive upgrades and reconfigurations - before it’s sync’d everywhere.


#32

I recently built a package that syncs automatically your Atom settings and packages across multiple computers. A little bit like the bookmark synchronization mechanism in Google Chrome. It’s called atom-package-sync. Maybe it could fit your needs.


#33

why can’t change the Atom config folder by setting?


#35

I have two bash functions to do this.
Add this to your .bash_profile or something like that:

atom2drop () {
  echo 'Compress to .atom.zip...';
  cd $HOME &> /dev/null;
  zip -rX .atom.zip .atom &> /dev/null;
  mv $HOME/.atom.zip $HOME/Dropbox/Symlinks/atom.zip;
  echo 'Your .atom folder is now in your Dropbox:';
  echo $HOME/Dropbox/Symlinks/atom.zip;
  echo 'Run drop2atom to overwrite your current Atom settings (~/.atom)';
}

drop2atom () {
  echo 'Movinging Atom settings from Dropbox to HOME-dir and unzip it...';
  cp $HOME/Dropbox/Symlinks/atom.zip $HOME/.atom.zip;
  cd $HOME &> /dev/null;
  unzip -o .atom.zip &> /dev/null;
  rm -rf .atom.zip;
  echo 'Your Atom settings are successfully synced!';
}

#36

I have two bash functions to do this.
Add this to your .bash_profile or something like that:

atom2drop () {
  echo 'Compress to .atom.zip...';
  cd $HOME &> /dev/null;
  zip -rX .atom.zip .atom &> /dev/null;
  mv $HOME/.atom.zip $HOME/Dropbox/Symlinks/atom.zip;
  echo 'Your .atom folder is now in your Dropbox:';
  echo $HOME/Dropbox/Symlinks/atom.zip;
  echo 'Run drop2atom to overwrite your current Atom settings (~/.atom)';
}

drop2atom () {
  echo 'Movinging Atom settings from Dropbox to HOME-dir and unzip it...';
  cp $HOME/Dropbox/Symlinks/atom.zip $HOME/.atom.zip;
  cd $HOME &> /dev/null;
  unzip -o .atom.zip &> /dev/null;
  rm -rf .atom.zip;
  echo 'Your Atom settings are successfully synced!';
}