Created: 2008-03-03 21:36
Updated: 2019-02-28 19:12



Run before using home/.gitignore:

$ git config --global core.excludesfile ~/.gitignore

The Z Shell configuration uses zplug, which needs to be installed separately (it thereafter updates itself). The .zshrc will automate this the first time you run the terminal.

rbenv, nodenv, and their plugins must be installed manually:

git clone ~/.nodenv
ln -s "$SYSTEM_REPO/Dotfiles/config/nodenv/default-packages" ~/.nodenv/

(  mkdir ~/.nodenv/plugins && cd ~/.nodenv/plugins && \
   for PLUGIN in node-build node-build-update-defs nodenv-aliases \
   nodenv-default-packages nodenv-each nodenv-package-rehash; do
      git clone "$PLUGIN.git"
   done )

nodenv update-version-defs
nodenv install 10.8.0                              # Or whatever,

git clone ~/.rbenv
ln -s "$SYSTEM_REPO/Dotfiles/config/rbenv/default-gems" ~/.rbenv/

(  mkdir ~/.rbenv/plugins && cd ~/.rbenv/plugins && \
   for PLUGIN in rkh/rbenv-update rbenv/ruby-build tpope/rbenv-aliases \
   rkh/rbenv-whatis rbenv/rbenv-default-gems rbenv/rbenv-each; do
      git clone "$PLUGIN.git"
   done )

rbenv install 2.5.1                                # Or whatever,
rbenv alias --auto

Unfortunately, opam isn't interested in fixing this. Have to manually add a non-default path to a ‘default’ switch, if I want to be able to install “global binaries” with opam (like ocamlformat or patdiff.)

(Note that the first of these values is pulled out of my ass — i.e. you'll have to opam switch create 'default' first or something — but I've hard-coded the second into ~/.shenv elsewhere in this repo.)

ln -s /Users/ec/.opam/default/bin ~/.bin/opam-default-switch-alias

Some Vim plugins require extra setup:

  • Deoplete requires Python3 be installed and set up, that the appropriate Python package be installed, and that its update command be executed:

     brew install python3
     pip3 install --upgrade neovim
     nvim +UpdateRemotePlugins +q
  • CoffeeTags requires the coffeetags gem to be installed globally (beware rvm!):

     brew gem install coffeetags
  • tern_for_vim, supporting JavaScript in SuperTab/Deoplete, requires some setup:

     cd ~/.local/share/nvim/plugged/tern_for_vim
     npm i
  • color_coded requires compilation (and note that it will fail if the installed vim included luajit. I keep forgetting this fact somehow.):

     cd ~/.vim/bundle/color_coded
     (mkdir build; \
        cd build && cmake .. && \
        make && make install; \
        make clean && make clean_clang)
  • Command-T requires compilation; and this must be done against the same version of Ruby that the current Vim is compiled against: (Check both MacVim and command-line vim!) :ruby puts "#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}". Re-build both Vims with the same Ruby; and then rvm (or similar) to that Ruby to build Command-T. (More information is available in the docs.

     cd ~/.vim/bundle/command-t/ruby/command-t
     ruby extconf.rb
  • sparkup has to have its vim docs re-generated:

     cd ~/.vim/bundle/sparkup
     make vim-pathogen
  • IPython-notebook-extensions needs some config to be configured, and I haven't figured out how to abstract it out, so I just .gitignore'd it:

     cd ~/.jupyter/IPython-notebook-extensions
     ./ install

    (This may need to be ‘fixed’ afterwards, restoring the symlinks in ~/.jupyter. This should be enough: git checkout extensions nbextensions templates, or similar.)

GnuPG (of effin' course) needs a lot of custom setup.

  1. First off, Tor is configured in my configuration to requst keys over Tor. This means installing tor.

     brew install tor
     brew services start tor
  2. As described here, a special cronjob is necessary to regularly (and securely) request packages. The script is included in Dotfiles/, and can be invoked automatically by LaunchD / cron:

     mkdir ~/Library/LaunchAgents
     cp Dotfiles/gnupg/io.ell.gpg-refresh-keys.plist ~/Library/LaunchAgents/
     launchctl load ~/Library/LaunchAgents/io.ell.gpg-refresh-keys.plist
  3. ...

VScode keeps its config in a MacOS location, not the Linux/XDG location.

ln -s "$HOME/.config/Code/User/settings.json" \
   ~/Library/Application\ Support/Code/User/settings.json

The Terminal preferences (hotkeys etc) require Karabiner and Seil be installed, and that the fonts from the Extras/ directory also be installed. After all of those are installed, the configurations can be symlinked from my Dropbox:

ln -s '~/Documents/Dropbox/Library/karabiner.private.xml' '/Users/ec/Library/Application Support/Karabiner/'
ln -s '~/Documents/Dropbox/Library/' '~/Library/Preferences/'
ln -s '~/Documents/Dropbox/Library/GlobalPreferences.plist' \

(May require existing files be removed, or directories be created, first.)

Windows still needs some work, but here's some hints:

  • works with PowerShell
  • VSCodeVim is less work than actual vim, probably. Less of my configuration, though.
  • New-Item -Path C:\Users\ec\.tridactylrc -ItemType SymbolicLink -Value C:\Users\ec\Documents\GitHub\System\Dotfiles\config\tridactyl\tridactylrc
Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more