Skip to content
A community driven framework of dotfiles.
Perl Shell Ruby Other
Latest commit 0b1331d Apr 28, 2016 @benohara benohara Merge pull request #10 from bardo/master
Add private gnupg2 data to .gitignore
Failed to load latest commit information.
ack Add some more options for ack Feb 24, 2013
aptitude Updated aptitude/config Feb 24, 2013
bin bring back into sync with upstream Feb 22, 2013
cmus emove autosave Aug 4, 2012
ctags Add README.md files for various dirs Aug 4, 2012
curl Fix trailing whitespace Mar 27, 2013
deploy Updated iterm config Oct 4, 2014
dotsync @ 0dabf93 Updated modules, pythonrc and gitconfig Oct 4, 2014
git Updated gitconfig Oct 4, 2014
gnupg tidy Feb 23, 2013
grc Updated grc configs and README Mar 10, 2014
input fix Aug 1, 2012
irssi Fix trailing whitespace Mar 27, 2013
mercurial No cacerts for mercurial Mar 27, 2013
mpd Adding ncmpcpp and mpd Jan 13, 2015
mutt Fix trailing whitespace Mar 27, 2013
mysql Tidy headers Feb 23, 2013
nano Fix trailing whitespace Mar 27, 2013
ncmpcpp Adding ncmpcpp and mpd Jan 14, 2015
postgresql Fix psql history file Nov 10, 2013
python Update pythonrc Mar 30, 2015
rpm rpm dir Feb 22, 2013
ruby Fix trailing whitespace Mar 27, 2013
screen Fix trailing whitespace Mar 27, 2013
shell Fix trailing whitespace Mar 27, 2013
sqlite fix Jul 30, 2012
ssh updated gitignore Mar 10, 2014
subversion Tidy headers Feb 23, 2013
task Updated configs for 2.0.0 Jun 15, 2014
tmux Updated configs for 2.0.0 Jun 15, 2014
vim Updated submodules Oct 4, 2014
wget Add README.md files for various dirs Aug 4, 2012
zsh update to 2.1.3 Oct 4, 2014
.dotphiles update to 2.1.3 Oct 4, 2014
.gitignore Add private gnupg2 data to .gitignore Apr 29, 2016
.gitmodules fix Feb 22, 2013
.rsyncignore Add aptitude config and imrpove ignores Aug 4, 2012
CHANGES.md update to 2.1.3 Oct 4, 2014
CONTRIB.md Remove desc from contrib Feb 23, 2013
README.md Updated grc configs and README Mar 10, 2014
dotsyncrc Adding ncmpcpp and mpd Jan 14, 2015

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 base16 color theme by default, install the colour schemes for your terminal. See deploy/terminal

vim-airline requires patched fonts for the 'fancy fonts' options, you can find links to them to install here and configure your terminal to use one, Meslo 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 packages 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.