diff --git a/_posts/2015-04-20-syncing.html b/_posts/2015-04-20-syncing.html new file mode 100644 index 0000000..c7f6689 --- /dev/null +++ b/_posts/2015-04-20-syncing.html @@ -0,0 +1,102 @@ +--- +title: Keeping Files And Configuration In Sync +author: Correl Roush +--- +
+I have a few computers I use on a daily basis, and I like to keep the +same emacs and shell configuration on all of them, along with my org +files and a handful of scripts. Since I'm sure other people have this +problem as well, I'll share what I'm doing so anyone can learn from +(or criticise) my solutions. +
+ ++I'm a software developer, so keeping things in git just makes sense +to me. I keep my org files in a privately hosted git repository, and +Emacs and Zsh configurations in a public repo on github. My blog is +also hosted and published on github as well; I like having it cloned +to all my machines so I can work on drafts wherever I may be. +
+ ++My .zshrc installs oh-my-zsh if it isn't installed already, and sets +up my shell theme, path, and some other environmental things. +
+ ++My Emacs configuration behaves similarly, making use of John +Wiegley's excellent use-package tool to ensure all my packages are +installed if they're not already there and configured the way I like +them. +
+ ++All I have to do to get running on a new system is to install git, +emacs and zsh, clone my repo, symlink the files, and grab a cup of +tea while everything installs. +
++For personal configuration that doesn't belong in and/or is too +sensitive to be in a public repo, I have a folder of dotfiles and +things that I sync between my machines using Bittorrent Sync. The +dotfiles are arranged into directories by their purpose: +
+ ++[correlr@reason:~/dotenv] +% tree -a -L 2 +. +├── authinfo +│ └── .authinfo.gpg +├── bin +│ └── .bin +├── emacs +│ ├── .bbdb +│ └── .emacs.local.d +├── mail +│ ├── .gnus.el +│ ├── .signature +├── README.org +├── .sync +│ ├── Archive +│ ├── ID +│ ├── IgnoreList +│ └── StreamsList +├── tex +│ └── texmf +├── xmonad +│ └── .xmonad +└── zsh + └── .zshenv ++ +
+This folder structure allows my configs to be easily installed using
+GNU Stow from my dotenv
folder:
+
+stow -vvS * ++ +
+Running that command will, for each file in each of the directories, +create a symlink to it in my home folder if there isn't a file or +directory with that name there already. +
+ ++Bittorrent sync also comes in handy for syncing my growing Calibre ebook +collection, which outgrew my Dropbox account a while back. +
+