Configurationize all the things
Shell VimL Python Emacs Lisp PowerShell Ruby Other
Latest commit dec64f7 Aug 21, 2016 @myfreeweb Windows stuff
Permalink
Failed to load latest commit information.
bin add desmob Aug 9, 2016
certs add riseup cert Nov 4, 2013
dev-base default key Jul 21, 2016
emacs stuff Jan 22, 2015
firefox remove firefox custom theme, keep only some tweaks Apr 16, 2016
freebsd x stuff Feb 27, 2016
haskell OH THAT'S HOW YOU FUCKING FIX THIS May 19, 2016
hexchat hexchat, x stuff Jun 26, 2016
lein remove most of the clojure stuff Nov 10, 2015
lua add mjolnir Sep 4, 2014
mail ssh tpm, desktop opensmtpd Dec 29, 2015
marelle-deps Start removing marelle Oct 25, 2015
marelle-tpls ssh tpm, desktop opensmtpd Dec 29, 2015
node things Oct 24, 2015
ocaml add ocaml Jul 12, 2014
osx stuff May 21, 2016
python stuff Oct 15, 2015
ranger more x stuff Jan 22, 2016
ruby stuff Oct 15, 2015
tmux stuff Aug 9, 2016
vim stuff Jun 8, 2016
windows Windows stuff Aug 21, 2016
x11 stuff Aug 9, 2016
zsh hexchat, x stuff Jun 26, 2016
.gitattributes Windows stuff Aug 21, 2016
.gitmodules cleanup, mjolnir -> amethyst May 7, 2015
.mailmap tmux mouse, git mailmap Jan 31, 2015
README.md hexchat, x stuff Jun 26, 2016
install.sh stuff Oct 26, 2015
quakelive.cfg psqlrc, runjava and stuff Jan 3, 2014
rinstall.sh things Nov 12, 2015

README.md


                 ▄▀▀                                     █                  ▄
 ▄▄▄▄▄  ▄   ▄  ▄▄█▄▄   ▄ ▄▄   ▄▄▄    ▄▄▄  ▄     ▄  ▄▄▄   █▄▄▄              █ 
 █ █ █  ▀▄ ▄▀    █     █▀  ▀ █▀  █  █▀  █ ▀▄ ▄ ▄▀ █▀  █  █▀ ▀█            █  
 █ █ █   █▄█     █     █     █▀▀▀▀  █▀▀▀▀  █▄█▄█  █▀▀▀▀  █   █           █   
 █ █ █   ▀█      █     █     ▀█▄▄▀  ▀█▄▄▀   █ █   ▀█▄▄▀  ██▄█▀          █    
         ▄▀                                                            ▀     
        ▀▀                                                                   

     █           ▄      ▄▀▀    ▀    ▀▀█                 
  ▄▄▄█   ▄▄▄   ▄▄█▄▄  ▄▄█▄▄  ▄▄▄      █     ▄▄▄    ▄▄▄  
 █▀ ▀█  █▀ ▀█    █      █      █      █    █▀  █  █   ▀ 
 █   █  █   █    █      █      █      █    █▀▀▀▀   ▀▀▀▄ 
 ▀█▄██  ▀█▄█▀    ▀▄▄    █    ▄▄█▄▄    ▀▄▄  ▀█▄▄▀  ▀▄▄▄▀ 


I definitely spend waaaaaay too much time configuring software I use.

dotfiles

Modular dotfiles!

  • A module is a directory with an apply.sh file that installs the dotfiles the module contains
  • install.sh installs multiple modules on the local machine
  • rinstall.sh installs multiple modules on a remote machine using SSH
  • osx/packages.sh and osx/apps.sh installs OS X Homebrew packages
  • freebsd/desktop.sh installs FreeBSD packages and system settings for a desktop

  • XDG-style ~/.config/application-name/config-file-name paths are preferred

  • Binaries are placed into ~/.local/bin (and go, pip, npm, cpan, cargo, etc. are configured to use that directory)
  • Repos are placed into ~/src using Go conventions (e.g. ~/src/github.com/myfreeweb/dotfiles). $GOPATH is ~ and ghq is used to clone non-Go repos there
  • Keyboard configuration is mostly based on A Modern Space Cadet

Installation

Common setup (FreeBSD)

# portsnap fetch extract
# pkg install git sudo
# visudo
$ git clone git@github.com:myfreeweb/dotfiles ~/src/github.com/myfreeweb/dotfiles
$ cd ~/src/github.com/myfreeweb/dotfiles
$ git submodule update --init --recursive
$ (cd freebsd && sudo ./desktop.sh)
$ ./install.sh dev-base bin tmux zsh vim x11 python ruby
$ chsh -s /usr/local/bin/zsh
$ zsh

Common setup (OS X)

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install git
$ git clone git@github.com:myfreeweb/dotfiles ~/src/github.com/myfreeweb/dotfiles
$ cd ~/src/github.com/myfreeweb/dotfiles
$ git submodule update --init --recursive
$ ./osx/packages.sh
$ ./osx/apps.sh
$ PCKEYBOARD=1 ./install.sh dev-base bin tmux zsh vim osx python ruby
$ sudo sh -c 'echo "/usr/local/bin/zsh" >> /etc/shells'
$ chsh -s /usr/local/bin/zsh
$ zsh

Remote setup (example)

./rinstall.sh dovahkiin@winterhold.local dev-base tmux zsh vim

Module WTF

Common

Language-specific