commit a368fda34daf0e406364cdea00fd984c93f62d03 Author: Noah Masur Date: Wed Jun 3 08:31:58 2020 -0600 reset git history diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bb93325 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +.vim/dirs/* +.vim/.netrwhist +vim/dirs/* +vim/.netrwhist +.ssh/known_hosts +spacemacs.d/.spacemacs.env +*.lock.json diff --git a/autohotkey/RemapCaps.ahk b/autohotkey/RemapCaps.ahk new file mode 100644 index 0000000..c231707 --- /dev/null +++ b/autohotkey/RemapCaps.ahk @@ -0,0 +1,5 @@ +#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. +; #Warn ; Enable warnings to assist with detecting common errors. +SendMode Input ; Recommended for new scripts due to its superior speed and reliability. +SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. +Capslock::Esc diff --git a/bin/calc b/bin/calc new file mode 100755 index 0000000..57b551c --- /dev/null +++ b/bin/calc @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby +# +# Run a quick calculation with Ruby +# +# Usage: calc "1/2" + +class Integer + def /(other) + fdiv(other) + end +end + +puts eval(ARGV.join("")) diff --git a/bin/connect_aws/Dockerfile b/bin/connect_aws/Dockerfile new file mode 100644 index 0000000..1bceb05 --- /dev/null +++ b/bin/connect_aws/Dockerfile @@ -0,0 +1,16 @@ +FROM alpine:latest + +COPY requirements.txt / + +RUN apk update && \ + apk add \ + openssh \ + python \ + py-pip \ + && \ + pip install -r requirements.txt + +COPY connect_cloud.sh / +COPY connect_cloud.py / + +ENTRYPOINT ["/connect_cloud.sh"] diff --git a/bin/connect_aws/connect_cloud.py b/bin/connect_aws/connect_cloud.py new file mode 100755 index 0000000..2b9b4a4 --- /dev/null +++ b/bin/connect_aws/connect_cloud.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python + +"""Connect to Cloud instances""" + +import os +import sys +import argparse +import boto3 + +# Initiate the parser +parser = argparse.ArgumentParser("Type the name of the connection you want") +parser.add_argument('profile', metavar='P', nargs='?', + help='an account to use') +parser.add_argument('environment', metavar='E', nargs='?', + help='an environment to specify') +args = parser.parse_args() + +# Get AWS credentials profile +profile_map = { + 'gs' : { + 'profile': 'ghoststory', + 'prod': 'id_rsa_gstory_prod.pem', + 'dev': 'id_rsa_gstory_prod.pem', + 'username': 'centos', + }, + 'di' : { + 'profile': 't2indies', + 'prod': 'disintegration-prod.pem', + 'dev': 'disintegration-dev.pem', + 'username': 'centos', + }, + 'pd' : { + 'profile': 't2indies', + 'prod': 't2indies-prod.pem', + 'dev': 't2indies-dev.pem', + 'username': 'centos', + }, + 'corp' : { + 'profile': 't2corp', + 'prod': 'take2games-corp.pem', + 'dev': 'take2games-corp.pem', + 'username': 'ec2-user', + }, + 'ksp' : { + 'profile': 'kerbal', + 'prod': 'kerbal_prod_key.pem', + 'dev': 'kerbal_dev_key.pem', + 'username': 'centos', + }, +} +profile_dict = profile_map.get(args.profile) +profile = profile_dict['profile'] + +# Connect to AWS +session = boto3.Session(profile_name=profile) +client = session.client('ec2', verify=False) + +response = client.describe_instances() + +print(len(response['Reservations']), "total instances\n") + +matched_instances = [] +for instance_wrapper in response['Reservations']: + instance = instance_wrapper['Instances'][0] + is_matched_env = False + is_matched_role = False + for tag in instance.get('Tags', []): + if tag['Key'] == "site_env" and args.environment in tag['Value']: + is_matched_env = True + if tag['Key'] == "role" and tag['Value'] == 'host': + is_matched_role = True + if tag['Key'] == "Name": + instance['Name'] = tag['Value'] + if is_matched_env and is_matched_role: + matched_instances.append(instance) + +for instance in matched_instances: + print(instance['Name']) + print(instance['PublicIpAddress']) + print("") + +with open("aws_connect", 'w') as outfile: + outfile.write("ssh-keyscan {} >> ~/.ssh/known_hosts\n".format(matched_instances[0]['PublicIpAddress'])) + outfile.write("ssh -i ~/.ssh/{} {}@{}".format(profile_dict[args.environment], profile_dict['username'], matched_instances[0]['PublicIpAddress'])) +os.chmod("aws_connect", 0o755) diff --git a/bin/connect_aws/connect_cloud.sh b/bin/connect_aws/connect_cloud.sh new file mode 100755 index 0000000..4e1da62 --- /dev/null +++ b/bin/connect_aws/connect_cloud.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +python connect_cloud.py "$@" + +/aws_connect diff --git a/bin/connect_aws/requirements.txt b/bin/connect_aws/requirements.txt new file mode 100644 index 0000000..9494667 --- /dev/null +++ b/bin/connect_aws/requirements.txt @@ -0,0 +1,8 @@ +boto3==1.9.239 +botocore==1.12.239 +docutils==0.15.2 +jmespath==0.9.4 +python-dateutil==2.8.0 +s3transfer==0.2.1 +six==1.12.0 +urllib3==1.25.6 diff --git a/bin/docker_cleanup b/bin/docker_cleanup new file mode 100755 index 0000000..f81bb18 --- /dev/null +++ b/bin/docker_cleanup @@ -0,0 +1,26 @@ +#!/bin/sh + +# Stop all containers +if [ "$(docker ps -a -q)" ]; then + echo "Stopping docker containers..." + docker stop $(docker ps -a -q) +else + echo "No running docker containers." +fi + +# Remove all stopped containers +if [ "$(docker ps -a -q)" ]; then + echo "Removing docker containers..." + docker rm $(docker ps -a -q) +else + echo "No stopped docker containers." +fi + +# Remove all untagged images +if [[ $(docker images | grep "^") ]]; then + docker rmi $(docker images | rg "^" | awk '{print $3}') +else + echo "No untagged docker images." +fi + +echo "Cleaned up docker." diff --git a/bin/emacs_env b/bin/emacs_env new file mode 100755 index 0000000..7ff473f --- /dev/null +++ b/bin/emacs_env @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +function export-emacs { + if [ "$(emacsclient -e t)" != 't' ]; then + return 1 + fi + + for name in "${@}"; do + value=$(eval echo \"\$${name}\") + emacsclient -e "(setenv \"${name}\" \"${value}\")" >/dev/null + done +} + +for i in $(python -c $"import os; [print(k) for k in os.environ.keys()]"); do + export-emacs "$i" +done diff --git a/bin/notify b/bin/notify new file mode 100755 index 0000000..a0e5566 --- /dev/null +++ b/bin/notify @@ -0,0 +1,3 @@ +#!/usr/bin/env ruby + +system %{osascript -e 'display notification "#{ARGV.join(' ')}"'} diff --git a/bin/save_env b/bin/save_env new file mode 100755 index 0000000..5ed6ce8 --- /dev/null +++ b/bin/save_env @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +python -c $"import os; [print(k) for k in os.environ.keys()]" > ~/Document/GitHub/dotfiles/env.txt diff --git a/bin/watchit b/bin/watchit new file mode 100755 index 0000000..020fc9a --- /dev/null +++ b/bin/watchit @@ -0,0 +1,22 @@ +#!/usr/bin/env ruby + +require "digest" + +def compute_sha + contents = Dir["./**/*.rs"].map do |file| + File.read(file) + end.join("\n") + + Digest::MD5.hexdigest(contents) +end + +sha = compute_sha + +loop do + new_sha = compute_sha + if sha != new_sha + sha = new_sha + system "clear && echo '#{'-'*80}' && cargo test" + end + sleep 1 +end diff --git a/bin/youtube b/bin/youtube new file mode 100755 index 0000000..01cfc51 --- /dev/null +++ b/bin/youtube @@ -0,0 +1,25 @@ +#!/usr/bin/env ruby + +require "uri" + +module Clipboard + class << self + def paste + `pbpaste`.chomp + end + end +end + +def parse_params(url) + url.query.split("&").each_with_object({}) do |param, acc| + key, value = *param.split("=", 2) + acc[key] = value + end +end + +url = URI.parse Clipboard.paste +params = parse_params url +id = params.fetch("v") { raise "Probably not a youtube URL" } + +clean_url = "https://www.youtube.com/watch?v=#{id}" +system "(cd ~/Downloads && youtube-dl -f best \"#{clean_url}\")" diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink new file mode 100644 index 0000000..a65d1c1 --- /dev/null +++ b/git/gitconfig.symlink @@ -0,0 +1,12 @@ +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[user] + name = Noah Masur + email = noah.masur@take2games.com +[hub] + host = github.take2games.com +[pager] + branch = false diff --git a/homebrew/Brewfile b/homebrew/Brewfile new file mode 100644 index 0000000..16c1308 --- /dev/null +++ b/homebrew/Brewfile @@ -0,0 +1,61 @@ +tap "homebrew/cask" + +brew "ansible" +brew "emacs-plus" +brew "terraform" +brew "packer" +brew "pyenv" +brew "pyenv-virtualenv" +brew "the_silver_searcher" +brew "ripgrep" +brew "sd" +brew "telnet" +brew "bat" +brew "fd" +brew "exa" +brew "tldr" +brew "wget" +brew "jq" +brew "gpg" +brew "prettyping" +brew "fzf" +brew "httpie" +brew "qrencode" +brew "dos2unix" +brew "trash" +brew "youtube-dl" +brew "zsh-syntax-highlighting" +brew "zsh-autosuggestions" +brew "googler" +brew "ruby" +brew "shellcheck" +brew "xsv" + +# git +# hub +# pulumi +# libmagic +# awscli +# saulpw/vd/visidata +# brew tap weaveworks/tap && brew install weaveworks/tap/eksctl (EKS on AWS) +# fasd (cd) +# glances (top) + +# cask "github-desktop" +# cask "iterm2" +# cask "google-chrome" +# cask "docker" +# cask "slack" +# cask "dash" +# cask "discord" +# cask "postman" +# cask "onepassword" +# cask "steam" +# cask "vlc" +# cask "keybase" +# cask "cyberduck" +# cask "zoomus" +# cask "dropbox" +# cask "calibre" +# cask "drawio" +# cask "skype" diff --git a/iterm/Jellybeans.itermcolors b/iterm/Jellybeans.itermcolors new file mode 100644 index 0000000..51aa2af --- /dev/null +++ b/iterm/Jellybeans.itermcolors @@ -0,0 +1,213 @@ + + + + + Ansi 0 Color + + Blue Component + 0.5725490196078431 + Green Component + 0.5725490196078431 + Red Component + 0.5725490196078431 + + Ansi 1 Color + + Blue Component + 0.45098039215686275 + Green Component + 0.45098039215686275 + Red Component + 0.88627450980392153 + + Ansi 10 Color + + Blue Component + 0.6705882352941176 + Green Component + 0.87058823529411766 + Red Component + 0.74117647058823533 + + Ansi 11 Color + + Blue Component + 0.62745098039215685 + Green Component + 0.86274509803921573 + Red Component + 1 + + Ansi 12 Color + + Blue Component + 0.96470588235294119 + Green Component + 0.84705882352941175 + Red Component + 0.69411764705882351 + + Ansi 13 Color + + Blue Component + 1 + Green Component + 0.85490196078431369 + Red Component + 0.98431372549019602 + + Ansi 14 Color + + Blue Component + 0.6588235294117647 + Green Component + 0.69803921568627447 + Red Component + 0.10196078431372549 + + Ansi 15 Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Ansi 2 Color + + Blue Component + 0.47450980392156861 + Green Component + 0.72549019607843135 + Red Component + 0.58039215686274503 + + Ansi 3 Color + + Blue Component + 0.4823529411764706 + Green Component + 0.72941176470588232 + Red Component + 1 + + Ansi 4 Color + + Blue Component + 0.86274509803921573 + Green Component + 0.74509803921568629 + Red Component + 0.59215686274509804 + + Ansi 5 Color + + Blue Component + 0.98039215686274506 + Green Component + 0.75294117647058822 + Red Component + 0.88235294117647056 + + Ansi 6 Color + + Blue Component + 0.55686274509803924 + Green Component + 0.59607843137254901 + Red Component + 0.0 + + Ansi 7 Color + + Blue Component + 0.87058823529411766 + Green Component + 0.87058823529411766 + Red Component + 0.87058823529411766 + + Ansi 8 Color + + Blue Component + 0.74117647058823533 + Green Component + 0.74117647058823533 + Red Component + 0.74117647058823533 + + Ansi 9 Color + + Blue Component + 0.63137254901960782 + Green Component + 0.63137254901960782 + Red Component + 1 + + Background Color + + Blue Component + 0.070588235294117646 + Green Component + 0.070588235294117646 + Red Component + 0.070588235294117646 + + Bold Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Cursor Color + + Blue Component + 0.37647059559822083 + Green Component + 0.64705878496170044 + Red Component + 1 + + Cursor Text Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Foreground Color + + Blue Component + 0.87058823529411766 + Green Component + 0.87058823529411766 + Red Component + 0.87058823529411766 + + Selected Text Color + + Blue Component + 0.95686274509803915 + Green Component + 0.95686274509803915 + Red Component + 0.95686274509803915 + + Selection Color + + Blue Component + 0.56862745098039214 + Green Component + 0.30588235294117649 + Red Component + 0.27843137254901962 + + + \ No newline at end of file diff --git a/iterm/com.googlecode.iterm2.plist b/iterm/com.googlecode.iterm2.plist new file mode 100644 index 0000000..5281354 --- /dev/null +++ b/iterm/com.googlecode.iterm2.plist @@ -0,0 +1,4748 @@ + + + + + AppleAntiAliasingThreshold + 1 + ApplePressAndHoldEnabled + + AppleScrollAnimationEnabled + 0 + AppleSmoothFixedFontsSizeThreshold + 1 + AppleWindowTabbingMode + manual + Custom Color Presets + + Jellybeans + + Ansi 0 Color + + Blue Component + 0.5725490196078431 + Green Component + 0.5725490196078431 + Red Component + 0.5725490196078431 + + Ansi 1 Color + + Blue Component + 0.45098039215686275 + Green Component + 0.45098039215686275 + Red Component + 0.88627450980392153 + + Ansi 10 Color + + Blue Component + 0.6705882352941176 + Green Component + 0.87058823529411766 + Red Component + 0.74117647058823533 + + Ansi 11 Color + + Blue Component + 0.62745098039215685 + Green Component + 0.86274509803921573 + Red Component + 1 + + Ansi 12 Color + + Blue Component + 0.96470588235294119 + Green Component + 0.84705882352941175 + Red Component + 0.69411764705882351 + + Ansi 13 Color + + Blue Component + 1 + Green Component + 0.85490196078431369 + Red Component + 0.98431372549019602 + + Ansi 14 Color + + Blue Component + 0.6588235294117647 + Green Component + 0.69803921568627447 + Red Component + 0.10196078431372549 + + Ansi 15 Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Ansi 2 Color + + Blue Component + 0.47450980392156861 + Green Component + 0.72549019607843135 + Red Component + 0.58039215686274503 + + Ansi 3 Color + + Blue Component + 0.4823529411764706 + Green Component + 0.72941176470588232 + Red Component + 1 + + Ansi 4 Color + + Blue Component + 0.86274509803921573 + Green Component + 0.74509803921568629 + Red Component + 0.59215686274509804 + + Ansi 5 Color + + Blue Component + 0.98039215686274506 + Green Component + 0.75294117647058822 + Red Component + 0.88235294117647056 + + Ansi 6 Color + + Blue Component + 0.55686274509803924 + Green Component + 0.59607843137254901 + Red Component + 0.0 + + Ansi 7 Color + + Blue Component + 0.87058823529411766 + Green Component + 0.87058823529411766 + Red Component + 0.87058823529411766 + + Ansi 8 Color + + Blue Component + 0.74117647058823533 + Green Component + 0.74117647058823533 + Red Component + 0.74117647058823533 + + Ansi 9 Color + + Blue Component + 0.63137254901960782 + Green Component + 0.63137254901960782 + Red Component + 1 + + Background Color + + Blue Component + 0.070588235294117646 + Green Component + 0.070588235294117646 + Red Component + 0.070588235294117646 + + Bold Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Cursor Color + + Blue Component + 0.37647059559822083 + Green Component + 0.64705878496170044 + Red Component + 1 + + Cursor Text Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Foreground Color + + Blue Component + 0.87058823529411766 + Green Component + 0.87058823529411766 + Red Component + 0.87058823529411766 + + Selected Text Color + + Blue Component + 0.95686274509803915 + Green Component + 0.95686274509803915 + Red Component + 0.95686274509803915 + + Selection Color + + Blue Component + 0.56862745098039214 + Green Component + 0.30588235294117649 + Red Component + 0.27843137254901962 + + + spacecamp + + Ansi 0 Color + + Alpha Component + 1 + Blue Component + 0.10978535562753677 + Color Space + sRGB + Green Component + 0.10981263965368271 + Red Component + 0.10979025810956955 + + Ansi 1 Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.32688599824905396 + Red Component + 1 + + Ansi 10 Color + + Alpha Component + 1 + Blue Component + 0.28450572490692139 + Color Space + sRGB + Green Component + 1 + Red Component + 0.4697338342666626 + + Ansi 11 Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.90753436088562012 + Red Component + 1 + + Ansi 12 Color + + Alpha Component + 1 + Blue Component + 1 + Color Space + sRGB + Green Component + 0.82030314207077026 + Red Component + 0.61648064851760864 + + Ansi 13 Color + + Alpha Component + 1 + Blue Component + 1 + Color Space + sRGB + Green Component + 0.5081368088722229 + Red Component + 0.9187614917755127 + + Ansi 14 Color + + Alpha Component + 1 + Blue Component + 0.23144149780273438 + Color Space + sRGB + Green Component + 1 + Red Component + 0.87038058042526245 + + Ansi 15 Color + + Alpha Component + 1 + Blue Component + 0.99987989664077759 + Color Space + sRGB + Green Component + 1 + Red Component + 0.99990183115005493 + + Ansi 2 Color + + Alpha Component + 1 + Blue Component + 0.0096632586792111397 + Color Space + sRGB + Green Component + 0.74616020917892456 + Red Component + 0.048738323152065277 + + Ansi 3 Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.8380851149559021 + Red Component + 0.95794016122817993 + + Ansi 4 Color + + Alpha Component + 1 + Blue Component + 0.89296025037765503 + Color Space + sRGB + Green Component + 0.66526913642883301 + Red Component + 0.54863226413726807 + + Ansi 5 Color + + Alpha Component + 1 + Blue Component + 0.92806118726730347 + Color Space + sRGB + Green Component + 0.41038158535957336 + Red Component + 0.87022703886032104 + + Ansi 6 Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.99367803335189819 + Red Component + 0.80733984708786011 + + Ansi 7 Color + + Alpha Component + 1 + Blue Component + 0.97243362665176392 + Color Space + sRGB + Green Component + 0.97260349988937378 + Red Component + 0.97246414422988892 + + Ansi 8 Color + + Alpha Component + 1 + Blue Component + 0.20123869180679321 + Color Space + sRGB + Green Component + 0.20128452777862549 + Red Component + 0.20124402642250061 + + Ansi 9 Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.42693620920181274 + Red Component + 1 + + Background Color + + Alpha Component + 1 + Blue Component + 0.10978535562753677 + Color Space + sRGB + Green Component + 0.10981263965368271 + Red Component + 0.10979025810956955 + + Badge Color + + Alpha Component + 0.5 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.1491314172744751 + Red Component + 1 + + Bold Color + + Alpha Component + 1 + Blue Component + 1 + Color Space + sRGB + Green Component + 1 + Red Component + 0.99999600648880005 + + Cursor Color + + Alpha Component + 1 + Blue Component + 0.97243362665176392 + Color Space + sRGB + Green Component + 0.97260349988937378 + Red Component + 0.97246414422988892 + + Cursor Guide Color + + Alpha Component + 0.25 + Blue Component + 1 + Color Space + sRGB + Green Component + 0.9268307089805603 + Red Component + 0.70213186740875244 + + Cursor Text Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.0 + Red Component + 0.0 + + Foreground Color + + Alpha Component + 1 + Blue Component + 1 + Color Space + sRGB + Green Component + 1 + Red Component + 0.99999600648880005 + + Link Color + + Alpha Component + 1 + Blue Component + 0.87577205896377563 + Color Space + sRGB + Green Component + 0.66935491561889648 + Red Component + 0.56702101230621338 + + Selected Text Color + + Alpha Component + 1 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.0 + Red Component + 0.0 + + Selection Color + + Alpha Component + 1 + Blue Component + 0.87048417329788208 + Color Space + sRGB + Green Component + 0.87063723802566528 + Red Component + 0.87051182985305786 + + Tab Color + + Alpha Component + 1 + Blue Component + 0.068835996091365814 + Color Space + sRGB + Green Component + 0.1000501736998558 + Red Component + 0.74730008840560913 + + + + Default Bookmark Guid + 59B0BABD-32F0-4160-A076-C545EA0C9DD2 + HapticFeedbackForEsc + + HotkeyMigratedFromSingleToMulti + + LeftOption + 2 + LoadPrefsFromCustomFolder + + NSNavLastRootDirectory + ~/Downloads + NSNavPanelExpandedSizeForOpenMode + {799, 448} + NSQuotedKeystrokeBinding + + NSRepeatCountBinding + + NSScrollAnimationEnabled + + NSScrollViewShouldScrollUnderTitlebar + + NSSplitView Subview Frames NSColorPanelSplitView + + 0.000000, 0.000000, 224.000000, 258.000000, NO, NO + 0.000000, 259.000000, 224.000000, 48.000000, NO, NO + + NSTableView Columns v2 KeyBingingTable + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVVBcnJheYABrgsMEx4fICEiIyQqNDU2VSRu + dWxs0g0ODxJaTlMub2JqZWN0c1YkY2xhc3OiEBGAAoAKgA3TFA0OFRkdV05TLmtleXOj + FhcYgAOABIAFoxobHIAGgAeACIAJWklkZW50aWZpZXJVV2lkdGhWSGlkZGVuUTAjQGjA + AAAAAAAI0iUmJyhaJGNsYXNzbmFtZVgkY2xhc3Nlc1xOU0RpY3Rpb25hcnmiJylYTlNP + YmplY3TTFA0OKy8doxYXGIADgASABaMwMRyAC4AMgAiACVExI0B0oZ2yLQ5W0iUmNzhe + TlNNdXRhYmxlQXJyYXmjNzkpV05TQXJyYXkACAARABoAJAApADIANwBJAEwAUgBUAGMA + aQBuAHkAgACDAIUAhwCJAJAAmACcAJ4AoACiAKYAqACqAKwArgC5AL8AxgDIANEA0gDX + AOIA6wD4APsBBAELAQ8BEQETARUBGQEbAR0BHwEhASMBLAExAUABRAAAAAAAAAIBAAAA + AAAAADoAAAAAAAAAAAAAAAAAAAFM + + NSTableView Sort Ordering v2 KeyBingingTable + + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS + AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVVBcnJheYABowsMEVUkbnVsbNINDg8QWk5T + Lm9iamVjdHNWJGNsYXNzoIAC0hITFBVaJGNsYXNzbmFtZVgkY2xhc3Nlc15OU011dGFi + bGVBcnJheaMUFhdXTlNBcnJheVhOU09iamVjdAgRGiQpMjdJTFJUWF5jbnV2eH2IkaCk + rAAAAAAAAAEBAAAAAAAAABgAAAAAAAAAAAAAAAAAAAC1 + + NSTableView Supports v2 KeyBingingTable + + NSToolbar Configuration com.apple.NSColorPanel + + TB Is Shown + 1 + + NSWindow Frame NSColorPanel + 1126 -914 224 275 1126 -1050 1680 1027 + NSWindow Frame NSNavPanelAutosaveName + 560 560 799 448 0 0 1920 1177 + NSWindow Frame SUUpdateAlert + 2570 588 620 392 1920 0 1920 1177 + NSWindow Frame iTerm Window 0 + 435 200 1310 943 0 0 1920 1177 + NSWindow Frame iTerm Window 1 + 341 175 1310 927 0 0 1920 1177 + NeverWarnAboutShortLivedSessions_59B0BABD-32F0-4160-A076-C545EA0C9DD2 + + NeverWarnAboutShortLivedSessions_59B0BABD-32F0-4160-A076-C545EA0C9DD2_selection + 0 + New Bookmarks + + + ASCII Anti Aliased + + Ambiguous Double Width + + Ansi 0 Color + + Blue Component + 0.0 + Green Component + 0.0 + Red Component + 0.0 + + Ansi 1 Color + + Blue Component + 0.0 + Green Component + 0.0 + Red Component + 0.73333334922790527 + + Ansi 10 Color + + Blue Component + 0.3333333432674408 + Green Component + 1 + Red Component + 0.3333333432674408 + + Ansi 11 Color + + Blue Component + 0.3333333432674408 + Green Component + 1 + Red Component + 1 + + Ansi 12 Color + + Blue Component + 1 + Green Component + 0.3333333432674408 + Red Component + 0.3333333432674408 + + Ansi 13 Color + + Blue Component + 1 + Green Component + 0.3333333432674408 + Red Component + 1 + + Ansi 14 Color + + Blue Component + 1 + Green Component + 1 + Red Component + 0.3333333432674408 + + Ansi 15 Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Ansi 2 Color + + Blue Component + 0.0 + Green Component + 0.73333334922790527 + Red Component + 0.0 + + Ansi 3 Color + + Blue Component + 0.0 + Green Component + 0.73333334922790527 + Red Component + 0.73333334922790527 + + Ansi 4 Color + + Blue Component + 0.73333334922790527 + Green Component + 0.0 + Red Component + 0.0 + + Ansi 5 Color + + Blue Component + 0.73333334922790527 + Green Component + 0.0 + Red Component + 0.73333334922790527 + + Ansi 6 Color + + Blue Component + 0.73333334922790527 + Green Component + 0.73333334922790527 + Red Component + 0.0 + + Ansi 7 Color + + Blue Component + 0.73333334922790527 + Green Component + 0.73333334922790527 + Red Component + 0.73333334922790527 + + Ansi 8 Color + + Blue Component + 0.3333333432674408 + Green Component + 0.3333333432674408 + Red Component + 0.3333333432674408 + + Ansi 9 Color + + Blue Component + 0.3333333432674408 + Green Component + 0.3333333432674408 + Red Component + 1 + + BM Growl + + Background Color + + Blue Component + 0.0 + Green Component + 0.0 + Red Component + 0.0 + + Background Image Location + + Blinking Cursor + + Blur + + Bold Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Character Encoding + 4 + Close Sessions On End + + Columns + 80 + Command + + Cursor Color + + Blue Component + 0.73333334922790527 + Green Component + 0.73333334922790527 + Red Component + 0.73333334922790527 + + Cursor Text Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Custom Command + No + Custom Directory + No + Default Bookmark + No + Description + Default + Disable Window Resizing + + Flashing Bell + + Foreground Color + + Blue Component + 0.73333334922790527 + Green Component + 0.73333334922790527 + Red Component + 0.73333334922790527 + + Guid + 5BBB1FED-3703-4B36-9A5F-4EA2B28A5664 + Horizontal Spacing + 1 + Idle Code + 0 + Jobs to Ignore + + rlogin + ssh + slogin + telnet + + Keyboard Map + + 0x2d-0x40000 + + Action + 11 + Text + 0x1f + + 0x32-0x40000 + + Action + 11 + Text + 0x00 + + 0x33-0x40000 + + Action + 11 + Text + 0x1b + + 0x34-0x40000 + + Action + 11 + Text + 0x1c + + 0x35-0x40000 + + Action + 11 + Text + 0x1d + + 0x36-0x40000 + + Action + 11 + Text + 0x1e + + 0x37-0x40000 + + Action + 11 + Text + 0x1f + + 0x38-0x40000 + + Action + 11 + Text + 0x7f + + 0xf700-0x220000 + + Action + 10 + Text + [1;2A + + 0xf700-0x240000 + + Action + 10 + Text + [1;5A + + 0xf700-0x260000 + + Action + 10 + Text + [1;6A + + 0xf700-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x41 + + 0xf701-0x220000 + + Action + 10 + Text + [1;2B + + 0xf701-0x240000 + + Action + 10 + Text + [1;5B + + 0xf701-0x260000 + + Action + 10 + Text + [1;6B + + 0xf701-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x42 + + 0xf702-0x220000 + + Action + 10 + Text + [1;2D + + 0xf702-0x240000 + + Action + 10 + Text + [1;5D + + 0xf702-0x260000 + + Action + 10 + Text + [1;6D + + 0xf702-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x44 + + 0xf703-0x220000 + + Action + 10 + Text + [1;2C + + 0xf703-0x240000 + + Action + 10 + Text + [1;5C + + 0xf703-0x260000 + + Action + 10 + Text + [1;6C + + 0xf703-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x43 + + 0xf704-0x20000 + + Action + 10 + Text + [1;2P + + 0xf705-0x20000 + + Action + 10 + Text + [1;2Q + + 0xf706-0x20000 + + Action + 10 + Text + [1;2R + + 0xf707-0x20000 + + Action + 10 + Text + [1;2S + + 0xf708-0x20000 + + Action + 10 + Text + [15;2~ + + 0xf709-0x20000 + + Action + 10 + Text + [17;2~ + + 0xf70a-0x20000 + + Action + 10 + Text + [18;2~ + + 0xf70b-0x20000 + + Action + 10 + Text + [19;2~ + + 0xf70c-0x20000 + + Action + 10 + Text + [20;2~ + + 0xf70d-0x20000 + + Action + 10 + Text + [21;2~ + + 0xf70e-0x20000 + + Action + 10 + Text + [23;2~ + + 0xf70f-0x20000 + + Action + 10 + Text + [24;2~ + + 0xf729-0x20000 + + Action + 10 + Text + [1;2H + + 0xf729-0x40000 + + Action + 10 + Text + [1;5H + + 0xf72b-0x20000 + + Action + 10 + Text + [1;2F + + 0xf72b-0x40000 + + Action + 10 + Text + [1;5F + + + Mouse Reporting + + Name + Default + Non Ascii Font + Monaco 12 + Non-ASCII Anti Aliased + + Normal Font + Monaco 12 + Option Key Sends + 0 + Prompt Before Closing 2 + + Right Option Key Sends + 0 + Rows + 25 + Screen + -1 + Scrollback Lines + 5000 + Selected Text Color + + Blue Component + 0.0 + Green Component + 0.0 + Red Component + 0.0 + + Selection Color + + Blue Component + 1 + Green Component + 0.8353000283241272 + Red Component + 0.70980000495910645 + + Send Code When Idle + + Shortcut + + Show Mark Indicators + + Silence Bell + + Sync Title + + Tags + + Terminal Type + xterm-256color + Transparency + 0.0 + Unlimited Scrollback + + Use Bold Font + + Use Bright Bold + + Use Italic Font + + Use Non-ASCII Font + + Vertical Spacing + 1 + Visual Bell + + Window Type + 0 + Working Directory + /Users/noah.masur + + + ASCII Anti Aliased + + Ambiguous Double Width + + Ansi 0 Color + + Alpha Component + 1 + Blue Component + 0.13725490196078433 + Color Space + sRGB + Green Component + 0.10980392156862745 + Red Component + 0.0 + + Ansi 1 Color + + Blue Component + 0.18431372549019609 + Color Space + sRGB + Green Component + 0.19607843137254902 + Red Component + 0.86274509803921573 + + Ansi 10 Color + + Alpha Component + 1 + Blue Component + 0.30570842025515788 + Color Space + sRGB + Green Component + 0.535614013671875 + Red Component + 0.23440468637272716 + + Ansi 11 Color + + Alpha Component + 1 + Blue Component + 0.2457266952842474 + Color Space + sRGB + Green Component + 0.58197861767055414 + Red Component + 0.689971923828125 + + Ansi 12 Color + + Alpha Component + 1 + Blue Component + 0.59112548828125 + Color Space + sRGB + Green Component + 0.55617305940311224 + Red Component + 0.25907741393893957 + + Ansi 13 Color + + Blue Component + 0.7686274509803922 + Color Space + sRGB + Green Component + 0.44313725490196076 + Red Component + 0.42352941176470588 + + Ansi 14 Color + + Alpha Component + 1 + Blue Component + 0.800811767578125 + Color Space + sRGB + Green Component + 0.800811767578125 + Red Component + 0.57007250050082803 + + Ansi 15 Color + + Blue Component + 0.8901960784313725 + Color Space + sRGB + Green Component + 0.96470588235294119 + Red Component + 0.99215686274509807 + + Ansi 2 Color + + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.59999999999999998 + Red Component + 0.52156862745098043 + + Ansi 3 Color + + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.53725490196078429 + Red Component + 0.70980392156862748 + + Ansi 4 Color + + Blue Component + 0.82352941176470584 + Color Space + sRGB + Green Component + 0.54509803921568623 + Red Component + 0.14901960784313725 + + Ansi 5 Color + + Blue Component + 0.50980392156862742 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.82745098039215681 + + Ansi 6 Color + + Blue Component + 0.59607843137254901 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.16470588235294117 + + Ansi 7 Color + + Blue Component + 0.83529411764705885 + Color Space + sRGB + Green Component + 0.90980392156862744 + Red Component + 0.93333333333333335 + + Ansi 8 Color + + Alpha Component + 1 + Blue Component + 0.172760009765625 + Color Space + sRGB + Green Component + 0.13864401461051398 + Red Component + 0.0021800617687404156 + + Ansi 9 Color + + Blue Component + 0.086274509803921567 + Color Space + sRGB + Green Component + 0.29411764705882354 + Red Component + 0.79607843137254897 + + BM Growl + + Background Color + + Alpha Component + 1 + Blue Component + 0.13725490196078433 + Color Space + sRGB + Green Component + 0.10980392156862745 + Red Component + 0.0 + + Background Image Location + + Badge Color + + Alpha Component + 0.5 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.1491314172744751 + Red Component + 1 + + Blinking Cursor + + Blur + + Bold Color + + Blue Component + 0.63137254901960782 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.57647058823529407 + + Bound Hosts + + Character Encoding + 4 + Close Sessions On End + + Columns + 140 + Command + + Cursor Boost + 0.0 + Cursor Color + + Blue Component + 0.58823529411764708 + Color Space + sRGB + Green Component + 0.58039215686274515 + Red Component + 0.51372549019607838 + + Cursor Guide Color + + Alpha Component + 0.25 + Blue Component + 1 + Color Space + sRGB + Green Component + 0.9268307089805603 + Red Component + 0.70213186740875244 + + Cursor Text Color + + Blue Component + 0.25882352941176473 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.027450980392156862 + + Cursor Type + 1 + Custom Command + No + Custom Directory + No + Default Bookmark + No + Description + Default + Disable Window Resizing + + Flashing Bell + + Foreground Color + + Blue Component + 0.58823529411764708 + Color Space + sRGB + Green Component + 0.58039215686274515 + Red Component + 0.51372549019607838 + + Guid + A19CBF78-C868-4900-B311-336D2D5616D1 + Horizontal Spacing + 1 + Icon + 0 + Idle Code + 0 + Initial Use Transparency + + Jobs to Ignore + + rlogin + ssh + slogin + telnet + + Keyboard Map + + 0x2d-0x40000 + + Action + 11 + Text + 0x1f + + 0x32-0x40000 + + Action + 11 + Text + 0x00 + + 0x33-0x40000 + + Action + 11 + Text + 0x1b + + 0x34-0x40000 + + Action + 11 + Text + 0x1c + + 0x35-0x40000 + + Action + 11 + Text + 0x1d + + 0x36-0x40000 + + Action + 11 + Text + 0x1e + + 0x37-0x40000 + + Action + 11 + Text + 0x1f + + 0x38-0x40000 + + Action + 11 + Text + 0x7f + + 0x68-0x80000 + + Action + 10 + Text + b + + 0x6c-0x80000 + + Action + 10 + Text + f + + 0xf700-0x220000 + + Action + 10 + Text + [1;2A + + 0xf700-0x240000 + + Action + 10 + Text + [1;5A + + 0xf700-0x260000 + + Action + 10 + Text + [1;6A + + 0xf700-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x41 + + 0xf701-0x220000 + + Action + 10 + Text + [1;2B + + 0xf701-0x240000 + + Action + 10 + Text + [1;5B + + 0xf701-0x260000 + + Action + 10 + Text + [1;6B + + 0xf701-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x42 + + 0xf702-0x220000 + + Action + 10 + Text + [1;2D + + 0xf702-0x240000 + + Action + 10 + Text + [1;5D + + 0xf702-0x260000 + + Action + 10 + Text + [1;6D + + 0xf702-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x44 + + 0xf703-0x220000 + + Action + 10 + Text + [1;2C + + 0xf703-0x240000 + + Action + 10 + Text + [1;5C + + 0xf703-0x260000 + + Action + 10 + Text + [1;6C + + 0xf703-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x43 + + 0xf704-0x20000 + + Action + 10 + Text + [1;2P + + 0xf705-0x20000 + + Action + 10 + Text + [1;2Q + + 0xf706-0x20000 + + Action + 10 + Text + [1;2R + + 0xf707-0x20000 + + Action + 10 + Text + [1;2S + + 0xf708-0x20000 + + Action + 10 + Text + [15;2~ + + 0xf709-0x20000 + + Action + 10 + Text + [17;2~ + + 0xf70a-0x20000 + + Action + 10 + Text + [18;2~ + + 0xf70b-0x20000 + + Action + 10 + Text + [19;2~ + + 0xf70c-0x20000 + + Action + 10 + Text + [20;2~ + + 0xf70d-0x20000 + + Action + 10 + Text + [21;2~ + + 0xf70e-0x20000 + + Action + 10 + Text + [23;2~ + + 0xf70f-0x20000 + + Action + 10 + Text + [24;2~ + + 0xf729-0x20000 + + Action + 10 + Text + [1;2H + + 0xf729-0x40000 + + Action + 10 + Text + [1;5H + + 0xf72b-0x20000 + + Action + 10 + Text + [1;2F + + 0xf72b-0x40000 + + Action + 10 + Text + [1;5F + + + Link Color + + Alpha Component + 1 + Blue Component + 0.73423302173614502 + Color Space + sRGB + Green Component + 0.35916060209274292 + Red Component + 0.0 + + Minimum Contrast + 0.56445312499999989 + Mouse Reporting + + Name + Noah + Non Ascii Font + Monaco 12 + Non-ASCII Anti Aliased + + Normal Font + Monaco 12 + Option Key Sends + 2 + Prompt Before Closing 2 + + Right Option Key Sends + 0 + Rows + 45 + Screen + -1 + Scrollback Lines + 5000 + Selected Text Color + + Blue Component + 0.63137254901960782 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.57647058823529407 + + Selection Color + + Blue Component + 0.25882352941176473 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.027450980392156862 + + Send Code When Idle + + Shortcut + + Show Mark Indicators + + Show Status Bar + + Silence Bell + + Status Bar Layout + + advanced configuration + + algorithm + 0 + font + .AppleSystemUIFont 12 + + components + + + class + iTermStatusBarClockComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + format + M/dd h:mm + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarGitComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + iTermStatusBarGitComponentPollingIntervalKey + 2 + maxwidth + +infinity + minwidth + 0 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarCPUUtilizationComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarMemoryUtilizationComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + + + + + class + iTermStatusBarNetworkUtilizationComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + + + + + class + iTermStatusBarSearchFieldComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + + Sync Title + + Tags + + Terminal Type + xterm-256color + Title Components + 386 + Transparency + 0.0 + Triggers + + Unlimited Scrollback + + Use Bold Font + + Use Bright Bold + + Use Cursor Guide + + Use Italic Font + + Use Non-ASCII Font + + Vertical Spacing + 1 + Visual Bell + + Window Type + 0 + Working Directory + /Users/noah.masur + + + ASCII Anti Aliased + + Ambiguous Double Width + + Ansi 0 Color + + Blue Component + 0.25882352941176473 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.027450980392156862 + + Ansi 1 Color + + Blue Component + 0.18431372549019609 + Color Space + sRGB + Green Component + 0.19607843137254902 + Red Component + 0.86274509803921573 + + Ansi 10 Color + + Blue Component + 0.45882352941176469 + Color Space + sRGB + Green Component + 0.43137254901960786 + Red Component + 0.34509803921568627 + + Ansi 11 Color + + Blue Component + 0.51372549019607838 + Color Space + sRGB + Green Component + 0.4823529411764706 + Red Component + 0.396078431372549 + + Ansi 12 Color + + Blue Component + 0.58823529411764708 + Color Space + sRGB + Green Component + 0.58039215686274515 + Red Component + 0.51372549019607838 + + Ansi 13 Color + + Blue Component + 0.7686274509803922 + Color Space + sRGB + Green Component + 0.44313725490196076 + Red Component + 0.42352941176470588 + + Ansi 14 Color + + Blue Component + 0.63137254901960782 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.57647058823529407 + + Ansi 15 Color + + Blue Component + 0.8901960784313725 + Color Space + sRGB + Green Component + 0.96470588235294119 + Red Component + 0.99215686274509807 + + Ansi 2 Color + + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.59999999999999998 + Red Component + 0.52156862745098043 + + Ansi 3 Color + + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.53725490196078429 + Red Component + 0.70980392156862748 + + Ansi 4 Color + + Blue Component + 0.82352941176470584 + Color Space + sRGB + Green Component + 0.54509803921568623 + Red Component + 0.14901960784313725 + + Ansi 5 Color + + Blue Component + 0.50980392156862742 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.82745098039215681 + + Ansi 6 Color + + Blue Component + 0.59607843137254901 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.16470588235294117 + + Ansi 7 Color + + Blue Component + 0.83529411764705885 + Color Space + sRGB + Green Component + 0.90980392156862744 + Red Component + 0.93333333333333335 + + Ansi 8 Color + + Blue Component + 0.21176470588235294 + Color Space + sRGB + Green Component + 0.16862745098039217 + Red Component + 0.0 + + Ansi 9 Color + + Blue Component + 0.086274509803921567 + Color Space + sRGB + Green Component + 0.29411764705882354 + Red Component + 0.79607843137254897 + + BM Growl + + Background Color + + Alpha Component + 1 + Blue Component + 0.10980392156862745 + Color Space + sRGB + Green Component + 0.10980392156862745 + Red Component + 0.10980392156862745 + + Background Image Location + + Badge Color + + Alpha Component + 0.5 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.1491314172744751 + Red Component + 1 + + Blinking Cursor + + Blur + + Bold Color + + Blue Component + 0.63137254901960782 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.57647058823529407 + + Bound Hosts + + Character Encoding + 4 + Close Sessions On End + + Columns + 140 + Command + /bin/zsh + Cursor Boost + 0.0 + Cursor Color + + Alpha Component + 1 + Blue Component + 0.50980392156862742 + Color Space + sRGB + Green Component + 0.22745098039215686 + Red Component + 0.81960784313725488 + + Cursor Guide Color + + Alpha Component + 0.25 + Blue Component + 1 + Color Space + sRGB + Green Component + 0.9268307089805603 + Red Component + 0.70213186740875244 + + Cursor Text Color + + Blue Component + 0.25882352941176473 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.027450980392156862 + + Cursor Type + 2 + Custom Command + Yes + Custom Directory + No + Default Bookmark + No + Description + Default + Disable Window Resizing + + Flashing Bell + + Foreground Color + + Blue Component + 0.58823529411764708 + Color Space + sRGB + Green Component + 0.58039215686274515 + Red Component + 0.51372549019607838 + + Guid + 3D595675-EF51-4981-8C35-B83C420607C3 + Horizontal Spacing + 1 + Icon + 0 + Idle Code + 0 + Initial Text + + Initial Use Transparency + + Jobs to Ignore + + rlogin + ssh + slogin + telnet + + Keyboard Map + + 0x2d-0x40000 + + Action + 11 + Text + 0x1f + + 0x32-0x40000 + + Action + 11 + Text + 0x00 + + 0x33-0x40000 + + Action + 11 + Text + 0x1b + + 0x34-0x40000 + + Action + 11 + Text + 0x1c + + 0x35-0x40000 + + Action + 11 + Text + 0x1d + + 0x36-0x40000 + + Action + 11 + Text + 0x1e + + 0x37-0x40000 + + Action + 11 + Text + 0x1f + + 0x38-0x40000 + + Action + 11 + Text + 0x7f + + 0x68-0x80000 + + Action + 10 + Text + b + + 0x6c-0x80000 + + Action + 10 + Text + f + + 0xf700-0x220000 + + Action + 10 + Text + [1;2A + + 0xf700-0x240000 + + Action + 10 + Text + [1;5A + + 0xf700-0x260000 + + Action + 10 + Text + [1;6A + + 0xf700-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x41 + + 0xf701-0x220000 + + Action + 10 + Text + [1;2B + + 0xf701-0x240000 + + Action + 10 + Text + [1;5B + + 0xf701-0x260000 + + Action + 10 + Text + [1;6B + + 0xf701-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x42 + + 0xf702-0x220000 + + Action + 10 + Text + [1;2D + + 0xf702-0x240000 + + Action + 10 + Text + [1;5D + + 0xf702-0x260000 + + Action + 10 + Text + [1;6D + + 0xf702-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x44 + + 0xf703-0x220000 + + Action + 10 + Text + [1;2C + + 0xf703-0x240000 + + Action + 10 + Text + [1;5C + + 0xf703-0x260000 + + Action + 10 + Text + [1;6C + + 0xf703-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x43 + + 0xf704-0x20000 + + Action + 10 + Text + [1;2P + + 0xf705-0x20000 + + Action + 10 + Text + [1;2Q + + 0xf706-0x20000 + + Action + 10 + Text + [1;2R + + 0xf707-0x20000 + + Action + 10 + Text + [1;2S + + 0xf708-0x20000 + + Action + 10 + Text + [15;2~ + + 0xf709-0x20000 + + Action + 10 + Text + [17;2~ + + 0xf70a-0x20000 + + Action + 10 + Text + [18;2~ + + 0xf70b-0x20000 + + Action + 10 + Text + [19;2~ + + 0xf70c-0x20000 + + Action + 10 + Text + [20;2~ + + 0xf70d-0x20000 + + Action + 10 + Text + [21;2~ + + 0xf70e-0x20000 + + Action + 10 + Text + [23;2~ + + 0xf70f-0x20000 + + Action + 10 + Text + [24;2~ + + 0xf729-0x20000 + + Action + 10 + Text + [1;2H + + 0xf729-0x40000 + + Action + 10 + Text + [1;5H + + 0xf72b-0x20000 + + Action + 10 + Text + [1;2F + + 0xf72b-0x40000 + + Action + 10 + Text + [1;5F + + + Link Color + + Alpha Component + 1 + Blue Component + 0.73423302173614502 + Color Space + sRGB + Green Component + 0.35916060209274292 + Red Component + 0.0 + + Minimum Contrast + 0.56445312499999989 + Mouse Reporting + + Name + Zsh + Non Ascii Font + Monaco 12 + Non-ASCII Anti Aliased + + Normal Font + SourceCodeProForPowerline-Regular 13 + Option Key Sends + 2 + Prompt Before Closing 2 + + Right Option Key Sends + 0 + Rows + 45 + Screen + -1 + Scrollback Lines + 5000 + Selected Text Color + + Blue Component + 0.63137254901960782 + Color Space + sRGB + Green Component + 0.63137254901960782 + Red Component + 0.57647058823529407 + + Selection Color + + Blue Component + 0.25882352941176473 + Color Space + sRGB + Green Component + 0.21176470588235294 + Red Component + 0.027450980392156862 + + Send Code When Idle + + Shortcut + Z + Show Mark Indicators + + Show Status Bar + + Silence Bell + + Status Bar Layout + + advanced configuration + + algorithm + 0 + font + .AppleSystemUIFont 12 + + components + + + class + iTermStatusBarClockComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + format + M/dd h:mm + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarGitComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + iTermStatusBarGitComponentPollingIntervalKey + 2 + maxwidth + +infinity + minwidth + 0 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarCPUUtilizationComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarMemoryUtilizationComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarNetworkUtilizationComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarSearchFieldComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + + Sync Title + + Tags + + Terminal Type + xterm-256color + Title Components + 386 + Transparency + 0.0 + Triggers + + Unlimited Scrollback + + Use Bold Font + + Use Bright Bold + + Use Cursor Guide + + Use Italic Font + + Use Non-ASCII Font + + Vertical Spacing + 1 + Visual Bell + + Window Type + 0 + Working Directory + /Users/noah.masur + + + ASCII Anti Aliased + + ASCII Ligatures + + Ambiguous Double Width + + Ansi 0 Color + + Blue Component + 0.5725490196078431 + Green Component + 0.5725490196078431 + Red Component + 0.5725490196078431 + + Ansi 1 Color + + Blue Component + 0.45098039215686275 + Green Component + 0.45098039215686275 + Red Component + 0.88627450980392153 + + Ansi 10 Color + + Blue Component + 0.6705882352941176 + Green Component + 0.87058823529411766 + Red Component + 0.74117647058823533 + + Ansi 11 Color + + Blue Component + 0.62745098039215685 + Green Component + 0.86274509803921573 + Red Component + 1 + + Ansi 12 Color + + Blue Component + 0.96470588235294119 + Green Component + 0.84705882352941175 + Red Component + 0.69411764705882351 + + Ansi 13 Color + + Blue Component + 1 + Green Component + 0.85490196078431369 + Red Component + 0.98431372549019602 + + Ansi 14 Color + + Alpha Component + 1 + Blue Component + 0.19103567581623793 + Color Space + sRGB + Green Component + 0.46661376953125 + Red Component + 0.39111742533160321 + + Ansi 15 Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Ansi 2 Color + + Blue Component + 0.47450980392156861 + Green Component + 0.72549019607843135 + Red Component + 0.58039215686274503 + + Ansi 3 Color + + Blue Component + 0.4823529411764706 + Green Component + 0.72941176470588232 + Red Component + 1 + + Ansi 4 Color + + Blue Component + 0.86274509803921573 + Green Component + 0.74509803921568629 + Red Component + 0.59215686274509804 + + Ansi 5 Color + + Blue Component + 0.98039215686274506 + Green Component + 0.75294117647058822 + Red Component + 0.88235294117647056 + + Ansi 6 Color + + Blue Component + 0.55686274509803924 + Green Component + 0.59607843137254901 + Red Component + 0.0 + + Ansi 7 Color + + Blue Component + 0.87058823529411766 + Green Component + 0.87058823529411766 + Red Component + 0.87058823529411766 + + Ansi 8 Color + + Blue Component + 0.74117647058823533 + Green Component + 0.74117647058823533 + Red Component + 0.74117647058823533 + + Ansi 9 Color + + Blue Component + 0.63137254901960782 + Green Component + 0.63137254901960782 + Red Component + 1 + + BM Growl + + Background Color + + Blue Component + 0.070588235294117646 + Green Component + 0.070588235294117646 + Red Component + 0.070588235294117646 + + Background Image Location + + Badge Color + + Alpha Component + 0.5 + Blue Component + 0.0 + Color Space + sRGB + Green Component + 0.1491314172744751 + Red Component + 1 + + Badge Text + + Blinking Cursor + + Blur + + Bold Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Bound Hosts + + Character Encoding + 4 + Close Sessions On End + + Columns + 140 + Command + /bin/zsh + Cursor Boost + 0.0 + Cursor Color + + Blue Component + 0.37647059559822083 + Green Component + 0.64705878496170044 + Red Component + 1 + + Cursor Guide Color + + Alpha Component + 0.25 + Blue Component + 1 + Color Space + sRGB + Green Component + 0.9268307089805603 + Red Component + 0.70213186740875244 + + Cursor Text Color + + Blue Component + 1 + Green Component + 1 + Red Component + 1 + + Cursor Type + 1 + Custom Command + Yes + Custom Directory + No + Default Bookmark + No + Description + Default + Disable Window Resizing + + Draw Powerline Glyphs + + Flashing Bell + + Foreground Color + + Blue Component + 0.87058823529411766 + Green Component + 0.87058823529411766 + Red Component + 0.87058823529411766 + + Guid + 59B0BABD-32F0-4160-A076-C545EA0C9DD2 + Has Hotkey + + Horizontal Spacing + 1 + Icon + 1 + Idle Code + 0 + Initial Text + + Initial Use Transparency + + Jobs to Ignore + + rlogin + ssh + slogin + telnet + + Keyboard Map + + 0x2d-0x40000 + + Action + 11 + Text + 0x1f + + 0x32-0x40000 + + Action + 11 + Text + 0x00 + + 0x33-0x40000 + + Action + 11 + Text + 0x1b + + 0x34-0x40000 + + Action + 11 + Text + 0x1c + + 0x35-0x40000 + + Action + 11 + Text + 0x1d + + 0x36-0x40000 + + Action + 11 + Text + 0x1e + + 0x37-0x40000 + + Action + 11 + Text + 0x1f + + 0x38-0x40000 + + Action + 11 + Text + 0x7f + + 0x68-0x80000 + + Action + 10 + Text + b + + 0x6c-0x80000 + + Action + 10 + Text + f + + 0xf700-0x220000 + + Action + 10 + Text + [1;2A + + 0xf700-0x240000 + + Action + 10 + Text + [1;5A + + 0xf700-0x260000 + + Action + 10 + Text + [1;6A + + 0xf700-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x41 + + 0xf701-0x220000 + + Action + 10 + Text + [1;2B + + 0xf701-0x240000 + + Action + 10 + Text + [1;5B + + 0xf701-0x260000 + + Action + 10 + Text + [1;6B + + 0xf701-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x42 + + 0xf702-0x220000 + + Action + 10 + Text + [1;2D + + 0xf702-0x240000 + + Action + 10 + Text + [1;5D + + 0xf702-0x260000 + + Action + 10 + Text + [1;6D + + 0xf702-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x44 + + 0xf703-0x220000 + + Action + 10 + Text + [1;2C + + 0xf703-0x240000 + + Action + 10 + Text + [1;5C + + 0xf703-0x260000 + + Action + 10 + Text + [1;6C + + 0xf703-0x280000 + + Action + 11 + Text + 0x1b 0x1b 0x5b 0x43 + + 0xf704-0x20000 + + Action + 10 + Text + [1;2P + + 0xf705-0x20000 + + Action + 10 + Text + [1;2Q + + 0xf706-0x20000 + + Action + 10 + Text + [1;2R + + 0xf707-0x20000 + + Action + 10 + Text + [1;2S + + 0xf708-0x20000 + + Action + 10 + Text + [15;2~ + + 0xf709-0x20000 + + Action + 10 + Text + [17;2~ + + 0xf70a-0x20000 + + Action + 10 + Text + [18;2~ + + 0xf70b-0x20000 + + Action + 10 + Text + [19;2~ + + 0xf70c-0x20000 + + Action + 10 + Text + [20;2~ + + 0xf70d-0x20000 + + Action + 10 + Text + [21;2~ + + 0xf70e-0x20000 + + Action + 10 + Text + [23;2~ + + 0xf70f-0x20000 + + Action + 10 + Text + [24;2~ + + 0xf729-0x20000 + + Action + 10 + Text + [1;2H + + 0xf729-0x40000 + + Action + 10 + Text + [1;5H + + 0xf72b-0x20000 + + Action + 10 + Text + [1;2F + + 0xf72b-0x40000 + + Action + 10 + Text + [1;5F + + + Link Color + + Alpha Component + 1 + Blue Component + 0.73423302173614502 + Color Space + sRGB + Green Component + 0.35916060209274292 + Red Component + 0.0 + + Minimum Contrast + 0.56445312499999989 + Mouse Reporting + + Name + Zsh Fancy + Non Ascii Font + Monaco 12 + Non-ASCII Anti Aliased + + Normal Font + FiraMonoForPowerline-Regular 15 + Option Key Sends + 2 + Prompt Before Closing 2 + + Right Option Key Sends + 0 + Rows + 45 + Screen + -1 + Scrollback Lines + 5000 + Selected Text Color + + Blue Component + 0.95686274509803915 + Green Component + 0.95686274509803915 + Red Component + 0.95686274509803915 + + Selection Color + + Blue Component + 0.56862745098039214 + Green Component + 0.30588235294117649 + Red Component + 0.27843137254901962 + + Send Code When Idle + + Shortcut + + Show Mark Indicators + + Show Status Bar + + Silence Bell + + Status Bar Layout + + advanced configuration + + algorithm + 0 + font + .AppleSystemUIFont 12 + + components + + + class + iTermStatusBarCPUUtilizationComponent + configuration + + knobs + + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarMemoryUtilizationComponent + configuration + + knobs + + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarNetworkUtilizationComponent + configuration + + knobs + + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + class + iTermStatusBarSearchFieldComponent + configuration + + knobs + + base: compression resistance + 1 + base: priority + 5 + + layout advanced configuration dictionary value + + algorithm + 0 + font + .AppleSystemUIFont 12 + + + + + + Sync Title + + Tags + + Terminal Type + xterm-256color + Thin Strokes + 4 + Title Components + 1 + Transparency + 0.0 + Triggers + + Unlimited Scrollback + + Use Bold Font + + Use Bright Bold + + Use Cursor Guide + + Use Italic Font + + Use Non-ASCII Font + + Vertical Spacing + 1 + Visual Bell + + Window Type + 0 + Working Directory + /Users/noah.masur + + + NoSyncAllAppVersions + + 3.3.6 + 3.3.8 + 3.3.3 + 3.3.5 + 3.3.7 + 3.3.9 + 3.3.2 + 3.3.4 + + NoSyncBFPRecents + + Fira Mono for Powerline + + NoSyncCommandHistoryHasEverBeenUsed + + NoSyncFrame_SharedPreferences + + screenFrame + {{0, 0}, {1920, 1200}} + topLeft + {873, 914} + + NoSyncInstallUtilitiesPackage + + NoSyncInstallUtilitiesPackage_selection + 0 + NoSyncInstallationId + 461D0886-A3A2-44AD-84EC-BED561CB702D + NoSyncLastTipTime + 599358748.53944695 + NoSyncLaunchExperienceControllerRunCount + 136 + NoSyncNeverRemindPrefsChangesLostForFile + + NoSyncNeverRemindPrefsChangesLostForFile_selection + 0 + NoSyncNextAnnoyanceTime + 589238757.20710695 + NoSyncOnboardingWindowHasBeenShown + + NoSyncPermissionToShowTip + + NoSyncRecordedVariables + + 0 + + + isTerminal + + name + + nonterminalContext + 0 + + + 1 + + + isTerminal + + name + presentationName + nonterminalContext + 0 + + + isTerminal + + name + tmuxRole + nonterminalContext + 0 + + + isTerminal + + name + lastCommand + nonterminalContext + 0 + + + isTerminal + + name + profileName + nonterminalContext + 0 + + + isTerminal + + name + termid + nonterminalContext + 0 + + + isTerminal + + name + id + nonterminalContext + 0 + + + isTerminal + + name + jobName + nonterminalContext + 0 + + + isTerminal + + name + columns + nonterminalContext + 0 + + + isTerminal + + name + tab.tmuxWindowTitle + nonterminalContext + 0 + + + isTerminal + + name + hostname + nonterminalContext + 0 + + + isTerminal + + name + tmuxClientName + nonterminalContext + 0 + + + isTerminal + + name + path + nonterminalContext + 0 + + + isTerminal + + name + triggerName + nonterminalContext + 0 + + + isTerminal + + name + terminalIconName + nonterminalContext + 0 + + + isTerminal + + name + tmuxWindowPane + nonterminalContext + 0 + + + isTerminal + + name + tmuxStatusRight + nonterminalContext + 0 + + + isTerminal + + name + mouseReportingMode + nonterminalContext + 0 + + + isTerminal + + name + iterm2 + nonterminalContext + 4 + + + isTerminal + + name + name + nonterminalContext + 0 + + + isTerminal + + name + tmuxPaneTitle + nonterminalContext + 0 + + + isTerminal + + name + rows + nonterminalContext + 0 + + + isTerminal + + name + username + nonterminalContext + 0 + + + isTerminal + + name + tty + nonterminalContext + 0 + + + isTerminal + + name + autoLogId + nonterminalContext + 0 + + + isTerminal + + name + badge + nonterminalContext + 0 + + + isTerminal + + name + tab.tmuxWindowName + nonterminalContext + 0 + + + isTerminal + + name + tab + nonterminalContext + 2 + + + isTerminal + + name + tmuxStatusLeft + nonterminalContext + 0 + + + isTerminal + + name + autoNameFormat + nonterminalContext + 0 + + + isTerminal + + name + autoName + nonterminalContext + 0 + + + isTerminal + + name + terminalWindowName + nonterminalContext + 0 + + + isTerminal + + name + creationTimeString + nonterminalContext + 0 + + + isTerminal + + name + commandLine + nonterminalContext + 0 + + + isTerminal + + name + jobPid + nonterminalContext + 0 + + + isTerminal + + name + pid + nonterminalContext + 0 + + + 16 + + + isTerminal + + name + currentTab.currentSession.presentationName + nonterminalContext + 0 + + + isTerminal + + name + currentTab.iterm2.localhostName + nonterminalContext + 0 + + + isTerminal + + name + style + nonterminalContext + 0 + + + isTerminal + + name + frame + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.pid + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.termid + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.terminalIconName + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.terminalWindowName + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.lastCommand + nonterminalContext + 0 + + + isTerminal + + name + currentTab + nonterminalContext + 2 + + + isTerminal + + name + currentTab.currentSession + nonterminalContext + 0 + + + isTerminal + + name + currentTab.window + nonterminalContext + 0 + + + isTerminal + + name + id + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.name + nonterminalContext + 0 + + + isTerminal + + name + titleOverride + nonterminalContext + 0 + + + isTerminal + + name + number + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.path + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.commandLine + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.hostname + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.tty + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.username + nonterminalContext + 0 + + + isTerminal + + name + iterm2 + nonterminalContext + 4 + + + isTerminal + + name + titleOverrideFormat + nonterminalContext + 0 + + + isTerminal + + name + currentTab.currentSession.jobName + nonterminalContext + 0 + + + 2 + + + isTerminal + + name + currentSession + nonterminalContext + 0 + + + isTerminal + + name + currentSession.terminalIconName + nonterminalContext + 0 + + + isTerminal + + name + currentSession.commandLine + nonterminalContext + 0 + + + isTerminal + + name + title + nonterminalContext + 1 + + + isTerminal + + name + tmuxWindowTitle + nonterminalContext + 0 + + + isTerminal + + name + title + nonterminalContext + 0 + + + isTerminal + + name + currentSession.presentationName + nonterminalContext + 0 + + + isTerminal + + name + iterm2.localhostName + nonterminalContext + 0 + + + isTerminal + + name + currentSession.jobPid + nonterminalContext + 0 + + + isTerminal + + name + tmuxWindowName + nonterminalContext + 0 + + + isTerminal + + name + window + nonterminalContext + 16 + + + isTerminal + + name + currentSession.tty + nonterminalContext + 0 + + + isTerminal + + name + currentSession.jobName + nonterminalContext + 0 + + + isTerminal + + name + currentSession.name + nonterminalContext + 0 + + + isTerminal + + name + window + nonterminalContext + 0 + + + isTerminal + + name + currentSession.lastCommand + nonterminalContext + 0 + + + isTerminal + + name + id + nonterminalContext + 0 + + + isTerminal + + name + titleOverride + nonterminalContext + 0 + + + isTerminal + + name + currentSession.username + nonterminalContext + 0 + + + isTerminal + + name + currentSession.path + nonterminalContext + 0 + + + isTerminal + + name + currentSession.termid + nonterminalContext + 0 + + + isTerminal + + name + iterm2 + nonterminalContext + 4 + + + isTerminal + + name + titleOverrideFormat + nonterminalContext + 0 + + + isTerminal + + name + currentSession.hostname + nonterminalContext + 0 + + + isTerminal + + name + currentSession.terminalWindowName + nonterminalContext + 0 + + + isTerminal + + name + currentSession.pid + nonterminalContext + 0 + + + isTerminal + + name + currentSession + nonterminalContext + 1 + + + isTerminal + + name + tmuxWindow + nonterminalContext + 0 + + + 4 + + + isTerminal + + name + pid + nonterminalContext + 0 + + + isTerminal + + name + localhostName + nonterminalContext + 0 + + + isTerminal + + name + effectiveTheme + nonterminalContext + 0 + + + + NoSyncSuppressDownloadConfirmation + + NoSyncSuppressDownloadConfirmation_selection + 0 + NoSyncTipOfTheDayEligibilityBeganTime + 588902746.48526895 + NoSyncTipsToNotShow + + 0030 + 0023 + 0016 + 0009 + 0059 + 0066 + 0073 + 0002 + 0045 + 0038 + 0052 + 0017 + 0031 + 0024 + 0067 + 0074 + 0010 + 0046 + 0003 + 0039 + 0053 + 0060 + 0025 + 0018 + 0032 + 0068 + 0011 + 0047 + 0004 + 0054 + 0061 + 0033 + 0026 + 0019 + 0040 + 0069 + 0076 + 0012 + 0048 + 0005 + 0055 + 0062 + 0041 + 0034 + 0027 + 0077 + 0013 + 0049 + 0006 + 0020 + 0056 + 0063 + 0070 + 0042 + 0035 + 0028 + 0021 + 0014 + 0007 + 0057 + 0064 + 0071 + 0000 + 0029 + 0050 + 0043 + 0036 + 0022 + 0015 + 0008 + 0058 + 0065 + 0072 + 0001 + 0037 + 000 + 0044 + 0051 + 0078 + + NoSyncToolbeltProportions + + proportions + + + heightAsFraction + 0.11380145278450363 + name + Paste History + + + heightAsFraction + 0.056900726392251813 + name + Notes + + + heightAsFraction + 0.82929782082324455 + name + Recent Directories + + + + OpenTmuxWindowsIn + 0 + PointerActions + + Button,1,1,, + + Action + kContextMenuPointerAction + + Button,2,1,, + + Action + kPasteFromClipboardPointerAction + + Gesture,ThreeFingerSwipeDown,, + + Action + kPrevWindowPointerAction + + Gesture,ThreeFingerSwipeLeft,, + + Action + kPrevTabPointerAction + + Gesture,ThreeFingerSwipeRight,, + + Action + kNextTabPointerAction + + Gesture,ThreeFingerSwipeUp,, + + Action + kNextWindowPointerAction + + + PrefsCustomFolder + /Users/noah.masur/Documents/GitHub/dotfiles/iterm + PromptOnQuit + + QuitWhenAllWindowsClosed + + SUAutomaticallyUpdate + + SUEnableAutomaticChecks + + SUFeedAlternateAppNameKey + iTerm + SUFeedURL + https://iterm2.com/appcasts/final_new.xml?shard=59 + SUHasLaunchedBefore + + SULastCheckTime + 2020-05-14T17:47:29Z + SUSendProfileInfo + + SUUpdateRelaunchingMarker + + SavePasteHistory + + Selection Respects Soft Boundaries + + SeparateWindowTitlePerTab + + SoundForEsc + + TabStyleWithAutomaticOption + 5 + TerminalMargin + 25 + TerminalVMargin + 25 + ToolbeltTools + + Paste History + Notes + Recent Directories + + UseBorder + + VisualIndicatorForEsc + + WindowNumber + + findMode_iTerm + 0 + iTerm Version + 3.3.9 + kCPKSelectionViewPreferredModeKey + 0 + kCPKSelectionViewShowHSBTextFieldsKey + + + diff --git a/iterm/imgcat b/iterm/imgcat new file mode 100755 index 0000000..15a1245 --- /dev/null +++ b/iterm/imgcat @@ -0,0 +1,153 @@ +#!/bin/bash + +# tmux requires unrecognized OSC sequences to be wrapped with DCS tmux; +# ST, and for all ESCs in to be replaced with ESC ESC. It +# only accepts ESC backslash for ST. We use TERM instead of TMUX because TERM +# gets passed through ssh. +function print_osc() { + if [[ $TERM == screen* ]] ; then + printf "\033Ptmux;\033\033]" + else + printf "\033]" + fi +} + +# More of the tmux workaround described above. +function print_st() { + if [[ $TERM == screen* ]] ; then + printf "\a\033\\" + else + printf "\a" + fi +} + +function load_version() { + if [ -z ${IMGCAT_BASE64_VERSION+x} ]; then + export IMGCAT_BASE64_VERSION=$(base64 --version 2>&1) + fi +} + +function b64_encode() { + load_version + if [[ "$IMGCAT_BASE64_VERSION" =~ GNU ]]; then + # Disable line wrap + base64 -w0 + else + base64 + fi +} + +function b64_decode() { + load_version + if [[ "$IMGCAT_BASE64_VERSION" =~ fourmilab ]]; then + BASE64ARG=-d + elif [[ "$IMGCAT_BASE64_VERSION" =~ GNU ]]; then + BASE64ARG=-di + else + BASE64ARG=-D + fi + base64 $BASE64ARG +} + +# print_image filename inline base64contents print_filename +# filename: Filename to convey to client +# inline: 0 or 1 +# base64contents: Base64-encoded contents +# print_filename: If non-empty, print the filename +# before outputting the image +function print_image() { + print_osc + printf '1337;File=' + if [[ -n "$1" ]]; then + printf 'name='`printf "%s" "$1" | b64_encode`";" + fi + + printf "%s" "$3" | b64_decode | wc -c | awk '{printf "size=%d",$1}' + printf ";inline=$2" + printf ":" + printf "%s" "$3" + print_st + printf '\n' + if [[ -n "$4" ]]; then + echo $1 + fi +} + +function error() { + echo "ERROR: $*" 1>&2 +} + +function show_help() { + echo "Usage: imgcat [-p] filename ..." 1>& 2 + echo " or: cat filename | imgcat" 1>& 2 +} + +function check_dependency() { + if ! (builtin command -V "$1" > /dev/null 2>& 1); then + echo "imgcat: missing dependency: can't find $1" 1>& 2 + exit 1 + fi +} + +## Main + +if [ -t 0 ]; then + has_stdin=f +else + has_stdin=t +fi + +# Show help if no arguments and no stdin. +if [ $has_stdin = f -a $# -eq 0 ]; then + show_help + exit +fi + +check_dependency awk +check_dependency base64 +check_dependency wc + +# Look for command line flags. +while [ $# -gt 0 ]; do + case "$1" in + -h|--h|--help) + show_help + exit + ;; + -p|--p|--print) + print_filename=1 + ;; + -u|--u|--url) + check_dependency curl + encoded_image=$(curl -s "$2" | b64_encode) || (error "No such file or url $2"; exit 2) + has_stdin=f + print_image "$2" 1 "$encoded_image" "$print_filename" + set -- ${@:1:1} "-u" ${@:3} + if [ "$#" -eq 2 ]; then + exit + fi + ;; + -*) + error "Unknown option flag: $1" + show_help + exit 1 + ;; + *) + if [ -r "$1" ] ; then + has_stdin=f + print_image "$1" 1 "$(b64_encode < "$1")" "$print_filename" + else + error "imgcat: $1: No such file or directory" + exit 2 + fi + ;; + esac + shift +done + +# Read and print stdin +if [ $has_stdin = t ]; then + print_image "" 1 "$(cat | b64_encode)" "" +fi + +exit 0 diff --git a/python/boto/requirements.txt b/python/boto/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/python/ipython/requirements.txt b/python/ipython/requirements.txt new file mode 100644 index 0000000..2a72694 --- /dev/null +++ b/python/ipython/requirements.txt @@ -0,0 +1,21 @@ +appnope==0.1.0 +backcall==0.1.0 +certifi==2019.9.11 +chardet==3.0.4 +decorator==4.4.0 +idna==2.8 +ipython==7.8.0 +ipython-genutils==0.2.0 +jedi==0.15.1 +parso==0.5.1 +pexpect==4.7.0 +pickleshare==0.7.5 +prompt-toolkit==2.0.9 +ptyprocess==0.6.0 +Pygments==2.4.2 +python-dotenv==0.10.3 +requests==2.22.0 +six==1.12.0 +traitlets==4.3.2 +urllib3==1.25.6 +wcwidth==0.1.7 diff --git a/scripts/bootstrap b/scripts/bootstrap new file mode 100755 index 0000000..6898038 --- /dev/null +++ b/scripts/bootstrap @@ -0,0 +1,94 @@ +#!/bin/sh + +DOTS=$(dirname "$0")/.. +cd "$DOTS" || (echo "Directory not found: $DOTS"; exit 1) +DOTS="$PWD" + +check_for_zsh() { + if ! (echo "$SHELL" | grep zsh > /dev/null) + then + echo "Switch to using zsh before continuing" + echo "" + echo "MacOS Instructions:" + echo "System Preferences > Users & Groups > Unlock" + echo "Right-click on user, Advanced Options..." + echo "Login shell: /bin/zsh" + exit 1 + fi + + echo "zsh ✓" +} + +check_for_ohmyzsh() { + if [ ! -d ~/.oh-my-zsh ] + then + echo "oh-my-zsh ✕" + echo "" + echo "Install oh-my-zsh before continuing" + echo "You can run the script: install_ohmyzsh" + echo "" + exit 1 + fi + + echo "oh-my-zsh ✓" +} + +install_xcode() { + if [ "$(uname)" = "Darwin" ] + then + if ! (xcode-select --version > /dev/null 2>&1) + then + xcode-select --install + fi + echo "xcode ✓" + fi +} + +install_homebrew() { + if ! (which /usr/local/bin/brew > /dev/null) + then + printf "homebrew ✕\n\n" + printf "\ninstalling homebrew..." + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + echo "" + fi + + echo "homebrew ✓" +} + +install_brews() { + brewfile=$DOTS/homebrew/Brewfile + if ! (/usr/local/bin/brew bundle check --file "$brewfile" > /dev/null) + then + /usr/local/bin/brew bundle --file "$brewfile" + fi + + echo "brews installed ✓" +} + +install_spacemacs() { + emacsdir=~/.emacs.d + if ! (git -C "$emacsdir" pull > /dev/null 2>&1) + then + git clone https://github.com/syl20bnr/spacemacs "$emacsdir" + fi + + echo "spacemacs ✓" +} + +printf "\nbootstrapping...\n\n" +check_for_zsh +check_for_ohmyzsh +install_xcode +install_homebrew +install_brews +install_spacemacs +("$DOTS/scripts/setup_symlinks") + +echo "" +echo "consider running other scripts:" +echo " - configure_macos" +echo " - setup_keybase" +echo " - install_python" +echo " - install_rust" +echo "" diff --git a/scripts/configure_macos b/scripts/configure_macos new file mode 100755 index 0000000..86f657e --- /dev/null +++ b/scripts/configure_macos @@ -0,0 +1,103 @@ +#!/bin/sh + +echo "Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)" +defaults write NSGlobalDomain AppleKeyboardUIMode -int 3 + +# echo "Enable subpixel font rendering on non-Apple LCDs" +# defaults write NSGlobalDomain AppleFontSmoothing -int 2 + +# echo "Automatically show and hide the dock" +# defaults write com.apple.dock autohide -bool true + +echo "Make Dock icons of hidden applications translucent" +defaults write com.apple.dock showhidden -bool true + +# echo "Show all filename extensions in Finder" +# defaults write NSGlobalDomain AppleShowAllExtensions -bool true + +echo "Use current directory as default search scope in Finder" +defaults write com.apple.finder FXDefaultSearchScope -string "SCcf" + +echo "Expand save panel by default" +defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true + +echo "Expand print panel by default" +defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true + +echo "Disable the \"Are you sure you want to open this application?\" dialog" +defaults write com.apple.LaunchServices LSQuarantine -bool false + +echo "Enable highlight hover effect for the grid view of a stack (Dock)" +defaults write com.apple.dock mouse-over-hilte-stack -bool true + +echo "Enable spring loading for all Dock items" +defaults write enable-spring-load-actions-on-all-items -bool true + +echo "Disable press-and-hold for keys in favor of key repeat" +defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false +defaults write -g ApplePressAndHoldEnabled -bool false + +echo "Set a blazingly fast keyboard repeat rate" +defaults write NSGlobalDomain KeyRepeat -int 2 + +echo "Set a shorter Delay until key repeat" +defaults write NSGlobalDomain InitialKeyRepeat -int 12 + +echo "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 + +echo "Avoid creating .DS_Store files on network volumes" +defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true + +echo "Disable the warning when changing a file extension" +defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false + +# echo "Enable snap-to-grid for desktop icons" +# /usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist + +echo "Disable the warning before emptying the Trash" +defaults write com.apple.finder WarnOnEmptyTrash -bool false + +# echo "Enable tap to click (Trackpad)" +# defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true + +echo "Enable Safari’s debug menu" +defaults write com.apple.Safari IncludeInternalDebugMenu -bool true + +echo "Make Safari’s search banners default to Contains instead of Starts With" +defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false + +echo "Add a context menu item for showing the Web Inspector in web views" +defaults write NSGlobalDomain WebKitDeveloperExtras -bool true + +# echo "Only use UTF-8 in Terminal.app" +# defaults write com.apple.terminal StringEncodings -array 4 + +# echo "Make ⌘ + F focus the search input in iTunes" +# defaults write com.apple.iTunes NSUserKeyEquivalents -dict-add "Target Search Field" "@F" + +# Noah Prefs +echo "Enable dock magnification" +defaults write com.apple.dock magnification -bool true + +echo "Set dock size" +defaults write com.apple.dock largesize -int 48 +defaults write com.apple.dock tilesize -int 44 + +# echo "Allow apps from anywhere" +# sudo spctl --master-disable + +# --- + +echo "Reset Launchpad" +# [ -e ~/Library/Application\ Support/Dock/*.db ] && rm ~/Library/Application\ Support/Dock/*.db +rm ~/Library/Application\ Support/Dock/*.db + +echo "Show the ~/Library folder" +chflags nohidden ~/Library + +# Clean up +echo "Kill affected applications" +for app in Safari Finder Dock Mail SystemUIServer; do killall "$app" >/dev/null 2>&1; done diff --git a/scripts/install_ohmyzsh b/scripts/install_ohmyzsh new file mode 100755 index 0000000..1fec0ae --- /dev/null +++ b/scripts/install_ohmyzsh @@ -0,0 +1,14 @@ +#!/bin/sh + +install_ohmyzsh() { + if [ ! -d ~/.oh-my-zsh ] + then + printf "\ninstalling oh my zsh...\nremember to restart terminal afterwards\n\n" + sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" + echo "" + fi + + echo "installed ✓" +} + +install_ohmyzsh diff --git a/scripts/install_python b/scripts/install_python new file mode 100755 index 0000000..28700b1 --- /dev/null +++ b/scripts/install_python @@ -0,0 +1,53 @@ +#!/bin/sh + +PYTHON_VERSION=3.8.2 +DOTS=$(dirname "$0")/.. +cd "$DOTS" || (echo "Directory not found: $DOTS"; exit 1) +DOTS="$PWD" + +check_for_pyenv() { + if ! (which pyenv > /dev/null) + then + echo "" + echo "pyenv not found" + if ! (/usr/local/bin/brew list | grep pyenv > /dev/null) + then + echo "pyenv not installed, run: bootstrap" + echo "" + else + echo "pyenv is installed, run: setup_symlinks (and restart)" + echo "" + fi + exit 1 + fi + echo "pyenv ✓" +} + +setup_python() { + /usr/local/bin/pyenv install $PYTHON_VERSION --skip-existing + /usr/local/bin/pyenv global $PYTHON_VERSION + + echo "python $PYTHON_VERSION ✓" +} + +setup_python_envs() { + for dir in "$DOTS"/python/*/ + do + dir=${dir%*/} + envname=$(basename "$dir") + if ! (/usr/local/bin/pyenv versions | grep -w "$envname" > /dev/null) + then + /usr/local/bin/pyenv virtualenv "$PYTHON_VERSION" "$envname" > /dev/null + fi + # shellcheck source=/dev/null + . "$HOME/.pyenv/versions/$envname/bin/activate" + pip install --upgrade pip > /dev/null + pip install -r "$dir/requirements.txt" > /dev/null + deactivate + echo " - venv: $envname ✓" + done +} + +check_for_pyenv +setup_python +setup_python_envs diff --git a/scripts/install_rust b/scripts/install_rust new file mode 100755 index 0000000..cf0a3ac --- /dev/null +++ b/scripts/install_rust @@ -0,0 +1,39 @@ +#!/bin/sh + +install_rust() { + if ! (which ~/.cargo/bin/rustup > /dev/null) + then + echo "installing rustup" + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + fi + + echo "rustup ✓" +} + +update_rust() { + ~/.cargo/bin/rustup update > /dev/null 2>&1 + rust_version=$(~/.cargo/bin/rustc --version | awk '{print $2}') + + echo "latest rust: $rust_version ✓" +} + +download_rust_analyzer() { + if ! (which rust-analyzer > /dev/null) + then + echo "downloading rust analyzer" + rust_analyzer_bin=/usr/local/bin/rust-analyzer + curl -L https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-mac -o $rust_analyzer_bin + chmod +x $rust_analyzer_bin + fi + + echo "rust-analyzer ✓" +} + +cargo_tools() { + cargo install toml-cli + cargo install jql +} + +install_rust +update_rust +download_rust_analyzer diff --git a/scripts/setup_keybase b/scripts/setup_keybase new file mode 100755 index 0000000..fb7a916 --- /dev/null +++ b/scripts/setup_keybase @@ -0,0 +1,42 @@ +#!/bin/sh + +setup_keybase() { + KEYBASE_USER=$(keybase whoami || (echo "Please login to keybase first"; exit 1)) + keybase fs sync enable "/keybase/private/$KEYBASE_USER" + + echo "keybase ✓" +} + +setup_keybase_ssh() { + SSH_DIR="/Volumes/Keybase/private/$KEYBASE_USER/ssh" + if [ -d "$SSH_DIR" ] + then + rm -rf ~/.ssh + ln -s "$SSH_DIR" ~/.ssh + + echo " - keybase: ssh ✓" + else + echo "Directory not found: $SSH_DIR" + echo "Please check your keybase files" + exit 1 + fi +} + +setup_keybase_aws() { + AWS_DIR="/Volumes/Keybase/private/$KEYBASE_USER/aws" + if [ -d "$AWS_DIR" ] + then + rm -rf ~/.aws + ln -s "$AWS_DIR" ~/.aws + + echo " - keybase: aws ✓" + else + echo "Directory not found: $AWS_DIR" + echo "Please check your keybase files" + exit 1 + fi +} + +setup_keybase +setup_keybase_ssh +setup_keybase_aws diff --git a/scripts/setup_symlinks b/scripts/setup_symlinks new file mode 100755 index 0000000..d644ea8 --- /dev/null +++ b/scripts/setup_symlinks @@ -0,0 +1,26 @@ +#!/bin/sh + +DOTS=$(dirname "$0")/.. +cd "$DOTS" || (echo "Directory not found: $DOTS"; exit 1) +DOTS="$PWD" + +setup_symlinks() { + for source in $(find "$DOTS" -iname "*.symlink") + do + dest="$HOME/.`basename \"${source%.*}\"`" + rm -rf "$dest" + ln -s "$source" "$dest" + done + + # Spacemacs + rm -rf "$HOME/.spacemacs.d" + ln -s "$DOTS/spacemacs.d" "$HOME/.spacemacs.d" + + # Vim + rm -rf "$HOME/.vim" + ln -s "$DOTS/vim" "$HOME/.vim" + + echo "symlinks ✓" +} + +setup_symlinks diff --git a/spacemacs.d/init.el b/spacemacs.d/init.el new file mode 100644 index 0000000..c42d3a2 --- /dev/null +++ b/spacemacs.d/init.el @@ -0,0 +1,450 @@ +;; -*- mode: emacs-lisp -*- +;; This file is loaded by Spacemacs at startup. +;; It must be stored in your home directory. + +(defun dotspacemacs/layers () + "Configuration Layers declaration. +You should not put any user code in this function besides modifying the variable +values." + (setq-default + ;; Base distribution to use. This is a layer contained in the directory + ;; `+distribution'. For now available distributions are `spacemacs-base' + ;; or `spacemacs'. (default 'spacemacs) + dotspacemacs-distribution 'spacemacs + ;; Lazy installation of layers (i.e. layers are installed only when a file + ;; with a supported type is opened). Possible values are `all', `unused' + ;; and `nil'. `unused' will lazy install only unused layers (i.e. layers + ;; not listed in variable `dotspacemacs-configuration-layers'), `all' will + ;; lazy install any layer that support lazy installation even the layers + ;; listed in `dotspacemacs-configuration-layers'. `nil' disable the lazy + ;; installation feature and you have to explicitly list a layer in the + ;; variable `dotspacemacs-configuration-layers' to install it. + ;; (default 'unused) + dotspacemacs-enable-lazy-installation 'unused + ;; If non-nil then Spacemacs will ask for confirmation before installing + ;; a layer lazily. (default t) + dotspacemacs-ask-for-lazy-installation t + ;; If non-nil layers with lazy install support are lazy installed. + ;; List of additional paths where to look for configuration layers. + ;; Paths must have a trailing slash (i.e. `~/.mycontribs/') + dotspacemacs-configuration-layer-path '() + ;; List of configuration layers to load. + dotspacemacs-configuration-layers + '( + php + sql + sml + javascript + html + csv + ;; (rust :variables rust-backend 'racer) + (rust :variables + rust-format-on-save t) + (lsp :variables + lsp-ui-doc-enable nil + lsp-ui-sideline-code-actions-prefix " " + lsp-ui-sideline-show-hover nil + lsp-rust-server 'rust-analyzer + lsp-rust-analyzer-server-display-inlay-hints t + lsp-rust-analyzer-cargo-watch-enable t) + python + ;; javascript + helm + ;; auto-completion + (auto-completion :variables + auto-completion-return-key-behavior nil + auto-completion-tab-key-behavior 'complete + auto-completion-enable-sort-by-usage t + auto-completion-private-snippets-directory nil) + ;; better-defaults + emacs-lisp + git + markdown + org + osx + ranger + dash + yaml + terraform + docker + nginx + restclient + games + xkcd + ;; (shell :variables + ;; shell-default-height 30 + ;; shell-default-position 'bottom) + ;; spell-checking + ;; syntax-checking + (syntax-checking :variables + syntax-checking-enable-tooltips nil) + ;; version-control + ) + ;; List of additional packages that will be installed without being + ;; wrapped in a layer. If you need some configuration for these + ;; packages, then consider creating a layer. You can also put the + ;; configuration in `dotspacemacs/user-config'. + dotspacemacs-additional-packages '(dockerfile-mode jenkins) + ;; A list of packages that cannot be updated. + dotspacemacs-frozen-packages '() + ;; A list of packages that will not be installed and loaded. + dotspacemacs-excluded-packages '() + ;; Defines the behaviour of Spacemacs when installing packages. + ;; Possible values are `used-only', `used-but-keep-unused' and `all'. + ;; `used-only' installs only explicitly used packages and uninstall any + ;; unused packages as well as their unused dependencies. + ;; `used-but-keep-unused' installs only the used packages but won't uninstall + ;; them if they become unused. `all' installs *all* packages supported by + ;; Spacemacs and never uninstall them. (default is `used-only') + dotspacemacs-install-packages 'used-only)) + +(defun dotspacemacs/init () + "Initialization function. +This function is called at the very startup of Spacemacs initialization +before layers configuration. +You should not put any user code in there besides modifying the variable +values." + ;; This setq-default sexp is an exhaustive list of all the supported + ;; spacemacs settings. + (setq-default + ;; If non nil ELPA repositories are contacted via HTTPS whenever it's + ;; possible. Set it to nil if you have no way to use HTTPS in your + ;; environment, otherwise it is strongly recommended to let it set to t. + ;; This variable has no effect if Emacs is launched with the parameter + ;; `--insecure' which forces the value of this variable to nil. + ;; (default t) + dotspacemacs-elpa-https t + ;; Maximum allowed time in seconds to contact an ELPA repository. + dotspacemacs-elpa-timeout 5 + ;; If non nil then spacemacs will check for updates at startup + ;; when the current branch is not `develop'. Note that checking for + ;; new versions works via git commands, thus it calls GitHub services + ;; whenever you start Emacs. (default nil) + dotspacemacs-check-for-update nil + ;; If non-nil, a form that evaluates to a package directory. For example, to + ;; use different package directories for different Emacs versions, set this + ;; to `emacs-version'. + dotspacemacs-elpa-subdirectory nil + ;; One of `vim', `emacs' or `hybrid'. + ;; `hybrid' is like `vim' except that `insert state' is replaced by the + ;; `hybrid state' with `emacs' key bindings. The value can also be a list + ;; with `:variables' keyword (similar to layers). Check the editing styles + ;; section of the documentation for details on available variables. + ;; (default 'vim) + dotspacemacs-editing-style 'vim + ;; NO IDEA WHAT THIS IS + dotspacemacs-mode-line-theme 'spacemacs + ;; If non nil output loading progress in `*Messages*' buffer. (default nil) + dotspacemacs-verbose-loading nil + ;; Specify the startup banner. Default value is `official', it displays + ;; the official spacemacs logo. An integer value is the index of text + ;; banner, `random' chooses a random text banner in `core/banners' + ;; directory. A string value must be a path to an image format supported + ;; by your Emacs build. + ;; If the value is nil then no banner is displayed. (default 'official) + dotspacemacs-startup-banner 'official + ;; List of items to show in startup buffer or an association list of + ;; the form `(list-type . list-size)`. If nil then it is disabled. + ;; Possible values for list-type are: + ;; `recents' `bookmarks' `projects' `agenda' `todos'." + ;; List sizes may be nil, in which case + ;; `spacemacs-buffer-startup-lists-length' takes effect. + dotspacemacs-startup-lists '((recents . 5) + (projects . 7)) + ;; True if the home buffer should respond to resize events. + dotspacemacs-startup-buffer-responsive t + ;; Default major mode of the scratch buffer (default `text-mode') + dotspacemacs-scratch-mode 'text-mode + ;; List of themes, the first of the list is loaded when spacemacs starts. + ;; Press T n to cycle to the next theme in the list (works great + ;; with 2 themes variants, one dark and one light) + dotspacemacs-themes '(spacemacs-dark + spacemacs-light) + ;; If non nil the cursor color matches the state color in GUI Emacs. + dotspacemacs-colorize-cursor-according-to-state t + ;; Default font, or prioritized list of fonts. `powerline-scale' allows to + ;; quickly tweak the mode-line size to make separators look not too crappy. + dotspacemacs-default-font '("Fira Mono for Powerline" + :size 15 + :weight normal + :width normal + :powerline-scale 1.1) + ;; The leader key + dotspacemacs-leader-key "SPC" + ;; The key used for Emacs commands (M-x) (after pressing on the leader key). + ;; (default "SPC") + dotspacemacs-emacs-command-key "SPC" + ;; The key used for Vim Ex commands (default ":") + dotspacemacs-ex-command-key ":" + ;; The leader key accessible in `emacs state' and `insert state' + ;; (default "M-m") + dotspacemacs-emacs-leader-key "M-m" + ;; Major mode leader key is a shortcut key which is the equivalent of + ;; pressing ` m`. Set it to `nil` to disable it. (default ",") + dotspacemacs-major-mode-leader-key "," + ;; Major mode leader key accessible in `emacs state' and `insert state'. + ;; (default "C-M-m") + dotspacemacs-major-mode-emacs-leader-key "C-M-m" + ;; These variables control whether separate commands are bound in the GUI to + ;; the key pairs C-i, TAB and C-m, RET. + ;; Setting it to a non-nil value, allows for separate commands under + ;; and TAB or and RET. + ;; In the terminal, these pairs are generally indistinguishable, so this only + ;; works in the GUI. (default nil) + dotspacemacs-distinguish-gui-tab nil + ;; If non nil `Y' is remapped to `y$' in Evil states. (default nil) + dotspacemacs-remap-Y-to-y$ nil + ;; If non-nil, the shift mappings `<' and `>' retain visual state if used + ;; there. (default t) + dotspacemacs-retain-visual-state-on-shift t + ;; If non-nil, J and K move lines up and down when in visual mode. + ;; (default nil) + dotspacemacs-visual-line-move-text nil + ;; If non nil, inverse the meaning of `g' in `:substitute' Evil ex-command. + ;; (default nil) + dotspacemacs-ex-substitute-global nil + ;; Name of the default layout (default "Default") + dotspacemacs-default-layout-name "Default" + ;; If non nil the default layout name is displayed in the mode-line. + ;; (default nil) + dotspacemacs-display-default-layout nil + ;; If non nil then the last auto saved layouts are resume automatically upon + ;; start. (default nil) + dotspacemacs-auto-resume-layouts nil + ;; Size (in MB) above which spacemacs will prompt to open the large file + ;; literally to avoid performance issues. Opening a file literally means that + ;; no major mode or minor modes are active. (default is 1) + dotspacemacs-large-file-size 1 + ;; Location where to auto-save files. Possible values are `original' to + ;; auto-save the file in-place, `cache' to auto-save the file to another + ;; file stored in the cache directory and `nil' to disable auto-saving. + ;; (default 'cache) + dotspacemacs-auto-save-file-location 'cache + ;; Maximum number of rollback slots to keep in the cache. (default 5) + dotspacemacs-max-rollback-slots 5 + ;; If non nil, `helm' will try to minimize the space it uses. (default nil) + dotspacemacs-helm-resize nil + ;; if non nil, the helm header is hidden when there is only one source. + ;; (default nil) + dotspacemacs-helm-no-header nil + ;; define the position to display `helm', options are `bottom', `top', + ;; `left', or `right'. (default 'bottom) + dotspacemacs-helm-position 'bottom + ;; Controls fuzzy matching in helm. If set to `always', force fuzzy matching + ;; in all non-asynchronous sources. If set to `source', preserve individual + ;; source settings. Else, disable fuzzy matching in all sources. + ;; (default 'always) + dotspacemacs-helm-use-fuzzy 'always + ;; If non nil the paste micro-state is enabled. When enabled pressing `p` + ;; several times cycle between the kill ring content. (default nil) + dotspacemacs-enable-paste-transient-state nil + ;; Which-key delay in seconds. The which-key buffer is the popup listing + ;; the commands bound to the current keystroke sequence. (default 0.4) + dotspacemacs-which-key-delay 0.4 + ;; Which-key frame position. Possible values are `right', `bottom' and + ;; `right-then-bottom'. right-then-bottom tries to display the frame to the + ;; right; if there is insufficient space it displays it at the bottom. + ;; (default 'bottom) + dotspacemacs-which-key-position 'bottom + ;; If non nil a progress bar is displayed when spacemacs is loading. This + ;; may increase the boot time on some systems and emacs builds, set it to + ;; nil to boost the loading time. (default t) + dotspacemacs-loading-progress-bar t + ;; If non nil the frame is fullscreen when Emacs starts up. (default nil) + ;; (Emacs 24.4+ only) + dotspacemacs-fullscreen-at-startup nil + ;; If non nil `spacemacs/toggle-fullscreen' will not use native fullscreen. + ;; Use to disable fullscreen animations in OSX. (default nil) + dotspacemacs-fullscreen-use-non-native nil + ;; If non nil the frame is maximized when Emacs starts up. + ;; Takes effect only if `dotspacemacs-fullscreen-at-startup' is nil. + ;; (default nil) (Emacs 24.4+ only) + dotspacemacs-maximized-at-startup nil + ;; A value from the range (0..100), in increasing opacity, which describes + ;; the transparency level of a frame when it's active or selected. + ;; Transparency can be toggled through `toggle-transparency'. (default 90) + dotspacemacs-active-transparency 90 + ;; A value from the range (0..100), in increasing opacity, which describes + ;; the transparency level of a frame when it's inactive or deselected. + ;; Transparency can be toggled through `toggle-transparency'. (default 90) + dotspacemacs-inactive-transparency 90 + ;; If non nil show the titles of transient states. (default t) + dotspacemacs-show-transient-state-title t + ;; If non nil show the color guide hint for transient state keys. (default t) + dotspacemacs-show-transient-state-color-guide t + ;; If non nil unicode symbols are displayed in the mode line. (default t) + dotspacemacs-mode-line-unicode-symbols t + ;; If non nil smooth scrolling (native-scrolling) is enabled. Smooth + ;; scrolling overrides the default behavior of Emacs which recenters point + ;; when it reaches the top or bottom of the screen. (default t) + dotspacemacs-smooth-scrolling t + ;; Control line numbers activation. + ;; If set to `t' or `relative' line numbers are turned on in all `prog-mode' and + ;; `text-mode' derivatives. If set to `relative', line numbers are relative. + ;; This variable can also be set to a property list for finer control: + ;; '(:relative nil + ;; :disabled-for-modes dired-mode + ;; doc-view-mode + ;; markdown-mode + ;; org-mode + ;; pdf-view-mode + ;; text-mode + ;; :size-limit-kb 1000) + ;; (default nil) + dotspacemacs-line-numbers 'relative + ;; Code folding method. Possible values are `evil' and `origami'. + ;; (default 'evil) + dotspacemacs-folding-method 'evil + ;; If non-nil smartparens-strict-mode will be enabled in programming modes. + ;; (default nil) + dotspacemacs-smartparens-strict-mode nil + ;; If non-nil pressing the closing parenthesis `)' key in insert mode passes + ;; over any automatically added closing parenthesis, bracket, quote, etc… + ;; This can be temporary disabled by pressing `C-q' before `)'. (default nil) + dotspacemacs-smart-closing-parenthesis nil + ;; Select a scope to highlight delimiters. Possible values are `any', + ;; `current', `all' or `nil'. Default is `all' (highlight any scope and + ;; emphasis the current one). (default 'all) + dotspacemacs-highlight-delimiters 'all + ;; If non nil, advise quit functions to keep server open when quitting. + ;; (default nil) + dotspacemacs-persistent-server nil + ;; List of search tool executable names. Spacemacs uses the first installed + ;; tool of the list. Supported tools are `ag', `pt', `ack' and `grep'. + ;; (default '("ag" "pt" "ack" "grep")) + dotspacemacs-search-tools '("ag" "pt" "ack" "grep") + ;; The default package repository used if no explicit repository has been + ;; specified with an installed package. + ;; Not used for now. (default nil) + dotspacemacs-default-package-repository nil + ;; Delete whitespace while saving buffer. Possible values are `all' + ;; to aggressively delete empty line and long sequences of whitespace, + ;; `trailing' to delete only the whitespace at end of lines, `changed'to + ;; delete only whitespace for changed lines or `nil' to disable cleanup. + ;; (default nil) + dotspacemacs-whitespace-cleanup nil + )) + +(defun dotspacemacs/user-init () + "Initialization function for user code. +It is called immediately after `dotspacemacs/init', before layer configuration +executes. + This function is mostly useful for variables that need to be set +before packages are loaded. If you are unsure, you should try in setting them in +`dotspacemacs/user-config' first." + ) + +(defun dotspacemacs/user-config () + "Configuration function for user code. +This function is called at the very end of Spacemacs initialization after +layers configuration. +This is the place where most of your configurations should be done. Unless it is +explicitly specified that a variable should be set before a package is loaded, +you should place your code here." + + ;; Sets Spacemacs macOS window view settings + (add-to-list 'default-frame-alist + '(ns-transparent-titlebar . t)) + + (add-to-list 'default-frame-alist + '(ns-appearance . dark)) ;; or light - depending on your theme + + ;; Sets window size and position + (if (eq system-type 'darwin) + ;; If Mac + (setq initial-frame-alist '((top . 10) (left . 160) (width . 160) (height . 64))) + ;; Else non-Mac + (setq initial-frame-alist '((top . 20) (left . 30) (width . 130) (height . 57))) + ) + + ;; Org Mode -- count empty lines as blank separators + (setq org-cycle-separator-lines -1) + + ;; Ranger Mode -- kill all the buffers on exit + (setq ranger-cleanup-on-disable t) + + ;; Helm -- use ripgrep (rg) instead of silver searcher (ag) + (setq helm-ag-base-command "rg --vimgrep --no-heading --smart-case") + + ;; Autocomplete -- help tooltips + (setq auto-completion-enable-help-tooltip t) + + ;; Escape parenthesis + (define-key evil-insert-state-map (kbd "M-l") 'sp-up-sexp) + + ;; Python Mode -- code folding + (define-key evil-normal-state-map (kbd "z i") 'hs-hide-level) + + ;; Adds environment variables + (setq exec-path-from-shell-arguments '("-l")) + ;; (with-temp-buffer + ;; (insert-file-contents "/Users/noah.masur/Documents/GitHub/dotfiles/env.txt") + ;; (while (search-forward-regexp "\\(.*\\)\n?" nil t) + ;; (exec-path-from-shell-copy-env (match-string 1)) + ;; )) + ;; (defun source-file-and-get-envs (filename) + ;; (let* ((cmd (concat ". " filename "; env")) + ;; (env-str (shell-command-to-string cmd)) + ;; (env-lines (split-string env-str "\n")) + ;; (envs (mapcar (lambda (s) (replace-regexp-in-string "=.*$" "" s)) env-lines))) + ;; (delete "" envs))) + ;; (exec-path-from-shell-copy-envs (source-file-and-get-envs "/Users/noah.masur/.bash_profile")) + + ;; Starts emacsclient server to receive terminal commands + + ;; Add QR code + (defun kisaragi/qr-encode (str &optional buf) + "Encode STR as a QR code. + + Return a new buffer or BUF with the code in it." + (interactive "MString to encode: ") + (let ((buffer (get-buffer-create (or buf "*QR Code*"))) + (format (if (display-graphic-p) "PNG" "UTF8")) + (inhibit-read-only t)) + (with-current-buffer buffer + (delete-region (point-min) (point-max))) + (make-process + :name "qrencode" :buffer buffer + :command `("qrencode" ,str "-t" ,format "-o" "-") + :coding 'no-conversion + ;; seems only the filter function is able to move point to top + :filter (lambda (process string) + (with-current-buffer (process-buffer process) + (insert string) + (goto-char (point-min)) + (set-marker (process-mark process) (point)))) + :sentinel (lambda (process change) + (when (string= change "finished\n") + (with-current-buffer (process-buffer process) + (cond ((string= format "PNG") + (image-mode) + (image-transform-fit-to-height)) + (t ;(string= format "UTF8") + (text-mode) + (decode-coding-region (point-min) (point-max) 'utf-8))))))) + (when (called-interactively-p 'interactive) + (display-buffer buffer)) + buffer)) + + (org-reload) + + (server-start) + ) + +;; Do not write anything past this comment. This is where Emacs will +;; auto-generate custom variable definitions. +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(org-agenda-files (quote ("~/Dropbox (Take-Two)/org/tasks.org"))) + '(package-selected-packages + (quote + (php-auto-yasnippets drupal-mode phpunit phpcbf php-extras php-mode sql-indent ob-sml sml-mode slack jenkins emojify circe oauth2 websocket web-mode tagedit slim-mode scss-mode sass-mode pug-mode helm-css-scss haml-mode emmet-mode company-web web-completion-data restclient-helm ob-restclient ob-http nginx-mode company-restclient restclient know-your-http-well docker tablist docker-tramp csv-mode xkcd typit mmt sudoku pacmacs 2048-game terraform-mode hcl-mode dockerfile-mode toml-mode racer cargo rust-mode company-quickhelp pos-tip ranger yaml-mode logito pcache ht helm-company helm-c-yasnippet fuzzy company-tern tern company-statistics auto-yasnippet ac-ispell auto-complete yapfify pyvenv pytest pyenv-mode py-isort pip-requirements live-py-mode hy-mode dash-functional helm-pydoc cython-mode company-anaconda company anaconda-mode pythonic web-beautify livid-mode skewer-mode simple-httpd json-mode json-snatcher json-reformat js2-refactor yasnippet multiple-cursors js2-mode js-doc coffee-mode helm-dash dash-docs dash-at-point smeargle reveal-in-osx-finder pbcopy osx-trash osx-dictionary orgit org-projectile org-category-capture org-present org-pomodoro alert log4e gntp org-mime org-download mmm-mode markdown-toc markdown-mode magit-gitflow magit-popup launchctl htmlize helm-gitignore gnuplot gitignore-mode gitconfig-mode gitattributes-mode git-timemachine git-messenger git-link evil-magit magit transient git-commit with-editor ws-butler winum which-key volatile-highlights vi-tilde-fringe uuidgen use-package toc-org spaceline powerline restart-emacs request rainbow-delimiters popwin persp-mode pcre2el paradox spinner org-plus-contrib org-bullets open-junk-file neotree move-text macrostep lorem-ipsum linum-relative link-hint indent-guide hydra lv hungry-delete hl-todo highlight-parentheses highlight-numbers parent-mode highlight-indentation helm-themes helm-swoop helm-projectile projectile pkg-info epl helm-mode-manager helm-make helm-flx helm-descbinds helm-ag google-translate golden-ratio flx-ido flx fill-column-indicator fancy-battery eyebrowse expand-region exec-path-from-shell evil-visualstar evil-visual-mark-mode evil-unimpaired evil-tutor evil-surround evil-search-highlight-persist highlight evil-numbers evil-nerd-commenter evil-mc evil-matchit evil-lisp-state smartparens evil-indent-plus evil-iedit-state iedit evil-exchange evil-escape evil-ediff evil-args evil-anzu anzu evil goto-chg undo-tree eval-sexp-fu elisp-slime-nav dumb-jump f dash s diminish define-word column-enforce-mode clean-aindent-mode bind-map bind-key auto-highlight-symbol auto-compile packed aggressive-indent adaptive-wrap ace-window ace-link ace-jump-helm-line helm avy helm-core popup async)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/spacemacs.d/layers/README.md b/spacemacs.d/layers/README.md new file mode 100644 index 0000000..083cf23 --- /dev/null +++ b/spacemacs.d/layers/README.md @@ -0,0 +1 @@ +Directory to store layers diff --git a/vim/autoload/pathogen.vim b/vim/autoload/pathogen.vim new file mode 100644 index 0000000..3582fbf --- /dev/null +++ b/vim/autoload/pathogen.vim @@ -0,0 +1,264 @@ +" pathogen.vim - path option manipulation +" Maintainer: Tim Pope +" Version: 2.4 + +" Install in ~/.vim/autoload (or ~\vimfiles\autoload). +" +" For management of individually installed plugins in ~/.vim/bundle (or +" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your +" .vimrc is the only other setup necessary. +" +" The API is documented inline below. + +if exists("g:loaded_pathogen") || &cp + finish +endif +let g:loaded_pathogen = 1 + +" Point of entry for basic default usage. Give a relative path to invoke +" pathogen#interpose() or an absolute path to invoke pathogen#surround(). +" Curly braces are expanded with pathogen#expand(): "bundle/{}" finds all +" subdirectories inside "bundle" inside all directories in the runtime path. +" If no arguments are given, defaults "bundle/{}", and also "pack/{}/start/{}" +" on versions of Vim without native package support. +function! pathogen#infect(...) abort + if a:0 + let paths = filter(reverse(copy(a:000)), 'type(v:val) == type("")') + else + let paths = ['bundle/{}', 'pack/{}/start/{}'] + endif + if has('packages') + call filter(paths, 'v:val !~# "^pack/[^/]*/start/[^/]*$"') + endif + let static = '^\%([$~\\/]\|\w:[\\/]\)[^{}*]*$' + for path in filter(copy(paths), 'v:val =~# static') + call pathogen#surround(path) + endfor + for path in filter(copy(paths), 'v:val !~# static') + if path =~# '^\%([$~\\/]\|\w:[\\/]\)' + call pathogen#surround(path) + else + call pathogen#interpose(path) + endif + endfor + call pathogen#cycle_filetype() + if pathogen#is_disabled($MYVIMRC) + return 'finish' + endif + return '' +endfunction + +" Split a path into a list. +function! pathogen#split(path) abort + if type(a:path) == type([]) | return a:path | endif + if empty(a:path) | return [] | endif + let split = split(a:path,'\\\@]','\\&','') + endif +endfunction + +" Like findfile(), but hardcoded to use the runtimepath. +function! pathogen#runtime_findfile(file,count) abort + let rtp = pathogen#join(1,pathogen#split(&rtp)) + let file = findfile(a:file,rtp,a:count) + if file ==# '' + return '' + else + return fnamemodify(file,':p') + endif +endfunction + +" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=': diff --git a/vim/colors/solarized.vim b/vim/colors/solarized.vim new file mode 100644 index 0000000..70f5223 --- /dev/null +++ b/vim/colors/solarized.vim @@ -0,0 +1,1117 @@ +" 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 May 05 +" +" 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. +" +" --------------------------------------------------------------------- +" OPTIONS: +" --------------------------------------------------------------------- +" See the "solarized.txt" help file included with this colorscheme (in the +" "doc" subdirectory) for information on options, usage, the Toggle Background +" function and more. If you have already installed Solarized, this is available +" from the Solarized menu and command line as ":help solarized" +" +" --------------------------------------------------------------------- +" INSTALLATION: +" --------------------------------------------------------------------- +" Two options for installation: manual or pathogen +" +" MANUAL INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download the solarized distribution (available on the homepage above) +" and unarchive the file. +" 2. Move `solarized.vim` to your `.vim/colors` directory. +" 3. Move each of the files in each subdirectories to the corresponding .vim +" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload +" directory as .vim/autoload/togglebg.vim). +" +" 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. +" +" --------------------------------------------------------------------- +" 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/" +" +" }}} +" Environment Specific Overrides "{{{ +" Allow or disallow certain features based on current terminal emulator or +" environment. + +" Terminals that support italics +let s:terms_italic=[ + \"rxvt", + \"gnome-terminal" + \] +" For reference only, terminals are known to be incomptible. +" Terminals that are in neither list need to be tested. +let s:terms_noitalic=[ + \"iTerm.app", + \"Apple_Terminal" + \] +if has("gui_running") + let s:terminal_italic=1 " TODO: could refactor to not require this at all +else + let s:terminal_italic=0 " terminals will be guilty until proven compatible + for term in s:terms_italic + if $TERM_PROGRAM =~ term + let s:terminal_italic=1 + endif + endfor +endif + +" }}} +" Default option values"{{{ +" --------------------------------------------------------------------- +" s:options_list is used to autogenerate a list of all non-default options +" using "call SolarizedOptions()" or with the "Generate .vimrc commands" +" Solarized menu option. See the "Menus" section below for the function itself. +let s:options_list=[ + \'" this block of commands has been autogenerated by solarized.vim and', + \'" includes the current, non-default Solarized option values.', + \'" To use, place these commands in your .vimrc file (replacing any', + \'" existing colorscheme commands). See also ":help solarized"', + \'', + \'" ------------------------------------------------------------------', + \'" Solarized Colorscheme Config', + \'" ------------------------------------------------------------------', + \] +let s:colorscheme_list=[ + \'syntax enable', + \'set background='.&background, + \'colorscheme solarized', + \] +let s:defaults_list=[ + \'" ------------------------------------------------------------------', + \'', + \'" The following items are available options, but do not need to be', + \'" included in your .vimrc as they are currently set to their defaults.', + \'' + \] +let s:lazycat_list=[ + \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', + \'" ------------------------------------------------------------------', + \] + +function! s:SetOption(name,default) + if type(a:default) == type(0) + let l:wrap='' + let l:ewrap='' + else + let l:wrap='"' + let l:ewrap='\"' + endif + if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default + exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' + exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' + else + exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' + endif +endfunction + +if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) + let s:solarized_termtrans_default = 1 +else + let s:solarized_termtrans_default = 0 +endif +call s:SetOption("termtrans",s:solarized_termtrans_default) +call s:SetOption("degrade",0) +call s:SetOption("bold",1) +call s:SetOption("underline",1) +call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support +call s:SetOption("termcolors",16) +call s:SetOption("contrast","normal") +call s:SetOption("visibility","normal") +call s:SetOption("diffmode","normal") +call s:SetOption("hitrail",0) +call s:SetOption("menu",1) + +"}}} +" 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" "original + let s:green = "#719e07" "experimental +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 = "5".s:bright +" let s:blue = "4" +" let s:cyan = "6" +" let s:green = "2" + let s:base03 = "DarkGray" " 0* + let s:base02 = "Black" " 0 + let s:base01 = "LightGreen" " 2* + let s:base00 = "LightYellow" " 3* + let s:base0 = "LightBlue" " 4* + let s:base1 = "LightCyan" " 6* + let s:base2 = "LightGray" " 7 + let s:base3 = "White" " 7* + let s:yellow = "DarkYellow" " 3 + let s:orange = "LightRed" " 1* + let s:red = "DarkRed" " 1 + let s:magenta = "DarkMagenta" " 5 + let s:violet = "LightMagenta" " 5* + let s:blue = "DarkBlue" " 4 + let s:cyan = "DarkCyan" " 6 + let s:green = "DarkGreen" " 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 and environment "{{{ +" --------------------------------------------------------------------- +if (g:solarized_bold == 0 || &t_Co == 8 ) + let s:b = "" + let s:bb = ",bold" +else + let s:b = ",bold" + let s:bb = "" +endif + +if g:solarized_underline == 0 + let s:u = "" +else + let s:u = ",underline" +endif + +if g:solarized_italic == 0 || s:terminal_italic == 0 + let s:i = "" +else + let s:i = ",italic" +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".s:i. " term=NONE".s:i."'" +exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" +exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" +exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" +" revbb (reverse bold for bright colors) is only set to actual bold in low +" color terminals (t_co=8, such as OS X Terminal.app) and should only be used +" with colors 8-15. +exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" +exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" + +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_red .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_base00 .s:bg_base02 + exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none +endif +exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb +exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb +exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb +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 +if ( has("gui_running") || &t_Co > 8 ) + exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 +else + exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 +endif +exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none +exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb +exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb +exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 +exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 +if (g:solarized_diffmode=="high") +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 +elseif (g:solarized_diffmode=="low") +exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green +exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue +else " normal + if has("gui_running") +exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue + else +exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue + endif +endif +exe "hi! SignColumn" .s:fmt_none .s:fg_base0 +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 .s:fmt_revbb +exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb +exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb +exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb +exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu +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 +"hi! link vimComment Comment +"hi! link vimLineComment Comment +hi! link vimVar Identifier +hi! link vimFunc Function +hi! link vimUserFunc Function +hi! link helpSpecial Special +hi! link vimSet Normal +hi! link vimSetEqual Normal +exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none +exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none +exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none +exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none +exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none +"}}} +" diff highlighting "{{{ +" --------------------------------------------------------------------- +hi! link diffAdded Statement +hi! link diffLine Identifier +"}}} +" git & gitcommit highlighting "{{{ +"git +"exe "hi! gitDateHeader" +"exe "hi! gitIdentityHeader" +"exe "hi! gitIdentityKeyword" +"exe "hi! gitNotesHeader" +"exe "hi! gitReflogHeader" +"exe "hi! gitKeyword" +"exe "hi! gitIdentity" +"exe "hi! gitEmailDelimiter" +"exe "hi! gitEmail" +"exe "hi! gitDate" +"exe "hi! gitMode" +"exe "hi! gitHashAbbrev" +"exe "hi! gitHash" +"exe "hi! gitReflogMiddle" +"exe "hi! gitReference" +"exe "hi! gitStage" +"exe "hi! gitType" +"exe "hi! gitDiffAdded" +"exe "hi! gitDiffRemoved" +"gitcommit +"exe "hi! gitcommitSummary" +exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none +hi! link gitcommitUntracked gitcommitComment +hi! link gitcommitDiscarded gitcommitComment +hi! link gitcommitSelected gitcommitComment +exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none +exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none +hi! link gitcommitNoBranch gitcommitBranch +exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none +"exe "hi! gitcommitUnmergedType" +"exe "hi! gitcommitType" +"exe "hi! gitcommitNoChanges" +"exe "hi! gitcommitHeader" +exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none +exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none +exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none +hi! link gitcommitDiscardedArrow gitcommitDiscardedFile +hi! link gitcommitSelectedArrow gitcommitSelectedFile +hi! link gitcommitUnmergedArrow gitcommitUnmergedFile +"exe "hi! gitcommitArrow" +"exe "hi! gitcommitOverflow" +"exe "hi! gitcommitBlank" +" }}} +" html highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none +exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none +exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_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 +"}}} +" Highlight Trailing Space {{{ +" Experimental: Different highlight when on cursorline +function! s:SolarizedHiTrail() + if g:solarized_hitrail==0 + hi! clear solarizedTrailingSpace + else + syn match solarizedTrailingSpace "\s*$" + exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red + endif +endfunction +augroup SolarizedHiTrail + autocmd! + if g:solarized_hitrail==1 + autocmd! Syntax * call s:SolarizedHiTrail() + autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif + endif +augroup END +" }}} +" Menus "{{{ +" --------------------------------------------------------------------- +" Turn off Solarized menu by including the following assignment in your .vimrc: +" +" let g:solarized_menu=0 + +function! s:SolarizedOptions() + new "new buffer + setf vim "vim filetype + let failed = append(0, s:defaults_list) + let failed = append(0, s:colorscheme_list) + let failed = append(0, s:options_list) + let failed = append(0, s:lazycat_list) + 0 "jump back to the top +endfunction +if !exists(":SolarizedOptions") + command SolarizedOptions :call s:SolarizedOptions() +endif + +function! SolarizedMenu() + if exists("g:loaded_solarized_menu") + try + silent! aunmenu Solarized + endtry + endif + let g:loaded_solarized_menu = 1 + + if g:colors_name == "solarized" && g:solarized_menu != 0 + + amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized + amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized + amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized + an &Solarized.&Contrast.-sep- + amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' + + amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized + amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized + amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized + an &Solarized.&Visibility.-sep- + amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' + + amenu &Solarized.&Background.&Toggle\ Background :ToggleBG + amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized + amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized + an &Solarized.&Background.-sep- + amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg + + if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" + if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" + if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" + + amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized + + if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif + exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" + an &Solarized.&Experimental.-sep- + amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' + + an &Solarized.-sep1- + + amenu &Solarized.&Autogenerate\ options :SolarizedOptions + + an &Solarized.-sep2- + + amenu &Solarized.&Help.&Solarized\ Help :help solarized + amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg + amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu + + an 9999.77 &Help.&Solarized\ Colorscheme :help solarized + an 9999.78 &Help.&Toggle\ Background :help togglebg + an 9999.79 &Help.-sep3- + + endif +endfunction + +autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | 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/init.vim b/vim/init.vim new file mode 100644 index 0000000..bf1dd2f --- /dev/null +++ b/vim/init.vim @@ -0,0 +1,57 @@ +syntax enable +set background=dark +" colorscheme solarized +set nu +set expandtab +set shiftwidth=4 +set softtabstop=4 +set ignorecase +set smartcase +set pastetoggle= +set visualbell + +" remember last position +if has("autocmd") + au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif +endif + +" path manipulation +execute pathogen#infect() +filetype plugin indent on + +" terraform plugin +let g:terraform_align=1 +let g:terraform_remap_spacebar=1 + +" powerline +let g:Powerline_symbols = 'fancy' + +" line type +let &t_ti.="\e[1 q" +let &t_SI.="\e[5 q" +let &t_EI.="\e[1 q" +let &t_te.="\e[0 q" + +" better backup, swap and undo storage +set noswapfile +set backup +set undofile +set backupdir=~/.vim/dirs/backup +set undodir=~/.vim/dirs/undo +if !isdirectory(&backupdir) + call mkdir(&backupdir, "p") +endif +if !isdirectory(&undodir) + call mkdir(&undodir, "p") +endif + +" 256 colors +" if !has("gui_running") +" set nocompatible +" colorscheme solarized +" set mouse=a +" endif + +" change title +let &titlestring = @% +set title diff --git a/zsh/aliases b/zsh/aliases new file mode 100644 index 0000000..c68dc91 --- /dev/null +++ b/zsh/aliases @@ -0,0 +1,86 @@ +# ls aliases +alias ls='exa' +alias ll='ls -alhF' +alias la='ls -A' +alias l='ls -CFA' +alias lh='ls -l' +# alias lh='ls -lhtraF' + +# Old aliases +alias inv='source ~/.venv/inventorybot/bin/activate' +alias awscli='source ~/.venv/aws/bin/activate' +alias gstory='source ~/.venv/gstory/bin/activate' +alias stu='source ~/.venv/stupid/bin/activate' +alias r='/projects/device42/run' +alias qu='/projects/device42/utils/quickupdate-noah' +alias qudb='/projects/device42/utils/debug-noah' +alias dlog='/projects/device42/logwatch.sh' +alias hlog='/projects/soc-utils/Hive_Bot/utils/logwatch.sh' +alias bot='cd /projects/device42/inventorybot' +alias tap='terraform apply' +alias mod='cd /projects/terraform/modules' +alias hs='cd /projects/soc-utils/Hive_Scripts' +alias esc='cd /projects/soc-utils/Hive_Responders/Escalator' + +# Emacs +emacsenv='~/Documents/GitHub/dotfiles/bin/emacs_env' + +# Improved CLI Tools +alias ping='prettyping --nolegend' +alias cat='bat' +alias icat='$PROJ/dotfiles/iterm/imgcat' +alias h='http -Fh --all' +alias search='googler -j' +alias checkip='curl checkip.amazonaws.com' + +# Dotfile and config shortcuts +alias aliases='edit $DOTS/zsh/aliases' +alias zenv='edit $DOTS/zsh/env' +alias zrc='edit $DOTS/zsh/zrcsh.symlink' +alias reload='source ~/.zshrc' +alias runbootstrap='$DOTS/scripts/bootstrap' +alias sshc='edit ~/.ssh/config' +alias hosts='edit /etc/hosts' + +# Navigation shortcuts +alias dots='cd $DOTS' +alias org='cd ~/Dropbox\ \(Take-Two\)/org' +alias proj='cd $PROJ' +alias tpt='cd $PROJ/thirdpartytrust' +alias hv='cd $PROJ/soc-utils/Hive_Bot/hivebot' +alias tf='cd $TFDIR' +alias gs='cd $TFDIR/projects/ghoststory' +alias pd='cd $TFDIR/projects/privatedivision' +alias t2='cd $TFDIR/projects/take2games' +alias kb='cd $TFDIR/projects/kerbalspaceprogram' +alias di='cd $TFDIR/projects/disintegration' +alias slack='cd $PROJ/slack' +alias misty='cd $PROJ/misty' +alias dl='cd ~/Downloads' +alias ssl='echo openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr' + +# Virtualenv +alias d='deactivate' +alias pv='cd $WORKON_HOME' +alias ip='source $WORKON_HOME/ipython/bin/activate' +alias tp='source $WORKON_HOME/thirdpartytrust/bin/activate' +alias hive='source $WORKON_HOME/hivebot/bin/activate' + +# Docker +alias dc='$DOTS/bin/docker_cleanup' +alias dr='docker run' +alias db='docker build . -t' +alias connect='docker run --rm -v ~/.aws:/root/.aws -v ~/.ssh:/root/.ssh -it connect-aws' + +# Python +alias py='python' +alias domisty='cd $PROJ/misty && ./buildrun.sh' + +# Rust +alias ca='cargo' + +# Non-MacOS +if [ $(uname) = "Linux" ]; then + alias pbcopy='xclip -selection clipboard -in' + alias pbpaste='xclip -selection clipboard -out' +fi diff --git a/zsh/functions b/zsh/functions new file mode 100644 index 0000000..92807df --- /dev/null +++ b/zsh/functions @@ -0,0 +1,105 @@ +# Open in Emacs +edit() { + emacsclient --no-wait --alternate-editor="emacs" "$@" &> /dev/null & disown +} + +# Create QR code from link +qr() { qrencode "$1" -t ANSIUTF8 -o -; } + +# Open directory in projects +prj() { + local projdir + projdir=$(ls $PROJ | fzf) + if [[ -z $projdir ]] + then + return 1 + else + cd $projdir + fi +} + +# Activate pyenv virtualenv +venv() { + source ~/.pyenv/versions/$1/bin/activate +} + +# Temporarily enter iPython interpreter with its Pyenv +ipy() { + STORED_VENV=$VIRTUAL_ENV + source $WORKON_HOME/ipython/bin/activate && \ + ipython && \ + deactivate && \ + if [ $STORED_VENV ]; then + source $STORED_VENV/bin/activate + fi +} + +# Run pylint on all python files +lint() { + fd -IH -t f .py$ | xargs pylint +} + +# Stolen from: https://github.com/davidpdrsn/dotfiles/blob/master/zsh/functions + +# Extract archives +extract() { + if [ -f $1 ] ; then + case $1 in + *.tar.bz2) tar xjf $1 ;; + *.tar.gz) tar xzf $1 ;; + *.bz2) bunzip2 $1 ;; + *.rar) rar x $1 ;; + *.gz) gunzip $1 ;; + *.tar) tar xf $1 ;; + *.tbz2) tar xjf $1 ;; + *.tgz) tar xzf $1 ;; + *.zip) unzip $1 ;; + *.Z) uncompress $1 ;; + *.7z) 7z x $1 ;; + *) echo "'$1' cannot be extracted via extract()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + +# fe [FUZZY PATTERN] - Open the selected file with the default editor +# - Bypass fuzzy finder if there's only one match (--select-1) +# - Exit if there's no match (--exit-0) +fe() { + local file + file=$(fzf --query="$1" --select-1 --exit-0) + [ -n "$file" ] && ${EDITOR:-vim} "$file" +} + +# fd - cd to selected directory +fcd() { + local dir + dir=$(find ${1:-*} -path '*/\.*' -prune \ + -o -type d -print 2> /dev/null | fzf +m) && + cd "$dir" +} + +# dir - fd name of dir in this directory +dir() { + # fd ".*$1.*" -H -d 1 + ls -lha | rg "$1" +} + +# vers - switch to pyenv virtualenv with fuzzy menu +vers() { + local version + version=$(pyenv versions --bare --skip-aliases | fzf) + if [[ -z $version ]] + then + return 1 + else + source $WORKON_HOME/$version/bin/activate + fi +} + +# unsetaws - remove all AWS environment variables +unsetaws() { + unset AWS_ACCESS_KEY_ID + unset AWS_SECRET_ACCESS_KEY +} diff --git a/zsh/ohmyzsh b/zsh/ohmyzsh new file mode 100644 index 0000000..291dee4 --- /dev/null +++ b/zsh/ohmyzsh @@ -0,0 +1,107 @@ +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes +# ZSH_THEME="remy" +# ZSH_THEME="agnoster" +# ZSH_THEME="typewritten" +ZSH_THEME="nicoulaj" + +# Removes the prompt when encountering a .env file +ZSH_DOTENV_PROMPT=false + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to automatically update without prompting. +# DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS=true + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=~/.zsh/custom + +# Which plugins would you like to load? +# Standard plugins can be found in ~/.oh-my-zsh/plugins/* +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + ripgrep + docker + dotenv + osx + cargo + gem +) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Auto-Suggestions +export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=6,bg=6" +export ZSH_AUTOSUGGEST_STRATEGY=(completion history) +bindkey '^ ' autosuggest-accept +zstyle ':completion:*' use-cache on +zstyle ':completion:*' cache-path ~/.zsh/cache diff --git a/zsh/vim b/zsh/vim new file mode 100644 index 0000000..e583b88 --- /dev/null +++ b/zsh/vim @@ -0,0 +1,18 @@ +### Activate vi / vim mode: +bindkey -v + +# Remove delay when entering normal mode (vi) +KEYTIMEOUT=5 + +# Change cursor shape for different vi modes. +function zle-keymap-select { + if [[ $KEYMAP == vicmd ]] || [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + elif [[ $KEYMAP == main ]] || [[ $KEYMAP == viins ]] || [[ $KEYMAP = '' ]] || [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' + fi +} +zle -N zle-keymap-select + +# Start with beam shape cursor on zsh startup and after every command. +zle-line-init() { zle-keymap-select 'beam'} diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink new file mode 100644 index 0000000..5d93cdf --- /dev/null +++ b/zsh/zshrc.symlink @@ -0,0 +1,12 @@ +DOTFILE=`readlink ~/.zshrc` +export DOTS=`dirname "$(dirname $DOTFILE)"` + +source $DOTS/zsh/env +source $DOTS/zsh/ohmyzsh +source $DOTS/zsh/aliases +source $DOTS/zsh/functions +source $DOTS/zsh/vim + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh + +source ~/.iterm2_shell_integration.zsh