diff --git a/.bash_profile b/.bash_profile
deleted file mode 100644
index 29717373d18..00000000000
--- a/.bash_profile
+++ /dev/null
@@ -1,48 +0,0 @@
-# Add `~/bin` to the `$PATH`
-export PATH="$HOME/bin:$PATH";
-
-# Load the shell dotfiles, and then some:
-# * ~/.path can be used to extend `$PATH`.
-# * ~/.extra can be used for other settings you don’t want to commit.
-for file in ~/.{path,bash_prompt,exports,aliases,functions,extra}; do
- [ -r "$file" ] && [ -f "$file" ] && source "$file";
-done;
-unset file;
-
-# Case-insensitive globbing (used in pathname expansion)
-shopt -s nocaseglob;
-
-# Append to the Bash history file, rather than overwriting it
-shopt -s histappend;
-
-# Autocorrect typos in path names when using `cd`
-shopt -s cdspell;
-
-# Enable some Bash 4 features when possible:
-# * `autocd`, e.g. `**/qux` will enter `./foo/bar/baz/qux`
-# * Recursive globbing, e.g. `echo **/*.txt`
-for option in autocd globstar; do
- shopt -s "$option" 2> /dev/null;
-done;
-
-# Add tab completion for many Bash commands
-if which brew &> /dev/null && [ -f "$(brew --prefix)/share/bash-completion/bash_completion" ]; then
- source "$(brew --prefix)/share/bash-completion/bash_completion";
-elif [ -f /etc/bash_completion ]; then
- source /etc/bash_completion;
-fi;
-
-# Enable tab completion for `g` by marking it as an alias for `git`
-if type _git &> /dev/null && [ -f /usr/local/etc/bash_completion.d/git-completion.bash ]; then
- complete -o default -o nospace -F _git g;
-fi;
-
-# Add tab completion for SSH hostnames based on ~/.ssh/config, ignoring wildcards
-[ -e "$HOME/.ssh/config" ] && complete -o "default" -o "nospace" -W "$(grep "^Host" ~/.ssh/config | grep -v "[?*]" | cut -d " " -f2- | tr ' ' '\n')" scp sftp ssh;
-
-# Add tab completion for `defaults read|write NSGlobalDomain`
-# You could just use `-g` instead, but I like being explicit
-complete -W "NSGlobalDomain" defaults;
-
-# Add `killall` tab completion for common apps
-complete -o "nospace" -W "Contacts Calendar Dock Finder Mail Safari iTunes SystemUIServer Terminal Twitter" killall;
diff --git a/.bash_prompt b/.bash_prompt
deleted file mode 100644
index 3ff63eb6821..00000000000
--- a/.bash_prompt
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env bash
-
-# Shell prompt based on the Solarized Dark theme.
-# Screenshot: http://i.imgur.com/EkEtphC.png
-# Heavily inspired by @necolas’s prompt: https://github.com/necolas/dotfiles
-# iTerm → Profiles → Text → use 13pt Monaco with 1.1 vertical spacing.
-
-if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
- export TERM='gnome-256color';
-elif infocmp xterm-256color >/dev/null 2>&1; then
- export TERM='xterm-256color';
-fi;
-
-prompt_git() {
- local s='';
- local branchName='';
-
- # Check if the current directory is in a Git repository.
- if [ $(git rev-parse --is-inside-work-tree &>/dev/null; echo "${?}") == '0' ]; then
-
- # check if the current directory is in .git before running git checks
- if [ "$(git rev-parse --is-inside-git-dir 2> /dev/null)" == 'false' ]; then
-
- # Ensure the index is up to date.
- git update-index --really-refresh -q &>/dev/null;
-
- # Check for uncommitted changes in the index.
- if ! $(git diff --quiet --ignore-submodules --cached); then
- s+='+';
- fi;
-
- # Check for unstaged changes.
- if ! $(git diff-files --quiet --ignore-submodules --); then
- s+='!';
- fi;
-
- # Check for untracked files.
- if [ -n "$(git ls-files --others --exclude-standard)" ]; then
- s+='?';
- fi;
-
- # Check for stashed files.
- if $(git rev-parse --verify refs/stash &>/dev/null); then
- s+='$';
- fi;
-
- fi;
-
- # Get the short symbolic ref.
- # If HEAD isn’t a symbolic ref, get the short SHA for the latest commit
- # Otherwise, just give up.
- branchName="$(git symbolic-ref --quiet --short HEAD 2> /dev/null || \
- git rev-parse --short HEAD 2> /dev/null || \
- echo '(unknown)')";
-
- [ -n "${s}" ] && s=" [${s}]";
-
- echo -e "${1}${branchName}${2}${s}";
- else
- return;
- fi;
-}
-
-if tput setaf 1 &> /dev/null; then
- tput sgr0; # reset colors
- bold=$(tput bold);
- reset=$(tput sgr0);
- # Solarized colors, taken from http://git.io/solarized-colors.
- black=$(tput setaf 0);
- blue=$(tput setaf 33);
- cyan=$(tput setaf 37);
- green=$(tput setaf 64);
- orange=$(tput setaf 166);
- purple=$(tput setaf 125);
- red=$(tput setaf 124);
- violet=$(tput setaf 61);
- white=$(tput setaf 15);
- yellow=$(tput setaf 136);
-else
- bold='';
- reset="\e[0m";
- black="\e[1;30m";
- blue="\e[1;34m";
- cyan="\e[1;36m";
- green="\e[1;32m";
- orange="\e[1;33m";
- purple="\e[1;35m";
- red="\e[1;31m";
- violet="\e[1;35m";
- white="\e[1;37m";
- yellow="\e[1;33m";
-fi;
-
-# Highlight the user name when logged in as root.
-if [[ "${USER}" == "root" ]]; then
- userStyle="${red}";
-else
- userStyle="${orange}";
-fi;
-
-# Highlight the hostname when connected via SSH.
-if [[ "${SSH_TTY}" ]]; then
- hostStyle="${bold}${red}";
-else
- hostStyle="${yellow}";
-fi;
-
-# Set the terminal title and prompt.
-PS1="\[\033]0;\W\007\]"; # working directory base name
-PS1+="\[${bold}\]\n"; # newline
-PS1+="\[${userStyle}\]\u"; # username
-PS1+="\[${white}\] at ";
-PS1+="\[${hostStyle}\]\h"; # host
-PS1+="\[${white}\] in ";
-PS1+="\[${green}\]\w"; # working directory full path
-PS1+="\$(prompt_git \"\[${white}\] on \[${violet}\]\" \"\[${blue}\]\")"; # Git repository details
-PS1+="\n";
-PS1+="\[${white}\]\$ \[${reset}\]"; # `$` (and reset color)
-export PS1;
-
-PS2="\[${yellow}\]→ \[${reset}\]";
-export PS2;
diff --git a/.bashrc b/.bashrc
deleted file mode 100644
index 12570026634..00000000000
--- a/.bashrc
+++ /dev/null
@@ -1 +0,0 @@
-[ -n "$PS1" ] && source ~/.bash_profile;
diff --git a/.functions b/.functions
deleted file mode 100644
index bfbd71f37ef..00000000000
--- a/.functions
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/usr/bin/env bash
-
-# Create a new directory and enter it
-function mkd() {
- mkdir -p "$@" && cd "$_";
-}
-
-# Change working directory to the top-most Finder window location
-function cdf() { # short for `cdfinder`
- cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')";
-}
-
-# Create a .tar.gz archive, using `zopfli`, `pigz` or `gzip` for compression
-function targz() {
- local tmpFile="${@%/}.tar";
- tar -cvf "${tmpFile}" --exclude=".DS_Store" "${@}" || return 1;
-
- size=$(
- stat -f"%z" "${tmpFile}" 2> /dev/null; # macOS `stat`
- stat -c"%s" "${tmpFile}" 2> /dev/null; # GNU `stat`
- );
-
- local cmd="";
- if (( size < 52428800 )) && hash zopfli 2> /dev/null; then
- # the .tar file is smaller than 50 MB and Zopfli is available; use it
- cmd="zopfli";
- else
- if hash pigz 2> /dev/null; then
- cmd="pigz";
- else
- cmd="gzip";
- fi;
- fi;
-
- echo "Compressing .tar ($((size / 1000)) kB) using \`${cmd}\`…";
- "${cmd}" -v "${tmpFile}" || return 1;
- [ -f "${tmpFile}" ] && rm "${tmpFile}";
-
- zippedSize=$(
- stat -f"%z" "${tmpFile}.gz" 2> /dev/null; # macOS `stat`
- stat -c"%s" "${tmpFile}.gz" 2> /dev/null; # GNU `stat`
- );
-
- echo "${tmpFile}.gz ($((zippedSize / 1000)) kB) created successfully.";
-}
-
-# Determine size of a file or total size of a directory
-function fs() {
- if du -b /dev/null > /dev/null 2>&1; then
- local arg=-sbh;
- else
- local arg=-sh;
- fi
- if [[ -n "$@" ]]; then
- du $arg -- "$@";
- else
- du $arg .[^.]* ./*;
- fi;
-}
-
-# Use Git’s colored diff when available
-hash git &>/dev/null;
-if [ $? -eq 0 ]; then
- function diff() {
- git diff --no-index --color-words "$@";
- }
-fi;
-
-# Create a data URL from a file
-function dataurl() {
- local mimeType=$(file -b --mime-type "$1");
- if [[ $mimeType == text/* ]]; then
- mimeType="${mimeType};charset=utf-8";
- fi
- echo "data:${mimeType};base64,$(openssl base64 -in "$1" | tr -d '\n')";
-}
-
-# Start an HTTP server from a directory, optionally specifying the port
-function server() {
- local port="${1:-8000}";
- sleep 1 && open "http://localhost:${port}/" &
- # Set the default Content-Type to `text/plain` instead of `application/octet-stream`
- # And serve everything as UTF-8 (although not technically correct, this doesn’t break anything for binary files)
- python -c $'import SimpleHTTPServer;\nmap = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map;\nmap[""] = "text/plain";\nfor key, value in map.items():\n\tmap[key] = value + ";charset=UTF-8";\nSimpleHTTPServer.test();' "$port";
-}
-
-# Start a PHP server from a directory, optionally specifying the port
-# (Requires PHP 5.4.0+.)
-function phpserver() {
- local port="${1:-4000}";
- local ip=$(ipconfig getifaddr en1);
- sleep 1 && open "http://${ip}:${port}/" &
- php -S "${ip}:${port}";
-}
-
-# Compare original and gzipped file size
-function gz() {
- local origsize=$(wc -c < "$1");
- local gzipsize=$(gzip -c "$1" | wc -c);
- local ratio=$(echo "$gzipsize * 100 / $origsize" | bc -l);
- printf "orig: %d bytes\n" "$origsize";
- printf "gzip: %d bytes (%2.2f%%)\n" "$gzipsize" "$ratio";
-}
-
-# Syntax-highlight JSON strings or files
-# Usage: `json '{"foo":42}'` or `echo '{"foo":42}' | json`
-function json() {
- if [ -t 0 ]; then # argument
- python -mjson.tool <<< "$*" | pygmentize -l javascript;
- else # pipe
- python -mjson.tool | pygmentize -l javascript;
- fi;
-}
-
-# Run `dig` and display the most useful info
-function digga() {
- dig +nocmd "$1" any +multiline +noall +answer;
-}
-
-# UTF-8-encode a string of Unicode symbols
-function escape() {
- printf "\\\x%s" $(printf "$@" | xxd -p -c1 -u);
- # print a newline unless we’re piping the output to another program
- if [ -t 1 ]; then
- echo ""; # newline
- fi;
-}
-
-# Show all the names (CNs and SANs) listed in the SSL certificate
-# for a given domain
-function getcertnames() {
- if [ -z "${1}" ]; then
- echo "ERROR: No domain specified.";
- return 1;
- fi;
-
- local domain="${1}";
- echo "Testing ${domain}…";
- echo ""; # newline
-
- local tmp=$(echo -e "GET / HTTP/1.0\nEOT" \
- | openssl s_client -connect "${domain}:443" -servername "${domain}" 2>&1);
-
- if [[ "${tmp}" = *"-----BEGIN CERTIFICATE-----"* ]]; then
- local certText=$(echo "${tmp}" \
- | openssl x509 -text -certopt "no_aux, no_header, no_issuer, no_pubkey, \
- no_serial, no_sigdump, no_signame, no_validity, no_version");
- echo "Common Name:";
- echo ""; # newline
- echo "${certText}" | grep "Subject:" | sed -e "s/^.*CN=//" | sed -e "s/\/emailAddress=.*//";
- echo ""; # newline
- echo "Subject Alternative Name(s):";
- echo ""; # newline
- echo "${certText}" | grep -A 1 "Subject Alternative Name:" \
- | sed -e "2s/DNS://g" -e "s/ //g" | tr "," "\n" | tail -n +2;
- return 0;
- else
- echo "ERROR: Certificate not found.";
- return 1;
- fi;
-}
-
-# `s` with no arguments opens the current directory in Sublime Text, otherwise
-# opens the given location
-function s() {
- if [ $# -eq 0 ]; then
- subl .;
- else
- subl "$@";
- fi;
-}
-
-# `v` with no arguments opens the current directory in Vim, otherwise opens the
-# given location
-function v() {
- if [ $# -eq 0 ]; then
- vim .;
- else
- vim "$@";
- fi;
-}
-
-# `o` with no arguments opens the current directory, otherwise opens the given
-# location
-function o() {
- if [ $# -eq 0 ]; then
- open .;
- else
- open "$@";
- fi;
-}
-
-# `tre` is a shorthand for `tree` with hidden files and color enabled, ignoring
-# the `.git` directory, listing directories first. The output gets piped into
-# `less` with options to preserve color and line numbers, unless the output is
-# small enough for one screen.
-function tre() {
- tree -aC -I '.git|node_modules|bower_components' --dirsfirst "$@" | less -FRNX;
-}
diff --git a/.gdbinit b/.gdbinit
deleted file mode 100644
index 9422460c765..00000000000
--- a/.gdbinit
+++ /dev/null
@@ -1 +0,0 @@
-set disassembly-flavor intel
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 6bdc702247e..00000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,3 +0,0 @@
-# Automatically normalize line endings for all text-based files
-#* text=auto
-# Disabled because of https://github.com/mathiasbynens/dotfiles/issues/149 :(
diff --git a/.gitconfig b/.gitconfig
deleted file mode 100644
index 34a0755f8c1..00000000000
--- a/.gitconfig
+++ /dev/null
@@ -1,185 +0,0 @@
-[alias]
-
- # View abbreviated SHA, description, and history graph of the latest 20 commits
- l = log --pretty=oneline -n 20 --graph --abbrev-commit
-
- # View the current working tree status using the short format
- s = status -s
-
- # Show the diff between the latest commit and the current state
- d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
-
- # `git di $number` shows the diff between the state `$number` revisions ago and the current state
- di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"
-
- # Pull in remote changes for the current repository and all its submodules
- p = !"git pull; git submodule foreach git pull origin master"
-
- # Clone a repository including all submodules
- c = clone --recursive
-
- # Commit all changes
- ca = !git add -A && git commit -av
-
- # Switch to a branch, creating it if necessary
- go = "!f() { git checkout -b \"$1\" 2> /dev/null || git checkout \"$1\"; }; f"
-
- # Show verbose output about tags, branches or remotes
- tags = tag -l
- branches = branch -a
- remotes = remote -v
-
- # List aliases
- aliases = config --get-regexp alias
-
- # Amend the currently staged files to the latest commit
- amend = commit --amend --reuse-message=HEAD
-
- # Credit an author on the latest commit
- credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"
-
- # Interactive rebase with the given number of latest commits
- reb = "!r() { git rebase -i HEAD~$1; }; r"
-
- # Remove the old tag with this name and tag the latest commit with it.
- retag = "!r() { git tag -d $1 && git push origin :refs/tags/$1 && git tag $1; }; r"
-
- # Find branches containing commit
- fb = "!f() { git branch -a --contains $1; }; f"
-
- # Find tags containing commit
- ft = "!f() { git describe --always --contains $1; }; f"
-
- # Find commits by source code
- fc = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short -S$1; }; f"
-
- # Find commits by commit message
- fm = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short --grep=$1; }; f"
-
- # Remove branches that have already been merged with master
- # a.k.a. ‘delete merged’
- dm = "!git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d"
-
- # List contributors with number of commits
- contributors = shortlog --summary --numbered
-
- # Merge GitHub pull request on top of the current branch or,
- # if a branch name is specified, on top of the specified branch
- mpr = "!f() { \
- declare currentBranch=\"$(git symbolic-ref --short HEAD)\"; \
- declare branch=\"${2:-$currentBranch}\"; \
- if [ $(printf \"%s\" \"$1\" | grep '^[0-9]\\+$' > /dev/null; printf $?) -eq 0 ]; then \
- git fetch origin refs/pull/$1/head:pr/$1 && \
- git checkout -B $branch && \
- git rebase $branch pr/$1 && \
- git checkout -B $branch && \
- git merge pr/$1 && \
- git branch -D pr/$1 && \
- git commit --amend -m \"$(git log -1 --pretty=%B)\n\nCloses #$1.\"; \
- fi \
- }; f"
-
-[apply]
-
- # Detect whitespace errors when applying a patch
- whitespace = fix
-
-[core]
-
- # Use custom `.gitignore` and `.gitattributes`
- excludesfile = ~/.gitignore
- attributesfile = ~/.gitattributes
-
- # Treat spaces before tabs and all kinds of trailing whitespace as an error
- # [default] trailing-space: looks for spaces at the end of a line
- # [default] space-before-tab: looks for spaces before tabs at the beginning of a line
- whitespace = space-before-tab,-indent-with-non-tab,trailing-space
-
- # Make `git rebase` safer on macOS
- # More info:
- trustctime = false
-
- # Prevent showing files whose names contain non-ASCII symbols as unversioned.
- # http://michael-kuehnel.de/git/2014/11/21/git-mac-osx-and-german-umlaute.html
- precomposeunicode = false
-
-[color]
-
- # Use colors in Git commands that are capable of colored output when
- # outputting to the terminal. (This is the default setting in Git ≥ 1.8.4.)
- ui = auto
-
-[color "branch"]
-
- current = yellow reverse
- local = yellow
- remote = green
-
-[color "diff"]
-
- meta = yellow bold
- frag = magenta bold # line info
- old = red # deletions
- new = green # additions
-
-[color "status"]
-
- added = yellow
- changed = green
- untracked = cyan
-
-[commit]
-
- # https://help.github.com/articles/signing-commits-using-gpg/
- gpgsign = true
-
-[diff]
-
- # Detect copies as well as renames
- renames = copies
-
-[diff "bin"]
-
- # Use `hexdump` to diff binary files
- textconv = hexdump -v -C
-
-[help]
-
- # Automatically correct and execute mistyped commands
- autocorrect = 1
-
-[merge]
-
- # Include summaries of merged commits in newly created merge commit messages
- log = true
-
-[push]
-
- # Use the Git 1.x.x default to avoid errors on machines with old Git
- # installations. To use `simple` instead, add this to your `~/.extra` file:
- # `git config --global push.default simple`. See http://git.io/mMah-w.
- default = matching
- # Make `git push` push relevant annotated tags when pushing branches out.
- followTags = true
-
-# URL shorthands
-
-[url "git@github.com:"]
-
- insteadOf = "gh:"
- pushInsteadOf = "github:"
- pushInsteadOf = "git://github.com/"
-
-[url "git://github.com/"]
-
- insteadOf = "github:"
-
-[url "git@gist.github.com:"]
-
- insteadOf = "gst:"
- pushInsteadOf = "gist:"
- pushInsteadOf = "git://gist.github.com/"
-
-[url "git://gist.github.com/"]
-
- insteadOf = "gist:"
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 93965b64753..00000000000
--- a/.gitignore
+++ /dev/null
@@ -1,14 +0,0 @@
-# Compiled Python files
-*.pyc
-
-# Folder view configuration files
-.DS_Store
-Desktop.ini
-
-# Thumbnail cache files
-._*
-Thumbs.db
-
-# Files that might appear on external disks
-.Spotlight-V100
-.Trashes
diff --git a/.gvimrc b/.gvimrc
deleted file mode 100644
index d2044d001d2..00000000000
--- a/.gvimrc
+++ /dev/null
@@ -1,9 +0,0 @@
-" Use the Solarized Dark theme
-set background=dark
-colorscheme solarized
-" Use 14pt Monaco
-set guifont=Monaco:h14
-" Don’t blink cursor in normal mode
-set guicursor=n:blinkon0
-" Better line-height
-set linespace=8
diff --git a/.hgignore b/.hgignore
deleted file mode 100644
index ac1973e78e2..00000000000
--- a/.hgignore
+++ /dev/null
@@ -1,17 +0,0 @@
-# Use shell-style glob syntax
-syntax: glob
-
-# Compiled Python files
-*.pyc
-
-# Folder view configuration files
-.DS_Store
-Desktop.ini
-
-# Thumbnail cache files
-._*
-Thumbs.db
-
-# Files that might appear on external disks
-.Spotlight-V100
-.Trashes
diff --git a/.hushlogin b/.hushlogin
deleted file mode 100644
index bff8a51fd15..00000000000
--- a/.hushlogin
+++ /dev/null
@@ -1,4 +0,0 @@
-# The mere presence of this file in the home directory disables the system
-# copyright notice, the date and time of the last login, the message of the
-# day as well as other information that may otherwise appear on login.
-# See `man login`.
diff --git a/.inputrc b/.inputrc
deleted file mode 100644
index 942281a785d..00000000000
--- a/.inputrc
+++ /dev/null
@@ -1,40 +0,0 @@
-# Make Tab autocomplete regardless of filename case
-set completion-ignore-case on
-
-# List all matches in case multiple possible completions are possible
-set show-all-if-ambiguous on
-
-# Immediately add a trailing slash when autocompleting symlinks to directories
-set mark-symlinked-directories on
-
-# Use the text that has already been typed as the prefix for searching through
-# commands (i.e. more intelligent Up/Down behavior)
-"\e[B": history-search-forward
-"\e[A": history-search-backward
-
-# Do not autocomplete hidden files unless the pattern explicitly begins with a dot
-set match-hidden-files off
-
-# Show all autocomplete results at once
-set page-completions off
-
-# If there are more than 200 possible completions for a word, ask to show them all
-set completion-query-items 200
-
-# Show extra file information when completing, like `ls -F` does
-set visible-stats on
-
-# Be more intelligent when autocompleting by also looking at the text after
-# the cursor. For example, when the current line is "cd ~/src/mozil", and
-# the cursor is on the "z", pressing Tab will not autocomplete it to "cd
-# ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the
-# Readline used by Bash 4.)
-set skip-completed-text on
-
-# Allow UTF-8 input and output, instead of showing stuff like $'\0123\0456'
-set input-meta on
-set output-meta on
-set convert-meta off
-
-# Use Alt/Meta + Delete to delete the preceding word
-"\e[3;3~": kill-word
diff --git a/.macos b/.macos
deleted file mode 100755
index e213db65fe0..00000000000
--- a/.macos
+++ /dev/null
@@ -1,946 +0,0 @@
-#!/usr/bin/env bash
-
-# ~/.macos — https://mths.be/macos
-
-# Close any open System Preferences panes, to prevent them from overriding
-# settings we’re about to change
-osascript -e 'tell application "System Preferences" to quit'
-
-# Ask for the administrator password upfront
-sudo -v
-
-# Keep-alive: update existing `sudo` time stamp until `.macos` has finished
-while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
-
-###############################################################################
-# General UI/UX #
-###############################################################################
-
-# Set computer name (as done via System Preferences → Sharing)
-#sudo scutil --set ComputerName "0x6D746873"
-#sudo scutil --set HostName "0x6D746873"
-#sudo scutil --set LocalHostName "0x6D746873"
-#sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "0x6D746873"
-
-# Set standby delay to 24 hours (default is 1 hour)
-sudo pmset -a standbydelay 86400
-
-# Disable the sound effects on boot
-sudo nvram SystemAudioVolume=" "
-
-# Disable transparency in the menu bar and elsewhere on Yosemite
-defaults write com.apple.universalaccess reduceTransparency -bool true
-
-# Set highlight color to green
-defaults write NSGlobalDomain AppleHighlightColor -string "0.764700 0.976500 0.568600"
-
-# Set sidebar icon size to medium
-defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 2
-
-# Always show scrollbars
-defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
-# Possible values: `WhenScrolling`, `Automatic` and `Always`
-
-# Disable the over-the-top focus ring animation
-defaults write NSGlobalDomain NSUseAnimatedFocusRing -bool false
-
-# Disable smooth scrolling
-# (Uncomment if you’re on an older Mac that messes up the animation)
-#defaults write NSGlobalDomain NSScrollAnimationEnabled -bool false
-
-# Increase window resize speed for Cocoa applications
-defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
-
-# Expand save panel by default
-defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
-defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
-
-# Expand print panel by default
-defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
-defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
-
-# Save to disk (not to iCloud) by default
-defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
-
-# Automatically quit printer app once the print jobs complete
-defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true
-
-# Disable the “Are you sure you want to open this application?” dialog
-defaults write com.apple.LaunchServices LSQuarantine -bool false
-
-# Remove duplicates in the “Open With” menu (also see `lscleanup` alias)
-/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
-
-# Display ASCII control characters using caret notation in standard text views
-# Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
-defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true
-
-# Disable Resume system-wide
-defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false
-
-# Disable automatic termination of inactive apps
-defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true
-
-# Disable the crash reporter
-#defaults write com.apple.CrashReporter DialogType -string "none"
-
-# Set Help Viewer windows to non-floating mode
-defaults write com.apple.helpviewer DevMode -bool true
-
-# Fix for the ancient UTF-8 bug in QuickLook (https://mths.be/bbo)
-# Commented out, as this is known to cause problems in various Adobe apps :(
-# See https://github.com/mathiasbynens/dotfiles/issues/237
-#echo "0x08000100:0" > ~/.CFUserTextEncoding
-
-# Reveal IP address, hostname, OS version, etc. when clicking the clock
-# in the login window
-sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
-
-# Restart automatically if the computer freezes
-sudo systemsetup -setrestartfreeze on
-
-# Never go into computer sleep mode
-sudo systemsetup -setcomputersleep Off > /dev/null
-
-# Disable Notification Center and remove the menu bar icon
-launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist 2> /dev/null
-
-# Disable automatic capitalization as it’s annoying when typing code
-defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
-
-# Disable smart dashes as they’re annoying when typing code
-defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
-
-# Disable automatic period substitution as it’s annoying when typing code
-defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
-
-# Disable smart quotes as they’re annoying when typing code
-defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
-
-# Disable auto-correct
-defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
-
-# Set a custom wallpaper image. `DefaultDesktop.jpg` is already a symlink, and
-# all wallpapers are in `/Library/Desktop Pictures/`. The default is `Wave.jpg`.
-#rm -rf ~/Library/Application Support/Dock/desktoppicture.db
-#sudo rm -rf /System/Library/CoreServices/DefaultDesktop.jpg
-#sudo ln -s /path/to/your/image /System/Library/CoreServices/DefaultDesktop.jpg
-
-###############################################################################
-# SSD-specific tweaks #
-###############################################################################
-
-# Disable hibernation (speeds up entering sleep mode)
-sudo pmset -a hibernatemode 0
-
-# Remove the sleep image file to save disk space
-sudo rm /private/var/vm/sleepimage
-# Create a zero-byte file instead…
-sudo touch /private/var/vm/sleepimage
-# …and make sure it can’t be rewritten
-sudo chflags uchg /private/var/vm/sleepimage
-
-###############################################################################
-# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
-###############################################################################
-
-# Trackpad: enable tap to click for this user and for the login screen
-defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
-defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
-defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
-
-# Trackpad: map bottom right corner to right-click
-defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2
-defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true
-defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1
-defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true
-
-# Disable “natural” (Lion-style) scrolling
-defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false
-
-# Increase sound quality for Bluetooth headphones/headsets
-defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
-
-# Enable full keyboard access for all controls
-# (e.g. enable Tab in modal dialogs)
-defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
-
-# Use scroll gesture with the Ctrl (^) modifier key to zoom
-defaults write com.apple.universalaccess closeViewScrollWheelToggle -bool true
-defaults write com.apple.universalaccess HIDScrollZoomModifierMask -int 262144
-# Follow the keyboard focus while zoomed in
-defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true
-
-# Disable press-and-hold for keys in favor of key repeat
-defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
-
-# Set a blazingly fast keyboard repeat rate
-defaults write NSGlobalDomain KeyRepeat -int 1
-defaults write NSGlobalDomain InitialKeyRepeat -int 10
-
-# Set language and text formats
-# Note: if you’re in the US, replace `EUR` with `USD`, `Centimeters` with
-# `Inches`, `en_GB` with `en_US`, and `true` with `false`.
-defaults write NSGlobalDomain AppleLanguages -array "en" "nl"
-defaults write NSGlobalDomain AppleLocale -string "en_GB@currency=EUR"
-defaults write NSGlobalDomain AppleMeasurementUnits -string "Centimeters"
-defaults write NSGlobalDomain AppleMetricUnits -bool true
-
-# Show language menu in the top right corner of the boot screen
-sudo defaults write /Library/Preferences/com.apple.loginwindow showInputMenu -bool true
-
-# Set the timezone; see `sudo systemsetup -listtimezones` for other values
-sudo systemsetup -settimezone "Europe/Brussels" > /dev/null
-
-# Stop iTunes from responding to the keyboard media keys
-#launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null
-
-###############################################################################
-# Screen #
-###############################################################################
-
-# Require password immediately after sleep or screen saver begins
-defaults write com.apple.screensaver askForPassword -int 1
-defaults write com.apple.screensaver askForPasswordDelay -int 0
-
-# Save screenshots to the desktop
-defaults write com.apple.screencapture location -string "${HOME}/Desktop"
-
-# Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
-defaults write com.apple.screencapture type -string "png"
-
-# Disable shadow in screenshots
-defaults write com.apple.screencapture disable-shadow -bool true
-
-# Enable subpixel font rendering on non-Apple LCDs
-# Reference: https://github.com/kevinSuttle/macOS-Defaults/issues/17#issuecomment-266633501
-defaults write NSGlobalDomain AppleFontSmoothing -int 1
-
-# Enable HiDPI display modes (requires restart)
-sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
-
-###############################################################################
-# Finder #
-###############################################################################
-
-# Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons
-defaults write com.apple.finder QuitMenuItem -bool true
-
-# Finder: disable window animations and Get Info animations
-defaults write com.apple.finder DisableAllAnimations -bool true
-
-# Set Desktop as the default location for new Finder windows
-# For other paths, use `PfLo` and `file:///full/path/here/`
-defaults write com.apple.finder NewWindowTarget -string "PfDe"
-defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Desktop/"
-
-# Show icons for hard drives, servers, and removable media on the desktop
-defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool true
-defaults write com.apple.finder ShowHardDrivesOnDesktop -bool true
-defaults write com.apple.finder ShowMountedServersOnDesktop -bool true
-defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool true
-
-# Finder: show hidden files by default
-#defaults write com.apple.finder AppleShowAllFiles -bool true
-
-# Finder: show all filename extensions
-defaults write NSGlobalDomain AppleShowAllExtensions -bool true
-
-# Finder: show status bar
-defaults write com.apple.finder ShowStatusBar -bool true
-
-# Finder: show path bar
-defaults write com.apple.finder ShowPathbar -bool true
-
-# Display full POSIX path as Finder window title
-defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
-
-# Keep folders on top when sorting by name
-defaults write com.apple.finder _FXSortFoldersFirst -bool true
-
-# When performing a search, search the current folder by default
-defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
-
-# Disable the warning when changing a file extension
-defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
-
-# Enable spring loading for directories
-defaults write NSGlobalDomain com.apple.springing.enabled -bool true
-
-# Remove the spring loading delay for directories
-defaults write NSGlobalDomain com.apple.springing.delay -float 0
-
-# Avoid creating .DS_Store files on network or USB volumes
-defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
-defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
-
-# Disable disk image verification
-defaults write com.apple.frameworks.diskimages skip-verify -bool true
-defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
-defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true
-
-# Automatically open a new Finder window when a volume is mounted
-defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true
-defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true
-defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true
-
-# Show item info near icons on the desktop and in other icon views
-/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
-
-# Show item info to the right of the icons on the desktop
-/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:labelOnBottom false" ~/Library/Preferences/com.apple.finder.plist
-
-# Enable snap-to-grid for icons on the desktop and in other icon views
-/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
-
-# Increase grid spacing for icons on the desktop and in other icon views
-/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:gridSpacing 100" ~/Library/Preferences/com.apple.finder.plist
-
-# Increase the size of icons on the desktop and in other icon views
-/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
-/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:iconSize 80" ~/Library/Preferences/com.apple.finder.plist
-
-# Use list view in all Finder windows by default
-# Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv`
-defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
-
-# Disable the warning before emptying the Trash
-defaults write com.apple.finder WarnOnEmptyTrash -bool false
-
-# Enable AirDrop over Ethernet and on unsupported Macs running Lion
-defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
-
-# Show the ~/Library folder
-chflags nohidden ~/Library
-
-# Show the /Volumes folder
-sudo chflags nohidden /Volumes
-
-# Remove Dropbox’s green checkmark icons in Finder
-file=/Applications/Dropbox.app/Contents/Resources/emblem-dropbox-uptodate.icns
-[ -e "${file}" ] && mv -f "${file}" "${file}.bak"
-
-# Expand the following File Info panes:
-# “General”, “Open with”, and “Sharing & Permissions”
-defaults write com.apple.finder FXInfoPanesExpanded -dict \
- General -bool true \
- OpenWith -bool true \
- Privileges -bool true
-
-###############################################################################
-# Dock, Dashboard, and hot corners #
-###############################################################################
-
-# Enable highlight hover effect for the grid view of a stack (Dock)
-defaults write com.apple.dock mouse-over-hilite-stack -bool true
-
-# Set the icon size of Dock items to 36 pixels
-defaults write com.apple.dock tilesize -int 36
-
-# Change minimize/maximize window effect
-defaults write com.apple.dock mineffect -string "scale"
-
-# Minimize windows into their application’s icon
-defaults write com.apple.dock minimize-to-application -bool true
-
-# Enable spring loading for all Dock items
-defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true
-
-# Show indicator lights for open applications in the Dock
-defaults write com.apple.dock show-process-indicators -bool true
-
-# Wipe all (default) app icons from the Dock
-# This is only really useful when setting up a new Mac, or if you don’t use
-# the Dock to launch apps.
-#defaults write com.apple.dock persistent-apps -array
-
-# Show only open applications in the Dock
-#defaults write com.apple.dock static-only -bool true
-
-# Don’t animate opening applications from the Dock
-defaults write com.apple.dock launchanim -bool false
-
-# Speed up Mission Control animations
-defaults write com.apple.dock expose-animation-duration -float 0.1
-
-# Don’t group windows by application in Mission Control
-# (i.e. use the old Exposé behavior instead)
-defaults write com.apple.dock expose-group-by-app -bool false
-
-# Disable Dashboard
-defaults write com.apple.dashboard mcx-disabled -bool true
-
-# Don’t show Dashboard as a Space
-defaults write com.apple.dock dashboard-in-overlay -bool true
-
-# Don’t automatically rearrange Spaces based on most recent use
-defaults write com.apple.dock mru-spaces -bool false
-
-# Remove the auto-hiding Dock delay
-defaults write com.apple.dock autohide-delay -float 0
-# Remove the animation when hiding/showing the Dock
-defaults write com.apple.dock autohide-time-modifier -float 0
-
-# Automatically hide and show the Dock
-defaults write com.apple.dock autohide -bool true
-
-# Make Dock icons of hidden applications translucent
-defaults write com.apple.dock showhidden -bool true
-
-# Disable the Launchpad gesture (pinch with thumb and three fingers)
-#defaults write com.apple.dock showLaunchpadGestureEnabled -int 0
-
-# Reset Launchpad, but keep the desktop wallpaper intact
-find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete
-
-# Add iOS & Watch Simulator to Launchpad
-sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app" "/Applications/Simulator.app"
-sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator (Watch).app" "/Applications/Simulator (Watch).app"
-
-# Add a spacer to the left side of the Dock (where the applications are)
-#defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}'
-# Add a spacer to the right side of the Dock (where the Trash is)
-#defaults write com.apple.dock persistent-others -array-add '{tile-data={}; tile-type="spacer-tile";}'
-
-# Hot corners
-# Possible values:
-# 0: no-op
-# 2: Mission Control
-# 3: Show application windows
-# 4: Desktop
-# 5: Start screen saver
-# 6: Disable screen saver
-# 7: Dashboard
-# 10: Put display to sleep
-# 11: Launchpad
-# 12: Notification Center
-# Top left screen corner → Mission Control
-defaults write com.apple.dock wvous-tl-corner -int 2
-defaults write com.apple.dock wvous-tl-modifier -int 0
-# Top right screen corner → Desktop
-defaults write com.apple.dock wvous-tr-corner -int 4
-defaults write com.apple.dock wvous-tr-modifier -int 0
-# Bottom left screen corner → Start screen saver
-defaults write com.apple.dock wvous-bl-corner -int 5
-defaults write com.apple.dock wvous-bl-modifier -int 0
-
-###############################################################################
-# Safari & WebKit #
-###############################################################################
-
-# Privacy: don’t send search queries to Apple
-defaults write com.apple.Safari UniversalSearchEnabled -bool false
-defaults write com.apple.Safari SuppressSearchSuggestions -bool true
-
-# Press Tab to highlight each item on a web page
-defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true
-
-# Show the full URL in the address bar (note: this still hides the scheme)
-defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true
-
-# Set Safari’s home page to `about:blank` for faster loading
-defaults write com.apple.Safari HomePage -string "about:blank"
-
-# Prevent Safari from opening ‘safe’ files automatically after downloading
-defaults write com.apple.Safari AutoOpenSafeDownloads -bool false
-
-# Allow hitting the Backspace key to go to the previous page in history
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true
-
-# Hide Safari’s bookmarks bar by default
-defaults write com.apple.Safari ShowFavoritesBar -bool false
-
-# Hide Safari’s sidebar in Top Sites
-defaults write com.apple.Safari ShowSidebarInTopSites -bool false
-
-# Disable Safari’s thumbnail cache for History and Top Sites
-defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
-
-# Enable Safari’s debug menu
-defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
-
-# Make Safari’s search banners default to Contains instead of Starts With
-defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false
-
-# Remove useless icons from Safari’s bookmarks bar
-defaults write com.apple.Safari ProxiesInBookmarksBar "()"
-
-# Enable the Develop menu and the Web Inspector in Safari
-defaults write com.apple.Safari IncludeDevelopMenu -bool true
-defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
-
-# Add a context menu item for showing the Web Inspector in web views
-defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
-
-# Enable continuous spellchecking
-defaults write com.apple.Safari WebContinuousSpellCheckingEnabled -bool true
-# Disable auto-correct
-defaults write com.apple.Safari WebAutomaticSpellingCorrectionEnabled -bool false
-
-# Disable AutoFill
-defaults write com.apple.Safari AutoFillFromAddressBook -bool false
-defaults write com.apple.Safari AutoFillPasswords -bool false
-defaults write com.apple.Safari AutoFillCreditCardData -bool false
-defaults write com.apple.Safari AutoFillMiscellaneousForms -bool false
-
-# Warn about fraudulent websites
-defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool true
-
-# Disable plug-ins
-defaults write com.apple.Safari WebKitPluginsEnabled -bool false
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled -bool false
-
-# Disable Java
-defaults write com.apple.Safari WebKitJavaEnabled -bool false
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool false
-
-# Block pop-up windows
-defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically -bool false
-defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool false
-
-# Disable auto-playing video
-#defaults write com.apple.Safari WebKitMediaPlaybackAllowsInline -bool false
-#defaults write com.apple.SafariTechnologyPreview WebKitMediaPlaybackAllowsInline -bool false
-#defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2AllowsInlineMediaPlayback -bool false
-#defaults write com.apple.SafariTechnologyPreview com.apple.Safari.ContentPageGroupIdentifier.WebKit2AllowsInlineMediaPlayback -bool false
-
-# Enable “Do Not Track”
-defaults write com.apple.Safari SendDoNotTrackHTTPHeader -bool true
-
-# Update extensions automatically
-defaults write com.apple.Safari InstallExtensionUpdatesAutomatically -bool true
-
-###############################################################################
-# Mail #
-###############################################################################
-
-# Disable send and reply animations in Mail.app
-defaults write com.apple.mail DisableReplyAnimations -bool true
-defaults write com.apple.mail DisableSendAnimations -bool true
-
-# Copy email addresses as `foo@example.com` instead of `Foo Bar ` in Mail.app
-defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
-
-# Add the keyboard shortcut ⌘ + Enter to send an email in Mail.app
-defaults write com.apple.mail NSUserKeyEquivalents -dict-add "Send" "@\U21a9"
-
-# Display emails in threaded mode, sorted by date (oldest at the top)
-defaults write com.apple.mail DraftsViewerAttributes -dict-add "DisplayInThreadedMode" -string "yes"
-defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortedDescending" -string "yes"
-defaults write com.apple.mail DraftsViewerAttributes -dict-add "SortOrder" -string "received-date"
-
-# Disable inline attachments (just show the icons)
-defaults write com.apple.mail DisableInlineAttachmentViewing -bool true
-
-# Disable automatic spell checking
-defaults write com.apple.mail SpellCheckingBehavior -string "NoSpellCheckingEnabled"
-
-###############################################################################
-# Spotlight #
-###############################################################################
-
-# Hide Spotlight tray-icon (and subsequent helper)
-#sudo chmod 600 /System/Library/CoreServices/Search.bundle/Contents/MacOS/Search
-# Disable Spotlight indexing for any volume that gets mounted and has not yet
-# been indexed before.
-# Use `sudo mdutil -i off "/Volumes/foo"` to stop indexing any volume.
-sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes"
-# Change indexing order and disable some search results
-# Yosemite-specific search results (remove them if you are using macOS 10.9 or older):
-# MENU_DEFINITION
-# MENU_CONVERSION
-# MENU_EXPRESSION
-# MENU_SPOTLIGHT_SUGGESTIONS (send search queries to Apple)
-# MENU_WEBSEARCH (send search queries to Apple)
-# MENU_OTHER
-defaults write com.apple.spotlight orderedItems -array \
- '{"enabled" = 1;"name" = "APPLICATIONS";}' \
- '{"enabled" = 1;"name" = "SYSTEM_PREFS";}' \
- '{"enabled" = 1;"name" = "DIRECTORIES";}' \
- '{"enabled" = 1;"name" = "PDF";}' \
- '{"enabled" = 1;"name" = "FONTS";}' \
- '{"enabled" = 0;"name" = "DOCUMENTS";}' \
- '{"enabled" = 0;"name" = "MESSAGES";}' \
- '{"enabled" = 0;"name" = "CONTACT";}' \
- '{"enabled" = 0;"name" = "EVENT_TODO";}' \
- '{"enabled" = 0;"name" = "IMAGES";}' \
- '{"enabled" = 0;"name" = "BOOKMARKS";}' \
- '{"enabled" = 0;"name" = "MUSIC";}' \
- '{"enabled" = 0;"name" = "MOVIES";}' \
- '{"enabled" = 0;"name" = "PRESENTATIONS";}' \
- '{"enabled" = 0;"name" = "SPREADSHEETS";}' \
- '{"enabled" = 0;"name" = "SOURCE";}' \
- '{"enabled" = 0;"name" = "MENU_DEFINITION";}' \
- '{"enabled" = 0;"name" = "MENU_OTHER";}' \
- '{"enabled" = 0;"name" = "MENU_CONVERSION";}' \
- '{"enabled" = 0;"name" = "MENU_EXPRESSION";}' \
- '{"enabled" = 0;"name" = "MENU_WEBSEARCH";}' \
- '{"enabled" = 0;"name" = "MENU_SPOTLIGHT_SUGGESTIONS";}'
-# Load new settings before rebuilding the index
-killall mds > /dev/null 2>&1
-# Make sure indexing is enabled for the main volume
-sudo mdutil -i on / > /dev/null
-# Rebuild the index from scratch
-sudo mdutil -E / > /dev/null
-
-###############################################################################
-# Terminal & iTerm 2 #
-###############################################################################
-
-# Only use UTF-8 in Terminal.app
-defaults write com.apple.terminal StringEncodings -array 4
-
-# Use a modified version of the Solarized Dark theme by default in Terminal.app
-osascript < /dev/null && sudo tmutil disablelocal
-
-###############################################################################
-# Activity Monitor #
-###############################################################################
-
-# Show the main window when launching Activity Monitor
-defaults write com.apple.ActivityMonitor OpenMainWindow -bool true
-
-# Visualize CPU usage in the Activity Monitor Dock icon
-defaults write com.apple.ActivityMonitor IconType -int 5
-
-# Show all processes in Activity Monitor
-defaults write com.apple.ActivityMonitor ShowCategory -int 0
-
-# Sort Activity Monitor results by CPU usage
-defaults write com.apple.ActivityMonitor SortColumn -string "CPUUsage"
-defaults write com.apple.ActivityMonitor SortDirection -int 0
-
-###############################################################################
-# Address Book, Dashboard, iCal, TextEdit, and Disk Utility #
-###############################################################################
-
-# Enable the debug menu in Address Book
-defaults write com.apple.addressbook ABShowDebugMenu -bool true
-
-# Enable Dashboard dev mode (allows keeping widgets on the desktop)
-defaults write com.apple.dashboard devmode -bool true
-
-# Enable the debug menu in iCal (pre-10.8)
-defaults write com.apple.iCal IncludeDebugMenu -bool true
-
-# Use plain text mode for new TextEdit documents
-defaults write com.apple.TextEdit RichText -int 0
-# Open and save files as UTF-8 in TextEdit
-defaults write com.apple.TextEdit PlainTextEncoding -int 4
-defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4
-
-# Enable the debug menu in Disk Utility
-defaults write com.apple.DiskUtility DUDebugMenuEnabled -bool true
-defaults write com.apple.DiskUtility advanced-image-options -bool true
-
-# Auto-play videos when opened with QuickTime Player
-defaults write com.apple.QuickTimePlayerX MGPlayMovieOnOpen -bool true
-
-###############################################################################
-# Mac App Store #
-###############################################################################
-
-# Enable the WebKit Developer Tools in the Mac App Store
-defaults write com.apple.appstore WebKitDeveloperExtras -bool true
-
-# Enable Debug Menu in the Mac App Store
-defaults write com.apple.appstore ShowDebugMenu -bool true
-
-# Enable the automatic update check
-defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true
-
-# Check for software updates daily, not just once per week
-defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
-
-# Download newly available updates in background
-defaults write com.apple.SoftwareUpdate AutomaticDownload -int 1
-
-# Install System data files & security updates
-defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 1
-
-# Automatically download apps purchased on other Macs
-defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1
-
-# Turn on app auto-update
-defaults write com.apple.commerce AutoUpdate -bool true
-
-# Allow the App Store to reboot machine on macOS updates
-defaults write com.apple.commerce AutoUpdateRestartRequired -bool true
-
-###############################################################################
-# Photos #
-###############################################################################
-
-# Prevent Photos from opening automatically when devices are plugged in
-defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true
-
-###############################################################################
-# Messages #
-###############################################################################
-
-# Disable automatic emoji substitution (i.e. use plain text smileys)
-defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false
-
-# Disable smart quotes as it’s annoying for messages that contain code
-defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false
-
-# Disable continuous spell checking
-defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false
-
-###############################################################################
-# Google Chrome & Google Chrome Canary #
-###############################################################################
-
-# Disable the all too sensitive backswipe on trackpads
-defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false
-defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool false
-
-# Disable the all too sensitive backswipe on Magic Mouse
-defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false
-defaults write com.google.Chrome.canary AppleEnableMouseSwipeNavigateWithScrolls -bool false
-
-# Use the system-native print preview dialog
-defaults write com.google.Chrome DisablePrintPreview -bool true
-defaults write com.google.Chrome.canary DisablePrintPreview -bool true
-
-# Expand the print dialog by default
-defaults write com.google.Chrome PMPrintingExpandedStateForPrint2 -bool true
-defaults write com.google.Chrome.canary PMPrintingExpandedStateForPrint2 -bool true
-
-###############################################################################
-# GPGMail 2 #
-###############################################################################
-
-# Disable signing emails by default
-defaults write ~/Library/Preferences/org.gpgtools.gpgmail SignNewEmailsByDefault -bool false
-
-###############################################################################
-# Opera & Opera Developer #
-###############################################################################
-
-# Expand the print dialog by default
-defaults write com.operasoftware.Opera PMPrintingExpandedStateForPrint2 -boolean true
-defaults write com.operasoftware.OperaDeveloper PMPrintingExpandedStateForPrint2 -boolean true
-
-###############################################################################
-# SizeUp.app #
-###############################################################################
-
-# Start SizeUp at login
-defaults write com.irradiatedsoftware.SizeUp StartAtLogin -bool true
-
-# Don’t show the preferences window on next start
-defaults write com.irradiatedsoftware.SizeUp ShowPrefsOnNextStart -bool false
-
-###############################################################################
-# Sublime Text #
-###############################################################################
-
-# Install Sublime Text settings
-cp -r init/Preferences.sublime-settings ~/Library/Application\ Support/Sublime\ Text*/Packages/User/Preferences.sublime-settings 2> /dev/null
-
-###############################################################################
-# Transmission.app #
-###############################################################################
-
-# Use `~/Documents/Torrents` to store incomplete downloads
-defaults write org.m0k.transmission UseIncompleteDownloadFolder -bool true
-defaults write org.m0k.transmission IncompleteDownloadFolder -string "${HOME}/Documents/Torrents"
-
-# Use `~/Downloads` to store completed downloads
-defaults write org.m0k.transmission DownloadLocationConstant -bool true
-
-# Don’t prompt for confirmation before downloading
-defaults write org.m0k.transmission DownloadAsk -bool false
-defaults write org.m0k.transmission MagnetOpenAsk -bool false
-
-# Don’t prompt for confirmation before removing non-downloading active transfers
-defaults write org.m0k.transmission CheckRemoveDownloading -bool true
-
-# Trash original torrent files
-defaults write org.m0k.transmission DeleteOriginalTorrent -bool true
-
-# Hide the donate message
-defaults write org.m0k.transmission WarningDonate -bool false
-# Hide the legal disclaimer
-defaults write org.m0k.transmission WarningLegal -bool false
-
-# IP block list.
-# Source: https://giuliomac.wordpress.com/2014/02/19/best-blocklist-for-transmission/
-defaults write org.m0k.transmission BlocklistNew -bool true
-defaults write org.m0k.transmission BlocklistURL -string "http://john.bitsurge.net/public/biglist.p2p.gz"
-defaults write org.m0k.transmission BlocklistAutoUpdate -bool true
-
-# Randomize port on launch
-defaults write org.m0k.transmission RandomPort -bool true
-
-###############################################################################
-# Twitter.app #
-###############################################################################
-
-# Disable smart quotes as it’s annoying for code tweets
-defaults write com.twitter.twitter-mac AutomaticQuoteSubstitutionEnabled -bool false
-
-# Show the app window when clicking the menu bar icon
-defaults write com.twitter.twitter-mac MenuItemBehavior -int 1
-
-# Enable the hidden ‘Develop’ menu
-defaults write com.twitter.twitter-mac ShowDevelopMenu -bool true
-
-# Open links in the background
-defaults write com.twitter.twitter-mac openLinksInBackground -bool true
-
-# Allow closing the ‘new tweet’ window by pressing `Esc`
-defaults write com.twitter.twitter-mac ESCClosesComposeWindow -bool true
-
-# Show full names rather than Twitter handles
-defaults write com.twitter.twitter-mac ShowFullNames -bool true
-
-# Hide the app in the background if it’s not the front-most window
-defaults write com.twitter.twitter-mac HideInBackground -bool true
-
-###############################################################################
-# Tweetbot.app #
-###############################################################################
-
-# Bypass the annoyingly slow t.co URL shortener
-defaults write com.tapbots.TweetbotMac OpenURLsDirectly -bool true
-
-###############################################################################
-# Spectacle.app #
-###############################################################################
-
-# Set up my preferred keyboard shortcuts
-defaults write com.divisiblebyzero.Spectacle MakeLarger -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035a4d616b654c6172676572d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f7a7f8a939c9fa8b1c3c6cb0000000000000101000000000000001c000000000000000000000000000000cd
-defaults write com.divisiblebyzero.Spectacle MakeSmaller -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035b4d616b65536d616c6c6572d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f7b808b949da0a9b2c4c7cc0000000000000101000000000000001c000000000000000000000000000000ce
-defaults write com.divisiblebyzero.Spectacle MoveToBottomDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107d80035f10134d6f7665546f426f74746f6d446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072888d98a1afb2c0c9dbdee30000000000000101000000000000001d000000000000000000000000000000e5
-defaults write com.divisiblebyzero.Spectacle MoveToBottomHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107d80035f10104d6f7665546f426f74746f6d48616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072858a959ea7aab3bcced1d60000000000000101000000000000001d000000000000000000000000000000d8
-defaults write com.divisiblebyzero.Spectacle MoveToCenter -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002100880035c4d6f7665546f43656e746572d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70727f848f98a1a4adb6c8cbd00000000000000101000000000000001d000000000000000000000000000000d2
-defaults write com.divisiblebyzero.Spectacle MoveToFullscreen -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002102e80035f10104d6f7665546f46756c6c73637265656ed2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072858a959ea7aab3bcced1d60000000000000101000000000000001d000000000000000000000000000000d8
-defaults write com.divisiblebyzero.Spectacle MoveToLeftDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107b80035f10114d6f7665546f4c656674446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072868b969fadb0bec7d9dce10000000000000101000000000000001d000000000000000000000000000000e3
-defaults write com.divisiblebyzero.Spectacle MoveToLeftHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107b80035e4d6f7665546f4c65667448616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70728186919aa3a6afb8cacdd20000000000000101000000000000001d000000000000000000000000000000d4
-defaults write com.divisiblebyzero.Spectacle MoveToLowerLeft -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731113008002107b80035f100f4d6f7665546f4c6f7765724c656674d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70728489949dabafbdc6cfe1e4e90000000000000101000000000000001e000000000000000000000000000000eb
-defaults write com.divisiblebyzero.Spectacle MoveToLowerRight -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731113008002107c80035f10104d6f7665546f4c6f7765725269676874d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e7072858a959eacb0bec7d0e2e5ea0000000000000101000000000000001e000000000000000000000000000000ec
-defaults write com.divisiblebyzero.Spectacle MoveToNextDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731118008002107c80035f10114d6f7665546f4e657874446973706c6179d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072868b969fa8abb4bdcfd2d70000000000000101000000000000001d000000000000000000000000000000d9
-defaults write com.divisiblebyzero.Spectacle MoveToNextThird -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035f100f4d6f7665546f4e6578745468697264d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f8186919aa3a6afb8cacdd20000000000000101000000000000001c000000000000000000000000000000d4
-defaults write com.divisiblebyzero.Spectacle MoveToPreviousDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731118008002107b80035f10154d6f7665546f50726576696f7573446973706c6179d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70728a8f9aa3acafb8c1d3d6db0000000000000101000000000000001d000000000000000000000000000000dd
-defaults write com.divisiblebyzero.Spectacle MoveToPreviousThird -data 62706c6973743030d40102030405061819582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708101155246e756c6cd4090a0b0c0d0e0d0f596d6f64696669657273546e616d65576b6579436f64655624636c6173731000800280035f10134d6f7665546f50726576696f75735468697264d2121314155a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21617585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11a1b54726f6f74800108111a232d32373c424b555a62696b6d6f858a959ea7aab3bcced1d60000000000000101000000000000001c000000000000000000000000000000d8
-defaults write com.divisiblebyzero.Spectacle MoveToRightDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107c80035f10124d6f7665546f5269676874446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072878c97a0aeb1bfc8dadde20000000000000101000000000000001d000000000000000000000000000000e4
-defaults write com.divisiblebyzero.Spectacle MoveToRightHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107c80035f100f4d6f7665546f526967687448616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e70728489949da6a9b2bbcdd0d50000000000000101000000000000001d000000000000000000000000000000d7
-defaults write com.divisiblebyzero.Spectacle MoveToTopDisplay -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107e80035f10104d6f7665546f546f70446973706c6179d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a217185d5a65726f4b6974486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e7072858a959eacafbdc6d8dbe00000000000000101000000000000001d000000000000000000000000000000e2
-defaults write com.divisiblebyzero.Spectacle MoveToTopHalf -data 62706c6973743030d4010203040506191a582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731119008002107e80035d4d6f7665546f546f7048616c66d2131415165a24636c6173736e616d655824636c6173736573585a4b486f744b6579a21718585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11b1c54726f6f74800108111a232d32373c424b555a62696c6e707280859099a2a5aeb7c9ccd10000000000000101000000000000001d000000000000000000000000000000d3
-defaults write com.divisiblebyzero.Spectacle MoveToUpperLeft -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731111008002107b80035f100f4d6f7665546f55707065724c656674d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70728489949dabafbdc6cfe1e4e90000000000000101000000000000001e000000000000000000000000000000eb
-defaults write com.divisiblebyzero.Spectacle MoveToUpperRight -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731111008002107c80035f10104d6f7665546f55707065725269676874d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e7072858a959eacb0bec7d0e2e5ea0000000000000101000000000000001e000000000000000000000000000000ec
-defaults write com.divisiblebyzero.Spectacle RedoLastMove -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c617373110b008002100680035c5265646f4c6173744d6f7665d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70727f848f98a6aab8c1cadcdfe40000000000000101000000000000001e000000000000000000000000000000e6
-defaults write com.divisiblebyzero.Spectacle UndoLastMove -data 62706c6973743030d40102030405061a1b582476657273696f6e58246f626a65637473592461726368697665725424746f7012000186a0a40708111255246e756c6cd4090a0b0c0d0e0f10596d6f64696669657273546e616d65576b6579436f64655624636c6173731109008002100680035c556e646f4c6173744d6f7665d2131415165a24636c6173736e616d655824636c61737365735d5a65726f4b6974486f744b6579a31718195d5a65726f4b6974486f744b6579585a4b486f744b6579584e534f626a6563745f100f4e534b657965644172636869766572d11c1d54726f6f74800108111a232d32373c424b555a62696c6e70727f848f98a6aab8c1cadcdfe40000000000000101000000000000001e000000000000000000000000000000e6
-
-###############################################################################
-# Kill affected applications #
-###############################################################################
-
-for app in "Activity Monitor" \
- "Address Book" \
- "Calendar" \
- "cfprefsd" \
- "Contacts" \
- "Dock" \
- "Finder" \
- "Google Chrome Canary" \
- "Google Chrome" \
- "Mail" \
- "Messages" \
- "Opera" \
- "Photos" \
- "Safari" \
- "SizeUp" \
- "Spectacle" \
- "SystemUIServer" \
- "Terminal" \
- "Transmission" \
- "Tweetbot" \
- "Twitter" \
- "iCal"; do
- killall "${app}" &> /dev/null
-done
-echo "Done. Note that some of these changes require a logout/restart to take effect."
diff --git a/.osx b/.osx
deleted file mode 100644
index 4eacb4e03b7..00000000000
--- a/.osx
+++ /dev/null
@@ -1 +0,0 @@
-# 301 https://github.com/mathiasbynens/dotfiles/blob/master/.macos
diff --git a/.screenrc b/.screenrc
deleted file mode 100644
index a4a33ba125b..00000000000
--- a/.screenrc
+++ /dev/null
@@ -1,8 +0,0 @@
-# Disable the startup message
-startup_message off
-
-# Set a large scrollback buffer
-defscrollback 32000
-
-# Always start `screen` with UTF-8 enabled (`screen -U`)
-defutf8 on
diff --git a/.tmux.conf b/.tmux.conf
deleted file mode 100644
index 612b673ac83..00000000000
--- a/.tmux.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# Use Vim shortcuts
-setw -g mode-keys vi
-
-# Make `Ctrl+B R` reload the config file
-unbind r
-bind r source-file ~/.tmux.conf
diff --git a/.vim/backups/.gitkeep b/.vim/backups/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/.vim/colors/solarized.vim b/.vim/colors/solarized.vim
deleted file mode 100644
index ee46b1715e2..00000000000
--- a/.vim/colors/solarized.vim
+++ /dev/null
@@ -1,969 +0,0 @@
-" Name: Solarized vim colorscheme
-" Author: Ethan Schoonover
-" URL: http://ethanschoonover.com/solarized
-" (see this url for latest release & screenshots)
-" License: OSI approved MIT license (see end of this file)
-" Created: In the middle of the night
-" Modified: 2011 Apr 14
-"
-" Usage "{{{
-"
-" ---------------------------------------------------------------------
-" ABOUT:
-" ---------------------------------------------------------------------
-" Solarized is a carefully designed selective contrast colorscheme with dual
-" light and dark modes that runs in both GUI, 256 and 16 color modes.
-"
-" See the homepage above for screenshots and details.
-"
-" ---------------------------------------------------------------------
-" INSTALLATION:
-" ---------------------------------------------------------------------
-"
-" Two options for installation: manual or pathogen
-"
-" MANUAL INSTALLATION OPTION:
-" ---------------------------------------------------------------------
-"
-" 1. Put the files in the right place!
-" 2. Move `solarized.vim` to your `.vim/colors` directory.
-"
-" RECOMMENDED PATHOGEN INSTALLATION OPTION:
-" ---------------------------------------------------------------------
-"
-" 1. Download and install Tim Pope's Pathogen from:
-" https://github.com/tpope/vim-pathogen
-"
-" 2. Next, move or clone the `vim-colors-solarized` directory so that it is
-" a subdirectory of the `.vim/bundle` directory.
-"
-" a. **clone with git:**
-"
-" $ cd ~/.vim/bundle
-" $ git clone git://github.com/altercation/vim-colors-solarized.git
-"
-" b. **or move manually into the pathogen bundle directory:**
-" In the parent directory of vim-colors-solarized:
-"
-" $ mv vim-colors-solarized ~/.vim/bundle/
-"
-" MODIFY VIMRC:
-"
-" After either Option 1 or Option 2 above, put the following two lines in your
-" .vimrc:
-"
-" syntax enable
-" set background=dark
-" colorscheme solarized
-"
-" or, for the light background mode of Solarized:
-"
-" syntax enable
-" set background=light
-" colorscheme solarized
-"
-" I like to have a different background in GUI and terminal modes, so I can use
-" the following if-then. However, I find vim's background autodetection to be
-" pretty good and, at least with MacVim, I can leave this background value
-" assignment out entirely and get the same results.
-"
-" if has('gui_running')
-" set background=light
-" else
-" set background=dark
-" endif
-"
-" See the Solarized homepage at http://ethanschoonover.com/solarized for
-" screenshots which will help you select either the light or dark background.
-"
-" Other options are detailed below.
-"
-" IMPORTANT NOTE FOR TERMINAL USERS:
-"
-" If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
-" like gvim or macvim), **please please please** consider setting your terminal
-" emulator's colorscheme to used the Solarized palette. I've included palettes
-" for some popular terminal emulator as well as Xdefaults in the official
-" Solarized download available from [Solarized homepage]. If you use
-" Solarized *without* these colors, Solarized will need to be told to degrade
-" its colorscheme to a set compatible with the limited 256 terminal palette
-" (whereas by using the terminal's 16 ansi color values, you can set the
-" correct, specific values for the Solarized palette).
-"
-" If you do use the custom terminal colors, solarized.vim should work out of
-" the box for you. If you are using a terminal emulator that supports 256
-" colors and don't want to use the custom Solarized terminal colors, you will
-" need to use the degraded 256 colorscheme. To do so, simply add the following
-" line *before* the `colorschem solarized` line:
-"
-" let g:solarized_termcolors=256
-"
-" Again, I recommend just changing your terminal colors to Solarized values
-" either manually or via one of the many terminal schemes available for import.
-"
-" ---------------------------------------------------------------------
-" TOGGLE BACKGROUND FUNCTION:
-" ---------------------------------------------------------------------
-"
-" Solarized comes with a Toggle Background plugin that by default will map to
-" if that mapping is available. If it is not available you will need to
-" either map the function manually or change your current mapping to
-" something else. If you wish to map the function manually, enter the following
-" lines in your .vimrc:
-"
-" nmap ToggleBackground
-" imap ToggleBackground
-" vmap ToggleBackground
-"
-" Note that it is important to *not* use the noremap map variants. The plugin
-" uses noremap internally. You may run `:help togglebg` for more information.
-"
-" ---------------------------------------------------------------------
-" OPTIONS
-" ---------------------------------------------------------------------
-"
-" Set these in your vimrc file prior to calling the colorscheme.
-"
-" option name default optional
-" ------------------------------------------------
-" g:solarized_termcolors= 16 | 256
-" g:solarized_termtrans = 0 | 1
-" g:solarized_degrade = 0 | 1
-" g:solarized_bold = 1 | 0
-" g:solarized_underline = 1 | 0
-" g:solarized_italic = 1 | 0
-" g:solarized_contrast = "normal"| "high" or "low"
-" g:solarized_visibility= "normal"| "high" or "low"
-" ------------------------------------------------
-"
-" OPTION DETAILS
-"
-" ------------------------------------------------
-" g:solarized_termcolors= 256 | 16
-" ------------------------------------------------
-" The most important option if you are using vim in terminal (non gui) mode!
-" This tells Solarized to use the 256 degraded color mode if running in a 256
-" color capable terminal. Otherwise, if set to `16` it will use the terminal
-" emulators colorscheme (best option as long as you've set the emulators colors
-" to the Solarized palette).
-"
-" If you are going to use Solarized in Terminal mode (i.e. not in a GUI
-" version like gvim or macvim), **please please please** consider setting your
-" terminal emulator's colorscheme to used the Solarized palette. I've included
-" palettes for some popular terminal emulator as well as Xdefaults in the
-" official Solarized download available from:
-" http://ethanschoonover.com/solarized . If you use Solarized without these
-" colors, Solarized will by default use an approximate set of 256 colors. It
-" isn't bad looking and has been extensively tweaked, but it's still not quite
-" the real thing.
-"
-" ------------------------------------------------
-" g:solarized_termtrans = 0 | 1
-" ------------------------------------------------
-" If you use a terminal emulator with a transparent background and Solarized
-" isn't displaying the background color transparently, set this to 1 and
-" Solarized will use the default (transparent) background of the terminal
-" emulator. *urxvt* required this in my testing; iTerm2 did not.
-"
-" Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
-" default as this is almost always the best option. The only exception to this
-" is if the working terminfo file supports 256 colors (xterm-256color).
-"
-" ------------------------------------------------
-" g:solarized_degrade = 0 | 1
-" ------------------------------------------------
-" For test purposes only; forces Solarized to use the 256 degraded color mode
-" to test the approximate color values for accuracy.
-"
-" ------------------------------------------------
-" g:solarized_bold = 1 | 0
-" ------------------------------------------------
-" ------------------------------------------------
-" g:solarized_underline = 1 | 0
-" ------------------------------------------------
-" ------------------------------------------------
-" g:solarized_italic = 1 | 0
-" ------------------------------------------------
-" If you wish to stop Solarized from displaying bold, underlined or
-" italicized typefaces, simply assign a zero value to the appropriate
-" variable, for example: `let g:solarized_italic=0`
-"
-" ------------------------------------------------
-" g:solarized_contrast = "normal"| "high" or "low"
-" ------------------------------------------------
-" Stick with normal! It's been carefully tested. Setting this option to high
-" or low does use the same Solarized palette but simply shifts some values up
-" or down in order to expand or compress the tonal range displayed.
-"
-" ------------------------------------------------
-" g:solarized_visibility = "normal"| "high" or "low"
-" ------------------------------------------------
-" Special characters such as trailing whitespace, tabs, newlines, when
-" displayed using ":set list" can be set to one of three levels depending on
-" your needs.
-"
-" ---------------------------------------------------------------------
-" COLOR VALUES
-" ---------------------------------------------------------------------
-" Download palettes and files from: http://ethanschoonover.com/solarized
-"
-" L\*a\*b values are canonical (White D65, Reference D50), other values are
-" matched in sRGB space.
-"
-" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
-" --------- ------- ---- ------- ----------- ---------- ----------- -----------
-" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
-" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
-" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
-" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
-" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
-" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
-" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
-" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
-" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
-" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
-" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
-" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
-" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
-" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
-" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
-" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
-"
-" ---------------------------------------------------------------------
-" COLORSCHEME HACKING
-" ---------------------------------------------------------------------
-"
-" Useful commands for testing colorschemes:
-" :source $VIMRUNTIME/syntax/hitest.vim
-" :help highlight-groups
-" :help cterm-colors
-" :help group-name
-"
-" Useful links for developing colorschemes:
-" http://www.vim.org/scripts/script.php?script_id=2937
-" http://vimcasts.org/episodes/creating-colorschemes-for-vim/
-" http://www.frexx.de/xterm-256-notes/"
-"
-"
-" }}}
-" Default option values"{{{
-" ---------------------------------------------------------------------
-if !exists("g:solarized_termtrans")
- if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
- let g:solarized_termtrans = 1
- else
- let g:solarized_termtrans = 0
- endif
-endif
-if !exists("g:solarized_degrade")
- let g:solarized_degrade = 0
-endif
-if !exists("g:solarized_bold")
- let g:solarized_bold = 1
-endif
-if !exists("g:solarized_underline")
- let g:solarized_underline = 1
-endif
-if !exists("g:solarized_italic")
- let g:solarized_italic = 1
-endif
-if !exists("g:solarized_termcolors")
- let g:solarized_termcolors = 16
-endif
-if !exists("g:solarized_contrast")
- let g:solarized_contrast = "normal"
-endif
-if !exists("g:solarized_visibility")
- let g:solarized_visibility = "normal"
-endif
-"}}}
-" Colorscheme initialization "{{{
-" ---------------------------------------------------------------------
-hi clear
-if exists("syntax_on")
- syntax reset
-endif
-let colors_name = "solarized"
-
-"}}}
-" GUI & CSApprox hexadecimal palettes"{{{
-" ---------------------------------------------------------------------
-"
-" Set both gui and terminal color values in separate conditional statements
-" Due to possibility that CSApprox is running (though I suppose we could just
-" leave the hex values out entirely in that case and include only cterm colors)
-" We also check to see if user has set solarized (force use of the
-" neutral gray monotone palette component)
-if (has("gui_running") && g:solarized_degrade == 0)
- let s:vmode = "gui"
- let s:base03 = "#002b36"
- let s:base02 = "#073642"
- let s:base01 = "#586e75"
- let s:base00 = "#657b83"
- let s:base0 = "#839496"
- let s:base1 = "#93a1a1"
- let s:base2 = "#eee8d5"
- let s:base3 = "#fdf6e3"
- let s:yellow = "#b58900"
- let s:orange = "#cb4b16"
- let s:red = "#dc322f"
- let s:magenta = "#d33682"
- let s:violet = "#6c71c4"
- let s:blue = "#268bd2"
- let s:cyan = "#2aa198"
- let s:green = "#859900"
-elseif (has("gui_running") && g:solarized_degrade == 1)
- " These colors are identical to the 256 color mode. They may be viewed
- " while in gui mode via "let g:solarized_degrade=1", though this is not
- " recommened and is for testing only.
- let s:vmode = "gui"
- let s:base03 = "#1c1c1c"
- let s:base02 = "#262626"
- let s:base01 = "#4e4e4e"
- let s:base00 = "#585858"
- let s:base0 = "#808080"
- let s:base1 = "#8a8a8a"
- let s:base2 = "#d7d7af"
- let s:base3 = "#ffffd7"
- let s:yellow = "#af8700"
- let s:orange = "#d75f00"
- let s:red = "#af0000"
- let s:magenta = "#af005f"
- let s:violet = "#5f5faf"
- let s:blue = "#0087ff"
- let s:cyan = "#00afaf"
- let s:green = "#5f8700"
-elseif g:solarized_termcolors != 256 && &t_Co >= 16
- let s:vmode = "cterm"
- let s:base03 = "8"
- let s:base02 = "0"
- let s:base01 = "10"
- let s:base00 = "11"
- let s:base0 = "12"
- let s:base1 = "14"
- let s:base2 = "7"
- let s:base3 = "15"
- let s:yellow = "3"
- let s:orange = "9"
- let s:red = "1"
- let s:magenta = "5"
- let s:violet = "13"
- let s:blue = "4"
- let s:cyan = "6"
- let s:green = "2"
-elseif g:solarized_termcolors == 256
- let s:vmode = "cterm"
- let s:base03 = "234"
- let s:base02 = "235"
- let s:base01 = "239"
- let s:base00 = "240"
- let s:base0 = "244"
- let s:base1 = "245"
- let s:base2 = "187"
- let s:base3 = "230"
- let s:yellow = "136"
- let s:orange = "166"
- let s:red = "124"
- let s:magenta = "125"
- let s:violet = "61"
- let s:blue = "33"
- let s:cyan = "37"
- let s:green = "64"
-else
- let s:vmode = "cterm"
- let s:bright = "* term=bold cterm=bold"
- let s:base03 = "0".s:bright
- let s:base02 = "0"
- let s:base01 = "2".s:bright
- let s:base00 = "3".s:bright
- let s:base0 = "4".s:bright
- let s:base1 = "6".s:bright
- let s:base2 = "7"
- let s:base3 = "7".s:bright
- let s:yellow = "3"
- let s:orange = "1".s:bright
- let s:red = "1"
- let s:magenta = "5"
- let s:violet = "13"
- let s:blue = "4"
- let s:cyan = "6"
- let s:green = "2"
-endif
-"}}}
-" Formatting options and null values for passthrough effect "{{{
-" ---------------------------------------------------------------------
- let s:none = "NONE"
- let s:none = "NONE"
- let s:t_none = "NONE"
- let s:n = "NONE"
- let s:c = ",undercurl"
- let s:r = ",reverse"
- let s:s = ",standout"
- let s:ou = ""
- let s:ob = ""
-"}}}
-" Background value based on termtrans setting "{{{
-" ---------------------------------------------------------------------
-if (has("gui_running") || g:solarized_termtrans == 0)
- let s:back = s:base03
-else
- let s:back = "NONE"
-endif
-"}}}
-" Alternate light scheme "{{{
-" ---------------------------------------------------------------------
-if &background == "light"
- let s:temp03 = s:base03
- let s:temp02 = s:base02
- let s:temp01 = s:base01
- let s:temp00 = s:base00
- let s:base03 = s:base3
- let s:base02 = s:base2
- let s:base01 = s:base1
- let s:base00 = s:base0
- let s:base0 = s:temp00
- let s:base1 = s:temp01
- let s:base2 = s:temp02
- let s:base3 = s:temp03
- if (s:back != "NONE")
- let s:back = s:base03
- endif
-endif
-"}}}
-" Optional contrast schemes "{{{
-" ---------------------------------------------------------------------
-if g:solarized_contrast == "high"
- let s:base01 = s:base00
- let s:base00 = s:base0
- let s:base0 = s:base1
- let s:base1 = s:base2
- let s:base2 = s:base3
- let s:back = s:back
-endif
-if g:solarized_contrast == "low"
- let s:back = s:base02
- let s:ou = ",underline"
-endif
-"}}}
-" Overrides dependent on user specified values"{{{
-" ---------------------------------------------------------------------
-if g:solarized_bold == 1
- let s:b = ",bold"
-else
- let s:b = ""
-endif
-
-if g:solarized_underline == 1
- let s:u = ",underline"
-else
- let s:u = ""
-endif
-
-if g:solarized_italic == 1
- let s:i = ",italic"
-else
- let s:i = ""
-endif
-"}}}
-" Highlighting primitives"{{{
-" ---------------------------------------------------------------------
-
-exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
-exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
-exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
-exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
-exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
-exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
-exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
-exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
-exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
-exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
-exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
-exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
-exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
-exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
-exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
-exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
-exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
-exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
-
-exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
-exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
-exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
-exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
-exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
-exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
-exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
-exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
-exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
-exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
-exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
-exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
-exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
-exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
-exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
-exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
-exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
-exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
-
-exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
-exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
-exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
-exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
-exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
-exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
-exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
-exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
-exe "let s:fmt_ital = ' ".s:vmode."=NONE". " term=NONE". "'"
-exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
-exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
-
-if has("gui_running")
- exe "let s:sp_none = ' guisp=".s:none ."'"
- exe "let s:sp_back = ' guisp=".s:back ."'"
- exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
- exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
- exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
- exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
- exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
- exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
- exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
- exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
- exe "let s:sp_green = ' guisp=".s:green ."'"
- exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
- exe "let s:sp_orange = ' guisp=".s:orange ."'"
- exe "let s:sp_red = ' guisp=".s:red ."'"
- exe "let s:sp_magenta = ' guisp=".s:magenta."'"
- exe "let s:sp_violet = ' guisp=".s:violet ."'"
- exe "let s:sp_blue = ' guisp=".s:blue ."'"
- exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
-else
- let s:sp_none = ""
- let s:sp_back = ""
- let s:sp_base03 = ""
- let s:sp_base02 = ""
- let s:sp_base01 = ""
- let s:sp_base00 = ""
- let s:sp_base0 = ""
- let s:sp_base1 = ""
- let s:sp_base2 = ""
- let s:sp_base3 = ""
- let s:sp_green = ""
- let s:sp_yellow = ""
- let s:sp_orange = ""
- let s:sp_red = ""
- let s:sp_magenta = ""
- let s:sp_violet = ""
- let s:sp_blue = ""
- let s:sp_cyan = ""
-endif
-
-"}}}
-" Basic highlighting"{{{
-" ---------------------------------------------------------------------
-" note that link syntax to avoid duplicate configuration doesn't work with the
-" exe compiled formats
-
-exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
-
-exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
-" *Comment any comment
-
-exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
-" *Constant any constant
-" String a string constant: "this is a string"
-" Character a character constant: 'c', '\n'
-" Number a number constant: 234, 0xff
-" Boolean a boolean constant: TRUE, false
-" Float a floating point constant: 2.3e10
-
-exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
-" *Identifier any variable name
-" Function function name (also: methods for classes)
-"
-exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
-" *Statement any statement
-" Conditional if, then, else, endif, switch, etc.
-" Repeat for, do, while, etc.
-" Label case, default, etc.
-" Operator "sizeof", "+", "*", etc.
-" Keyword any other keyword
-" Exception try, catch, throw
-
-exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
-" *PreProc generic Preprocessor
-" Include preprocessor #include
-" Define preprocessor #define
-" Macro same as Define
-" PreCondit preprocessor #if, #else, #endif, etc.
-
-exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
-" *Type int, long, char, etc.
-" StorageClass static, register, volatile, etc.
-" Structure struct, union, enum, etc.
-" Typedef A typedef
-
-exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
-" *Special any special symbol
-" SpecialChar special character in a constant
-" Tag you can use CTRL-] on this
-" Delimiter character that needs attention
-" SpecialComment special things inside a comment
-" Debug debugging statements
-
-exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
-" *Underlined text that stands out, HTML links
-
-exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
-" *Ignore left blank, hidden |hl-Ignore|
-
-exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
-" *Error any erroneous construct
-
-exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
-" *Todo anything that needs extra attention; mostly the
-" keywords TODO FIXME and XXX
-"
-"}}}
-" Extended highlighting "{{{
-" ---------------------------------------------------------------------
-if (g:solarized_visibility=="high")
- exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
- exe "hi! NonText" .s:fmt_bold .s:fg_base1 .s:bg_none
-elseif (g:solarized_visibility=="low")
- exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
- exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
-else
- exe "hi! SpecialKey" .s:fmt_bold .s:fg_red .s:bg_none
- exe "hi! NonText" .s:fmt_bold .s:fg_base01 .s:bg_none
-endif
-if (has("gui_running")) || &t_Co > 8
- exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base1
- exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base00
- "exe "hi! Visual" .s:fmt_stnd .s:fg_none .s:bg_base02
- exe "hi! Visual" .s:fmt_none .s:fg_base03 .s:bg_base01
-else
- exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base2
- exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base2
- exe "hi! Visual" .s:fmt_none .s:fg_none .s:bg_base2
-endif
-exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
-exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
-exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
-exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02
-exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
-exe "hi! VertSplit" .s:fmt_bold .s:fg_base00 .s:bg_base00
-exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
-exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02
-exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
-exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02
-exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
-exe "hi! FoldColumn" .s:fmt_bold .s:fg_base0 .s:bg_base02
-exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
-exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
-exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
-exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
-exe "hi! SignColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
-exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
-exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
-exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
-exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
-exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
-exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02
-exe "hi! PmenuSel" .s:fmt_none .s:fg_base2 .s:bg_base01
-exe "hi! PmenuSbar" .s:fmt_none .s:fg_base0 .s:bg_base2
-exe "hi! PmenuThumb" .s:fmt_none .s:fg_base03 .s:bg_base0
-exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
-exe "hi! TabLineSel" .s:fmt_undr .s:fg_base2 .s:bg_base01 .s:sp_base0
-exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
-exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
-exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
-exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
-exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
-hi! link lCursor Cursor
-exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
-
-"}}}
-" vim syntax highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
-exe "hi! vimCommentString".s:fg_violet .s:bg_none .s:fmt_none
-hi! link vimVar Identifier
-hi! link vimFunc Function
-hi! link vimUserFunc Function
-exe "hi! vimCommand" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! vimCmdSep" . s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! helpExample" . s:fg_base1 .s:bg_none .s:fmt_none
-hi! link helpSpecial Special
-exe "hi! helpOption" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! helpNote" . s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! helpVim" . s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! helpHyperTextJump" .s:fg_blue .s:bg_none .s:fmt_undr
-exe "hi! helpHyperTextEntry".s:fg_green .s:bg_none .s:fmt_none
-exe "hi! vimIsCommand" . s:fg_base00 .s:bg_none .s:fmt_none
-exe "hi! vimSynMtchOpt" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! vimSynType" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! vimHiLink" . s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! vimHiGroup" . s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! vimGroup" . s:fg_blue .s:bg_none .s:fmt_undb
-"}}}
-" html highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! htmlTag" . s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! htmlEndTag" . s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! htmlTagN" . s:fg_base1 .s:bg_none .s:fmt_bold
-exe "hi! htmlTagName" . s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! htmlSpecialTagName". s:fg_blue .s:bg_none .s:fmt_ital
-exe "hi! htmlArg" . s:fg_base00 .s:bg_none .s:fmt_none
-exe "hi! javaScript" . s:fg_yellow .s:bg_none .s:fmt_none
-"}}}
-" perl highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
-exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
-
-"}}}
-" tex highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
-exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
-exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
-"}}}
-" ruby highlighting "{{{
-" ---------------------------------------------------------------------
-exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
-"rubyInclude
-"rubySharpBang
-"rubyAccess
-"rubyPredefinedVariable
-"rubyBoolean
-"rubyClassVariable
-"rubyBeginEnd
-"rubyRepeatModifier
-"hi! link rubyArrayDelimiter Special " [ , , ]
-"rubyCurlyBlock { , , }
-
-"hi! link rubyClass Keyword
-"hi! link rubyModule Keyword
-"hi! link rubyKeyword Keyword
-"hi! link rubyOperator Operator
-"hi! link rubyIdentifier Identifier
-"hi! link rubyInstanceVariable Identifier
-"hi! link rubyGlobalVariable Identifier
-"hi! link rubyClassVariable Identifier
-"hi! link rubyConstant Type
-"}}}
-" haskell syntax highlighting"{{{
-" ---------------------------------------------------------------------
-" For use with syntax/haskell.vim : Haskell Syntax File
-" http://www.vim.org/scripts/script.php?script_id=3034
-" See also Steffen Siering's github repository:
-" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
-" ---------------------------------------------------------------------
-"
-" Treat True and False specially, see the plugin referenced above
-let hs_highlight_boolean=1
-" highlight delims, see the plugin referenced above
-let hs_highlight_delimiters=1
-
-exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
-
-exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
-
-exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
-exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
-exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
-exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
-hi! link hsImportParams Delimiter
-hi! link hsDelimTypeExport Delimiter
-hi! link hsModuleStartLabel hsStructure
-hi! link hsModuleWhereLabel hsModuleStartLabel
-
-" following is for the haskell-conceal plugin
-" the first two items don't have an impact, but better safe
-exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
-
-"}}}
-" pandoc markdown syntax highlighting "{{{
-" ---------------------------------------------------------------------
-
-"PandocHiLink pandocNormalBlock
-exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
-exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
-hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
-hi! link pandocCodeBlock pandocVerbatimBlock
-hi! link pandocCodeBlockDelim pandocVerbatimBlock
-exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
-exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
-
-" Definitions
-" ---------------------------------------------------------------------
-let s:fg_pdef = s:fg_violet
-exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
-exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
-exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
-exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
-exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
-exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
-exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
-exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
-exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
-exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
-
-" Tables
-" ---------------------------------------------------------------------
-let s:fg_ptable = s:fg_blue
-exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
-exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
-hi! link pandocTableStructureTop pandocTableStructre
-hi! link pandocTableStructureEnd pandocTableStructre
-exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
-exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
-exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
-exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
-exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
-exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
-exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
-exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
-exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
-
-" Headings
-" ---------------------------------------------------------------------
-let s:fg_phead = s:fg_orange
-exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
-exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
-exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
-exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
-
-" Links
-" ---------------------------------------------------------------------
-exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
-exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
-exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
-exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
-exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
-exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
-exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
-exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
-exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
-exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
-exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
-exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
-exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
-
-" Main Styles
-" ---------------------------------------------------------------------
-exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
-exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
-exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
-exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
-exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
-exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
-exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
-
-exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
-exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
-exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
-exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
-hi! link pandocEscapedCharacter pandocEscapePair
-hi! link pandocLineBreak pandocEscapePair
-
-" Embedded Code
-" ---------------------------------------------------------------------
-exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
-exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
-exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
-hi! link pandocMetadataTitle pandocMetadata
-
-"}}}
-" Utility autocommand "{{{
-" ---------------------------------------------------------------------
-" In cases where Solarized is initialized inside a terminal vim session and
-" then transferred to a gui session via the command `:gui`, the gui vim process
-" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
-" related code that sets gui specific values isn't executed.
-"
-" Currently, Solarized sets only the cterm or gui values for the colorscheme
-" depending on gui or terminal mode. It's possible that, if the following
-" autocommand method is deemed excessively poor form, that approach will be
-" used again and the autocommand below will be dropped.
-"
-" However it seems relatively benign in this case to include the autocommand
-" here. It fires only in cases where vim is transferring from terminal to gui
-" mode (detected with the script scope s:vmode variable). It also allows for
-" other potential terminal customizations that might make gui mode suboptimal.
-"
-autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
-"}}}
-" License "{{{
-" ---------------------------------------------------------------------
-"
-" Copyright (c) 2011 Ethan Schoonover
-"
-" 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.
-"
-" vim:foldmethod=marker:foldlevel=0
-"}}}
diff --git a/.vim/swaps/.gitkeep b/.vim/swaps/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/.vim/syntax/json.vim b/.vim/syntax/json.vim
deleted file mode 100644
index 1e7761a7976..00000000000
--- a/.vim/syntax/json.vim
+++ /dev/null
@@ -1,74 +0,0 @@
-" Vim syntax file
-" Language: JSON
-" Maintainer: Jeroen Ruigrok van der Werven
-" Last Change: 2009-06-16
-" Version: 0.4
-" {{{1
-
-" Syntax setup {{{2
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-
-if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
- let main_syntax = 'json'
-endif
-
-" Syntax: Strings {{{2
-syn region jsonString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=jsonEscape
-" Syntax: JSON does not allow strings with single quotes, unlike JavaScript.
-syn region jsonStringSQ start=+'+ skip=+\\\\\|\\"+ end=+'+
-
-" Syntax: Escape sequences {{{3
-syn match jsonEscape "\\["\\/bfnrt]" contained
-syn match jsonEscape "\\u\x\{4}" contained
-
-" Syntax: Strings should always be enclosed with quotes.
-syn match jsonNoQuotes "\<\a\+\>"
-
-" Syntax: Numbers {{{2
-syn match jsonNumber "-\=\<\%(0\|[1-9]\d*\)\%(\.\d\+\)\=\%([eE][-+]\=\d\+\)\=\>"
-
-" Syntax: An integer part of 0 followed by other digits is not allowed.
-syn match jsonNumError "-\=\<0\d\.\d*\>"
-
-" Syntax: Boolean {{{2
-syn keyword jsonBoolean true false
-
-" Syntax: Null {{{2
-syn keyword jsonNull null
-
-" Syntax: Braces {{{2
-syn match jsonBraces "[{}\[\]]"
-
-" Define the default highlighting. {{{1
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_json_syn_inits")
- if version < 508
- let did_json_syn_inits = 1
- command -nargs=+ HiLink hi link
- else
- command -nargs=+ HiLink hi def link
- endif
- HiLink jsonString String
- HiLink jsonEscape Special
- HiLink jsonNumber Number
- HiLink jsonBraces Operator
- HiLink jsonNull Function
- HiLink jsonBoolean Boolean
-
- HiLink jsonNumError Error
- HiLink jsonStringSQ Error
- HiLink jsonNoQuotes Error
- delcommand HiLink
-endif
-
-let b:current_syntax = "json"
-if main_syntax == 'json'
- unlet main_syntax
-endif
diff --git a/.vim/undo/.gitkeep b/.vim/undo/.gitkeep
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/.vimrc b/.vimrc
deleted file mode 100644
index 25cf0d5264b..00000000000
--- a/.vimrc
+++ /dev/null
@@ -1,106 +0,0 @@
-" Use the Solarized Dark theme
-set background=dark
-colorscheme solarized
-let g:solarized_termtrans=1
-
-" Make Vim more useful
-set nocompatible
-" Use the OS clipboard by default (on versions compiled with `+clipboard`)
-set clipboard=unnamed
-" Enhance command-line completion
-set wildmenu
-" Allow cursor keys in insert mode
-set esckeys
-" Allow backspace in insert mode
-set backspace=indent,eol,start
-" Optimize for fast terminal connections
-set ttyfast
-" Add the g flag to search/replace by default
-set gdefault
-" Use UTF-8 without BOM
-set encoding=utf-8 nobomb
-" Change mapleader
-let mapleader=","
-" Don’t add empty newlines at the end of files
-set binary
-set noeol
-" Centralize backups, swapfiles and undo history
-set backupdir=~/.vim/backups
-set directory=~/.vim/swaps
-if exists("&undodir")
- set undodir=~/.vim/undo
-endif
-
-" Don’t create backups when editing files in certain directories
-set backupskip=/tmp/*,/private/tmp/*
-
-" Respect modeline in files
-set modeline
-set modelines=4
-" Enable per-directory .vimrc files and disable unsafe commands in them
-set exrc
-set secure
-" Enable line numbers
-set number
-" Enable syntax highlighting
-syntax on
-" Highlight current line
-set cursorline
-" Make tabs as wide as two spaces
-set tabstop=2
-" Show “invisible” characters
-set lcs=tab:▸\ ,trail:·,eol:¬,nbsp:_
-set list
-" Highlight searches
-set hlsearch
-" Ignore case of searches
-set ignorecase
-" Highlight dynamically as pattern is typed
-set incsearch
-" Always show status line
-set laststatus=2
-" Enable mouse in all modes
-set mouse=a
-" Disable error bells
-set noerrorbells
-" Don’t reset cursor to start of line when moving around.
-set nostartofline
-" Show the cursor position
-set ruler
-" Don’t show the intro message when starting Vim
-set shortmess=atI
-" Show the current mode
-set showmode
-" Show the filename in the window titlebar
-set title
-" Show the (partial) command as it’s being typed
-set showcmd
-" Use relative line numbers
-if exists("&relativenumber")
- set relativenumber
- au BufReadPost * set relativenumber
-endif
-" Start scrolling three lines before the horizontal window border
-set scrolloff=3
-
-" Strip trailing whitespace (,ss)
-function! StripWhitespace()
- let save_cursor = getpos(".")
- let old_query = getreg('/')
- :%s/\s\+$//e
- call setpos('.', save_cursor)
- call setreg('/', old_query)
-endfunction
-noremap ss :call StripWhitespace()
-" Save a file as root (,W)
-noremap W :w !sudo tee % > /dev/null
-
-" Automatic commands
-if has("autocmd")
- " Enable file type detection
- filetype on
- " Treat .json files as .js
- autocmd BufNewFile,BufRead *.json setfiletype json syntax=javascript
- " Treat .md files as Markdown
- autocmd BufNewFile,BufRead *.md setlocal filetype=markdown
-endif
diff --git a/.vscode/keybindings.json b/.vscode/keybindings.json
new file mode 100644
index 00000000000..c37a3389089
--- /dev/null
+++ b/.vscode/keybindings.json
@@ -0,0 +1,41 @@
+// Place your key bindings in this file to overwrite the defaults
+[
+ {
+ "key": "cmd+]",
+ "command": "workbench.action.terminal.focusNextPane",
+ "when": "terminalFocus"
+ },
+ {
+ "key": "alt+cmd+right",
+ "command": "-workbench.action.terminal.focusNextPane",
+ "when": "terminalFocus"
+ },
+ {
+ "key": "cmd+[",
+ "command": "workbench.action.terminal.focusPreviousPane",
+ "when": "terminalFocus"
+ },
+ {
+ "key": "alt+cmd+up",
+ "command": "-workbench.action.terminal.focusPreviousPane",
+ "when": "terminalFocus"
+ },
+ {
+ "key": "cmd+k cmd+z",
+ "command": "workbench.action.toggleZenMode"
+ },
+ {
+ "key": "cmd+k z",
+ "command": "-workbench.action.toggleZenMode"
+ },
+ {
+ "key": "cmd+d",
+ "command": "workbench.action.terminal.split",
+ "when": "terminalFocus"
+ },
+ {
+ "key": "cmd+w",
+ "command": "workbench.action.terminal.kill",
+ "when": "terminalFocus"
+ },
+]
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000000..9ea8784abfb
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,133 @@
+// Place your settings in this file to overwrite the default settings
+{
+ "window.newWindowDimensions": "maximized",
+ "window.nativeTabs": false,
+ "window.title": "${dirty} ${activeEditorMedium}${separator}${rootName}",
+ "workbench.editor.labelFormat": "short",
+ "workbench.editor.revealIfOpen": true,
+ "workbench.startupEditor": "newUntitledFile",
+ "workbench.editor.enablePreviewFromQuickOpen": false,
+ "workbench.editor.highlightModifiedTabs": true,
+ "workbench.settings.enableNaturalLanguageSearch": false,
+ "workbench.iconTheme": "material-icon-theme",
+ "editor.bracketPairColorization.enabled": true,
+ "editor.guides.bracketPairs": true,
+ "editor.tokenColorCustomizations": {
+ "[Abyss]": {
+ "comments": "#225588",
+ "keywords": "#2d6fb1"
+ }
+ },
+ "editor.fontFamily": "Fira Code",
+ "editor.fontSize": 13,
+ "editor.tabSize": 2,
+ "editor.glyphMargin": true,
+ "editor.scrollBeyondLastLine": true,
+ "editor.mouseWheelZoom": false,
+ "editor.cursorStyle": "line",
+ "editor.renderWhitespace": "all",
+ "editor.minimap.enabled": false,
+ "editor.minimap.renderCharacters": false,
+ "editor.minimap.maxColumn": 200,
+ "editor.minimap.showSlider": "always",
+ "editor.wordWrap": "off",
+ "editor.fontLigatures": true,
+ "editor.renderControlCharacters": true,
+ "editor.autoIndent": "none",
+ "editor.snippetSuggestions": "top",
+ "editor.insertSpaces": true,
+ "editor.codeActionsOnSave": {
+ "source.organizeImports": "never",
+ "source.fixAll": "explicit"
+ },
+ "editor.smoothScrolling": true,
+ "editor.cursorBlinking": "phase",
+ "editor.cursorSmoothCaretAnimation": "off",
+ "terminal.integrated.confirmOnExit": "hasChildProcesses",
+ "terminal.integrated.fontFamily": "Fira Code",
+ "terminal.integrated.fontSize": 13,
+ "telemetry.telemetryLevel": "off",
+ "explorer.confirmDragAndDrop": false,
+ "files.insertFinalNewline": true,
+ "diffEditor.ignoreTrimWhitespace": false,
+ "debug.inlineValues": true,
+ "debug.toolBarLocation": "docked",
+ "extensions.autoUpdate": true,
+ "git.promptToSaveFilesBeforeCommit": "staged",
+ "git.closeDiffOnOperation": true,
+ "search.showLineNumbers": true,
+ "typescript.updateImportsOnFileMove.enabled": "always",
+ "redhat.telemetry.enabled": false,
+ //-------- Language configuration --------
+ "[json]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[jsonc]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[javascript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[typescript]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[typescriptreact]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[html]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ "[markdown]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
+ },
+ //-------- Files configuration --------
+ "files.trimTrailingWhitespace": true,
+ //-------- Prettier configuration --------
+ "prettier.requireConfig": true,
+ //-------- Markdownlint configuration --------
+ "markdownlint.config": {
+ "MD007": false
+ },
+ //-------- GitLens configuration --------
+ "gitlens.advanced.messages": {
+ "suppressCommitHasNoPreviousCommitWarning": false,
+ "suppressCommitNotFoundWarning": false,
+ "suppressFileNotUnderSourceControlWarning": false,
+ "suppressGitVersionWarning": false,
+ "suppressLineUncommittedWarning": false,
+ "suppressNoRepositoryWarning": false
+ },
+ //-------- CodeSpell configuration --------
+ "cSpell.allowCompoundWords": true,
+
+ //------- MARQETA --------
+
+ "github-enterprise.uri": "https://github.marqeta.com",
+ "chat.agent.enabled": true,
+ "terminal.integrated.env.osx": {
+ "Q_NEW_SESSION": "1"
+ },
+ "[dockercompose]": {
+ "editor.insertSpaces": true,
+ "editor.tabSize": 2,
+ "editor.autoIndent": "advanced",
+ "editor.quickSuggestions": {
+ "other": true,
+ "comments": false,
+ "strings": true
+ },
+ "editor.defaultFormatter": "redhat.vscode-yaml"
+ },
+ "[github-actions-workflow]": {
+ "editor.defaultFormatter": "redhat.vscode-yaml"
+ },
+ "amazonQ.telemetry": false,
+ "amazonQ.suppressPrompts": {
+ "amazonQChatDisclaimer": true,
+ "amazonQChatPairProgramming": true,
+ "amazonQSessionConfigurationMessage": true
+ },
+ "chat.disableAIFeatures": true,
+ "editor.accessibilitySupport": "off",
+ "eslint.lintTask.enable": true
+}
diff --git a/.wgetrc b/.wgetrc
deleted file mode 100644
index eb531a17211..00000000000
--- a/.wgetrc
+++ /dev/null
@@ -1,38 +0,0 @@
-# Use the server-provided last modification date, if available
-timestamping = on
-
-# Do not go up in the directory structure when downloading recursively
-no_parent = on
-
-# Wait 60 seconds before timing out. This applies to all timeouts: DNS, connect and read. (The default read timeout is 15 minutes!)
-timeout = 60
-
-# Retry a few times when a download fails, but don’t overdo it. (The default is 20!)
-tries = 3
-
-# Retry even when the connection was refused
-retry_connrefused = on
-
-# Use the last component of a redirection URL for the local file name
-trust_server_names = on
-
-# Follow FTP links from HTML documents by default
-follow_ftp = on
-
-# Add a `.html` extension to `text/html` or `application/xhtml+xml` files that lack one, or a `.css` extension to `text/css` files that lack one
-adjust_extension = on
-
-# Use UTF-8 as the default system encoding
-# Disabled as it makes `wget` builds that don’t support this feature unusable.
-# Does anyone know how to conditionally configure a wget setting?
-# http://unix.stackexchange.com/q/34730/6040
-#local_encoding = UTF-8
-
-# Ignore `robots.txt` and ``
-robots = off
-
-# Print the HTTP and FTP server responses
-server_response = on
-
-# Disguise as IE 9 on Windows 7
-user_agent = Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
diff --git a/Brewfile b/Brewfile
new file mode 100644
index 00000000000..04145fdb050
--- /dev/null
+++ b/Brewfile
@@ -0,0 +1,47 @@
+# Brewfile - Modernized Setup for ibarsi
+
+# Taps
+tap "homebrew/bundle"
+tap "homebrew/cask-versions"
+
+# CLI Tools (Core)
+brew "coreutils"
+brew "moreutils"
+brew "findutils"
+brew "gnu-sed"
+brew "wget"
+brew "vim"
+brew "grep"
+brew "openssh"
+brew "ack"
+brew "tree"
+brew "gnupg"
+brew "git"
+brew "git-lfs"
+brew "gh"
+brew "commitizen"
+
+# Modern CLI Enhancements
+brew "fzf" # Fuzzy finder
+brew "zoxide" # Better 'cd'
+brew "bat" # Better 'cat'
+brew "eza" # Better 'ls'
+brew "mise" # Universal version manager
+brew "starship" # Fast, minimal shell prompt
+brew "speedtest-cli"
+brew "gh-dash" # GitHub CLI dashboard extension
+
+# Casks (Apps)
+cask "ghostty" # GPU-accelerated terminal (replaces iTerm2)
+cask "codex" # OpenAI Codex CLI
+cask "brave-browser"
+cask "google-chrome"
+cask "zed"
+cask "slack"
+cask "spotify"
+cask "postman"
+cask "rectangle" # Window manager
+cask "signal"
+cask "docker"
+cask "raycast" # Productivity launcher
+cask "font-fira-code-nerd-font" # Nerd font for icons (eza/starship)
diff --git a/LICENSE-MIT.txt b/LICENSE-MIT.txt
deleted file mode 100644
index a41e0a7ef97..00000000000
--- a/LICENSE-MIT.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright Mathias Bynens
-
-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.
diff --git a/README.md b/README.md
index 7d6299483d8..f87239cc6a3 100644
--- a/README.md
+++ b/README.md
@@ -1,112 +1,125 @@
-# Mathias’s dotfiles
+# Igor's `dotfiles`
-
+A modern, topic-based dotfile configuration for macOS. Optimized for Apple Silicon and productivity.
## Installation
-**Warning:** If you want to give these dotfiles a try, you should first fork this repository, review the code, and remove things you don’t want or need. Don’t blindly use my settings unless you know what that entails. Use at your own risk!
-
-### Using Git and the bootstrap script
-
-You can clone the repository wherever you want. (I like to keep it in `~/Projects/dotfiles`, with `~/dotfiles` as a symlink.) The bootstrapper script will pull in the latest version and copy the files to your home folder.
-
```bash
-git clone https://github.com/mathiasbynens/dotfiles.git && cd dotfiles && source bootstrap.sh
+git clone https://github.com/ibarsi/dotfiles.git ~/dotfiles
+cd ~/dotfiles
+./bootstrap.sh
```
-To update, `cd` into your local `dotfiles` repository and then:
+## Structure
-```bash
-source bootstrap.sh
-```
-
-Alternatively, to update while avoiding the confirmation prompt:
+The repository is organized into **topics**, making it easy to modularize your configuration:
-```bash
-set -- -f; source bootstrap.sh
-```
+- `git/`: Git configuration and aliases.
+- `macos/`: macOS system defaults and UI/UX settings.
+- `system/`: Global environment variables, paths, and generic aliases.
+- `vim/`: Vim configuration.
+- `ghostty/`: Ghostty terminal configuration (symlinked to `~/.config/ghostty/`).
+- `zed/`: Zed editor settings and keybindings (symlinked to `~/.config/zed/`).
+- `codex/`: Codex CLI configuration (symlinked to `~/.codex/`).
+- `zsh/`: Zsh configuration, plugins, and modular initialization.
-### Git-free install
+## Features
-To install these dotfiles without Git:
+- **Topic-based organization**: Modular and easy to maintain.
+- **Modern CLI tools**: Integrated with `eza`, `bat`, `fzf`, `zoxide`, and `starship`.
+- **Zsh Power-ups**: Syntax highlighting and autosuggestions out of the box.
+- **Auto-update**: Automatically checks for updates to your dotfiles once a day.
+- **Mise integration**: Blazing fast management for Node, Ruby, Python, and more.
+- **Advanced Git**: Includes `gh-dash` and powerful log visualization.
+- **Ghostty terminal**: GPU-accelerated terminal with Catppuccin theme, Fira Code font, and custom keybindings — fully configured as dotfiles.
+- **Zed editor**: Primary editor with Catppuccin theme, Fira Code font, Prettier formatting, and custom keybindings — all managed as dotfiles.
+- **Codex CLI workflow**: Safe-by-default Codex config, shell shortcuts, and completion for day-to-day AI coding.
-```bash
-cd; curl -#L https://github.com/mathiasbynens/dotfiles/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,bootstrap.sh,.osx,LICENSE-MIT.txt}
-```
+## Ghostty Terminal
-To update later on, just run that command again.
+[Ghostty](https://ghostty.org) is configured as the primary terminal. Config lives in `ghostty/` and is symlinked to `~/.config/ghostty/` by `bootstrap.sh`.
-### Specify the `$PATH`
+| File | Destination | Purpose |
+|------|-------------|---------|
+| `ghostty/config` | `~/.config/ghostty/config` | Terminal settings, theme, keybindings |
-If `~/.path` exists, it will be sourced along with the other files, before any feature testing (such as [detecting which version of `ls` is being used](https://github.com/mathiasbynens/dotfiles/blob/aff769fd75225d8f2e481185a71d5e05b76002dc/.aliases#L21-26)) takes place.
+**Key settings:**
+- **Theme**: Catppuccin Mocha (dark) / Catppuccin Latte (light), follows system appearance — built-in to Ghostty, no extra install needed
+- **Font**: Fira Code 13px with ligatures (`calt`, `liga`)
+- **Cursor**: Blinking bar (ported from iTerm2)
+- **Shell integration**: Auto-detected — enables semantic zones, prompt detection, sudo passthrough
+- **Privacy**: Crash reporting disabled
-Here’s an example `~/.path` file that adds `/usr/local/bin` to the `$PATH`:
+**Keybindings (ported from iTerm2 / VS Code terminal):**
-```bash
-export PATH="/usr/local/bin:$PATH"
-```
+| Shortcut | Action |
+|----------|--------|
+| `cmd+]` / `cmd+[` | Next / previous tab |
+| `cmd+d` | Split pane right |
+| `cmd+w` | Close pane / tab |
+| `cmd+k cmd+z` | Toggle fullscreen (zen mode) |
+| `cmd+=` / `cmd+-` | Increase / decrease font size |
+| `cmd+0` | Reset font size |
-### Add custom commands without creating a new fork
+> **Note:** `theme/iterm2-catppuccin.json` is preserved in the repo for historical reference but is no longer used.
-If `~/.extra` exists, it will be sourced along with the other files. You can use this to add a few custom commands without the need to fork this entire repository, or to add commands you don’t want to commit to a public repository.
+## Codex CLI Workflow
-My `~/.extra` looks something like this:
+[Codex CLI](https://developers.openai.com/codex/cli/) is configured for a secure, fast terminal-first AI coding flow.
-```bash
-# Git credentials
-# Not in the repository, to prevent people from accidentally committing under my name
-GIT_AUTHOR_NAME="Mathias Bynens"
-GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
-git config --global user.name "$GIT_AUTHOR_NAME"
-GIT_AUTHOR_EMAIL="mathias@mailinator.com"
-GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
-git config --global user.email "$GIT_AUTHOR_EMAIL"
-```
+| File | Destination | Purpose |
+|------|-------------|---------|
+| `codex/config.toml` | `~/.codex/config.toml` | Default model, approvals/sandbox, search mode, feature toggles |
-You could also use `~/.extra` to override settings, functions and aliases from my dotfiles repository. It’s probably better to [fork this repository](https://github.com/mathiasbynens/dotfiles/fork) instead, though.
-
-### Sensible macOS defaults
-
-When setting up a new Mac, you may want to set some sensible macOS defaults:
-
-```bash
-./.macos
-```
-
-### Install Homebrew formulae
-
-When setting up a new Mac, you may want to install some common [Homebrew](http://brew.sh/) formulae (after installing Homebrew, of course):
+**Install Codex CLI:**
```bash
-./brew.sh
+brew install --cask codex
+npm i -g @openai/codex # cross-platform alternative
```
-Some of the functionality of these dotfiles depends on formulae installed by `brew.sh`. If you don’t plan to run `brew.sh`, you should look carefully through the script and manually install any particularly important ones. A good example is Bash/Git completion: the dotfiles use a special version from Homebrew.
-
-## Feedback
-
-Suggestions/improvements
-[welcome](https://github.com/mathiasbynens/dotfiles/issues)!
-
-## Author
-
-| [](http://twitter.com/mathias "Follow @mathias on Twitter") |
-|---|
-| [Mathias Bynens](https://mathiasbynens.be/) |
-
-## Thanks to…
-
-* @ptb and [his _OS X Lion Setup_ repository](https://github.com/ptb/Mac-OS-X-Lion-Setup)
-* [Ben Alman](http://benalman.com/) and his [dotfiles repository](https://github.com/cowboy/dotfiles)
-* [Chris Gerke](http://www.randomsquared.com/) and his [tutorial on creating an OS X SOE master image](http://chris-gerke.blogspot.com/2012/04/mac-osx-soe-master-image-day-7.html) + [_Insta_ repository](https://github.com/cgerke/Insta)
-* [Cătălin Mariș](https://github.com/alrra) and his [dotfiles repository](https://github.com/alrra/dotfiles)
-* [Gianni Chiappetta](http://gf3.ca/) for sharing his [amazing collection of dotfiles](https://github.com/gf3/dotfiles)
-* [Jan Moesen](http://jan.moesen.nu/) and his [ancient `.bash_profile`](https://gist.github.com/1156154) + [shiny _tilde_ repository](https://github.com/janmoesen/tilde)
-* [Lauri ‘Lri’ Ranta](http://lri.me/) for sharing [loads of hidden preferences](http://osxnotes.net/defaults.html)
-* [Matijs Brinkhuis](http://hotfusion.nl/) and his [dotfiles repository](https://github.com/matijs/dotfiles)
-* [Nicolas Gallagher](http://nicolasgallagher.com/) and his [dotfiles repository](https://github.com/necolas/dotfiles)
-* [Sindre Sorhus](http://sindresorhus.com/)
-* [Tom Ryder](https://sanctum.geek.nz/) and his [dotfiles repository](https://sanctum.geek.nz/cgit/dotfiles.git/about)
-* [Kevin Suttle](http://kevinsuttle.com/) and his [dotfiles repository](https://github.com/kevinSuttle/dotfiles) and [OSXDefaults project](https://github.com/kevinSuttle/OSXDefaults), which aims to provide better documentation for [`~/.macos`](https://mths.be/macos)
-* [Haralan Dobrev](http://hkdobrev.com/)
-* anyone who [contributed a patch](https://github.com/mathiasbynens/dotfiles/contributors) or [made a helpful suggestion](https://github.com/mathiasbynens/dotfiles/issues)
+**Key defaults in this repo:**
+- `model = "gpt-5.3-codex"`
+- `approval_policy = "on-request"`
+- `sandbox_mode = "workspace-write"`
+- `web_search = "cached"` (safer default than live web)
+- `/review` uses `review_model = "gpt-5.3-codex"`
+
+**Enabled quality-of-life features:**
+- `shell_snapshot` (faster repeated command runs)
+- `unified_exec` (improved command execution path)
+- `undo` (safer edit iteration)
+
+**Zsh shortcuts:**
+- `cx` → `codex`
+- `cxe` → `codex exec`
+- `cxr` → `codex resume --last`
+- `cxreview` → start Codex with `/review`
+- `cxup` → upgrade Codex CLI (uses Homebrew cask when Codex was installed with brew; otherwise npm)
+
+> Security note: This setup intentionally avoids `danger-full-access` / `--yolo` defaults.
+
+## Zed Editor
+
+[Zed](https://zed.dev) is configured as the primary editor. Config files live in `zed/` and are symlinked to `~/.config/zed/` by `bootstrap.sh`.
+
+| File | Destination | Purpose |
+|------|-------------|---------|
+| `zed/settings.json` | `~/.config/zed/settings.json` | Editor settings, theme, formatting |
+| `zed/keymap.json` | `~/.config/zed/keymap.json` | Custom keybindings |
+
+**Key settings:**
+- **Theme**: Catppuccin Mocha (dark) / Catppuccin Latte (light), follows system appearance
+- **Font**: Fira Code 13px with ligatures
+- **Formatting**: Prettier on save for JS/TS/TSX/JSON/HTML/Markdown
+- **Extensions**: Auto-installed on first launch (Catppuccin, Prettier, ESLint, Dockerfile, etc.)
+- **Telemetry**: Disabled
+
+**Keybindings (ported from VS Code):**
+
+| Shortcut | Action |
+|----------|--------|
+| `cmd+]` / `cmd+[` | Next / previous terminal pane |
+| `cmd+d` | New terminal |
+| `cmd+w` | Close active item |
+| `cmd+k cmd+z` | Toggle centered layout (zen mode) |
diff --git a/bin/subl b/bin/subl
deleted file mode 120000
index 0170a200254..00000000000
--- a/bin/subl
+++ /dev/null
@@ -1 +0,0 @@
-/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl
\ No newline at end of file
diff --git a/bootstrap.sh b/bootstrap.sh
index 6844b84a624..9bd7cf74d0f 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -1,27 +1,73 @@
#!/usr/bin/env bash
-cd "$(dirname "${BASH_SOURCE}")";
-
-git pull origin master;
-
-function doIt() {
- rsync --exclude ".git/" \
- --exclude ".DS_Store" \
- --exclude ".osx" \
- --exclude "bootstrap.sh" \
- --exclude "README.md" \
- --exclude "LICENSE-MIT.txt" \
- -avh --no-perms . ~;
- source ~/.bash_profile;
-}
-
-if [ "$1" == "--force" -o "$1" == "-f" ]; then
- doIt;
+# bootstrap.sh - Topic-based setup for ibarsi
+
+DOTFILES_ROOT=$(pwd -P)
+
+# 1. Install Homebrew if not present
+if ! command -v brew >/dev/null; then
+ echo "Installing Homebrew..."
+ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+
+ if [[ $(uname -m) == "arm64" ]]; then
+ eval "$(/opt/homebrew/bin/brew shellenv)"
+ else
+ eval "$(/usr/local/bin/brew shellenv)"
+ fi
+fi
+
+# 2. Install all tools and apps from Brewfile
+echo "Syncing tools from Brewfile..."
+brew bundle
+
+# 3. Create symlinks
+# We use a simple loop to find files we want to link to $HOME
+echo "Creating symlinks..."
+
+# Zsh
+ln -sf "$DOTFILES_ROOT/zsh/.zshrc" "$HOME/.zshrc"
+
+# Git
+ln -sf "$DOTFILES_ROOT/git/.gitconfig" "$HOME/.gitconfig"
+ln -sf "$DOTFILES_ROOT/git/.gitignore" "$HOME/.gitignore"
+ln -sf "$DOTFILES_ROOT/git/.gitattributes" "$HOME/.gitattributes"
+
+# System
+ln -sf "$DOTFILES_ROOT/system/.editorconfig" "$HOME/.editorconfig"
+ln -sf "$DOTFILES_ROOT/system/.curlrc" "$HOME/.curlrc"
+
+# Vim
+ln -sf "$DOTFILES_ROOT/vim/.vimrc" "$HOME/.vimrc"
+
+# Zed
+mkdir -p "$HOME/.config/zed"
+ln -sf "$DOTFILES_ROOT/zed/settings.json" "$HOME/.config/zed/settings.json"
+ln -sf "$DOTFILES_ROOT/zed/keymap.json" "$HOME/.config/zed/keymap.json"
+
+# Ghostty
+mkdir -p "$HOME/.config/ghostty"
+ln -sf "$DOTFILES_ROOT/ghostty/config" "$HOME/.config/ghostty/config"
+
+# Codex CLI
+mkdir -p "$HOME/.codex"
+ln -sf "$DOTFILES_ROOT/codex/config.toml" "$HOME/.codex/config.toml"
+
+# 4. Install Catppuccin theme
+if [ -f "$DOTFILES_ROOT/theme/install.sh" ]; then
+ echo "Installing Catppuccin theme..."
+ bash "$DOTFILES_ROOT/theme/install.sh"
else
- read -p "This may overwrite existing files in your home directory. Are you sure? (y/n) " -n 1;
- echo "";
- if [[ $REPLY =~ ^[Yy]$ ]]; then
- doIt;
- fi;
-fi;
-unset doIt;
+ echo "Theme install script not found, skipping..."
+fi
+
+# 5. Set Zsh as default shell
+if [ "$SHELL" != "$(which zsh)" ]; then
+ echo "Setting Zsh as default shell..."
+ chsh -s "$(which zsh)"
+fi
+
+# 6. Apply macOS defaults
+echo "Applying macOS defaults (requires sudo)..."
+./macos/.macos
+
+echo "Setup complete! Restart your terminal to see changes."
diff --git a/brew.sh b/brew.sh
deleted file mode 100755
index df7935ee82b..00000000000
--- a/brew.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env bash
-
-# Install command-line tools using Homebrew.
-
-# Make sure we’re using the latest Homebrew.
-brew update
-
-# Upgrade any already-installed formulae.
-brew upgrade
-
-# Install GNU core utilities (those that come with macOS are outdated).
-# Don’t forget to add `$(brew --prefix coreutils)/libexec/gnubin` to `$PATH`.
-brew install coreutils
-
-# Install some other useful utilities like `sponge`.
-brew install moreutils
-# Install GNU `find`, `locate`, `updatedb`, and `xargs`, `g`-prefixed.
-brew install findutils
-# Install GNU `sed`, overwriting the built-in `sed`.
-brew install gnu-sed --with-default-names
-# Install Bash 4.
-# Note: don’t forget to add `/usr/local/bin/bash` to `/etc/shells` before
-# running `chsh`.
-brew install bash
-brew install bash-completion2
-
-# Switch to using brew-installed bash as default shell
-if ! fgrep -q '/usr/local/bin/bash' /etc/shells; then
- echo '/usr/local/bin/bash' | sudo tee -a /etc/shells;
- chsh -s /usr/local/bin/bash;
-fi;
-
-# Install `wget` with IRI support.
-brew install wget --with-iri
-
-# Install GnuPG to enable PGP-signing commits.
-brew install gnupg
-
-# Install more recent versions of some macOS tools.
-brew install vim --with-override-system-vi
-brew install grep
-brew install openssh
-brew install screen
-brew install homebrew/php/php56 --with-gmp
-
-# Install font tools.
-brew tap bramstein/webfonttools
-brew install sfnt2woff
-brew install sfnt2woff-zopfli
-brew install woff2
-
-# Install some CTF tools; see https://github.com/ctfs/write-ups.
-brew install aircrack-ng
-brew install bfg
-brew install binutils
-brew install binwalk
-brew install cifer
-brew install dex2jar
-brew install dns2tcp
-brew install fcrackzip
-brew install foremost
-brew install hashpump
-brew install hydra
-brew install john
-brew install knock
-brew install netpbm
-brew install nmap
-brew install pngcheck
-brew install socat
-brew install sqlmap
-brew install tcpflow
-brew install tcpreplay
-brew install tcptrace
-brew install ucspi-tcp # `tcpserver` etc.
-brew install xpdf
-brew install xz
-
-# Install other useful binaries.
-brew install ack
-#brew install exiv2
-brew install git
-brew install git-lfs
-brew install imagemagick --with-webp
-brew install lua
-brew install lynx
-brew install p7zip
-brew install pigz
-brew install pv
-brew install rename
-brew install ssh-copy-id
-brew install tree
-brew install vbindiff
-brew install zopfli
-
-# Remove outdated versions from the cellar.
-brew cleanup
diff --git a/codex/config.toml b/codex/config.toml
new file mode 100644
index 00000000000..de1c5dc91f5
--- /dev/null
+++ b/codex/config.toml
@@ -0,0 +1,35 @@
+# Codex CLI defaults
+# Symlinked to ~/.codex/config.toml by bootstrap.sh
+# Docs: https://developers.openai.com/codex/config-basic
+
+# Keep a coding-focused default model.
+model = "gpt-5.3-codex"
+
+# Safe-by-default execution posture:
+# - approval_policy="on-request": prompt before running commands outside the sandbox or with elevated risk.
+# - sandbox_mode="workspace-write": allow edits only in the workspace; block writes elsewhere by default.
+approval_policy = "on-request"
+sandbox_mode = "workspace-write"
+
+# Use only cached/indexed web search snippets by default (no direct page fetches).
+# This reduces prompt-injection risk from arbitrary live web content.
+web_search = "cached"
+
+# Keep responses direct for terminal workflows.
+personality = "pragmatic"
+
+# Increase reasoning depth for non-trivial coding tasks.
+model_reasoning_effort = "high"
+
+# Used when running `codex /review` (PR/diff review mode).
+# Normal coding/chat requests continue using `model` above.
+review_model = "gpt-5.3-codex"
+
+# Experimental features that are useful for daily coding workflows.
+[features]
+# Include a lightweight shell state snapshot with command/tool context when useful.
+shell_snapshot = true
+# Route shell operations through the unified exec path for more consistent behavior.
+unified_exec = true
+# Enable local undo support for reversible edit operations in the CLI.
+undo = true
diff --git a/ghostty/config b/ghostty/config
new file mode 100644
index 00000000000..117f723dd6c
--- /dev/null
+++ b/ghostty/config
@@ -0,0 +1,87 @@
+# Ghostty Configuration
+# Symlinked to ~/.config/ghostty/config by bootstrap.sh
+
+# =============================================================================
+# Appearance
+# =============================================================================
+
+# Catppuccin Mocha (dark) / Latte (light) — both built-in to Ghostty
+theme = dark:Catppuccin Mocha,light:Catppuccin Latte
+
+# Font — Fira Code with ligatures
+font-family = Fira Code
+font-size = 13
+font-feature = calt
+font-feature = liga
+
+# Window
+window-decoration = true
+window-padding-x = 8
+window-padding-y = 8
+window-padding-balance = true
+
+# Cursor
+cursor-style = bar
+cursor-style-blink = true
+
+# =============================================================================
+# Behavior
+# =============================================================================
+
+# Keep native macOS title bar
+macos-titlebar-style = native
+
+# Option key as Alt (useful for shell shortcuts)
+macos-option-as-alt = left
+
+# Confirm before closing a window with running processes
+confirm-close-surface = true
+
+# Undo close timeout
+undo-timeout = 10s
+
+# Shell integration (enables features like semantic zones, prompt detection)
+shell-integration = detect
+shell-integration-features = cursor,sudo,title
+
+# =============================================================================
+# Tabs & Splits
+# =============================================================================
+
+tab-overview = false
+window-new-tab-position = end
+
+# =============================================================================
+# Keybindings
+# =============================================================================
+
+# Navigate tabs (mirrors former iTerm2 / VS Code terminal bindings)
+keybind = cmd+right_bracket=next_tab
+keybind = cmd+left_bracket=previous_tab
+
+# Split pane (replaces cmd+d in VS Code terminal)
+keybind = cmd+d=new_split:right
+
+# Close pane / tab
+keybind = cmd+w=close_surface
+
+# Zen / distraction-free (toggle fullscreen)
+keybind = cmd+k>cmd+z=toggle_fullscreen
+
+# Quick font size adjustments
+keybind = cmd+equal=increase_font_size:1
+keybind = cmd+minus=decrease_font_size:1
+keybind = cmd+zero=reset_font_size
+
+# =============================================================================
+# Performance & Privacy
+# =============================================================================
+
+# Disable telemetry / crash reporting
+crash-report = false
+
+# Scrollback lines
+scrollback-limit = 10000
+
+# Copy on select (like iTerm2 default)
+copy-on-select = clipboard
diff --git a/git/.gitattributes b/git/.gitattributes
new file mode 100644
index 00000000000..e3f66c8a31f
--- /dev/null
+++ b/git/.gitattributes
@@ -0,0 +1,5 @@
+# Binaries
+*.bin binary
+*.dll binary
+*.zip binary
+*.psd binary
diff --git a/git/.gitconfig b/git/.gitconfig
new file mode 100644
index 00000000000..d0fb46b41d0
--- /dev/null
+++ b/git/.gitconfig
@@ -0,0 +1,229 @@
+[user]
+ name = Igor Barsi
+ email = ibarsi92@gmail.com
+
+[alias]
+
+ # Shorthand for checkout
+ co = "checkout"
+
+ # Shorthand for merge
+ m = "merge"
+
+ # View abbreviated SHA, description, and history graph of the latest 20 commits
+ l = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
+
+ # View abbreviated SHAs between two branches, excluding cherry picks
+ lcp = l --no-merges --cherry-pick --right-only
+
+ # View the current working tree status using the short format
+ s = status -s
+
+ # Show the diff between the latest commit and the current state
+ d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
+
+ # Show the diff between the state `$number` revisions ago and the current state
+ di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"
+
+ # Show the diff of all changes in the current branch.
+ db = !"f() { git diff $(git merge-base $1 HEAD); }; f"
+
+ # Pull in remote changes for the current repository and all its submodules
+ p = !"git pull; git submodule foreach git pull origin master"
+
+ # Clone a repository including all submodules
+ c = clone --recursive
+
+ # Print current branch name
+ b = "!git rev-parse --abbrev-ref HEAD"
+
+ # Fetch origin
+ fo = "!git fetch origin"
+
+ # Fetch upstream
+ fu = "!git fetch upstream"
+
+ # Commit all changes
+ ca = !git add -A && git commit -av
+
+ # Switch to a branch, creating it if necessary
+ go = "!f() { git checkout -b \"$1\" 2> /dev/null || git checkout \"$1\"; }; f"
+
+ # Undo last local commit
+ undo-commit = reset --soft HEAD^
+
+ # Show verbose output about tags, branches or remotes
+ tags = tag -l
+ branches = branch -a
+ remotes = remote -v
+
+ # Amend the currently staged files to the latest commit
+ amend = commit --amend --reuse-message=HEAD
+
+ # Credit an author on the latest commit
+ credit = "!f() { git commit --amend --author \"$1 <$2>\" -C HEAD; }; f"
+
+ # Interactive rebase with the given number of latest commits
+ reb = "!r() { git rebase -i HEAD~$1; }; r"
+
+ # Fetch and rebase current branch with origin's master
+ oreb = "!f() { git rebase origin/${1:-$(git symbolic-ref --short HEAD)}; }; f"
+
+ # Fetch and rebase current branch with upstream's master
+ ureb = "!f() { git rebase upstream/${1:-$(git symbolic-ref --short HEAD)}; }; f"
+
+ # Interactively rebase changes in current branch against another branch used as the base
+ breb = "!f() { git rebase -i `git merge-base $1 HEAD`; }; f"
+
+ # Remove the old tag with this name and tag the latest commit with it.
+ retag = "!r() { git tag -d $1 && git push origin :refs/tags/$1 && git tag $1; }; r"
+
+ # Find branches containing commit
+ fb = "!f() { git branch -a --contains $1; }; f"
+
+ # Find tags containing commit
+ ft = "!f() { git describe --always --contains $1; }; f"
+
+ # Find commits by source code
+ fc = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short -S$1; }; f"
+
+ # Find commits by commit message
+ fm = "!f() { git log --pretty=format:'%C(yellow)%h %Cblue%ad %Creset%s%Cgreen [%cn] %Cred%d' --decorate --date=short --grep=$1; }; f"
+
+ # Remove branches that have already been merged with master
+ # a.k.a. ‘delete merged’
+ dm = "!git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d"
+
+ # List contributors with number of commits
+ contrib = shortlog --summary --numbered
+
+ # Push current branch to origin and set upstream
+ pub = "!git push -u origin $(git b)"
+
+ # Delete current branch from origin
+ unpub = "!git push origin :$(git b)"
+
+ # Advanced visualization
+ lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
+
+ # Root directory
+ root = rev-parse --show-toplevel
+
+ # Browse on GitHub
+ browse = !gh repo view --web
+
+
+[apply]
+
+ # Detect whitespace errors when applying a patch
+ whitespace = fix
+
+[core]
+
+ # Use custom `.gitignore` and `.gitattributes`
+ excludesfile = ~/.gitignore
+ attributesfile = ~/.gitattributes
+
+ # Treat spaces before tabs and all kinds of trailing whitespace as an error
+ # [default] trailing-space: looks for spaces at the end of a line
+ # [default] space-before-tab: looks for spaces before tabs at the beginning of a line
+ whitespace = space-before-tab,-indent-with-non-tab,trailing-space
+
+ # Make `git rebase` safer on macOS
+ # More info:
+ trustctime = false
+
+ # Prevent showing files whose names contain non-ASCII symbols as unversioned.
+ # http://michael-kuehnel.de/git/2014/11/21/git-mac-osx-and-german-umlaute.html
+ precomposeunicode = false
+
+ autocrlf = false
+ ignorecase = false
+
+[color]
+
+ # Use colors in Git commands that are capable of colored output when
+ # outputting to the terminal. (This is the default setting in Git ≥ 1.8.4.)
+ ui = auto
+
+[color "branch"]
+
+ current = yellow reverse
+ local = yellow
+ remote = green
+
+[color "diff"]
+
+ meta = yellow bold
+ frag = magenta bold # line info
+ old = red # deletions
+ new = green # additions
+
+[color "status"]
+
+ added = yellow
+ changed = green
+ untracked = cyan
+
+[commit]
+
+ # https://help.github.com/articles/signing-commits-using-gpg/
+ gpgsign = true
+
+[diff]
+
+ # Detect copies as well as renames
+ renames = copies
+
+[diff "bin"]
+
+ # Use `hexdump` to diff binary files
+ textconv = hexdump -v -C
+
+[help]
+
+ # Automatically correct and execute mistyped commands
+ autocorrect = 1
+
+[merge]
+
+ # Include summaries of merged commits in newly created merge commit messages
+ log = true
+
+[push]
+
+ # Push current branch to its upstream branch.
+ default = upstream
+ # Make `git push` push relevant annotated tags when pushing branches out.
+ followTags = true
+
+# URL shorthands
+
+[url "git@github.com:"]
+
+ insteadOf = "gh:"
+ pushInsteadOf = "github:"
+ pushInsteadOf = "git://github.com/"
+
+[url "git://github.com/"]
+
+ insteadOf = "github:"
+
+[url "git@gist.github.com:"]
+
+ insteadOf = "gst:"
+ pushInsteadOf = "gist:"
+ pushInsteadOf = "git://gist.github.com/"
+
+[url "git://gist.github.com/"]
+
+ insteadOf = "gist:"
+
+[filter "lfs"]
+
+ clean = git-lfs clean -- %f
+ smudge = git-lfs smudge -- %f
+ required = true
+ process = git-lfs filter-process
+[init]
+ defaultBranch = main
diff --git a/git/.gitignore b/git/.gitignore
new file mode 100644
index 00000000000..2d7f02d6efa
--- /dev/null
+++ b/git/.gitignore
@@ -0,0 +1,28 @@
+# Git
+**/.git
+
+# Node
+**/node_modules
+**/npm-debug.log*
+
+# Python
+**/*.pyc
+
+# ESLint
+.eslintcache
+
+# Istanbul
+**/coverage
+**/.nyc_output
+
+# Folder view configuration files
+**/.DS_Store
+**/Desktop.ini
+
+# Thumbnail cache files
+**/._*
+**/Thumbs.db
+
+# Files that might appear on external disks
+**/.Spotlight-V100
+**/.Trashes
diff --git a/init/Preferences.sublime-settings b/init/Preferences.sublime-settings
deleted file mode 100644
index 1d190f97d93..00000000000
--- a/init/Preferences.sublime-settings
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "color_scheme": "Packages/Color Scheme - Default/Solarized (Dark).tmTheme",
- "default_encoding": "UTF-8",
- "default_line_ending": "unix",
- "detect_indentation": false,
- "draw_white_space": "all",
- "ensure_newline_at_eof_on_save": false,
- "file_exclude_patterns":
- [
- ".DS_Store",
- "Desktop.ini",
- "*.pyc",
- "._*",
- "Thumbs.db",
- ".Spotlight-V100",
- ".Trashes"
- ],
- "folder_exclude_patterns":
- [
- ".git",
- "node_modules"
- ],
- "font_face": "Monaco",
- "font_size": 13,
- "highlight_modified_tabs": true,
- "hot_exit": false,
- "line_padding_bottom": 5,
- "match_brackets": true,
- "match_brackets_angle": true,
- "remember_open_files": false,
- "rulers":
- [
- 80
- ],
- "show_encoding": true,
- "show_line_endings": true,
- "tab_size": 2,
- "translate_tabs_to_spaces": false,
- "trim_trailing_white_space_on_save": true,
- "word_wrap": true
-}
diff --git a/init/Solarized Dark xterm-256color.terminal b/init/Solarized Dark xterm-256color.terminal
deleted file mode 100644
index 46f179d6cd4..00000000000
--- a/init/Solarized Dark xterm-256color.terminal
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
- BackgroundColor
-
- YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
- AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECgw
- LjAxNTkyNDQwNTMxIDAuMTI2NTIwOTE2OCAwLjE1OTY5NjAxMjcAEAGAAtIQERITWiRj
- bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNo
- aXZlctEXGFRyb290gAEIERojLTI3O0FITltijY+RlqGqsrW+0NPYAAAAAAAAAQEAAAAA
- AAAAGQAAAAAAAAAAAAAAAAAAANo=
-
- BlinkText
-
- CursorColor
-
- YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
- AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
- LjQ0MDU4MDI0ODggMC41MDk2MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYAC0hAREhNaJGNs
- YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
- dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
- AAAZAAAAAAAAAAAAAAAAAAAA2Q==
-
- Font
-
- YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
- AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5TU2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNs
- YXNzI0AqAAAAAAAAEBCAAoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRj
- bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290
- gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA
- AAAAAAAAAAAAAM4=
-
- FontAntialias
-
- FontHeightSpacing
- 1.1000000000000001
- FontWidthSpacing
- 1
- ProfileCurrentVersion
- 2.02
- SelectionColor
-
- YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
- AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECgw
- LjAzOTM4MDczNjY1IDAuMTYwMTE2NDYzOSAwLjE5ODMzMjc1NjgAEAGAAtIQERITWiRj
- bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNo
- aXZlctEXGFRyb290gAEIERojLTI3O0FITltijY+RlqGqsrW+0NPYAAAAAAAAAQEAAAAA
- AAAAGQAAAAAAAAAAAAAAAAAAANo=
-
- ShowWindowSettingsNameInTitle
-
- TerminalType
- xterm-256color
- TextBoldColor
-
- YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
- AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECYw
- LjUwNTk5MTkzNTcgMC41NjQ4NTgzNzcgMC41NjM2MzY1NDE0ABABgALSEBESE1okY2xh
- c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2
- ZXLRFxhUcm9vdIABCBEaIy0yNztBSE5bYouNj5SfqLCzvM7R1gAAAAAAAAEBAAAAAAAA
- ABkAAAAAAAAAAAAAAAAAAADY
-
- TextColor
-
- YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
- AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
- LjQ0MDU4MDI0ODggMC41MDk2MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYAC0hAREhNaJGNs
- YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
- dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhOW2KMjpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA
- AAAZAAAAAAAAAAAAAAAAAAAA2Q==
-
- UseBrightBold
-
- blackColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg7JNIT2DkvUjPoO+F0s+AYY=
-
- blueColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmgyqcAj6DtOHsPoO+RUg/AYY=
-
- brightBlackColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg+ZzgjyDs44BPoNahyM+AYY=
-
- brightBlueColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg7yT4T6DEXcCP4POUAQ/AYY=
-
- brightCyanColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg7CIAT+Dj5oQP4N8ShA/AYY=
-
- brightGreenColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmgzyujT6DFZy2PoOYFsQ+AYY=
-
- brightMagentaColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmgxMjsj6D+uazPoNkyTc/AYY=
-
- brightRedColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmgyfkPT+D/15aPoMgl5Y9AYY=
-
- brightWhiteColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg49LfT+D0Dt1P4MGM10/AYY=
-
- brightYellowColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg1MTpj6DeHnQPoPQg+A+AYY=
-
- cyanColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg4VRFj6DfyESP4PkZwY/AYY=
-
- greenColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg9lI5j6DIYkKP4PVjKU8AYY=
-
- magentaColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg/4CRz+DBTzdPYMgzt4+AYY=
-
- name
- Solarized Dark xterm-256color
- redColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg6i7UT+DUATePYMl2hA+AYY=
-
- type
- Window Settings
- whiteColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmgzqGaj+D2tdjP4NYPUw/AYY=
-
- yellowColour
-
- BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm
- ZmZmg0DAJT+DB17vPoM4Y8A8AYY=
-
-
-
diff --git a/init/Solarized Dark.itermcolors b/init/Solarized Dark.itermcolors
deleted file mode 100644
index d630a40539f..00000000000
--- a/init/Solarized Dark.itermcolors
+++ /dev/null
@@ -1,214 +0,0 @@
-
-
-
-
-
- Ansi 0 Color
-
- Blue Component
- 0.19370138645172119
- Green Component
- 0.15575926005840302
- Red Component
- 0.0
-
- Ansi 1 Color
-
- Blue Component
- 0.14145714044570923
- Green Component
- 0.10840655118227005
- Red Component
- 0.81926977634429932
-
- Ansi 10 Color
-
- Blue Component
- 0.38298487663269043
- Green Component
- 0.35665956139564514
- Red Component
- 0.27671992778778076
-
- Ansi 11 Color
-
- Blue Component
- 0.43850564956665039
- Green Component
- 0.40717673301696777
- Red Component
- 0.32436618208885193
-
- Ansi 12 Color
-
- Blue Component
- 0.51685798168182373
- Green Component
- 0.50962930917739868
- Red Component
- 0.44058024883270264
-
- Ansi 13 Color
-
- Blue Component
- 0.72908437252044678
- Green Component
- 0.33896297216415405
- Red Component
- 0.34798634052276611
-
- Ansi 14 Color
-
- Blue Component
- 0.56363654136657715
- Green Component
- 0.56485837697982788
- Red Component
- 0.50599193572998047
-
- Ansi 15 Color
-
- Blue Component
- 0.86405980587005615
- Green Component
- 0.95794391632080078
- Red Component
- 0.98943418264389038
-
- Ansi 2 Color
-
- Blue Component
- 0.020208755508065224
- Green Component
- 0.54115492105484009
- Red Component
- 0.44977453351020813
-
- Ansi 3 Color
-
- Blue Component
- 0.023484811186790466
- Green Component
- 0.46751424670219421
- Red Component
- 0.64746475219726562
-
- Ansi 4 Color
-
- Blue Component
- 0.78231418132781982
- Green Component
- 0.46265947818756104
- Red Component
- 0.12754884362220764
-
- Ansi 5 Color
-
- Blue Component
- 0.43516635894775391
- Green Component
- 0.10802463442087173
- Red Component
- 0.77738940715789795
-
- Ansi 6 Color
-
- Blue Component
- 0.52502274513244629
- Green Component
- 0.57082360982894897
- Red Component
- 0.14679534733295441
-
- Ansi 7 Color
-
- Blue Component
- 0.79781103134155273
- Green Component
- 0.89001238346099854
- Red Component
- 0.91611063480377197
-
- Ansi 8 Color
-
- Blue Component
- 0.15170273184776306
- Green Component
- 0.11783610284328461
- Red Component
- 0.0
-
- Ansi 9 Color
-
- Blue Component
- 0.073530435562133789
- Green Component
- 0.21325300633907318
- Red Component
- 0.74176257848739624
-
- Background Color
-
- Blue Component
- 0.15170273184776306
- Green Component
- 0.11783610284328461
- Red Component
- 0.0
-
- Bold Color
-
- Blue Component
- 0.56363654136657715
- Green Component
- 0.56485837697982788
- Red Component
- 0.50599193572998047
-
- Cursor Color
-
- Blue Component
- 0.51685798168182373
- Green Component
- 0.50962930917739868
- Red Component
- 0.44058024883270264
-
- Cursor Text Color
-
- Blue Component
- 0.19370138645172119
- Green Component
- 0.15575926005840302
- Red Component
- 0.0
-
- Foreground Color
-
- Blue Component
- 0.51685798168182373
- Green Component
- 0.50962930917739868
- Red Component
- 0.44058024883270264
-
- Selected Text Color
-
- Blue Component
- 0.56363654136657715
- Green Component
- 0.56485837697982788
- Red Component
- 0.50599193572998047
-
- Selection Color
-
- Blue Component
- 0.19370138645172119
- Green Component
- 0.15575926005840302
- Red Component
- 0.0
-
-
-
diff --git a/macos/.macos b/macos/.macos
new file mode 100644
index 00000000000..097702855cf
--- /dev/null
+++ b/macos/.macos
@@ -0,0 +1,359 @@
+#!/usr/bin/env bash
+
+# ~/.macos — https://mths.be/macos
+
+# Close any open System Preferences panes, to prevent them from overriding
+# settings we’re about to change
+osascript -e 'tell application "System Preferences" to quit'
+
+# Ask for the administrator password upfront
+sudo -v
+
+# Keep-alive: update existing `sudo` time stamp until `.macos` has finished
+while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
+
+###############################################################################
+# General UI/UX #
+###############################################################################
+
+# Set computer name (as done via System Preferences → Sharing)
+#sudo scutil --set ComputerName "0x6D746873"
+#sudo scutil --set HostName "0x6D746873"
+#sudo scutil --set LocalHostName "0x6D746873"
+#sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "0x6D746873"
+
+# Disable the sound effects on boot
+# sudo nvram SystemAudioVolume=" "
+
+# Disable transparency in the menu bar and elsewhere on Yosemite
+# defaults write com.apple.universalaccess reduceTransparency -bool true
+
+# Set highlight color to green
+# defaults write NSGlobalDomain AppleHighlightColor -string "0.764700 0.976500 0.568600"
+
+# Set sidebar icon size to medium
+defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 2
+
+# Always show scrollbars
+defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
+# Possible values: `WhenScrolling`, `Automatic` and `Always`
+
+# Disable the over-the-top focus ring animation
+# defaults write NSGlobalDomain NSUseAnimatedFocusRing -bool false
+
+# Expand save panel by default
+defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
+defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
+
+# Expand print panel by default
+defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
+defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
+
+# Save to disk (not to iCloud) by default
+defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
+
+# Automatically quit printer app once the print jobs complete
+defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true
+
+# Disable the “Are you sure you want to open this application?” dialog
+defaults write com.apple.LaunchServices LSQuarantine -bool false
+
+# Remove duplicates in the “Open With” menu (also see `lscleanup` alias)
+# /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
+
+# Disable Resume system-wide
+# defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false
+
+# Disable automatic termination of inactive apps
+# defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true
+
+# Reveal IP address, hostname, OS version, etc. when clicking the clock
+# in the login window
+sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
+
+###############################################################################
+# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
+###############################################################################
+
+
+# Trackpad: enable tap to click for this user and for the login screen
+defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
+defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
+defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
+
+# Trackpad: map bottom right corner to right-click
+defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2
+defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true
+defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1
+defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true
+
+# Increase sound quality for Bluetooth headphones/headsets
+defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
+
+# Enable full keyboard access for all controls
+# (e.g. enable Tab in modal dialogs)
+defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
+
+# Disable press-and-hold for keys in favor of key repeat
+defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
+
+# Set a blazingly fast keyboard repeat rate
+defaults write NSGlobalDomain KeyRepeat -int 1
+
+###############################################################################
+# Screen #
+###############################################################################
+
+# Save screenshots to the desktop
+defaults write com.apple.screencapture location -string "${HOME}/Desktop"
+
+# Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
+defaults write com.apple.screencapture type -string "png"
+
+# Disable shadow in screenshots
+defaults write com.apple.screencapture disable-shadow -bool true
+
+# Enable subpixel font rendering on non-Apple LCDs
+# Reference: https://github.com/kevinSuttle/macOS-Defaults/issues/17#issuecomment-266633501
+defaults write NSGlobalDomain AppleFontSmoothing -int 1
+
+# Enable HiDPI display modes (requires restart)
+sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
+
+###############################################################################
+# Finder #
+###############################################################################
+
+# Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons
+defaults write com.apple.finder QuitMenuItem -bool true
+
+# Set Desktop as the default location for new Finder windows
+# For other paths, use `PfLo` and `file:///full/path/here/`
+defaults write com.apple.finder NewWindowTarget -string "PfDe"
+defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}/Desktop/"
+
+# Finder: show hidden files by default
+defaults write com.apple.finder AppleShowAllFiles -bool true
+
+# Finder: show all filename extensions
+defaults write NSGlobalDomain AppleShowAllExtensions -bool true
+
+# Finder: show status bar
+defaults write com.apple.finder ShowStatusBar -bool true
+
+# Finder: show path bar
+defaults write com.apple.finder ShowPathbar -bool true
+
+# Display full POSIX path as Finder window title
+# defaults write com.apple.finder _FXShowPosixPathInTitle -bool true
+
+# Keep folders on top when sorting by name
+defaults write com.apple.finder _FXSortFoldersFirst -bool true
+
+# When performing a search, search the current folder by default
+defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"
+
+# Disable the warning when changing a file extension
+defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
+
+# Enable spring loading for directories
+defaults write NSGlobalDomain com.apple.springing.enabled -bool true
+
+# Remove the spring loading delay for directories
+defaults write NSGlobalDomain com.apple.springing.delay -float 0
+
+# Avoid creating .DS_Store files on network or USB volumes
+defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
+defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
+
+# Automatically open a new Finder window when a volume is mounted
+defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true
+defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true
+defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true
+
+# Show item info near icons on the desktop and in other icon views
+/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
+/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
+/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:showItemInfo true" ~/Library/Preferences/com.apple.finder.plist
+
+# Show item info to the right of the icons on the desktop
+/usr/libexec/PlistBuddy -c "Set DesktopViewSettings:IconViewSettings:labelOnBottom false" ~/Library/Preferences/com.apple.finder.plist
+
+# Enable snap-to-grid for icons on the desktop and in other icon views
+/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
+/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
+/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
+
+# Increase grid spacing for icons on the desktop and in other icon views
+/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:gridSpacing 50" ~/Library/Preferences/com.apple.finder.plist
+/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:gridSpacing 50" ~/Library/Preferences/com.apple.finder.plist
+/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:gridSpacing 50" ~/Library/Preferences/com.apple.finder.plist
+
+# Use list view in all Finder windows by default
+# Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv`
+# defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
+
+# Disable the warning before emptying the Trash
+defaults write com.apple.finder WarnOnEmptyTrash -bool false
+
+# Enable AirDrop over Ethernet and on unsupported Macs running Lion
+defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
+
+# Show the ~/Library folder
+chflags nohidden ~/Library
+
+# Show the /Volumes folder
+sudo chflags nohidden /Volumes
+
+# Expand the following File Info panes:
+# “General”, “Open with”, and “Sharing & Permissions”
+defaults write com.apple.finder FXInfoPanesExpanded -dict \
+ General -bool true \
+ OpenWith -bool true \
+ Privileges -bool true
+
+###############################################################################
+# Dock, Dashboard, and hot corners #
+###############################################################################
+
+# Enable highlight hover effect for the grid view of a stack (Dock)
+defaults write com.apple.dock mouse-over-hilite-stack -bool true
+
+# Minimize windows into their application’s icon
+defaults write com.apple.dock minimize-to-application -bool true
+
+# Enable spring loading for all Dock items
+defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true
+
+# Show indicator lights for open applications in the Dock
+defaults write com.apple.dock show-process-indicators -bool true
+
+# Remove the auto-hiding Dock delay
+defaults write com.apple.dock autohide-delay -float 0
+
+# Make Dock icons of hidden applications translucent
+defaults write com.apple.dock showhidden -bool true
+
+# Reset Launchpad, but keep the desktop wallpaper intact
+find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete
+
+# Hot corners
+# Possible values:
+# 0: no-op
+# 2: Mission Control
+# 3: Show application windows
+# 4: Desktop
+# 5: Start screen saver
+# 6: Disable screen saver
+# 7: Dashboard
+# 10: Put display to sleep
+# 11: Launchpad
+# 12: Notification Center
+
+# Top left screen corner → Mission Control
+# defaults write com.apple.dock wvous-tl-corner -int 2
+# defaults write com.apple.dock wvous-tl-modifier -int 0
+
+# Top right screen corner → Desktop
+defaults write com.apple.dock wvous-tr-corner -int 4
+defaults write com.apple.dock wvous-tr-modifier -int 0
+
+# Bottom left screen corner → Start screen saver
+defaults write com.apple.dock wvous-bl-corner -int 5
+defaults write com.apple.dock wvous-bl-modifier -int 0
+
+###############################################################################
+# Mail #
+###############################################################################
+
+# Copy email addresses as `foo@example.com` instead of `Foo Bar ` in Mail.app
+defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false
+
+# Disable automatic spell checking
+defaults write com.apple.mail SpellCheckingBehavior -string "NoSpellCheckingEnabled"
+
+###############################################################################
+# Terminal & iTerm 2 #
+###############################################################################
+
+# Enable Secure Keyboard Entry in Terminal.app
+# See: https://security.stackexchange.com/a/47786/8918
+defaults write com.apple.terminal SecureKeyboardEntry -bool true
+
+# Disable the annoying line marks
+defaults write com.apple.Terminal ShowLineMarks -int 0
+
+# Don’t display the annoying prompt when quitting iTerm
+defaults write com.googlecode.iterm2 PromptOnQuit -bool false
+
+###############################################################################
+# Activity Monitor #
+###############################################################################
+
+
+# Enable the automatic update check
+defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true
+
+# Check for software updates daily, not just once per week
+defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1
+
+# Download newly available updates in background
+defaults write com.apple.SoftwareUpdate AutomaticDownload -int 1
+
+# Install System data files & security updates
+defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -int 1
+
+# Automatically download apps purchased on other Macs
+defaults write com.apple.SoftwareUpdate ConfigDataInstall -int 1
+
+# Turn on app auto-update
+defaults write com.apple.commerce AutoUpdate -bool true
+
+###############################################################################
+# Photos #
+###############################################################################
+
+# Prevent Photos from opening automatically when devices are plugged in
+defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true
+
+###############################################################################
+# Google Chrome & Google Chrome Canary #
+###############################################################################
+
+# Disable the all too sensitive backswipe on trackpads
+defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false
+defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool false
+
+# Disable the all too sensitive backswipe on Magic Mouse
+defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false
+defaults write com.google.Chrome.canary AppleEnableMouseSwipeNavigateWithScrolls -bool false
+
+###############################################################################
+# Kill affected applications #
+###############################################################################
+
+for app in "Activity Monitor" \
+ "Address Book" \
+ "Calendar" \
+ "cfprefsd" \
+ "Contacts" \
+ "Dock" \
+ "Finder" \
+ "Google Chrome Canary" \
+ "Google Chrome" \
+ "Mail" \
+ "Messages" \
+ "Opera" \
+ "Photos" \
+ "Safari" \
+ "SizeUp" \
+ "Spectacle" \
+ "SystemUIServer" \
+ "Terminal" \
+ "Transmission" \
+ "Tweetbot" \
+ "Twitter" \
+ "iCal"; do
+ killall "${app}" &> /dev/null
+done
+echo "Done. Note that some of these changes require a logout/restart to take effect."
diff --git a/.aliases b/system/.aliases
similarity index 50%
rename from .aliases
rename to system/.aliases
index 54841551db0..1154cd01e58 100644
--- a/.aliases
+++ b/system/.aliases
@@ -1,40 +1,41 @@
#!/usr/bin/env bash
-# Easier navigation: .., ..., ...., ....., ~ and -
+# Easier navigation
alias ..="cd .."
alias ...="cd ../.."
alias ....="cd ../../.."
alias .....="cd ../../../.."
-alias ~="cd ~" # `cd` is probably faster to type though
alias -- -="cd -"
# Shortcuts
-alias d="cd ~/Documents/Dropbox"
-alias dl="cd ~/Downloads"
-alias dt="cd ~/Desktop"
-alias p="cd ~/projects"
-alias g="git"
+alias cdd="cd ~/Desktop"
+alias cdl="cd ~/Downloads"
+alias cdp="cd ~/Projects"
# Detect which `ls` flavor is in use
-if ls --color > /dev/null 2>&1; then # GNU `ls`
- colorflag="--color"
- export LS_COLORS='no=00:fi=00:di=01;31:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
+if command -v eza > /dev/null; then
+ alias ls="eza --icons"
+ alias l="eza -lF --icons"
+ alias la="eza -laF --icons"
+elif ls --color > /dev/null 2>&1; then # GNU `ls`
+ colorflag="--color"
+ alias l="ls -lF ${colorflag}"
+ alias la="ls -laF ${colorflag}"
+ alias ls="command ls ${colorflag}"
else # macOS `ls`
- colorflag="-G"
- export LSCOLORS='BxBxhxDxfxhxhxhxhxcxcx'
+ colorflag="-G"
+ alias l="ls -lF ${colorflag}"
+ alias la="ls -laF ${colorflag}"
+ alias ls="command ls ${colorflag}"
fi
-# List all files colorized in long format
-alias l="ls -lF ${colorflag}"
-
-# List all files colorized in long format, including dot files
-alias la="ls -laF ${colorflag}"
+# Always use bat instead of cat if available
+if command -v bat > /dev/null; then
+ alias cat="bat"
+fi
-# List only directories
-alias lsd="ls -lF ${colorflag} | grep --color=never '^d'"
+export LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:'
-# Always use color output for `ls`
-alias ls="command ls ${colorflag}"
# Always enable colored `grep` output
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage.
@@ -45,27 +46,18 @@ alias egrep='egrep --color=auto'
# Enable aliases to be sudo’ed
alias sudo='sudo '
-# Get week number
-alias week='date +%V'
-
-# Get macOS Software Updates, and update installed Ruby gems, Homebrew, npm, and their installed packages
-alias update='sudo softwareupdate -i -a; brew update; brew upgrade; brew cleanup; npm install npm -g; npm update -g; sudo gem update --system; sudo gem update; sudo gem cleanup'
-
-# Google Chrome
-alias chrome='/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'
-alias canary='/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary'
+# Get macOS Software Updates, and update installed Homebrew, npm, and their installed packages.
+alias update='sudo softwareupdate -i -a; brew update; brew upgrade; brew bundle; brew cleanup; npm install npm -g; npm update -g'
# IP addresses
-alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
-alias localip="ipconfig getifaddr en0"
+alias ip="curl -s https://ifconfig.me"
+alias lip="ipconfig getifaddr en0"
+
alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
# Show active network interfaces
alias ifactive="ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'"
-# Flush Directory Service cache
-alias flush="dscacheutil -flushcache && killall -HUP mDNSResponder"
-
# Clean up LaunchServices to remove duplicates in the “Open With” menu
alias lscleanup="/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user && killall Finder"
@@ -78,14 +70,6 @@ command -v md5sum > /dev/null || alias md5sum="md5"
# macOS has no `sha1sum`, so use `shasum` as a fallback
command -v sha1sum > /dev/null || alias sha1sum="shasum"
-# JavaScriptCore REPL
-jscbin="/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc";
-[ -e "${jscbin}" ] && alias jsc="${jscbin}";
-unset jscbin;
-
-# Trim new lines and copy to clipboard
-alias c="tr -d '\n' | pbcopy"
-
# Recursively delete `.DS_Store` files
alias cleanup="find . -type f -name '*.DS_Store' -ls -delete"
@@ -102,8 +86,6 @@ alias hide="defaults write com.apple.finder AppleShowAllFiles -bool false && kil
alias hidedesktop="defaults write com.apple.finder CreateDesktop -bool false && killall Finder"
alias showdesktop="defaults write com.apple.finder CreateDesktop -bool true && killall Finder"
-# URL-encode strings
-alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"'
# Merge PDF files
# Usage: `mergepdf -o output.pdf input{1,2,3}.pdf`
@@ -114,11 +96,9 @@ alias spotoff="sudo mdutil -a -i off"
# Enable Spotlight
alias spoton="sudo mdutil -a -i on"
-# PlistBuddy alias, because sometimes `defaults` just doesn’t cut it
-alias plistbuddy="/usr/libexec/PlistBuddy"
-
-# Airport CLI alias
-alias airport='/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport'
+# Ring the terminal bell, and put a badge on Terminal.app’s Dock icon
+# (useful when executing time-consuming commands)
+alias ding="tput bel"
# Intuitive map function
# For example, to list all directories that contain a certain file:
@@ -127,20 +107,9 @@ alias map="xargs -n1"
# One of @janmoesen’s ProTip™s
for method in GET HEAD POST PUT DELETE TRACE OPTIONS; do
- alias "${method}"="lwp-request -m '${method}'"
+ alias "${method}"="lwp-request -m '${method}'"
done
-# Make Grunt print stack traces by default
-command -v grunt > /dev/null && alias grunt="grunt --stack"
-
-# Stuff I never really use but cannot delete either because of http://xkcd.com/530/
-alias stfu="osascript -e 'set volume output muted true'"
-alias pumpitup="osascript -e 'set volume output volume 100'"
-
-# Kill all the tabs in Chrome to free up memory
-# [C] explained: http://www.commandlinefu.com/commands/view/402/exclude-grep-from-your-grepped-output-of-ps-alias-included-in-description
-alias chromekill="ps ux | grep '[C]hrome Helper --type=renderer' | grep -v extension-process | tr -s ' ' | cut -d ' ' -f2 | xargs kill"
-
# Lock the screen (when going AFK)
alias afk="/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend"
@@ -149,3 +118,28 @@ alias reload="exec ${SHELL} -l"
# Print each PATH entry on a separate line
alias path='echo -e ${PATH//:/\\n}'
+
+# List all npm packages installed globally
+alias npmls='npm ls -g --depth=0 --silent --parseable | xargs basename | grep -v lib'
+
+# Fix system time by matching Apple server time.
+alias fixtime='sudo ntpdate -u time.apple.com'
+
+# Clear DNS cache
+alias flushdns='sudo killall -HUP mDNSResponder'
+
+# Gitmoji
+alias gm='gitmoji'
+
+# See what's listening on a given port
+alias whichport='sudo lsof -i -P | grep LISTEN | grep'
+
+# POWER
+
+# Open in IntelliJ
+alias intellij='open -a "IntelliJ IDEA.app"'
+
+# MQ
+
+# Bootstrap marqeta-jpos
+alias mq-bootstrap='target/bin/stop ; mvn clean install -Denv=ci -DskipTests ; tar -xvf target/mqpay-jcard-1.0.0-SNAPSHOT.tar --directory target ; AWS_PROFILE=marqeta-jpos target/bin/start'
diff --git a/.curlrc b/system/.curlrc
similarity index 95%
rename from .curlrc
rename to system/.curlrc
index 481d94b899f..11d0350348a 100644
--- a/.curlrc
+++ b/system/.curlrc
@@ -6,3 +6,5 @@ referer = ";auto"
# Wait 60 seconds before timing out.
connect-timeout = 60
+
+progress-bar
diff --git a/.editorconfig b/system/.editorconfig
similarity index 85%
rename from .editorconfig
rename to system/.editorconfig
index bec7553240a..f999431de51 100644
--- a/.editorconfig
+++ b/system/.editorconfig
@@ -2,7 +2,6 @@ root = true
[*]
charset = utf-8
-indent_style = tab
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
diff --git a/.exports b/system/.exports
similarity index 79%
rename from .exports
rename to system/.exports
index ae9b020cad9..4c89e38d049 100644
--- a/.exports
+++ b/system/.exports
@@ -5,17 +5,12 @@ export EDITOR='vim';
# Enable persistent REPL history for `node`.
export NODE_REPL_HISTORY=~/.node_history;
-# Allow 32³ entries; the default is 1000.
-export NODE_REPL_HISTORY_SIZE='32768';
# Use sloppy mode by default, matching web browsers.
export NODE_REPL_MODE='sloppy';
# Make Python use UTF-8 encoding for output to stdin, stdout, and stderr.
export PYTHONIOENCODING='UTF-8';
-# Increase Bash history size. Allow 32³ entries; the default is 500.
-export HISTSIZE='32768';
-export HISTFILESIZE="${HISTSIZE}";
# Omit duplicates and commands that begin with a space from history.
export HISTCONTROL='ignoreboth';
@@ -32,3 +27,6 @@ export MANPAGER='less -X';
# Avoid issues with `gpg` as installed via Homebrew.
# https://stackoverflow.com/a/42265848/96656
export GPG_TTY=$(tty);
+
+# Hide MacOS message saying the default shell is now zsh
+export BASH_SILENCE_DEPRECATION_WARNING=1
diff --git a/system/.functions b/system/.functions
new file mode 100644
index 00000000000..7d73b800842
--- /dev/null
+++ b/system/.functions
@@ -0,0 +1,185 @@
+#!/usr/bin/env bash
+
+# Kill process by port
+function killport()
+{
+ lsof -i tcp:$1 | awk 'FNR == 2 {print $2}' | xargs kill -9
+}
+
+# Toggle "focus mode"
+function focus() {
+ osascript -e 'tell application "System Events" to keystroke "d" using {command down, option down}'
+ osascript -e 'tell application "System Events" to keystroke "d" using {command down, option down, control down}'
+}
+
+# Simple calculator
+function calc() {
+ local result="";
+ result="$(printf "scale=10;$*\n" | bc --mathlib | tr -d '\\\n')";
+ # └─ default (when `--mathlib` is used) is 20
+ #
+ if [[ "$result" == *.* ]]; then
+ # improve the output for decimal numbers
+ printf "$result" |
+ sed -e 's/^\./0./' `# add "0" for cases like ".5"` \
+ -e 's/^-\./-0./' `# add "0" for cases like "-.5"`\
+ -e 's/0*$//;s/\.$//'; # remove trailing zeros
+ else
+ printf "$result";
+ fi;
+ printf "\n";
+}
+
+# Create a new directory and enter it
+function mkd() {
+ mkdir -p "$@" && cd "$_";
+}
+
+# Change working directory to the top-most Finder window location
+function cdf() { # short for `cdfinder`
+ cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')";
+}
+
+# Reload dotfiles
+function reload-dotfiles() {
+ if [ -d "$HOME/dotfiles" ]; then
+ (cd "$HOME/dotfiles" && git pull origin master && ./bootstrap.sh)
+ source "$HOME/.zshrc"
+ fi
+}
+
+# Create a .tar.gz archive, using `zopfli`, `pigz` or `gzip` for compression
+function targz() {
+ local tmpFile="${@%/}.tar";
+ tar -cvf "${tmpFile}" --exclude=".DS_Store" "${@}" || return 1;
+
+ size=$(
+ stat -f"%z" "${tmpFile}" 2> /dev/null; # macOS `stat`
+ stat -c"%s" "${tmpFile}" 2> /dev/null; # GNU `stat`
+ );
+
+ local cmd="";
+ if (( size < 52428800 )) && hash zopfli 2> /dev/null; then
+ # the .tar file is smaller than 50 MB and Zopfli is available; use it
+ cmd="zopfli";
+ else
+ if hash pigz 2> /dev/null; then
+ cmd="pigz";
+ else
+ cmd="gzip";
+ fi;
+ fi;
+
+ echo "Compressing .tar ($((size / 1000)) kB) using \`${cmd}\`…";
+ "${cmd}" -v "${tmpFile}" || return 1;
+ [ -f "${tmpFile}" ] && rm "${tmpFile}";
+
+ zippedSize=$(
+ stat -f"%z" "${tmpFile}.gz" 2> /dev/null; # macOS `stat`
+ stat -c"%s" "${tmpFile}.gz" 2> /dev/null; # GNU `stat`
+ );
+
+ echo "${tmpFile}.gz ($((zippedSize / 1000)) kB) created successfully.";
+}
+
+# Determine size of a file or total size of a directory
+function fs() {
+ if du -b /dev/null > /dev/null 2>&1; then
+ local arg=-sbh;
+ else
+ local arg=-sh;
+ fi
+ if [[ -n "$@" ]]; then
+ du $arg -- "$@";
+ else
+ du $arg .[^.]* ./*;
+ fi;
+}
+
+# Use Git’s colored diff when available
+hash git &>/dev/null;
+if [ $? -eq 0 ]; then
+ function diff() {
+ git diff --no-index --color-words "$@";
+ }
+fi;
+
+# Create a data URL from a file
+function dataurl() {
+ local mimeType=$(file -b --mime-type "$1");
+ if [[ $mimeType == text/* ]]; then
+ mimeType="${mimeType};charset=utf-8";
+ fi
+ echo "data:${mimeType};base64,$(openssl base64 -in "$1" | tr -d '\n')";
+}
+
+# Start an HTTP server from a directory, optionally specifying the port
+function server() {
+ local port="${1:-8000}";
+ sleep 1 && open "http://localhost:${port}/" &
+ python -m http.server $port
+}
+
+# Compare original and gzipped file size
+function gz() {
+ local origsize=$(wc -c < "$1");
+ local gzipsize=$(gzip -c "$1" | wc -c);
+ local ratio=$(echo "$gzipsize * 100 / $origsize" | bc -l);
+ printf "orig: %d bytes\n" "$origsize";
+ printf "gzip: %d bytes (%2.2f%%)\n" "$gzipsize" "$ratio";
+}
+
+# Show all the names (CNs and SANs) listed in the SSL certificate
+# for a given domain
+function getcertnames() {
+ if [ -z "${1}" ]; then
+ echo "ERROR: No domain specified.";
+ return 1;
+ fi;
+
+ local domain="${1}";
+ echo "Testing ${domain}…";
+ echo ""; # newline
+
+ local tmp=$(echo -e "GET / HTTP/1.0\nEOT" \
+ | openssl s_client -connect "${domain}:443" -servername "${domain}" 2>&1);
+
+ if [[ "${tmp}" = *"-----BEGIN CERTIFICATE-----"* ]]; then
+ local certText=$(echo "${tmp}" \
+ | openssl x509 -text -certopt "no_aux, no_header, no_issuer, no_pubkey, \
+ no_serial, no_sigdump, no_signame, no_validity, no_version");
+ echo "Common Name:";
+ echo ""; # newline
+ echo "${certText}" | grep "Subject:" | sed -e "s/^.*CN=//" | sed -e "s/\/emailAddress=.*//";
+ echo ""; # newline
+ echo "Subject Alternative Name(s):";
+ echo ""; # newline
+ echo "${certText}" | grep -A 1 "Subject Alternative Name:" \
+ | sed -e "2s/DNS://g" -e "s/ //g" | tr "," "\n" | tail -n +2;
+ return 0;
+ else
+ echo "ERROR: Certificate not found.";
+ return 1;
+ fi;
+}
+
+# `tre` is a shorthand for `tree` with hidden files and color enabled, ignoring
+# the `.git` directory, listing directories first. The output gets piped into
+# `less` with options to preserve color and line numbers, unless the output is
+# small enough for one screen.
+function tre() {
+ tree -aC -I '.git|node_modules|bower_components' --dirsfirst "$@" | less -FRNX;
+}
+
+# Spin up a mock HTTP server, listening to the given port, that echos back any POSTed data
+function mhttp() {
+ while true; do echo "Hello, World!" | nc -l $1; done
+}
+
+# POWER
+
+# Find CF request details by ray id
+function cflogs() {
+ curl -H "Authorization: Bearer ${CLOUDFLARE_TOKEN}" https://api.cloudflare.com/client/v4/zones/e8900cc9c0e8dc2ade675327b3f634fa/logs/rayids/$1
+}
+
diff --git a/system/.path b/system/.path
new file mode 100644
index 00000000000..d28757cc4db
--- /dev/null
+++ b/system/.path
@@ -0,0 +1,22 @@
+# .path - Path extensions
+
+# Local binaries
+export PATH="$HOME/bin:$PATH"
+export PATH="/usr/local/sbin:$PATH"
+
+# Go
+if [ -d "$HOME/go/bin" ]; then
+ export PATH="$HOME/go/bin:$PATH"
+fi
+
+# Rust
+if [ -f "$HOME/.cargo/env" ]; then
+ source "$HOME/.cargo/env"
+fi
+
+# Add Homebrew's sbin
+if [[ $(uname -m) == "arm64" ]]; then
+ export PATH="/opt/homebrew/sbin:$PATH"
+else
+ export PATH="/usr/local/sbin:$PATH"
+fi
diff --git a/system/auto-update.zsh b/system/auto-update.zsh
new file mode 100644
index 00000000000..4ff2dce9f03
--- /dev/null
+++ b/system/auto-update.zsh
@@ -0,0 +1,34 @@
+# system/auto-update.zsh - Keep dotfiles in sync
+
+function check_dotfiles_update() {
+ # Only check once every 24 hours
+ local last_check_file="$HOME/.dotfiles_last_update"
+ local current_time=$(date +%s)
+ local one_day=86400
+
+ if [ -f "$last_check_file" ]; then
+ local last_check=$(cat "$last_check_file")
+ if (( current_time - last_check < one_day )); then
+ return
+ fi
+ fi
+
+ echo -n "Checking for dotfiles updates... "
+ # Assuming the repo is at ~/dotfiles
+ if [ -d "$HOME/dotfiles" ]; then
+ (cd "$HOME/dotfiles" && git fetch origin master -q)
+ local local_hash=$(cd "$HOME/dotfiles" && git rev-parse HEAD)
+ local remote_hash=$(cd "$HOME/dotfiles" && git rev-parse origin/master)
+
+ if [ "$local_hash" != "$remote_hash" ]; then
+ echo "New version available! Run 'reload-dotfiles' to update."
+ else
+ echo "Up to date."
+ fi
+ fi
+
+ echo "$current_time" > "$last_check_file"
+}
+
+# Run check in background (non-blocking)
+check_dotfiles_update &!
diff --git a/theme/README.md b/theme/README.md
new file mode 100644
index 00000000000..9db311b92c2
--- /dev/null
+++ b/theme/README.md
@@ -0,0 +1,91 @@
+# Catppuccin Theme Integration
+
+Soothing pastel theme for your entire development environment.
+
+## Flavors
+
+- **Mocha** (default): Dark, cozy, color-rich
+- **Macchiato**: Medium contrast, gentle
+- **Frappé**: Subdued, muted aesthetic
+- **Latte**: Light theme (solarized-style)
+
+To switch flavors, edit `catppuccin.zsh` and change `CATPPUCCIN_FLAVOR`.
+
+## Installation
+
+Run the install script:
+
+```bash
+./theme/install.sh
+```
+
+Or apply manually to each tool:
+
+### Terminal (iTerm2)
+1. Open iTerm2 → Preferences → Profiles → Colors
+2. Color Presets → Import → Select `theme/iterm2-catppuccin.json`
+3. Select "Catppuccin Mocha"
+
+### VS Code
+1. Install extension: **Catppuccin for VSCode**
+2. Command Palette → `Color Theme` → `Catppuccin Mocha`
+3. Settings sync will handle the rest
+
+### Vim
+Install the colorscheme:
+
+```bash
+git clone https://github.com/catppuccin/vim.git ~/.vim/pack/catppuccin/start/vim
+```
+
+### Bat (syntax highlighting)
+
+```bash
+mkdir -p "$(bat --config-dir)/themes"
+wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Mocha.tmTheme
+bat cache --build
+```
+
+### Starship
+Already configured in `starship.toml`. Ensure your `.zshrc` loads it:
+
+```zsh
+eval "$(starship init zsh)"
+```
+
+## Tools Integrated
+
+- ✅ iTerm2 terminal colors
+- ✅ Starship prompt
+- ✅ VS Code editor theme
+- ✅ Vim colorscheme
+- ✅ Bat syntax highlighting
+- ✅ FZF fuzzy finder
+- ✅ eza directory listings
+- ✅ Less/man page colors
+
+## File Structure
+
+```
+theme/
+├── catppuccin.zsh # Shell env vars & FZF/bat/eza config
+├── starship.toml # Prompt theme configuration
+├── iterm2-catppuccin.json # iTerm2 color preset
+├── install.sh # One-command setup
+├── vim-colors.vim # Vim colorscheme config
+├── vscode-settings.json # VS Code theme settings
+└── README.md # This file
+```
+
+## Switching Flavors
+
+To use a different flavor (e.g., Macchiato):
+
+1. Edit `catppuccin.zsh`: Change `CATPPUCCIN_FLAVOR="mocha"` to `"macchiato"`
+2. Update colors in the export statements
+3. For VS Code: Command Palette → Color Theme → Catppuccin Macchiato
+4. For iTerm2: Import the Macchiato variant (see catppuccin.org for downloads)
+
+## Credits
+
+[Catppuccin](https://catppuccin.com) - Soothing pastel theme for the high-spirited!
diff --git a/theme/catppuccin.zsh b/theme/catppuccin.zsh
new file mode 100644
index 00000000000..a02603747fa
--- /dev/null
+++ b/theme/catppuccin.zsh
@@ -0,0 +1,63 @@
+# Catppuccin Theme Configuration
+# Mocha (dark) flavor - easy to switch to others
+
+# Flavor selection
+export CATPPUCCIN_FLAVOR="mocha"
+
+# Core Colors (Mocha)
+export CATPPUCCIN_ROSEWATER="#f5e0dc"
+export CATPPUCCIN_FLAMINGO="#f2cdcd"
+export CATPPUCCIN_PINK="#f5c2e7"
+export CATPPUCCIN_MAUVE="#cba6f7"
+export CATPPUCCIN_RED="#f38ba8"
+export CATPPUCCIN_MAROON="#eba0ac"
+export CATPPUCCIN_PEACH="#fab387"
+export CATPPUCCIN_YELLOW="#f9e2af"
+export CATPPUCCIN_GREEN="#a6e3a1"
+export CATPPUCCIN_TEAL="#94e2d5"
+export CATPPUCCIN_SKY="#89dceb"
+export CATPPUCCIN_SAPPHIRE="#74c7ec"
+export CATPPUCCIN_BLUE="#89b4fa"
+export CATPPUCCIN_LAVENDER="#b4befe"
+export CATPPUCCIN_TEXT="#cdd6f4"
+export CATPPUCCIN_SUBTEXT1="#bac2de"
+export CATPPUCCIN_SUBTEXT0="#a6adc8"
+export CATPPUCCIN_OVERLAY2="#9399b2"
+export CATPPUCCIN_OVERLAY1="#7f849c"
+export CATPPUCCIN_OVERLAY0="#6c7086"
+export CATPPUCCIN_SURFACE2="#585b70"
+export CATPPUCCIN_SURFACE1="#45475a"
+export CATPPUCCIN_SURFACE0="#313244"
+export CATPPUCCIN_BASE="#1e1e2e"
+export CATPPUCCIN_MANTLE="#181825"
+export CATPPUCCIN_CRUST="#11111b"
+
+# FZF Catppuccin Theme
+export FZF_DEFAULT_OPTS="
+ --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8
+ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc
+ --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8
+ --color=selected-bg:#585b70
+"
+
+# Bat theme
+export BAT_THEME="Catppuccin Mocha"
+
+# eza colors
+export EZA_COLORS="
+ di=38;2;180;190;254:
+ fi=38;2;205;214;244:
+ ex=38;2;166;227;161:
+ ln=38;2;137;180;250:
+ or=38;2;243;139;168:
+ mi=38;2;243;139;168:
+"
+
+# Less/man pages
+export LESS_TERMCAP_mb="\e[1;38;2;243;139;168m"
+export LESS_TERMCAP_md="\e[1;38;2;137;180;250m"
+export LESS_TERMCAP_me="\e[0m"
+export LESS_TERMCAP_se="\e[0m"
+export LESS_TERMCAP_so="\e[1;38;2;30;30;46;48;2;69;71;90m"
+export LESS_TERMCAP_ue="\e[0m"
+export LESS_TERMCAP_us="\e[1;38;2;180;190;254m"
diff --git a/theme/install.sh b/theme/install.sh
new file mode 100644
index 00000000000..2877478bcab
--- /dev/null
+++ b/theme/install.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+# Install Catppuccin theme configurations
+
+set -e
+
+DOTFILES="$HOME/dotfiles"
+
+echo "🎨 Installing Catppuccin theme..."
+
+# Symlink starship config
+echo "→ Symlinking Starship config..."
+mkdir -p "$HOME/.config"
+ln -sf "$DOTFILES/theme/starship.toml" "$HOME/.config/starship.toml"
+
+# Install bat themes
+echo "→ Installing bat themes..."
+mkdir -p "$(bat --config-dir)/themes"
+wget -P "$(bat --config-dir)/themes" https://github.com/catppuccin/bat/raw/main/themes/Catppuccin%20Mocha.tmTheme
+bat cache --build
+
+echo "→ Ghostty: Catppuccin theme is built-in (configured via ghostty/config)"
+
+# Vim setup
+echo "→ Setting up Vim Catppuccin..."
+mkdir -p "$HOME/.vim/pack/catppuccin/start"
+if [[ ! -d "$HOME/.vim/pack/catppuccin/start/vim" ]]; then
+ git clone https://github.com/catppuccin/vim.git "$HOME/.vim/pack/catppuccin/start/vim"
+else
+ echo " Catppuccin vim already installed"
+fi
+
+echo "✅ Catppuccin theme installed!"
+echo ""
+echo "Manual steps:"
+echo " 1. Ghostty: Catppuccin Mocha theme is applied automatically via config symlink"
+echo " 2. Restart your terminal"
diff --git a/theme/starship.toml b/theme/starship.toml
new file mode 100644
index 00000000000..4bbccdd8f42
--- /dev/null
+++ b/theme/starship.toml
@@ -0,0 +1,129 @@
+# Starship Prompt - Catppuccin Mocha Theme
+
+format = """
+[](#cba6f7)\
+$os\
+$username\
+[](bg:#89b4fa fg:#cba6f7)\
+$directory\
+[](fg:#89b4fa bg:#74c7ec)\
+$git_branch\
+$git_status\
+[](fg:#74c7ec bg:#94e2d5)\
+$nodejs\
+$rust\
+$golang\
+$python\
+$ruby\
+[](fg:#94e2d5 bg:#313244)\
+$time\
+[ ](fg:#313244)\
+$line_break$character"""
+
+palette = 'catppuccin_mocha'
+
+[palettes.catppuccin_mocha]
+rosewater = "#f5e0dc"
+flamingo = "#f2cdcd"
+pink = "#f5c2e7"
+mauve = "#cba6f7"
+red = "#f38ba8"
+maroon = "#eba0ac"
+peach = "#fab387"
+yellow = "#f9e2af"
+green = "#a6e3a1"
+teal = "#94e2d5"
+sky = "#89dceb"
+sapphire = "#74c7ec"
+blue = "#89b4fa"
+lavender = "#b4befe"
+text = "#cdd6f4"
+subtext1 = "#bac2de"
+subtext0 = "#a6adc8"
+overlay2 = "#9399b2"
+overlay1 = "#7f849c"
+overlay0 = "#6c7086"
+surface2 = "#585b70"
+surface1 = "#45475a"
+surface0 = "#313244"
+base = "#1e1e2e"
+mantle = "#181825"
+crust = "#11111b"
+
+[os]
+disabled = false
+style = "bg:#cba6f7 fg:#1e1e2e"
+
+[os.symbols]
+Macos = " "
+
+[username]
+show_always = true
+style_user = "bg:#cba6f7 fg:#1e1e2e"
+style_root = "bg:#cba6f7 fg:#1e1e2e"
+format = '[ $user ]($style)'
+
+[directory]
+style = "fg:#1e1e2e bg:#89b4fa"
+format = "[ $path ]($style)"
+truncation_length = 3
+truncation_symbol = "…/"
+
+[directory.substitutions]
+"Documents" = " "
+"Downloads" = " "
+"Music" = " "
+"Pictures" = " "
+"Developer" = " "
+
+[git_branch]
+symbol = ""
+style = "bg:#74c7ec fg:#1e1e2e"
+format = '[ $symbol $branch ]($style)'
+
+[git_status]
+style = "bg:#74c7ec fg:#1e1e2e"
+format = '[$all_status$ahead_behind ]($style)'
+
+[nodejs]
+symbol = ""
+style = "bg:#94e2d5 fg:#1e1e2e"
+format = '[ $symbol ($version) ]($style)'
+
+[rust]
+symbol = ""
+style = "bg:#94e2d5 fg:#1e1e2e"
+format = '[ $symbol ($version) ]($style)'
+
+[golang]
+symbol = ""
+style = "bg:#94e2d5 fg:#1e1e2e"
+format = '[ $symbol ($version) ]($style)'
+
+[python]
+symbol = ""
+style = "bg:#94e2d5 fg:#1e1e2e"
+format = '[ $symbol ($version) ]($style)'
+
+[ruby]
+symbol = ""
+style = "bg:#94e2d5 fg:#1e1e2e"
+format = '[ $symbol ($version) ]($style)'
+
+[time]
+disabled = false
+time_format = "%R"
+style = "bg:#313244 fg:#cdd6f4"
+format = '[ ♥ $time ]($style)'
+
+[line_break]
+disabled = false
+
+[character]
+disabled = false
+success_symbol = '[➜](bold green)'
+error_symbol = '[➜](bold red)'
+vimcmd_symbol = '[](bold green)'
+vimcmd_replace_one_symbol = '[](bold purple)'
+vimcmd_replace_symbol = '[](bold purple)'
+vimcmd_visual_symbol = '[](bold yellow)'
diff --git a/theme/vim-colors.vim b/theme/vim-colors.vim
new file mode 100644
index 00000000000..d0a24e07e71
--- /dev/null
+++ b/theme/vim-colors.vim
@@ -0,0 +1,12 @@
+" Catppuccin Color Scheme for Vim
+" Add this to your .vimrc or source it separately
+
+try
+ set termguicolors
+ colorscheme catppuccin_mocha
+catch
+ " Fallback if catppuccin not installed yet
+ colorscheme desert
+endtry
+
+set background=dark
diff --git a/theme/vscode-settings.json b/theme/vscode-settings.json
new file mode 100644
index 00000000000..d9b7f4a2563
--- /dev/null
+++ b/theme/vscode-settings.json
@@ -0,0 +1,14 @@
+{
+ "workbench.colorTheme": "Catppuccin Mocha",
+ "workbench.preferredDarkColorTheme": "Catppuccin Mocha",
+ "workbench.preferredLightColorTheme": "Catppuccin Latte",
+ "catppuccin.accentColor": "mauve",
+ "editor.fontFamily": "Fira Code",
+ "editor.fontSize": 13,
+ "terminal.integrated.fontFamily": "Fira Code",
+ "terminal.integrated.fontSize": 13,
+ "editor.bracketPairColorization.enabled": true,
+ "editor.guides.bracketPairs": true,
+ "terminal.integrated.cursorStyle": "line",
+ "terminal.integrated.cursorBlinking": true
+}
diff --git a/vim/.spellignore b/vim/.spellignore
new file mode 100644
index 00000000000..8d98f9debde
--- /dev/null
+++ b/vim/.spellignore
@@ -0,0 +1 @@
+.*
diff --git a/vim/.vimrc b/vim/.vimrc
new file mode 100644
index 00000000000..ef64408146b
--- /dev/null
+++ b/vim/.vimrc
@@ -0,0 +1,427 @@
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Maintainer:
+" Amir Salihefendic
+" http://amix.dk - amix@amix.dk
+"
+" Version:
+" 5.0 - 29/05/12 15:43:36
+"
+" Blog_post:
+" http://amix.dk/blog/post/19691#The-ultimate-Vim-configuration-on-Github
+"
+" Awesome_version:
+" Get this config, nice color schemes and lots of plugins!
+"
+" Install the awesome version from:
+"
+" https://github.com/amix/vimrc
+"
+" Syntax_highlighted:
+" http://amix.dk/vim/vimrc.html
+"
+" Raw_version:
+" http://amix.dk/vim/vimrc.txt
+"
+" Sections:
+" -> General
+" -> VIM user interface
+" -> Colors and Fonts
+" -> Files and backups
+" -> Text, tab and indent related
+" -> Visual mode related
+" -> Moving around, tabs and buffers
+" -> Status line
+" -> Editing mappings
+" -> vimgrep searching and cope displaying
+" -> Spell checking
+" -> Misc
+" -> Helper functions
+"
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => General
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Sets how many lines of history VIM has to remember
+set history=500
+
+" Enable filetype plugins
+filetype plugin on
+filetype indent on
+
+" Set to auto read when a file is changed from the outside
+set autoread
+
+" With a map leader it's possible to do extra key combinations
+" like w saves the current file
+let mapleader = ","
+let g:mapleader = ","
+
+" Fast saving
+nmap w :w!
+
+" :W sudo saves the file
+" (useful for handling the permission-denied error)
+command W w !sudo tee % > /dev/null
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => VIM user interface
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Set 7 lines to the cursor - when moving vertically using j/k
+set so=7
+
+" Avoid garbled characters in Chinese language windows OS
+let $LANG='en'
+set langmenu=en
+source $VIMRUNTIME/delmenu.vim
+source $VIMRUNTIME/menu.vim
+
+" Turn on the WiLd menu
+set wildmenu
+
+" Ignore compiled files
+set wildignore=*.o,*~,*.pyc
+if has("win16") || has("win32")
+ set wildignore+=.git\*,.hg\*,.svn\*
+else
+ set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store
+endif
+
+"Always show current position
+set ruler
+
+" Height of the command bar
+set cmdheight=2
+
+" A buffer becomes hidden when it is abandoned
+set hid
+
+" Configure backspace so it acts as it should act
+set backspace=eol,start,indent
+set whichwrap+=<,>,h,l
+
+" Ignore case when searching
+set ignorecase
+
+" When searching try to be smart about cases
+set smartcase
+
+" Highlight search results
+set hlsearch
+
+" Makes search act like search in modern browsers
+set incsearch
+
+" Don't redraw while executing macros (good performance config)
+set lazyredraw
+
+" For regular expressions turn magic on
+set magic
+
+" Show matching brackets when text indicator is over them
+set showmatch
+" How many tenths of a second to blink when matching brackets
+set mat=2
+
+" No annoying sound on errors
+set noerrorbells
+set novisualbell
+set t_vb=
+set tm=500
+
+" Add a bit extra margin to the left
+set foldcolumn=1
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Colors and Fonts
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Enable syntax highlighting
+syntax enable
+
+" Try Catppuccin first, fall back to desert
+try
+ set termguicolors
+ colorscheme catppuccin_mocha
+catch
+ colorscheme desert
+endtry
+
+set background=dark
+
+" Set extra options when running in GUI mode
+if has("gui_running")
+ set guioptions-=T
+ set guioptions-=e
+ set t_Co=256
+ set guitablabel=%M\ %t
+endif
+
+" Set utf8 as standard encoding and en_US as the standard language
+set encoding=utf8
+
+" Use Unix as the standard file type
+set ffs=unix,dos,mac
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Files, backups and undo
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Turn backup off, since most stuff is in SVN, git et.c anyway...
+set nobackup
+set nowb
+set noswapfile
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Text, tab and indent related
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Use spaces instead of tabs
+set expandtab
+
+" Be smart when using tabs ;)
+set smarttab
+
+" 1 tab == 4 spaces
+set shiftwidth=4
+set tabstop=4
+
+" Linebreak on 500 characters
+set lbr
+set tw=500
+
+set ai "Auto indent
+set si "Smart indent
+set wrap "Wrap lines
+
+
+""""""""""""""""""""""""""""""
+" => Visual mode related
+""""""""""""""""""""""""""""""
+" Visual mode pressing * or # searches for the current selection
+" Super useful! From an idea by Michael Naumann
+vnoremap * :call VisualSelection('', '')/=@/
+vnoremap # :call VisualSelection('', '')?=@/
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Moving around, tabs, windows and buffers
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Map to / (search) and Ctrl- to ? (backwards search)
+map /
+map ?
+
+" Disable highlight when is pressed
+map :noh
+
+" Smart way to move between windows
+map j
+map k
+map h
+map l
+
+" Close the current buffer
+map bd :Bclose:tabclosegT
+
+" Close all the buffers
+map ba :bufdo bd
+
+map l :bnext
+map h :bprevious
+
+" Useful mappings for managing tabs
+map tn :tabnew
+map to :tabonly
+map tc :tabclose
+map tm :tabmove
+map t :tabnext
+
+" Let 'tl' toggle between this and the last accessed tab
+let g:lasttab = 1
+nmap tl :exe "tabn ".g:lasttab
+au TabLeave * let g:lasttab = tabpagenr()
+
+
+" Opens a new tab with the current buffer's path
+" Super useful when editing files in the same directory
+map te :tabedit =expand("%:p:h")/
+
+" Switch CWD to the directory of the open buffer
+map cd :cd %:p:h:pwd
+
+" Specify the behavior when switching between buffers
+try
+ set switchbuf=useopen,usetab,newtab
+ set stal=2
+catch
+endtry
+
+" Return to last edit position when opening files (You want this!)
+au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
+
+
+""""""""""""""""""""""""""""""
+" => Status line
+""""""""""""""""""""""""""""""
+" Always show the status line
+set laststatus=2
+
+" Format the status line
+set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ \ Column:\ %c
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Editing mappings
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Remap VIM 0 to first non-blank character
+map 0 ^
+
+" Move a line of text using ALT+[jk] or Command+[jk] on mac
+nmap mz:m+`z
+nmap mz:m-2`z
+vmap :m'>+`mzgv`yo`z
+vmap :m'<-2`>my`
+ nmap
+ vmap
+ vmap
+endif
+
+" Delete trailing white space on save, useful for Python and CoffeeScript ;)
+func! DeleteTrailingWS()
+ exe "normal mz"
+ %s/\s\+$//ge
+ exe "normal `z"
+endfunc
+autocmd BufWrite *.py :call DeleteTrailingWS()
+autocmd BufWrite *.coffee :call DeleteTrailingWS()
+
+" Git commit recommended settings.
+autocmd Filetype gitcommit setlocal spell textwidth=72
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Ag searching and cope displaying
+" requires ag.vim - it's much better than vimgrep/grep
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" When you press gv you Ag after the selected text
+vnoremap gv :call VisualSelection('gv', '')
+
+" Open Ag and put the cursor in the right position
+map g :Ag
+
+" When you press r you can search and replace the selected text
+vnoremap r :call VisualSelection('replace', '')
+
+" Do :help cope if you are unsure what cope is. It's super useful!
+"
+" When you search with Ag, display your results in cope by doing:
+" cc
+"
+" To go to the next search result do:
+" n
+"
+" To go to the previous search results do:
+" p
+"
+map cc :botright cope
+map co ggVGy:tabnew:set syntax=qfpgg
+map n :cn
+map p :cp
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Spell checking
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Pressing ,ss will toggle and untoggle spell checking
+map ss :setlocal spell!
+
+" Shortcuts using
+map sn ]s
+map sp [s
+map sa zg
+map s? z=
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Misc
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Remove the Windows ^M - when the encodings gets messed up
+noremap m mmHmt:%s///ge'tzt'm
+
+" Quickly open a buffer for scribble
+map q :e ~/buffer
+
+" Quickly open a markdown buffer for scribble
+map x :e ~/buffer.md
+
+" Toggle paste mode on and off
+map pp :setlocal paste!
+
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" => Helper functions
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+function! CmdLine(str)
+ exe "menu Foo.Bar :" . a:str
+ emenu Foo.Bar
+ unmenu Foo
+endfunction
+
+function! VisualSelection(direction, extra_filter) range
+ let l:saved_reg = @"
+ execute "normal! vgvy"
+
+ let l:pattern = escape(@", '\\/.*$^~[]')
+ let l:pattern = substitute(l:pattern, "\n$", "", "")
+
+ if a:direction == 'gv'
+ call CmdLine("Ag \"" . l:pattern . "\" " )
+ elseif a:direction == 'replace'
+ call CmdLine("%s" . '/'. l:pattern . '/')
+ endif
+
+ let @/ = l:pattern
+ let @" = l:saved_reg
+endfunction
+
+
+" Returns true if paste mode is enabled
+function! HasPaste()
+ if &paste
+ return 'PASTE MODE '
+ endif
+ return ''
+endfunction
+
+" Don't close window, when deleting a buffer
+command! Bclose call BufcloseCloseIt()
+function! BufcloseCloseIt()
+ let l:currentBufNum = bufnr("%")
+ let l:alternateBufNum = bufnr("#")
+
+ if buflisted(l:alternateBufNum)
+ buffer #
+ else
+ bnext
+ endif
+
+ if bufnr("%") == l:currentBufNum
+ new
+ endif
+
+ if buflisted(l:currentBufNum)
+ execute("bdelete! ".l:currentBufNum)
+ endif
+endfunction
+
+" Make VIM remember position in file after reopen
+" if has("autocmd")
+" au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
+"endif
diff --git a/zed/keymap.json b/zed/keymap.json
new file mode 100644
index 00000000000..127ca4b8710
--- /dev/null
+++ b/zed/keymap.json
@@ -0,0 +1,22 @@
+[
+ {
+ "context": "Terminal",
+ "bindings": {
+ "cmd-]": "terminal_panel::MoveTerminalRight",
+ "cmd-[": "terminal_panel::MoveTerminalLeft"
+ }
+ },
+ {
+ "context": "Terminal",
+ "bindings": {
+ "cmd-d": "workspace::NewTerminal",
+ "cmd-w": "pane::CloseActiveItem"
+ }
+ },
+ {
+ "context": "Workspace",
+ "bindings": {
+ "cmd-k cmd-z": "workspace::ToggleCenteredLayout"
+ }
+ }
+]
diff --git a/zed/settings.json b/zed/settings.json
new file mode 100644
index 00000000000..da125f479f6
--- /dev/null
+++ b/zed/settings.json
@@ -0,0 +1,149 @@
+{
+ "theme": {
+ "mode": "system",
+ "dark": "Catppuccin Mocha",
+ "light": "Catppuccin Latte"
+ },
+ "buffer_font_family": "Fira Code",
+ "buffer_font_size": 13,
+ "buffer_font_features": {
+ "calt": true
+ },
+ "ui_font_family": "Fira Code",
+ "ui_font_size": 14,
+ "tab_size": 2,
+ "hard_tabs": false,
+ "word_wrap": "none",
+ "show_whitespaces": "all",
+ "scrollbar": {
+ "show": "never"
+ },
+ "minimap": {
+ "enabled": false
+ },
+ "scroll_beyond_last_line": "one_page",
+ "autosave": "off",
+ "format_on_save": "on",
+ "auto_indent": "none",
+ "ensure_final_newline_on_save": true,
+ "remove_trailing_whitespace_on_save": true,
+ "restore_on_startup": "last_session",
+ "indent_guides": {
+ "enabled": true,
+ "coloring": "indent_aware"
+ },
+ "auto_close_brackets": "always",
+ "git": {
+ "enabled": true,
+ "git_gutter": "tracked_files",
+ "inline_blame": {
+ "enabled": true,
+ "delay_ms": 600
+ }
+ },
+ "telemetry": {
+ "diagnostics": false,
+ "metrics": false
+ },
+ "terminal": {
+ "font_family": "Fira Code",
+ "font_size": 13,
+ "cursor_shape": "bar",
+ "blinking": "on"
+ },
+ "languages": {
+ "JavaScript": {
+ "tab_size": 2,
+ "format_on_save": "on",
+ "formatter": {
+ "external": {
+ "command": "prettier",
+ "arguments": ["--stdin-filepath", "{buffer_path}"]
+ }
+ }
+ },
+ "TypeScript": {
+ "tab_size": 2,
+ "format_on_save": "on",
+ "formatter": {
+ "external": {
+ "command": "prettier",
+ "arguments": ["--stdin-filepath", "{buffer_path}"]
+ }
+ }
+ },
+ "TSX": {
+ "tab_size": 2,
+ "format_on_save": "on",
+ "formatter": {
+ "external": {
+ "command": "prettier",
+ "arguments": ["--stdin-filepath", "{buffer_path}"]
+ }
+ }
+ },
+ "JSON": {
+ "tab_size": 2,
+ "format_on_save": "on",
+ "formatter": {
+ "external": {
+ "command": "prettier",
+ "arguments": ["--stdin-filepath", "{buffer_path}"]
+ }
+ }
+ },
+ "HTML": {
+ "tab_size": 2,
+ "format_on_save": "on",
+ "formatter": {
+ "external": {
+ "command": "prettier",
+ "arguments": ["--stdin-filepath", "{buffer_path}"]
+ }
+ }
+ },
+ "Markdown": {
+ "tab_size": 2,
+ "format_on_save": "on",
+ "formatter": {
+ "external": {
+ "command": "prettier",
+ "arguments": ["--stdin-filepath", "{buffer_path}"]
+ }
+ }
+ },
+ "YAML": {
+ "tab_size": 2
+ },
+ "Dockerfile": {
+ "tab_size": 2
+ }
+ },
+ "auto_install_extensions": {
+ "catppuccin": true,
+ "prettier": true,
+ "eslint": true,
+ "dockerfile": true,
+ "docker-compose": true,
+ "html": true,
+ "toml": true,
+ "env": true
+ },
+ "features": {
+ "edit_prediction_provider": "none"
+ },
+ "search": {
+ "line_numbers_in_results": true
+ },
+ "project_panel": {
+ "dock": "left",
+ "file_icons": true,
+ "folder_icons": true,
+ "git_status": true,
+ "indent_size": 20,
+ "auto_reveal_entries": true
+ },
+ "collaboration_panel": {
+ "dock": "left"
+ }
+}
diff --git a/zsh/.zshrc b/zsh/.zshrc
new file mode 100644
index 00000000000..2f8f018a80f
--- /dev/null
+++ b/zsh/.zshrc
@@ -0,0 +1,76 @@
+# .zshrc - Modular Zsh configuration for ibarsi
+
+# --- Path & Environment ---
+if [[ $(uname -m) == "arm64" ]]; then
+ export HOMEBREW_PREFIX="/opt/homebrew"
+else
+ export HOMEBREW_PREFIX="/usr/local"
+fi
+export PATH="$HOMEBREW_PREFIX/bin:$HOMEBREW_PREFIX/sbin:$PATH"
+
+# Define dotfiles location
+export DOTFILES="$HOME/dotfiles"
+
+# --- Load Topics ---
+# Load order: path -> everything else -> plugins
+# This finds all *.zsh files in the topic directories and sources them.
+
+# 1. First, load all .path files
+for file in $DOTFILES/**/*.path; do
+ source "$file"
+done
+
+# 2. Load mise (version manager)
+if command -v mise >/dev/null; then
+ eval "$(mise activate zsh)"
+fi
+
+# 3. Load all other .zsh files (except plugins/completion)
+for file in $DOTFILES/**/*.zsh(N); do
+ if [[ "$file" != *"plugins.zsh"* && "$file" != *"completion.zsh"* ]]; then
+ source "$file"
+ fi
+done
+
+# 4. Load legacy bash-style files from system topic
+for file in $DOTFILES/system/.{exports,aliases,functions,extra}; do
+ [ -r "$file" ] && [ -f "$file" ] && source "$file"
+done
+
+# --- Tool Init ---
+# zoxide (better cd)
+if command -v zoxide >/dev/null; then
+ eval "$(zoxide init zsh)"
+fi
+
+# starship (prompt)
+if command -v starship >/dev/null; then
+ eval "$(starship init zsh)"
+fi
+
+# plugins
+source "$DOTFILES/zsh/plugins.zsh"
+
+# --- Zsh Specifics ---
+HISTFILE=~/.zsh_history
+HISTSIZE=10000
+SAVEHIST=10000
+setopt APPEND_HISTORY
+setopt SHARE_HISTORY
+setopt HIST_IGNORE_ALL_DUPS
+setopt HIST_REDUCE_BLANKS
+
+# Completion
+autoload -Uz compinit && compinit
+zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
+
+# Codex CLI completion (safe no-op when codex isn't installed yet)
+if command -v codex >/dev/null; then
+ eval "$(codex completion zsh 2>/dev/null)"
+fi
+
+# Case-insensitive globbing
+setopt nocaseglob
+
+# --- Keybindings ---
+bindkey -e
diff --git a/zsh/aliases.zsh b/zsh/aliases.zsh
new file mode 100644
index 00000000000..05603cbdb0c
--- /dev/null
+++ b/zsh/aliases.zsh
@@ -0,0 +1,14 @@
+# zsh/aliases.zsh
+
+# Navigation
+alias dtf="cd $DOTFILES"
+
+# Reload shell
+alias reload="exec zsh -l"
+
+# Codex CLI
+alias cx="codex"
+alias cxe="codex exec"
+alias cxr="codex resume --last"
+alias cxreview='codex "/review"'
+alias cxup='if command -v brew >/dev/null && brew list --cask codex >/dev/null 2>&1; then brew upgrade --cask codex; else npm i -g @openai/codex@latest; fi'
diff --git a/zsh/plugins.zsh b/zsh/plugins.zsh
new file mode 100644
index 00000000000..2c84e2dfe69
--- /dev/null
+++ b/zsh/plugins.zsh
@@ -0,0 +1,16 @@
+# zsh/plugins.zsh - Zsh Productivity Power-ups
+
+# 1. zsh-autosuggestions
+if [ -d "$HOMEBREW_PREFIX/share/zsh-autosuggestions" ]; then
+ source "$HOMEBREW_PREFIX/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
+fi
+
+# 2. zsh-syntax-highlighting
+if [ -d "$HOMEBREW_PREFIX/share/zsh-syntax-highlighting" ]; then
+ source "$HOMEBREW_PREFIX/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
+fi
+
+# 3. fzf-tab (if installed via brew or manually)
+# Note: Usually requires cloning or a specific brew tap.
+# For now, we'll assume standard fzf integration which brew handles.
+[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh