Install Homebrew packages, symlink all of this config, etc:
$ xcode-select --install
$ git clone https://github.com/ELLIOTTCABLE/System.git ~/Library/System
$ cd ~/Library/System
$ ./Bootstrap/bootstrap.sh
Run before using home/.gitignore:
$ git config --global core.excludesfile ~/.gitignore
Some Vim plugins require extra setup:
-
Vim's hosts need to be installed. Node's will be installed via
nodenv-default-packages
above, but Ruby and Python need to be installed manually for now:pip3 install pynvim sudo gem install neovim # or possibly something with rbenv, if using that
-
My coc.nvim setup will use a few additional linters that need to be installed externally. Some are installed via the
nodenv default-packages install
command above; others need to come from Homebrew (viabrew bundle
above) etc:pip3 install vim-vint
-
CoffeeTags requires the
coffeetags
gem to be installed globally (bewarervm
!):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 thenrvm
(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 make
-
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.py 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.
-
First off, Tor is configured in my configuration to requst keys over Tor. This means starting tor (which was already installed by the above
brew bundle
):brew services start tor
-
As described here, a special cronjob is necessary to regularly (and securely) request packages. The script is included in
Dotfiles/refresh-keys.sh
, 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
-
Chill out the "unsafe permissions" warning-errors:
chmod 700 ~/.gnupg
-
The actual private-key has to be retrieved from the smartcard:
gpg --card-edit # type 'fetch' at the gpg/card> prompt gpg --with-keygrip -K # should show "ssb>" before the private-key lines, to show that they're available on the # attached card
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/com.apple.Terminal.plist' '~/Library/Preferences/'
ln -s '~/Documents/Dropbox/Library/GlobalPreferences.plist' \
'~/Library/Preferences/.GlobalPreferences.plist'
(May require existing files be removed, or directories be created, first.)
Windows still needs some work, but here's some hints:
- Hyper.is 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
Okay, got fed up, automated a tiny bit of the Windows setup:
Open an Admin terminal (right-click the Windows logo in the taskbar); then run this PowerShell script:
powershell -ExecutionPolicy Bypass `
-File C:\Users\ec\System\Bootstrap\bootstrap.ps1