Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A community driven framework of dotfiles.

branch: master
Octocat-spinner-32 ack Add some more options for ack February 24, 2013
Octocat-spinner-32 aptitude Updated aptitude/config February 24, 2013
Octocat-spinner-32 bin bring back into sync with upstream February 22, 2013
Octocat-spinner-32 cmus emove autosave August 04, 2012
Octocat-spinner-32 ctags Add README.md files for various dirs August 04, 2012
Octocat-spinner-32 curl Fix trailing whitespace March 27, 2013
Octocat-spinner-32 deploy Tidy headers February 23, 2013
Octocat-spinner-32 dotsync @ bef753f Updated submodules to 1.0.0 November 26, 2013
Octocat-spinner-32 git tidy git colors February 23, 2013
Octocat-spinner-32 gnupg tidy February 23, 2013
Octocat-spinner-32 grc Fix trailing whitespace March 27, 2013
Octocat-spinner-32 input fix August 01, 2012
Octocat-spinner-32 irssi Fix trailing whitespace March 27, 2013
Octocat-spinner-32 mercurial No cacerts for mercurial March 27, 2013
Octocat-spinner-32 mutt Fix trailing whitespace March 27, 2013
Octocat-spinner-32 mysql Tidy headers February 23, 2013
Octocat-spinner-32 nano Fix trailing whitespace March 27, 2013
Octocat-spinner-32 postgresql Fix psql history file November 10, 2013
Octocat-spinner-32 python Fix pythonrc April 08, 2013
Octocat-spinner-32 rpm rpm dir February 22, 2013
Octocat-spinner-32 ruby Fix trailing whitespace March 27, 2013
Octocat-spinner-32 screen Fix trailing whitespace March 27, 2013
Octocat-spinner-32 shell Fix trailing whitespace March 27, 2013
Octocat-spinner-32 sqlite fix July 30, 2012
Octocat-spinner-32 ssh Bump version and update configs November 10, 2013
Octocat-spinner-32 subversion Tidy headers February 23, 2013
Octocat-spinner-32 task Add README.md files for various dirs August 04, 2012
Octocat-spinner-32 tmux Bump version and update configs November 10, 2013
Octocat-spinner-32 vim Updated submodules to 1.0.0 November 26, 2013
Octocat-spinner-32 wget Add README.md files for various dirs August 04, 2012
Octocat-spinner-32 zsh Updated submodules to 1.0.0 November 26, 2013
Octocat-spinner-32 .dotphiles Bump version and update configs November 10, 2013
Octocat-spinner-32 .gitignore Bump version and update configs November 10, 2013
Octocat-spinner-32 .gitmodules fix February 22, 2013
Octocat-spinner-32 .rsyncignore Add aptitude config and imrpove ignores August 04, 2012
Octocat-spinner-32 CHANGES.md Add changelog November 10, 2013
Octocat-spinner-32 CONTRIB.md Remove desc from contrib February 23, 2013
Octocat-spinner-32 README.md Fix typo in README March 27, 2013
Octocat-spinner-32 dotsyncrc Add missing dotfiles April 26, 2013
README.md

dotphiles

A community driven framework of dotfiles, for the usual terminal apps and shells, designed to work across multiple platforms and degrade for older versions of software or O/S, allowing you to use the same settings on all your machines.

  • Backup, restore, and sync the prefs and settings for your toolbox. Your dotfiles might be the most important files on your machine.
  • Learn from the community. Discover new tools for your toolbox and new tricks for the ones you already use.
  • Share what you've learned with the rest of us.

Example dotfiles for:

  • zsh
  • vim nano
  • git mercurial subversion
  • python ruby perl
  • screen tmux
  • mutt irssi
  • and many more...

Installation

  1. Sign up for an account on github and fork the project.

  2. Clone your fork.

    git clone --recursive git@github.com:*username*/dotphiles.git ~/.dotfiles
    
  3. Setup your terminal and the dotfiles you want to use, see below.

  4. Edit dotsyncrc and enable dotfiles to use.

  5. Run dotsync ./.dotfiles/dotsync/bin/dotsync -L

  6. Start a new login shell.

Configuration

dotfiles

These are the minimum files you'll want to edit

  • dotsyncrc settings for dotsync
  • zsh/zshrc settings for dotzsh
  • vim/vimrc settings for dotvim
  • and any dotfiles you enable in dotsyncrc

These are stable and reported working...

  • aptitude - Configure aptitude
  • bin - ~/bin for scripts etc
  • ctags - Configure ctags
  • git - Configure git
  • gnupg - Configure gnupg
  • grc - Configure grc
  • input - Configure input
  • mercurial - Configure mercurial
  • mysql - Configure mysql client
  • python - Configure python
  • rpm - Configure rpm
  • ruby - Configure ruby
  • screen - Configure screen
  • shell - Generic shell config files
  • sqlite - Configure sqlite client
  • ssh - Configure ssh client
  • subversion - Configure subversion
  • tmux - Configure tmux

These probably work...

  • ack - Configure ack - i dont use it
  • cmus - Configure cmus - i dont use it
  • curl - Configure curl - didnt work multiplatform, i dont use it anymore
  • irssi - Configure irssi - i dont use it
  • mutt - Configure mutt - i dont use it
  • nano - Configure nano - i dont use it, should work though
  • task - Configure taskwarrior - i dont use it
  • wget - Configure wget - didnt work multiplatform, i dont use it anymore

terminal

dotphiles uses the solarized color theme by default, install the colour scheme for your terminal.

vim-powerline requires patched fonts for the 'fancy fonts' options, you can find links to them to install here and configure your terminal to use one, Menlo works great.

ignores

Some files that will be auto generated into the symlinked dotfiles directory should never be commited and uploaded to github.

The included .gitignore and .rsyncignore files, ignore the majority, but make sure when commiting that you dont include any personal info you dont want in public!

deploy

  • deploy/osx setup osx and install ports & brews (only use one)
  • deploy/linux setup linux and install packages
    • packages/macports add ports to be installed by osx (select one)
    • packages/homebrew add brews to be installed by osx (select one)
    • packages/apt add packagess to be installed by linux on apt based systems

dotsync

See the documentation for dotsync for more information.

  • dotsyncrc

    Add dotfiles to dotsyncrc like

    [files]
    ...
    dotfile
    dir
    dir/dotfile
    ...
    [endfiles]
    

    dotsync will look for

     ~/$DOTFILES/dotfile.d/localhost
     ~/$DOTFILES/dotfile.d/$HOSTNAME
     ~/$DOTFILES/dotfile.d/$DZHOST
     ~/$DOTFILES/dotfile.d/$DOMAIN
     ~/$DOTFILES/dotfile
    

    And link the first one it finds instead of the standard dotfile. The localhost dotfile will be excluded from your repo.

    $DZHOST is passed to remote hosts and contains the hostname as entered in dotsyncrc

  • Usage

    Dotsync can be used to link your dotfiles into place

    • dotsync -L symlink dotfiles into place
    • dotsync -U update from github

    And update remote machines

    • dotsync -I -H hostname initialise hostname with the set of dotfiles
    • dotsync -U -H hostname update dotfiles on hostname from github
    • dotsync -I -H hostname -r initialise hostname with the set of dotfiles with rsync
    • dotsync -U -H hostname -r update dotfiles on hostname with rsync
    • dotsync -A update dotfiles on all hosts
  • Backups

    Any existing ~/.dotfiles will be backed up into ~/.backup/dotfiles/ if found

Editing

When you edit your dotfiles, you should commit the changes to git with

git commit -a

And periodically push the changes to github

git push

Updating

To keep your fork upto date with additions to the dotphiles repo, do the following

cd ~/.dotfiles
git remote add upstream https://github.com/dotphiles/dotphiles
git fetch upstream
git merge upstream/master

License

Copyright (c) 2012 dotphiles contributers

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Something went wrong with that request. Please try again.