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. +

+ +
+

Git for configuration and projects

+
+

+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. +

+
+
+ +
+

Bittorrent sync for personal settings & books

+
+

+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. +

+
+
diff --git a/_posts/2015-04-20-syncing.org b/_posts/2015-04-20-syncing.org new file mode 100644 index 0000000..da3b063 --- /dev/null +++ b/_posts/2015-04-20-syncing.org @@ -0,0 +1,76 @@ +#+TITLE: Keeping Files And Configuration In Sync +#+DATE: <2015-04-20 Mon> +#+OPTIONS: toc:nil num:nil + +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. + +* Git for configuration and projects + + 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 + [[https://www.gnu.org/software/emacs/][Emacs]] and [[http://www.zsh.org/][Zsh]] configurations in a [[https://github.com/correl/dotfiles][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 [[https://github.com/correl/dotfiles/blob/master/.zshrc][.zshrc]] installs [[https://github.com/robbyrussell/oh-my-zsh][oh-my-zsh]] if it isn't installed already, and sets + up my shell theme, path, and some other environmental things. + + My [[https://github.com/correl/dotfiles/blob/master/.emacs.d/emacs.org][Emacs configuration]] behaves similarly, making use of John + Wiegley's excellent [[https://github.com/jwiegley/use-package][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. + +* Bittorrent sync for personal settings & books + + 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 [[https://www.getsync.com/][Bittorrent Sync]]. The + dotfiles are arranged into directories by their purpose: + + #+BEGIN_EXAMPLE + [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 + #+END_EXAMPLE + + This folder structure allows my configs to be easily installed using + [[https://www.gnu.org/software/stow/][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 [[http://calibre-ebook.com/][Calibre]] ebook + collection, which outgrew my [[https://www.dropbox.com/][Dropbox]] account a while back.