Skip to content
Configurationize all the things
Shell VimL Python Emacs Lisp PowerShell Ruby Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
certs
dev-base
emacs
firefox
freebsd x stuff Feb 27, 2016
haskell
hexchat
lein
lua
mail
marelle-deps
marelle-tpls
node
ocaml
osx
python
ranger
ruby
tmux
vim
windows
x11
zsh
.gitmodules
.mailmap
README.md
install.sh
quakelive.cfg
rinstall.sh

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

Something went wrong with that request. Please try again.