diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "nvim/pack/minpac/opt/minpac"] - path = nvim/pack/minpac/opt/minpac - url = git://github.com/k-takata/minpac.git diff --git a/Brewfile b/Brewfile --- a/Brewfile +++ b/Brewfile @@ -1,61 +1,74 @@ +tap "burntsushi/ripgrep", "https://github.com/BurntSushi/ripgrep.git" tap "crisidev/chunkwm" +tap "homebrew/bundle" +tap "homebrew/cask" tap "homebrew/core" -tap "homebrew/cask" -tap "homebrew/bundle" tap "homebrew/services" -tap "minio/stable" tap "koekeishiya/formulae" -tap "burntsushi/ripgrep", "https://github.com/BurntSushi/ripgrep.git" +tap "minio/stable" tap "neovim/neovim" tap "universal-ctags/universal-ctags" +cask "java" cask "xquartz" brew "asciinema" brew "autoconf" brew "automake" brew "awscli" -brew "cmake" +brew "bmake" brew "coreutils" brew "cowsay" brew "curl" brew "direnv" +brew "entr" +brew "ffmpeg" brew "fish" brew "fortune" brew "fzf" brew "gettext" brew "gawk" -brew "ghc" brew "git" brew "git-imerge" brew "git-lfs" brew "git-test" brew "gnupg", link: false brew "graphviz" +brew "highlight" brew "htop" brew "httpie" brew "hub" +brew "hugo" brew "imagemagick" +brew "influxdb" brew "jpegoptim" brew "jq" +brew "jupyter" brew "keychain" brew "kubernetes-cli" +brew "leiningen" brew "libyaml" brew "lnav" +brew "mdp" brew "minio-mc" -brew "mit-scheme" brew "mmv" brew "ncdu" brew "neovim" brew "optipng" brew "osquery" -brew "pandoc" brew "parallel" -brew "pkg-config" +brew "pijul" +brew "plantuml" brew "postgis" brew "pv" brew "rclone" +brew "rsync" +brew "salt" +brew "stow" +brew "telegraf" brew "terminal-notifier" +brew "tig" brew "tree" -brew "watchman" +brew "watch" +brew "watchexec" brew "weechat", args: ["with-aspell", "with-lua", "with-perl", "with-python@2", "with-ruby"] brew "wget" brew "wrk" @@ -76,6 +89,7 @@ cask "docker" cask "gpg-suite" cask "iterm2" cask "karabiner-elements" +cask "kitty" cask "qnapi" cask "sketch" cask "spotify" diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -1,18 +1,10 @@ -LNFLAGS = -sf -export LN = ln $(LNFLAGS) - -export WGET = wget -Nqnv - -export PWD = $(shell pwd) - -TARGETS ?= fish bin nvim git utils iterm2 ctags wm +TARGETS ?= fish vim kitty git ctags wm misc all: $(TARGETS) $(TARGETS): - $(MAKE) -C $@ install - -update: - @git submodule foreach git pull + @printf "%s\t" $@ + @stow -t "${HOME}" -R "$@" 2> /dev/null && printf "\033[32m✓" || printf "\033[31m✗" + @printf "\033[m\n" .PHONY: $(TARGETS) all diff --git a/bin/.keep b/bin/.keep deleted file mode 100644 --- a/bin/.keep +++ /dev/null diff --git a/bin/Makefile b/bin/Makefile deleted file mode 100644 --- a/bin/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -PWD = $(shell pwd) - -install: - @echo 'Add $(PWD) to your $$PATH' - -.PHONY: install diff --git a/bin/amigo b/bin/amigo deleted file mode 100644 --- a/bin/amigo +++ /dev/null diff --git a/bin/git-cleanup b/bin/git-cleanup deleted file mode 100644 --- a/bin/git-cleanup +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -e - -git branch --merged master | grep -v '^\*' | grep -v master | xargs -n1 git branch -d diff --git a/bin/git-identity b/bin/git-identity deleted file mode 100644 --- a/bin/git-identity +++ /dev/null @@ -1,177 +0,0 @@ -#!/bin/bash - -set -eo pipefail - -USAGE=$(cat < - | [-p|--print] - | [-r|--remove] - | [-l|--list] - | [-R|--list-raw] - | [-h|--help] - | - -Define identity globally: - git -d private "My Name Suername" me@example.com - git -d company "My Name Suername" me@your-company.com - -Use identity in your git repository: - cd your_repository - git identity private - -List current identity: - cd your_repository - git identity private - -Print current identity: - cd your_repository - git identity - -EOF) - -error () { - local message="$1" - (>&2 echo "$message") - exit 1 -} - -lookup () { - local identity="$1" - local key="$2" - - git config "identity.$identity.$key" || error "Unknown identity: $identity" -} - -format_identity () { - local identity="$1" - - echo "[$identity] $(format_raw_identity "$identity")" -} - -format_raw_identity () { - local identity="$1" - - echo "$(lookup "$identity" name) <$(lookup "$identity" email)>" -} - -use_identity () { - local identity="$1" - local name - local email - name="$(lookup "$identity" name)" - email="$(lookup "$identity" email)" - - echo "Using identity: $(format_identity "$identity")" - git config user.identity "$identity" - git config user.name "$name" - git config user.email "$email" -} - -list_raw_identities () { - git config --get-regexp '^identity\.' | cut -d. -f2 | sort -u -} - -list_identities () { - local identities - - identities="$(list_raw_identities)" - - echo "Available identities:" - for identity in $identities; do - format_identity "$identity" - done -} - -print_raw_identity () { - local identity="$1" - - if [ "x$identity" = "x" ]; then - identity="$(git config user.identity)" - fi - - format_raw_identity "$identity" -} - -print_current_identity () { - local identity - - identity="$(git config user.identity || echo "")" - if [ "$identity" ]; then - echo "Current identity: $(format_identity "$identity")" - else - (>&2 echo "=================================================") - (>&2 echo -e "\033[0;31mNO IDENTITY SET\033[0m") - (>&2 echo "Your name: $(git config user.name)") - (>&2 echo "Your email: $(git config user.email)") - (>&2 echo "=================================================") - (>&2 echo "How to use this tool") - (>&2 echo "${USAGE}") - (>&2 echo "=================================================") - exit 1 - fi -} - -define_identity () { - local identity="$1" - local name="$2" - local email="$3" - - git config --global identity."$identity".name "$name" - git config --global identity."$identity".email "$email" - echo "Created $(format_identity "$identity")" -} - -remove_identity () { - local identity="$1" - local formated_identity - - formated_identity="$(format_identity "$identity")" - - git config --global --remove-section identity."$identity" - echo "Removed $formated_identity" -} - -IDENTITY="$1" - -usage () { - echo "${USAGE}" -} - -check_arguments () { - if [ "$1" -lt "$2" ]; then - usage - exit 1 - fi -} - -case "$IDENTITY" in - "") print_current_identity ;; - - -l|--list) list_identities ;; - - -R|--list-raw) list_raw_identities ;; - - -d|--define) - shift - check_arguments $# 3 - define_identity "$1" "$2" "$3" - ;; - - -r|--remove) - shift - check_arguments $# 1 - remove_identity "$1" - ;; - - -p|--print) - shift - print_raw_identity "$1" - ;; - - -h|--help) - shift - usage - ;; - - *) use_identity "$IDENTITY" ;; -esac diff --git a/bin/git-riff b/bin/git-riff deleted file mode 100644 --- a/bin/git-riff +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -hooks=(post-checkout post-commit post-merge pre-commit pre-push prepare-commit-msg) - -usage() { - echo "$0 [install|help]" - echo 'Version 0.1.0' - echo 'Copyright (c) Łukasz Niemier ' - echo - echo 'Simple git hooks management system' - echo - echo 'install [hook_dir]' - echo ' Installs hooks for given repo.' - echo - echo ' [hook_dir] - directory where install hooks, defaults to .git/hooks' - echo ' in current Git working directory' - echo 'help' - echo ' display this message' - echo - echo 'To use this as default set of hooks when creating new repo then:' - echo - echo " 1. Run '$0 ~/.githooks'" - echo ' 2. Run 'git config --global core.hooksPath ~/.githooks'' - echo -} - -install() { - source="${BASH_SOURCE[0]}" - HOOK_DIR="${1:-"$(git rev-parse --show-toplevel)/.git/hooks"}" - - echo "Install handler" - echo - - mkdir -p "$HOOK_DIR" - cp -i "$source" "$HOOK_DIR/hook.sh" - - echo "Installing hooks" - echo - - for hook in "${hooks[@]}" - do - echo "Installing $hook" - ln -si "hook.sh" "$HOOK_DIR/$hook" - done -} - -hook() { - script="$(basename "$0")" - PLUG_DIRS=("$(command git config --get hooks.path)" "$GIT_DIR/hooks/hooks.d") - - test -d "$GIT_DIR"/rebase-merge -o -d "$GIT_DIR"/rebase-apply && exit 0 - - input="$(mktemp)" - touch "$input" - trap '{ rm -f "$input"; }' EXIT - cat - > "$input" - - for dir in "${PLUG_DIRS[@]}" - do - if [ -d "$dir" ] - then - find "$dir" -depth 2 -and -name "$script" -print0 2>/dev/null \ - | xargs -0 -n1 -I% sh -c 'input="$1"; shift; if [ -x "$1" ]; then printf "\n## $(basename "$(dirname "$1")")\n" && exec "$@" < "$input"; fi' -- "$input" % "$@" - retval="$?" - - if [ ! "$retval" -eq 0 ] - then - return "$retval" - fi - fi - done -} - -case "$1" in - install) - shift - install "$@" - exit - ;; - help|-h|--help|version|-v|-V|--version) - shift - usage - exit - ;; - *) - hook "$@" -esac diff --git a/bin/pg_graph b/bin/pg_graph deleted file mode 100644 --- a/bin/pg_graph +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -psql -1qXt "$@" <"' || ccu.table_name || '" [label="' || tc.constraint_name || '"];' -FROM - information_schema.table_constraints AS tc -LEFT JOIN information_schema.constraint_column_usage AS ccu - ON ccu.constraint_name = tc.constraint_name -WHERE constraint_type = 'FOREIGN KEY'; - -\echo '}' -EOF diff --git a/bin/rubocop-clean b/bin/rubocop-clean deleted file mode 100644 --- a/bin/rubocop-clean +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -rubocop -ao /dev/null -s - | tail -n+2 diff --git a/bin/tmux-airline b/bin/tmux-airline deleted file mode 100644 --- a/bin/tmux-airline +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -SEP= -SEPE= - -MUSIC_ICO=♫ - -WIDTH="${1}" - -SMALL=80 -MEDIUM=140 - -tmux-music() { - if [ "0$WIDTH" -gt "0$MEDIUM" ]; then - state=$(osascript -e 'tell application "iTunes" to player state as string'); - if [ $state = "playing" ]; then - artist=$(osascsript -e 'tell application "iTunes" to artist of current track as string'); - track=$(osascript -e 'tell application "iTunes" to name of current track as string'); - echo "#[fg=colour15]$artist: $track"; - fi - fi -} - -tmux-uname() { - if [ "0$WIDTH" -ge "0$SMALL" ]; then - echo "#[fg=colour00,bg=colour08,nobold,noitalics,nounderscore]$SEP#[fg=colour15,bg=colour00,bold,noitalics,nounderscore] $(uname -n)" - fi -} - -DATE="#[fg=colour08,nobold,noitalics,nounderscore]$SEP#[fg=colour00,bg=colour08,nobold,noitalics,nounderscore] $(date +'%d.%m.%y')" -TIME="#[fg=colour00,bg=colour08,nobold,noitalics,nounderscore]$SEPE#[fg=colour00,bg=colour08,nobold,noitalics,nounderscore] $(date +'%H:%M')" - -echo "$(tmux-music) $DATE $TIME $(tmux-uname) " | sed 's/ *$/ /g' diff --git a/bin/vim-profiler.py b/bin/vim-profiler.py deleted file mode 100644 --- a/bin/vim-profiler.py +++ /dev/null @@ -1,327 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# vim-profiler - Utility script to profile (n)vim (e.g. startup) -# Copyright © 2015 Benjamin Chrétien -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -from __future__ import print_function - -import os -import sys -import subprocess -import re -import csv -import operator -import argparse -import collections - - -def to_list(cmd): - if not isinstance(cmd, (list, tuple)): - cmd = cmd.split(' ') - return cmd - - -def get_exe(cmd): - # FIXME: this assumes that the first word is the executable - return to_list(cmd)[0] - - -def is_subdir(paths, subdir): - # See: http://stackoverflow.com/a/18115684/1043187 - for path in paths: - path = os.path.realpath(path) - subdir = os.path.realpath(subdir) - reldir = os.path.relpath(subdir, path) - if not (reldir == os.pardir or reldir.startswith(os.pardir + os.sep)): - return True - return False - - -def stdev(arr): - """ - Compute the standard deviation. - """ - if sys.version_info >= (3, 0): - import statistics - return statistics.pstdev(arr) - else: - # Dependency on NumPy - try: - import numpy - return numpy.std(arr, axis=0) - except ImportError: - return 0. - - -class StartupData(object): - """ - Data for (n)vim startup (timings etc.). - """ - def __init__(self, cmd, log_filename, check_system=False): - super(StartupData, self).__init__() - self.cmd = cmd - self.log_filename = log_filename - self.times = dict() - self.system_dirs = ["/usr", "/usr/local"] - self.generate(check_system) - - def generate(self, check_system=False): - """ - Generate startup data. - """ - self.__run_vim() - try: - self.__load_times(check_system) - except RuntimeError: - print("\nNo plugin found. Exiting.") - sys.exit() - - if not self.times: - sys.exit() - - def __guess_plugin_dir(self, log_txt): - """ - Try to guess the vim directory containing plugins. - """ - candidates = list() - - # Get common plugin dir if any - vim_subdirs = "autoload|ftdetect|plugin|syntax" - matches = re.findall("^\d+.\d+\s+\d+.\d+\s+\d+.\d+: " - "sourcing (.+?)/(?:[^/]+/)(?:%s)/[^/]+" - % vim_subdirs, log_txt, re.MULTILINE) - for plugin_dir in matches: - # Ignore system plugins - if not is_subdir(self.system_dirs, plugin_dir): - candidates.append(plugin_dir) - - if candidates: - # FIXME: the directory containing vimrc could be returned as well - return collections.Counter(candidates).most_common(1)[0][0] - else: - raise RuntimeError("no user plugin found") - - def __load_times(self, check_system=False): - """ - Load startup times for log file. - """ - # Load log file and process it - print("Loading and processing logs...", end="") - with open(self.log_filename, 'r') as log: - log_txt = log.read() - plugin_dir = "" - - # Try to guess the folder based on the logs themselves - try: - plugin_dir = self.__guess_plugin_dir(log_txt) - matches = re.findall("^\d+.\d+\s+\d+.\d+\s+(\d+.\d+): " - "sourcing %s/([^/]+)/" % plugin_dir, - log_txt, re.MULTILINE) - for res in matches: - time = res[0] - plugin = res[1] - if plugin in self.times: - self.times[plugin] += float(time) - else: - self.times[plugin] = float(time) - # Catch exception if no plugin was found - except RuntimeError as e: - if not check_system: - raise - else: - plugin_dir = "" - - if check_system: - for d in self.system_dirs: - matches = re.findall("^\d+.\d+\s+\d+.\d+\s+(\d+.\d+): " - "sourcing %s/.+/([^/]+.vim)\n" % d, - log_txt, re.MULTILINE) - for res in matches: - time = res[0] - plugin = "*%s" % res[1] - if plugin in self.times: - self.times[plugin] += float(time) - else: - self.times[plugin] = float(time) - - print(" done.") - if plugin_dir: - print("Plugin directory: %s" % plugin_dir) - else: - print("No user plugin found.") - if not self.times: - print("No system plugin found.") - - def __run_vim(self): - """ - Run vim/nvim to generate startup logs. - """ - print("Running %s to generate startup logs..." % get_exe(self.cmd), - end="") - self.__clean_log() - full_cmd = to_list(self.cmd) + ["--startuptime", self.log_filename, - "-f", "-c", "q"] - subprocess.call(full_cmd, shell=False) - print(" done.") - - def __clean_log(self): - """ - Clean log file. - """ - if os.path.isfile(self.log_filename): - os.remove(self.log_filename) - - def __del__(self): - """ - Destructor taking care of clean up. - """ - self.__clean_log() - - -class StartupAnalyzer(object): - """ - Analyze startup times for (n)vim. - """ - def __init__(self, param): - super(StartupAnalyzer, self).__init__() - self.runs = param.runs - self.cmd = param.cmd - self.raw_data = [StartupData(self.cmd, "vim_%i.log" % (i+1), - check_system=param.check_system) - for i in range(self.runs)] - self.data = self.process_data() - - def process_data(self): - """ - Merge startup times for each plugin. - """ - return {k: [d.times[k] for d in self.raw_data] - for k in self.raw_data[0].times.keys()} - - def average_data(self): - """ - Return average times for each plugin. - """ - return {k: sum(v)/len(v) for k, v in self.data.items()} - - def stdev_data(self): - """ - Return standard deviation for each plugin. - """ - return {k: stdev(v) for k, v in self.data.items()} - - def plot(self): - """ - Plot startup data. - """ - import pylab - - print("Plotting result...", end="") - avg_data = self.average_data() - avg_data = self.__sort_data(avg_data, False) - if len(self.raw_data) > 1: - err = self.stdev_data() - sorted_err = [err[k] for k in list(zip(*avg_data))[0]] - else: - sorted_err = None - pylab.barh(range(len(avg_data)), list(zip(*avg_data))[1], - xerr=sorted_err, align='center', alpha=0.4) - pylab.yticks(range(len(avg_data)), list(zip(*avg_data))[0]) - pylab.xlabel("Average startup time (ms)") - pylab.ylabel("Plugins") - pylab.show() - print(" done.") - - def export(self, output_filename="result.csv"): - """ - Write sorted result to file. - """ - assert len(self.data) > 0 - print("Writing result to %s..." % output_filename, end="") - with open(output_filename, 'w') as fp: - writer = csv.writer(fp, delimiter='\t') - # Compute average times - avg_data = self.average_data() - # Sort by average time - for name, avg_time in self.__sort_data(avg_data): - writer.writerow(["%.3f" % avg_time, name]) - print(" done.") - - def print_summary(self, n): - """ - Print summary of startup times for plugins. - """ - title = "Top %i plugins slowing %s's startup" % (n, get_exe(self.cmd)) - length = len(title) - print(''.center(length, '=')) - print(title) - print(''.center(length, '=')) - - # Compute average times - avg_data = self.average_data() - # Sort by average time - rank = 0 - for name, time in self.__sort_data(avg_data)[:n]: - rank += 1 - print("%i\t%7.3f %s" % (rank, time, name)) - - print(''.center(length, '=')) - - @staticmethod - def __sort_data(d, reverse=True): - """ - Sort data by decreasing time. - """ - return sorted(d.items(), key=operator.itemgetter(1), reverse=reverse) - - -def main(): - parser = argparse.ArgumentParser( - description='Analyze startup times of vim/neovim plugins.') - parser.add_argument("-o", dest="csv", type=str, - help="Export result to a csv file") - parser.add_argument("-p", dest="plot", action='store_true', - help="Plot result as a bar chart") - parser.add_argument("-s", dest="check_system", action='store_true', - help="Consider system plugins as well (marked with *)") - parser.add_argument("-n", dest="n", type=int, default=10, - help="Number of plugins to list in the summary") - parser.add_argument("-r", dest="runs", type=int, default=1, - help="Number of runs (for average/standard deviation)") - parser.add_argument(dest="cmd", nargs=argparse.REMAINDER, type=str, - help="vim/neovim executable or command") - - # Parse CLI arguments - args = parser.parse_args() - output_filename = args.csv - n = args.n - - # Command (default = vim) - if args.cmd == []: - args.cmd = "vim" - - # Run analysis - analyzer = StartupAnalyzer(args) - if n > 0: - analyzer.print_summary(n) - if output_filename is not None: - analyzer.export(output_filename) - if args.plot: - analyzer.plot() - -if __name__ == "__main__": - main() diff --git a/certs/.gitignore b/certs/.gitignore --- a/certs/.gitignore +++ b/certs/.gitignore @@ -1,3 +1,4 @@ *.key *.csr +*.crt *.pem diff --git a/certs/Makefile b/certs/Makefile --- a/certs/Makefile +++ b/certs/Makefile @@ -1,18 +1,31 @@ -PRIV_KEY = private.key -CERT = cert.csr +NAME ?= localhost +DOMAIN ?= localhost + +KEY ?= ${NAME}.key +SIGN_REQ ?= ${NAME}.csr +CERT ?= ${NAME}.crt + +SUBJECT = "/C=US/ST=Connecticut/O=/localityName=New Haven/commonName=${DOMAIN}/commonName=*.${DOMAIN}/organizationalUnitName=/emailAddress=/" all: ${CERT} -clean: - $(RM) -rf ${PRIV_KEY} ${CERT} +install: all + security import ${CERT} + security add-trusted-cert ${CERT} + +clea: + $(RM) -rf ${KEY} ${CERT} ${SIGN_REQ} verify: ${CERT} openssl x509 -noout -text -in $< -${PRIV_KEY}: - openssl genrsa -out $@ 2048 +${KEY}: + openssl genrsa -out "$@" 2048 + +${SIGN_REQ}: ${KEY} + openssl req -new -sha256 -subj $(SUBJECT) -key "$<" -out "$@" -passin pass:"" -${CERT}: self-signed.conf ${PRIV_KEY} - openssl req -config $< -new -x509 -sha256 -key ${PRIV_KEY} -days 3650 -out $@ -subj "/C=US/ST=California/L=San Francisco/O=My Company, Inc./CN=localhost/" +${CERT}: ${SIGN_REQ} ${KEY} + openssl x509 -req -days 365 -in "${SIGN_REQ}" -signkey "${KEY}" -out "$@" -.PHONY: all clean verify +.PHONY: all clean verify install diff --git a/certs/self-signed.conf b/certs/self-signed.conf deleted file mode 100644 --- a/certs/self-signed.conf +++ /dev/null @@ -1,355 +0,0 @@ -# -# OpenSSL example configuration file. -# This is mostly being used for generation of certificate requests. -# - -# This definition stops the following lines choking if HOME isn't -# defined. -HOME = . -RANDFILE = $ENV::HOME/.rnd - -# Extra OBJECT IDENTIFIER info: -#oid_file = $ENV::HOME/.oid -oid_section = new_oids - -# To use this configuration file with the "-extfile" option of the -# "openssl x509" utility, name here the section containing the -# X.509v3 extensions to use: -# extensions = -# (Alternatively, use a configuration file that has only -# X.509v3 extensions in its main [= default] section.) - -[ new_oids ] - -# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. -# Add a simple OID like this: -# testoid1=1.2.3.4 -# Or use config file substitution like this: -# testoid2=${testoid1}.5.6 - -# Policies used by the TSA examples. -tsa_policy1 = 1.2.3.4.1 -tsa_policy2 = 1.2.3.4.5.6 -tsa_policy3 = 1.2.3.4.5.7 - -#################################################################### -[ ca ] -default_ca = CA_default # The default ca section - -#################################################################### -[ CA_default ] - -dir = ./demoCA # Where everything is kept -certs = $dir/certs # Where the issued certs are kept -crl_dir = $dir/crl # Where the issued crl are kept -database = $dir/index.txt # database index file. -#unique_subject = no # Set to 'no' to allow creation of - # several ctificates with same subject. -new_certs_dir = $dir/newcerts # default place for new certs. - -certificate = $dir/cacert.pem # The CA certificate -serial = $dir/serial # The current serial number -crlnumber = $dir/crlnumber # the current crl number - # must be commented out to leave a V1 CRL -crl = $dir/crl.pem # The current CRL -private_key = $dir/private/cakey.pem# The private key -RANDFILE = $dir/private/.rand # private random number file - -x509_extensions = usr_cert # The extentions to add to the cert - -# Comment out the following two lines for the "traditional" -# (and highly broken) format. -name_opt = ca_default # Subject Name options -cert_opt = ca_default # Certificate field options - -# Extension copying option: use with caution. -# copy_extensions = copy - -# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs -# so this is commented out by default to leave a V1 CRL. -# crlnumber must also be commented out to leave a V1 CRL. -# crl_extensions = crl_ext - -default_days = 365 # how long to certify for -default_crl_days= 30 # how long before next CRL -default_md = default # use public key default MD -preserve = no # keep passed DN ordering - -# A few difference way of specifying how similar the request should look -# For type CA, the listed attributes must be the same, and the optional -# and supplied fields are just that :-) -policy = policy_match - -# For the CA policy -[ policy_match ] -countryName = match -stateOrProvinceName = match -organizationName = match -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -# For the 'anything' policy -# At this point in time, you must list all acceptable 'object' -# types. -[ policy_anything ] -countryName = optional -stateOrProvinceName = optional -localityName = optional -organizationName = optional -organizationalUnitName = optional -commonName = supplied -emailAddress = optional - -#################################################################### -[ req ] -default_bits = 2048 -default_keyfile = privkey.pem -distinguished_name = req_distinguished_name -attributes = req_attributes -x509_extensions = v3_ca # The extentions to add to the self signed cert - -# Passwords for private keys if not present they will be prompted for -# input_password = secret -# output_password = secret - -# This sets a mask for permitted string types. There are several options. -# default: PrintableString, T61String, BMPString. -# pkix : PrintableString, BMPString (PKIX recommendation before 2004) -# utf8only: only UTF8Strings (PKIX recommendation after 2004). -# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). -# MASK:XXXX a literal mask value. -# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. -string_mask = utf8only - -# req_extensions = v3_req # The extensions to add to a certificate request - -[ req_distinguished_name ] -countryName = Country Name (2 letter code) -countryName_default = AU -countryName_min = 2 -countryName_max = 2 - -stateOrProvinceName = State or Province Name (full name) -stateOrProvinceName_default = Some-State - -localityName = Locality Name (eg, city) - -0.organizationName = Organization Name (eg, company) -0.organizationName_default = Internet Widgits Pty Ltd - -# we can do this but it is not needed normally :-) -#1.organizationName = Second Organization Name (eg, company) -#1.organizationName_default = World Wide Web Pty Ltd - -organizationalUnitName = Organizational Unit Name (eg, section) -#organizationalUnitName_default = - -commonName = Common Name (e.g. server FQDN or YOUR name) -commonName_max = 64 - -emailAddress = Email Address -emailAddress_max = 64 - -# SET-ex3 = SET extension number 3 - -[ req_attributes ] -challengePassword = A challenge password -challengePassword_min = 4 -challengePassword_max = 20 - -unstructuredName = An optional company name - -[ usr_cert ] - -# These extensions are added when 'ca' signs a request. - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# Here are some examples of the usage of nsCertType. If it is omitted -# the certificate can be used for anything *except* object signing. - -# This is OK for an SSL server. -# nsCertType = server - -# For an object signing certificate this would be used. -# nsCertType = objsign - -# For normal client use this is typical -# nsCertType = client, email - -# and for everything including object signing: -# nsCertType = client, email, objsign - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# This will be displayed in Netscape's comment listbox. -nsComment = "OpenSSL Generated Certificate" - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem -#nsBaseUrl -#nsRevocationUrl -#nsRenewalUrl -#nsCaPolicyUrl -#nsSslServerName - -# This is required for TSA certificates. -# extendedKeyUsage = critical,timeStamping - -[ v3_req ] - -# Extensions to add to a certificate request - -basicConstraints = CA:FALSE -keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -[ v3_ca ] - - -# Extensions for a typical CA - - -# PKIX recommendation. - -subjectKeyIdentifier=hash - -authorityKeyIdentifier=keyid:always,issuer - -# This is what PKIX recommends but some broken software chokes on critical -# extensions. -#basicConstraints = critical,CA:true -# So we do this instead. -basicConstraints = CA:true - -# Key usage: this is typical for a CA certificate. However since it will -# prevent it being used as an test self-signed certificate it is best -# left out by default. -# keyUsage = cRLSign, keyCertSign - -# Some might want this also -# nsCertType = sslCA, emailCA - -# Include email address in subject alt name: another PKIX recommendation -# subjectAltName=email:copy -# Copy issuer details -# issuerAltName=issuer:copy - -# DER hex encoding of an extension: beware experts only! -# obj=DER:02:03 -# Where 'obj' is a standard or added object -# You can even override a supported extension: -# basicConstraints= critical, DER:30:03:01:01:FF - -subjectAltName = @alt_names -[alt_names] -DNS.1 = *.localhost -DNS.2 = *.*.localhost - -[ crl_ext ] - -# CRL extensions. -# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. - -# issuerAltName=issuer:copy -authorityKeyIdentifier=keyid:always - -[ proxy_cert_ext ] -# These extensions should be added when creating a proxy certificate - -# This goes against PKIX guidelines but some CAs do it and some software -# requires this to avoid interpreting an end user certificate as a CA. - -basicConstraints=CA:FALSE - -# Here are some examples of the usage of nsCertType. If it is omitted -# the certificate can be used for anything *except* object signing. - -# This is OK for an SSL server. -# nsCertType = server - -# For an object signing certificate this would be used. -# nsCertType = objsign - -# For normal client use this is typical -# nsCertType = client, email - -# and for everything including object signing: -# nsCertType = client, email, objsign - -# This is typical in keyUsage for a client certificate. -# keyUsage = nonRepudiation, digitalSignature, keyEncipherment - -# This will be displayed in Netscape's comment listbox. -nsComment = "OpenSSL Generated Certificate" - -# PKIX recommendations harmless if included in all certificates. -subjectKeyIdentifier=hash -authorityKeyIdentifier=keyid,issuer - -# This stuff is for subjectAltName and issuerAltname. -# Import the email address. -# subjectAltName=email:copy -# An alternative to produce certificates that aren't -# deprecated according to PKIX. -# subjectAltName=email:move - -# Copy subject details -# issuerAltName=issuer:copy - -#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem -#nsBaseUrl -#nsRevocationUrl -#nsRenewalUrl -#nsCaPolicyUrl -#nsSslServerName - -# This really needs to be in place for it to be a proxy certificate. -proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo - -#################################################################### -[ tsa ] - -default_tsa = tsa_config1 # the default TSA section - -[ tsa_config1 ] - -# These are used by the TSA reply generation only. -dir = ./demoCA # TSA root directory -serial = $dir/tsaserial # The current serial number (mandatory) -crypto_device = builtin # OpenSSL engine to use for signing -signer_cert = $dir/tsacert.pem # The TSA signing certificate - # (optional) -certs = $dir/cacert.pem # Certificate chain to include in reply - # (optional) -signer_key = $dir/private/tsakey.pem # The TSA private key (optional) - -default_policy = tsa_policy1 # Policy if request did not specify it - # (optional) -other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) -digests = md5, sha1 # Acceptable message digests (mandatory) -accuracy = secs:1, millisecs:500, microsecs:100 # (optional) -clock_precision_digits = 0 # number of digits after dot. (optional) -ordering = yes # Is ordering defined for timestamps? - # (optional, default: no) -tsa_name = yes # Must the TSA name be included in the reply? - # (optional, default: no) -ess_cert_id_chain = no # Must the ESS cert id chain be included? - # (optional, default: no) diff --git a/ctags/.ctags.d/excludes.ctags b/ctags/.ctags.d/excludes.ctags --- a/ctags/.ctags.d/excludes.ctags +++ b/ctags/.ctags.d/excludes.ctags @@ -5,3 +5,12 @@ --exclude=log --exclude=tmp --fields=+l +--fields=+n +--fields=+z +--fields=+Z + +--exclude=tests +--exclude=test + +--exclude=.projections.json +--exclude=coveralls.json diff --git a/ctags/.ctags.d/javascript.ctags b/ctags/.ctags.d/javascript.ctags --- a/ctags/.ctags.d/javascript.ctags +++ b/ctags/.ctags.d/javascript.ctags @@ -1,1 +1,4 @@ --exclude=node_modules +--exclude=project.json +--exclude=package-lock.json +--exclude=yarn.lock diff --git a/ctags/.ctags.d/rust.ctags b/ctags/.ctags.d/rust.ctags --- a/ctags/.ctags.d/rust.ctags +++ b/ctags/.ctags.d/rust.ctags @@ -1,1 +1,1 @@ ---exclude=target/* +--exclude=target diff --git a/fish/.config/fish/completions/rustup.fish b/fish/.config/fish/completions/rustup.fish new file mode 100644 --- /dev/null +++ b/fish/.config/fish/completions/rustup.fish @@ -0,0 +1,164 @@ +complete -c rustup -n "__fish_use_subcommand" -s v -l verbose -d 'Enable verbose output' +complete -c rustup -n "__fish_use_subcommand" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_use_subcommand" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_use_subcommand" -f -a "show" -d 'Show the active and installed toolchains' +complete -c rustup -n "__fish_use_subcommand" -f -a "install" -d 'Update Rust toolchains' +complete -c rustup -n "__fish_use_subcommand" -f -a "uninstall" -d 'Uninstall Rust toolchains' +complete -c rustup -n "__fish_use_subcommand" -f -a "update" -d 'Update Rust toolchains and rustup' +complete -c rustup -n "__fish_use_subcommand" -f -a "default" -d 'Set the default toolchain' +complete -c rustup -n "__fish_use_subcommand" -f -a "toolchain" -d 'Modify or query the installed toolchains' +complete -c rustup -n "__fish_use_subcommand" -f -a "target" -d 'Modify a toolchain\'s supported targets' +complete -c rustup -n "__fish_use_subcommand" -f -a "component" -d 'Modify a toolchain\'s installed components' +complete -c rustup -n "__fish_use_subcommand" -f -a "override" -d 'Modify directory toolchain overrides' +complete -c rustup -n "__fish_use_subcommand" -f -a "run" -d 'Run a command with an environment configured for a given toolchain' +complete -c rustup -n "__fish_use_subcommand" -f -a "which" -d 'Display which binary will be run for a given command' +complete -c rustup -n "__fish_use_subcommand" -f -a "doc" -d 'Open the documentation for the current toolchain' +complete -c rustup -n "__fish_use_subcommand" -f -a "man" -d 'View the man page for a given command' +complete -c rustup -n "__fish_use_subcommand" -f -a "self" -d 'Modify the rustup installation' +complete -c rustup -n "__fish_use_subcommand" -f -a "telemetry" -d 'rustup telemetry commands' +complete -c rustup -n "__fish_use_subcommand" -f -a "set" -d 'Alter rustup settings' +complete -c rustup -n "__fish_use_subcommand" -f -a "completions" -d 'Generate completion scripts for your shell' +complete -c rustup -n "__fish_use_subcommand" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from show" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from show" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "active-toolchain" -d 'Show the active toolchain' +complete -c rustup -n "__fish_seen_subcommand_from show" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from active-toolchain" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from active-toolchain" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from install" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from install" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from update" -l no-self-update -d 'Don\'t perform self update when running the `rustup` command' +complete -c rustup -n "__fish_seen_subcommand_from update" -l force -d 'Force an update, even if some components are missing' +complete -c rustup -n "__fish_seen_subcommand_from update" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from update" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from default" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from default" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "list" -d 'List installed toolchains' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "install" -d 'Install or update a given toolchain' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "uninstall" -d 'Uninstall a toolchain' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory' +complete -c rustup -n "__fish_seen_subcommand_from toolchain" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from install" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from install" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from link" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from link" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from target" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from target" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "list" -d 'List installed and available targets' +complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "add" -d 'Add a target to a Rust toolchain' +complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "remove" -d 'Remove a target from a Rust toolchain' +complete -c rustup -n "__fish_seen_subcommand_from target" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from add" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from add" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from remove" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from remove" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from component" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from component" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "list" -d 'List installed and available components' +complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "add" -d 'Add a component to a Rust toolchain' +complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "remove" -d 'Remove a component from a Rust toolchain' +complete -c rustup -n "__fish_seen_subcommand_from component" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from add" -l target +complete -c rustup -n "__fish_seen_subcommand_from add" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from add" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from remove" -l target +complete -c rustup -n "__fish_seen_subcommand_from remove" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from remove" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from override" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from override" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "list" -d 'List directory toolchain overrides' +complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "set" -d 'Set the override toolchain for a directory' +complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "unset" -d 'Remove the override toolchain for a directory' +complete -c rustup -n "__fish_seen_subcommand_from override" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from list" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from list" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from set" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from set" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from unset" -l path -d 'Path to the directory' +complete -c rustup -n "__fish_seen_subcommand_from unset" -l nonexistent -d 'Remove override toolchain for all nonexistent directories' +complete -c rustup -n "__fish_seen_subcommand_from unset" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from unset" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from run" -l install -d 'Install the requested toolchain if needed' +complete -c rustup -n "__fish_seen_subcommand_from run" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from run" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from which" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from which" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from doc" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from doc" -l path -d 'Only print the path to the documentation' +complete -c rustup -n "__fish_seen_subcommand_from doc" -l book -d 'The Rust Programming Language book' +complete -c rustup -n "__fish_seen_subcommand_from doc" -l std -d 'Standard library API documentation' +complete -c rustup -n "__fish_seen_subcommand_from doc" -l reference -d 'The Rust Reference' +complete -c rustup -n "__fish_seen_subcommand_from doc" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from doc" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from man" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' +complete -c rustup -n "__fish_seen_subcommand_from man" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from man" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from self" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from self" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "update" -d 'Download and install updates to rustup' +complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "uninstall" -d 'Uninstall rustup.' +complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "upgrade-data" -d 'Upgrade the internal data format.' +complete -c rustup -n "__fish_seen_subcommand_from self" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from update" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from update" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s y +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from upgrade-data" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from upgrade-data" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from telemetry" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from telemetry" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from telemetry" -f -a "enable" -d 'Enable rustup telemetry' +complete -c rustup -n "__fish_seen_subcommand_from telemetry" -f -a "disable" -d 'Disable rustup telemetry' +complete -c rustup -n "__fish_seen_subcommand_from telemetry" -f -a "analyze" -d 'Analyze stored telemetry' +complete -c rustup -n "__fish_seen_subcommand_from telemetry" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from enable" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from enable" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from disable" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from disable" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from analyze" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from analyze" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from set" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from set" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from set" -f -a "default-host" -d 'The triple used to identify toolchains when not specified' +complete -c rustup -n "__fish_seen_subcommand_from set" -f -a "help" -d 'Prints this message or the help of the given subcommand(s)' +complete -c rustup -n "__fish_seen_subcommand_from default-host" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from default-host" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from completions" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from completions" -s V -l version -d 'Prints version information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s h -l help -d 'Prints help information' +complete -c rustup -n "__fish_seen_subcommand_from help" -s V -l version -d 'Prints version information' diff --git a/fish/.config/fish/config.fish b/fish/.config/fish/config.fish --- a/fish/.config/fish/config.fish +++ b/fish/.config/fish/config.fish @@ -1,26 +1,32 @@ -alias ssh='env TERM=xterm-256color ssh' - alias git=hub source (direnv hook fish | psub) set -x LESS '-SRFXi' set -x ERL_AFLAGS '-kernel shell_history enabled' - -set fish_user_paths ~/Workspace/hauleth/dotfiles/bin ~/.cargo/bin /usr/local/opt/gettext/bin ~/.cache/rebar3/bin/ +set -x KERL_CONFIGURE_OPTIONS --without-javac --with-dynamic-trace=dtrace +set CDPATH . "$HOME/Workspace" if not functions -q fundle eval (curl -sfL https://git.io/fundle-install) end fundle plugin 'hauleth/agnoster' -fundle plugin 'tuvistavie/fish-fastdir' fundle plugin 'tuvistavie/fish-asdf' +fundle plugin 'edc/bass' fundle init +bass source ~/.nix-profile/etc/profile.d/nix.sh + +set fish_user_paths ~/bin ~/.cargo/bin ~/.cache/rebar3/bin + if status --is-interactive - keychain --eval --quiet -Q id_ed25519 | source + env SHELL=fish keychain --eval --quiet -Q id_ed25519 | source + + kitty + complete setup fish | source end -test -e {$HOME}/.iterm2_shell_integration.fish -and source {$HOME}/.iterm2_shell_integration.fish +set -gx CPPFLAGS $CPPLFAGS -I/usr/local/opt/openssl/include +set -gx LDLIBS $LDLIBS -I/usr/local/opt/openssl/lib + +source ~/.asdf/asdf.fish diff --git a/fish/.config/fish/fish_variables b/fish/.config/fish/fish_variables new file mode 100644 --- /dev/null +++ b/fish/.config/fish/fish_variables @@ -0,0 +1,51 @@ +# This file contains fish universal variable definitions. +# VERSION: 3.0 +SETUVAR AGNOSTER_ICON_BGJOBS:\u2699 +SETUVAR AGNOSTER_ICON_ERROR:\u2717 +SETUVAR AGNOSTER_ICON_ROOT:\u26a1 +SETUVAR AGNOSTER_ICON_SCM_BRANCH:\ue0a0 +SETUVAR AGNOSTER_ICON_SCM_REF:\u27a6 +SETUVAR AGNOSTER_ICON_SCM_STAGED:\u2026 +SETUVAR AGNOSTER_ICON_SCM_STASHED:\x7e +SETUVAR AGNOSTER_SEGMENT_RSEPARATOR:\ue0b2\x1e\ue0b3 +SETUVAR AGNOSTER_SEGMENT_SEPARATOR:\ue0b0\x1e\x20\ue0b1\x20 +SETUVAR DEFAULT_USER:hauleth +SETUVAR --export EDITOR:nvim +SETUVAR --export FZF_DEFAULT_COMMAND:rg\x20\x2d\x2dfiles\x20\x2d\x2dhidden\x20\x2d\x2dglob\x20\x21\x2egit +SETUVAR --export GOPATH:/Users/hauleth/go +SETUVAR --export PAGER:less +SETUVAR --export SELFSSL_CERT:/Users/hauleth/Workspace/hauleth/dotfiles/certs/localhost\x2ecrt +SETUVAR --export SELFSSL_KEY:/Users/hauleth/Workspace/hauleth/dotfiles/certs/localhost\x2ekey +SETUVAR --export SKIM_DEFAULT_COMMAND:rg\x20\x2d\x2dfiles +SETUVAR --export SSH_AGENT_PID:913 +SETUVAR --export SSH_AUTH_SOCK:/private/tmp/com\x2eapple\x2elaunchd\x2ehDXTvAl95X/Listeners +SETUVAR __fish_init_2_39_8:\x1d +SETUVAR __fish_init_2_3_0:\x1d +SETUVAR _fish_abbr__2D_:cd\x20\x2d +SETUVAR fish_color_autosuggestion:555\x1ebrblack +SETUVAR fish_color_command:\x2d\x2dbold +SETUVAR fish_color_comment:red +SETUVAR fish_color_cwd:green +SETUVAR fish_color_cwd_root:red +SETUVAR fish_color_end:brmagenta +SETUVAR fish_color_error:brred +SETUVAR fish_color_escape:bryellow\x1e\x2d\x2dbold +SETUVAR fish_color_history_current:\x2d\x2dbold +SETUVAR fish_color_host:normal +SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue +SETUVAR fish_color_normal:normal +SETUVAR fish_color_operator:bryellow +SETUVAR fish_color_param:cyan +SETUVAR fish_color_quote:yellow +SETUVAR fish_color_redirection:brblue +SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack +SETUVAR fish_color_user:brgreen +SETUVAR fish_color_valid_path:\x2d\x2dunderline +SETUVAR fish_greeting:\x1d +SETUVAR fish_key_bindings:fish_default_key_bindings +SETUVAR fish_pager_color_completion:\x1d +SETUVAR fish_pager_color_description:B3A06D\x1eyellow +SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan +SETUVAR fish_user_abbreviations:\x2d\x20cd\x20\x2d diff --git a/fish/.config/fish/functions/ag.fish b/fish/.config/fish/functions/ag.fish deleted file mode 100644 --- a/fish/.config/fish/functions/ag.fish +++ /dev/null @@ -1,3 +0,0 @@ -function ag --wrap rg - rg $argv -end diff --git a/fish/.config/fish/functions/ix.fish b/fish/.config/fish/functions/ix.fish --- a/fish/.config/fish/functions/ix.fish +++ b/fish/.config/fish/functions/ix.fish @@ -1,3 +1,3 @@ function ix - curl -F 'f:1=<-' ix.io | pbcopy + curl --netrc-optional -F 'f:1=<-' ix.io | pbcopy end diff --git a/git/.config/git/hooks.d/lfs/post-checkout b/git/.config/git/hooks.d/lfs/post-checkout new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks.d/lfs/post-checkout @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } +git lfs post-checkout "$@" diff --git a/git/.config/git/hooks.d/lfs/post-commit b/git/.config/git/hooks.d/lfs/post-commit new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks.d/lfs/post-commit @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } +git lfs post-commit "$@" diff --git a/git/.config/git/hooks.d/lfs/post-merge b/git/.config/git/hooks.d/lfs/post-merge new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks.d/lfs/post-merge @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } +git lfs post-merge "$@" diff --git a/git/.config/git/hooks.d/lfs/pre-push b/git/.config/git/hooks.d/lfs/pre-push new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks.d/lfs/pre-push @@ -0,0 +1,3 @@ +#!/bin/sh +command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; } +git lfs pre-push "$@" diff --git a/git/.config/git/hooks.d/wip-check/pre-push b/git/.config/git/hooks.d/wip-check/pre-push new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks.d/wip-check/pre-push @@ -0,0 +1,58 @@ +#!/bin/sh + +# An example hook script to verify what is about to be pushed. Called by "git +# push" after it has checked the remote status, but before anything has been +# pushed. If this script exits with a non-zero status nothing will be pushed. +# +# This hook is called with the following parameters: +# +# $1 -- Name of the remote to which the push is being done +# $2 -- URL to which the push is being done +# +# If pushing without using a named remote those arguments will be equal. +# +# Information about the commits which are being pushed is supplied as lines to +# the standard input in the form: +# +# +# +# This sample shows how to prevent push of commits where the log message starts +# with "WIP" (work in progress). + + +z40=0000000000000000000000000000000000000000 + +IFS=' ' +while read local_ref local_sha remote_ref remote_sha +do + if [ "$local_sha" = "$z40" ] + then + # Handle delete + : + else + if [ "$remote_sha" = "$z40" ] + then + master_branch="$(git config --get riff.wip.master)" + # New branch, examine all commits + if [ -z "$master_branch" ] + then + range="$local_sha" + else + range="$local_sha...$master_branch" + fi + else + # Update to existing branch, examine new commits + range="$remote_sha..$local_sha" + fi + + # Check for WIP commit + commit="$(git rev-list --count -i --grep '^WIP' "$range")" + if [ "$commit" -ne "0" ] + then + echo "Found WIP $commit commit(s) in $local_ref, not pushing" + exit 1 + fi + fi +done + +exit 0 diff --git a/git/.config/git/hooks/post-checkout b/git/.config/git/hooks/post-checkout new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks/post-checkout @@ -0,0 +1,3 @@ +#!/bin/sh + +git riff hook "post-checkout" "$@" diff --git a/git/.config/git/hooks/post-commit b/git/.config/git/hooks/post-commit new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks/post-commit @@ -0,0 +1,3 @@ +#!/bin/sh + +git riff hook "post-commit" "$@" diff --git a/git/.config/git/hooks/post-merge b/git/.config/git/hooks/post-merge new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks/post-merge @@ -0,0 +1,3 @@ +#!/bin/sh + +git riff hook "post-merge" "$@" diff --git a/git/.config/git/hooks/pre-commit b/git/.config/git/hooks/pre-commit new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks/pre-commit @@ -0,0 +1,3 @@ +#!/bin/sh + +git riff hook "pre-commit" "$@" diff --git a/git/.config/git/hooks/pre-push b/git/.config/git/hooks/pre-push new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks/pre-push @@ -0,0 +1,3 @@ +#!/bin/sh + +git riff hook "pre-push" "$@" diff --git a/git/.config/git/hooks/prepare-commit-msg b/git/.config/git/hooks/prepare-commit-msg new file mode 100644 --- /dev/null +++ b/git/.config/git/hooks/prepare-commit-msg @@ -0,0 +1,3 @@ +#!/bin/sh + +git riff hook "prepare-commit-msg" "$@" diff --git a/git/Makefile b/git/Makefile deleted file mode 100644 --- a/git/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -PWD = $(shell pwd) - -install: - git config --global include.path "$(PWD)/config" - git config --global core.excludesfile "$(PWD)/ignore" - git config --global core.hooksPath "$(PWD)/hooks" - -clean: - git config --global --unset include.path - git config --global --unset core.excludesfile - git config --global --unset init.templatedir - -.PHONY: install clean diff --git a/git/config b/git/.config/git/config rename from git/config rename to git/.config/git/config --- a/git/config +++ b/git/.config/git/config @@ -1,6 +1,8 @@ [core] pager = "/usr/local/share/git-core/contrib/diff-highlight/diff-highlight | less --tabs=4 -RFX" - + commitGraph = true +[gc] + writeCommitGraph = true [alias] ai = add -i b = branch @@ -16,12 +18,12 @@ st = status -sb todo = grep -Ee '\\bTODO:?\\b' fixme = grep -Ee '\\bFIX(ME)?:?\\b' com = checkout master - fixup = commit --fixup=HEAD ag = grep rg = grep ver = tag --sort=version:refname skip = update-index --skip-worktree unskip = update-index --no-skip-worktree + publish = push -u hauleth [mergetool] keepBackup = false @@ -62,5 +64,15 @@ required = true [rerere] enabled = true + +[diff] + suppressBlankEmpty = true + indentHeuristic = true + algorithm = histogram + mnemonicPrefix = true + +[color.diff] + old = blue + new = yellow # vim: ft=gitconfig noexpandtab diff --git a/git/hooks.d/email/pre-commit b/git/.config/git/hooks.d/email/pre-commit rename from git/hooks.d/email/pre-commit rename to git/.config/git/hooks.d/email/pre-commit --- a/git/hooks.d/email/pre-commit +++ b/git/.config/git/hooks.d/email/pre-commit diff --git a/git/hooks.d/style-check/pre-commit b/git/hooks.d/style-check/pre-commit deleted file mode 100644 --- a/git/hooks.d/style-check/pre-commit +++ /dev/null @@ -1,1 +0,0 @@ -#!/bin/ diff --git a/git/hooks.d/swears/pre-commit b/git/.config/git/hooks.d/swears/pre-commit rename from git/hooks.d/swears/pre-commit rename to git/.config/git/hooks.d/swears/pre-commit --- a/git/hooks.d/swears/pre-commit +++ b/git/.config/git/hooks.d/swears/pre-commit diff --git a/git/hooks.d/swears/swears/en b/git/.config/git/hooks.d/swears/swears/en rename from git/hooks.d/swears/swears/en rename to git/.config/git/hooks.d/swears/swears/en --- a/git/hooks.d/swears/swears/en +++ b/git/.config/git/hooks.d/swears/swears/en diff --git a/git/hooks.d/swears/swears/pl b/git/.config/git/hooks.d/swears/swears/pl rename from git/hooks.d/swears/swears/pl rename to git/.config/git/hooks.d/swears/swears/pl --- a/git/hooks.d/swears/swears/pl +++ b/git/.config/git/hooks.d/swears/swears/pl diff --git a/git/hooks.d/trailing-whitespaces/pre-commit b/git/.config/git/hooks.d/trailing-whitespaces/pre-commit rename from git/hooks.d/trailing-whitespaces/pre-commit rename to git/.config/git/hooks.d/trailing-whitespaces/pre-commit --- a/git/hooks.d/trailing-whitespaces/pre-commit +++ b/git/.config/git/hooks.d/trailing-whitespaces/pre-commit diff --git a/git/hooks.d/unresolved-merge/pre-commit b/git/.config/git/hooks.d/unresolved-merge/pre-commit rename from git/hooks.d/unresolved-merge/pre-commit rename to git/.config/git/hooks.d/unresolved-merge/pre-commit --- a/git/hooks.d/unresolved-merge/pre-commit +++ b/git/.config/git/hooks.d/unresolved-merge/pre-commit diff --git a/git/hooks.d/wip-check/pre-push b/git/hooks.d/wip-check/pre-push deleted file mode 100644 --- a/git/hooks.d/wip-check/pre-push +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -# An example hook script to verify what is about to be pushed. Called by "git -# push" after it has checked the remote status, but before anything has been -# pushed. If this script exits with a non-zero status nothing will be pushed. -# -# This hook is called with the following parameters: -# -# $1 -- Name of the remote to which the push is being done -# $2 -- URL to which the push is being done -# -# If pushing without using a named remote those arguments will be equal. -# -# Information about the commits which are being pushed is supplied as lines to -# the standard input in the form: -# -# -# -# This sample shows how to prevent push of commits where the log message starts -# with "WIP" (work in progress). - - -z40=0000000000000000000000000000000000000000 - -IFS=' ' -while read local_ref local_sha remote_ref remote_sha -do - if [ "$local_sha" = "$z40" ] - then - # Handle delete - : - else - if [ "$remote_sha" = "$z40" ] - then - # New branch, examine all commits - range="$local_sha" - else - # Update to existing branch, examine new commits - range="$remote_sha..$local_sha" - fi - - # Check for WIP commit - commit="$(git rev-list -n 1 -i --grep '^WIP' "$range")" - if [ -n "$commit" ] - then - echo "Found WIP commit in $local_ref, not pushing" - exit 1 - fi - fi -done - -exit 0 diff --git a/git/hooks/hook.sh b/git/hooks/hook.sh deleted file mode 100644 --- a/git/hooks/hook.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -hooks=(post-checkout post-commit post-merge pre-commit pre-push prepare-commit-msg) - -usage() { - echo "$0 [install|help]" - echo 'Version 0.1.0' - echo 'Copyright (c) Łukasz Niemier ' - echo - echo 'Simple git hooks management system' - echo - echo 'install [hook_dir]' - echo ' Installs hooks for given repo.' - echo - echo ' [hook_dir] - directory where install hooks, defaults to .git/hooks' - echo ' in current Git working directory' - echo 'help' - echo ' display this message' - echo - echo 'To use this as default set of hooks when creating new repo then:' - echo - echo " 1. Run '$0 ~/.githooks'" - echo ' 2. Run 'git config --global core.hooksPath ~/.githooks'' - echo -} - -install() { - source="${BASH_SOURCE[0]}" - HOOK_DIR="${1:-"$(git rev-parse --show-toplevel)/.git/hooks"}" - - echo "Install handler" - echo - - mkdir -p "$HOOK_DIR" - cp -i "$source" "$HOOK_DIR/hook.sh" - - echo "Installing hooks" - echo - - for hook in "${hooks[@]}" - do - echo "Installing $hook" - ln -si "hook.sh" "$HOOK_DIR/$hook" - done -} - -hook() { - script="$(basename "$0")" - PLUG_DIRS=("$(command git config --get hooks.path)" "$GIT_DIR/hooks/hooks.d") - - test -d "$GIT_DIR"/rebase-merge -o -d "$GIT_DIR"/rebase-apply && exit 0 - - input="$(mktemp)" - touch "$input" - trap '{ rm -f "$input"; }' EXIT - cat - > "$input" - - for dir in "${PLUG_DIRS[@]}" - do - if [ -d "$dir" ] - then - find "$dir" -depth 2 -and -name "$script" -print0 2>/dev/null \ - | xargs -0 -n1 -I% sh -c 'input="$1"; shift; if [ -x "$1" ]; then printf "\n## $(basename "$(dirname "$1")")\n" && exec "$@" < "$input"; fi' -- "$input" % "$@" - retval="$?" - - if [ ! "$retval" -eq 0 ] - then - return "$retval" - fi - fi - done -} - -case "$1" in - install) - shift - install "$@" - exit - ;; - help|-h|--help|version|-v|-V|--version) - shift - usage - exit - ;; - *) - hook "$@" -esac diff --git a/git/hooks/post-checkout b/git/hooks/post-checkout deleted file mode 100644 --- a/git/hooks/post-checkout +++ /dev/null @@ -1,1 +0,0 @@ -hook.sh \ No newline at end of file diff --git a/git/hooks/post-commit b/git/hooks/post-commit deleted file mode 100644 --- a/git/hooks/post-commit +++ /dev/null @@ -1,1 +0,0 @@ -hook.sh \ No newline at end of file diff --git a/git/hooks/post-merge b/git/hooks/post-merge deleted file mode 100644 --- a/git/hooks/post-merge +++ /dev/null @@ -1,1 +0,0 @@ -hook.sh \ No newline at end of file diff --git a/git/hooks/pre-commit b/git/hooks/pre-commit deleted file mode 100644 --- a/git/hooks/pre-commit +++ /dev/null @@ -1,1 +0,0 @@ -hook.sh \ No newline at end of file diff --git a/git/hooks/pre-push b/git/hooks/pre-push deleted file mode 100644 --- a/git/hooks/pre-push +++ /dev/null @@ -1,1 +0,0 @@ -hook.sh \ No newline at end of file diff --git a/git/hooks/prepare-commit-msg b/git/hooks/prepare-commit-msg deleted file mode 100644 --- a/git/hooks/prepare-commit-msg +++ /dev/null @@ -1,1 +0,0 @@ -hook.sh \ No newline at end of file diff --git a/git/ignore b/git/.config/git/ignore rename from git/ignore rename to git/.config/git/ignore --- a/git/ignore +++ b/git/.config/git/ignore diff --git a/iterm2/Makefile b/iterm2/Makefile deleted file mode 100644 --- a/iterm2/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -ITERM2_CONFIG_PATH ?= ${HOME}/Library/Preferences - -PWD = $(shell pwd) - -install: terminfo blame.itermcolors - cp ${PWD}/com.googlecode.iterm2.plist ${ITERM2_CONFIG_PATH}/ - -terminfo: xterm-256color.terminfo - tic -o ${HOME}/.terminfo $< - -clean: - rm ${ITERM2_CONFIG_PATH}/com.googlecode.iterm2.plist - -blame.itermcolors: - wget -O$@ https://raw.githubusercontent.com/hauleth/blame.vim/master/terminal_colors/sidonia.itermcolors - -.PHONY: install clean terminfo diff --git a/iterm2/base16-ocean.dark.256.itermcolors b/iterm2/base16-ocean.dark.256.itermcolors deleted file mode 100644 --- a/iterm2/base16-ocean.dark.256.itermcolors +++ /dev/null @@ -1,259 +0,0 @@ - - - - - Ansi 0 Color - - Color Space - sRGB - Blue Component - 0.23137254901960785 - Green Component - 0.18823529411764706 - Red Component - 0.16862745098039217 - - Ansi 1 Color - - Color Space - sRGB - Blue Component - 0.41568627450980394 - Green Component - 0.3803921568627451 - Red Component - 0.7490196078431373 - - Ansi 10 Color - - Color Space - sRGB - Blue Component - 0.5490196078431373 - Green Component - 0.7450980392156863 - Red Component - 0.6392156862745098 - - Ansi 11 Color - - Color Space - sRGB - Blue Component - 0.5450980392156862 - Green Component - 0.796078431372549 - Red Component - 0.9215686274509803 - - Ansi 12 Color - - Color Space - sRGB - Blue Component - 0.7019607843137254 - Green Component - 0.6313725490196078 - Red Component - 0.5607843137254902 - - Ansi 13 Color - - Color Space - sRGB - Blue Component - 0.6784313725490196 - Green Component - 0.5568627450980392 - Red Component - 0.7058823529411765 - - Ansi 14 Color - - Color Space - sRGB - Blue Component - 0.7058823529411765 - Green Component - 0.7098039215686275 - Red Component - 0.5882352941176471 - - Ansi 15 Color - - Color Space - sRGB - Blue Component - 0.9607843137254902 - Green Component - 0.9450980392156862 - Red Component - 0.9372549019607843 - - Ansi 2 Color - - Color Space - sRGB - Blue Component - 0.5490196078431373 - Green Component - 0.7450980392156863 - Red Component - 0.6392156862745098 - - Ansi 3 Color - - Color Space - sRGB - Blue Component - 0.5450980392156862 - Green Component - 0.796078431372549 - Red Component - 0.9215686274509803 - - Ansi 4 Color - - Color Space - sRGB - Blue Component - 0.7019607843137254 - Green Component - 0.6313725490196078 - Red Component - 0.5607843137254902 - - Ansi 5 Color - - Color Space - sRGB - Blue Component - 0.6784313725490196 - Green Component - 0.5568627450980392 - Red Component - 0.7058823529411765 - - Ansi 6 Color - - Color Space - sRGB - Blue Component - 0.7058823529411765 - Green Component - 0.7098039215686275 - Red Component - 0.5882352941176471 - - Ansi 7 Color - - Color Space - sRGB - Blue Component - 0.807843137254902 - Green Component - 0.7725490196078432 - Red Component - 0.7529411764705882 - - Ansi 8 Color - - Color Space - sRGB - Blue Component - 0.49411764705882355 - Green Component - 0.45098039215686275 - Red Component - 0.396078431372549 - - Ansi 9 Color - - Color Space - sRGB - Blue Component - 0.41568627450980394 - Green Component - 0.3803921568627451 - Red Component - 0.7490196078431373 - - Background Color - - Color Space - sRGB - Blue Component - 0.23137254901960785 - Green Component - 0.18823529411764706 - Red Component - 0.16862745098039217 - - Bold Color - - Color Space - sRGB - Blue Component - 0.807843137254902 - Green Component - 0.7725490196078432 - Red Component - 0.7529411764705882 - - Cursor Color - - Color Space - sRGB - Blue Component - 0.807843137254902 - Green Component - 0.7725490196078432 - Red Component - 0.7529411764705882 - - Cursor Text Color - - Color Space - sRGB - Blue Component - 0.23137254901960785 - Green Component - 0.18823529411764706 - Red Component - 0.16862745098039217 - - Foreground Color - - Color Space - sRGB - Blue Component - 0.807843137254902 - Green Component - 0.7725490196078432 - Red Component - 0.7529411764705882 - - Selected Text Color - - Color Space - sRGB - Blue Component - 0.807843137254902 - Green Component - 0.7725490196078432 - Red Component - 0.7529411764705882 - - Selection Color - - Color Space - sRGB - Blue Component - 0.4 - Green Component - 0.3568627450980392 - Red Component - 0.30980392156862746 - - - diff --git a/iterm2/blame.itermcolors b/iterm2/blame.itermcolors deleted file mode 100644 --- a/iterm2/blame.itermcolors +++ /dev/null @@ -1,344 +0,0 @@ - - - - - Ansi 0 Color - - Alpha Component - 1 - Blue Component - 0.19181996583938599 - Color Space - Calibrated - Green Component - 0.14617142081260681 - Red Component - 0.12683285772800446 - - Ansi 1 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Ansi 10 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 11 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 12 Color - - Alpha Component - 1 - Blue Component - 0.52074593305587769 - Color Space - Calibrated - Green Component - 0.42553600668907166 - Red Component - 0.29273521900177002 - - Ansi 13 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 14 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 15 Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Ansi 2 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 3 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 4 Color - - Alpha Component - 1 - Blue Component - 0.52243638038635254 - Color Space - Calibrated - Green Component - 0.42390361428260803 - Red Component - 0.29416996240615845 - - Ansi 5 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 6 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 7 Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - Ansi 8 Color - - Alpha Component - 1 - Blue Component - 0.32186272740364075 - Color Space - Calibrated - Green Component - 0.25110143423080444 - Red Component - 0.22601978480815887 - - Ansi 9 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Background Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Badge Color - - Alpha Component - 0.5 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 1 - - Bold Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Cursor Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Cursor Guide Color - - Alpha Component - 0.25 - Blue Component - 1 - Color Space - Calibrated - Green Component - 0.9100000262260437 - Red Component - 0.64999997615814209 - - Cursor Text Color - - Alpha Component - 1 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 0.0 - - Foreground Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Link Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Selected Text Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Selection Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - - diff --git a/iterm2/com.googlecode.iterm2.plist b/iterm2/com.googlecode.iterm2.plist deleted file mode 100644 --- a/iterm2/com.googlecode.iterm2.plist +++ /dev/null @@ -1,2346 +0,0 @@ - - - - - AppleAntiAliasingThreshold - 1 - AppleScrollAnimationEnabled - 0 - AppleSmoothFixedFontsSizeThreshold - 1 - AppleWindowTabbingMode - manual - BadgeRightMargin - 10 - BadgeTopMargin - 10 - CheckTestRelease - - Custom Color Presets - - base16-ocean.dark.256 - - Ansi 0 Color - - Blue Component - 0.23137254901960785 - Color Space - sRGB - Green Component - 0.18823529411764706 - Red Component - 0.16862745098039217 - - Ansi 1 Color - - Blue Component - 0.41568627450980394 - Color Space - sRGB - Green Component - 0.38039215686274508 - Red Component - 0.74901960784313726 - - Ansi 10 Color - - Blue Component - 0.5490196078431373 - Color Space - sRGB - Green Component - 0.74509803921568629 - Red Component - 0.63921568627450975 - - Ansi 11 Color - - Blue Component - 0.54509803921568623 - Color Space - sRGB - Green Component - 0.79607843137254897 - Red Component - 0.92156862745098034 - - Ansi 12 Color - - Blue Component - 0.70196078431372544 - Color Space - sRGB - Green Component - 0.63137254901960782 - Red Component - 0.5607843137254902 - - Ansi 13 Color - - Blue Component - 0.67843137254901964 - Color Space - sRGB - Green Component - 0.55686274509803924 - Red Component - 0.70588235294117652 - - Ansi 14 Color - - Blue Component - 0.70588235294117652 - Color Space - sRGB - Green Component - 0.70980392156862748 - Red Component - 0.58823529411764708 - - Ansi 15 Color - - Blue Component - 0.96078431372549022 - Color Space - sRGB - Green Component - 0.94509803921568625 - Red Component - 0.93725490196078431 - - Ansi 2 Color - - Blue Component - 0.5490196078431373 - Color Space - sRGB - Green Component - 0.74509803921568629 - Red Component - 0.63921568627450975 - - Ansi 3 Color - - Blue Component - 0.54509803921568623 - Color Space - sRGB - Green Component - 0.79607843137254897 - Red Component - 0.92156862745098034 - - Ansi 4 Color - - Blue Component - 0.70196078431372544 - Color Space - sRGB - Green Component - 0.63137254901960782 - Red Component - 0.5607843137254902 - - Ansi 5 Color - - Blue Component - 0.67843137254901964 - Color Space - sRGB - Green Component - 0.55686274509803924 - Red Component - 0.70588235294117652 - - Ansi 6 Color - - Blue Component - 0.70588235294117652 - Color Space - sRGB - Green Component - 0.70980392156862748 - Red Component - 0.58823529411764708 - - Ansi 7 Color - - Blue Component - 0.80784313725490198 - Color Space - sRGB - Green Component - 0.77254901960784317 - Red Component - 0.75294117647058822 - - Ansi 8 Color - - Blue Component - 0.49411764705882355 - Color Space - sRGB - Green Component - 0.45098039215686275 - Red Component - 0.396078431372549 - - Ansi 9 Color - - Blue Component - 0.41568627450980394 - Color Space - sRGB - Green Component - 0.38039215686274508 - Red Component - 0.74901960784313726 - - Background Color - - Blue Component - 0.23137254901960785 - Color Space - sRGB - Green Component - 0.18823529411764706 - Red Component - 0.16862745098039217 - - Bold Color - - Blue Component - 0.80784313725490198 - Color Space - sRGB - Green Component - 0.77254901960784317 - Red Component - 0.75294117647058822 - - Cursor Color - - Blue Component - 0.80784313725490198 - Color Space - sRGB - Green Component - 0.77254901960784317 - Red Component - 0.75294117647058822 - - Cursor Text Color - - Blue Component - 0.23137254901960785 - Color Space - sRGB - Green Component - 0.18823529411764706 - Red Component - 0.16862745098039217 - - Foreground Color - - Blue Component - 0.80784313725490198 - Color Space - sRGB - Green Component - 0.77254901960784317 - Red Component - 0.75294117647058822 - - Selected Text Color - - Blue Component - 0.80784313725490198 - Color Space - sRGB - Green Component - 0.77254901960784317 - Red Component - 0.75294117647058822 - - Selection Color - - Blue Component - 0.40000000000000002 - Color Space - sRGB - Green Component - 0.35686274509803922 - Red Component - 0.30980392156862746 - - - sidonia - - Ansi 0 Color - - Alpha Component - 1 - Blue Component - 0.19181996583938599 - Color Space - Calibrated - Green Component - 0.14617142081260681 - Red Component - 0.12683285772800446 - - Ansi 1 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Ansi 10 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 11 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 12 Color - - Alpha Component - 1 - Blue Component - 0.52074593305587769 - Color Space - Calibrated - Green Component - 0.42553600668907166 - Red Component - 0.29273521900177002 - - Ansi 13 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 14 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 15 Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Ansi 2 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 3 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 4 Color - - Alpha Component - 1 - Blue Component - 0.52243638038635254 - Color Space - Calibrated - Green Component - 0.42390361428260803 - Red Component - 0.29416996240615845 - - Ansi 5 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 6 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 7 Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - Ansi 8 Color - - Alpha Component - 1 - Blue Component - 0.32186272740364075 - Color Space - Calibrated - Green Component - 0.25110143423080444 - Red Component - 0.22601978480815887 - - Ansi 9 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Background Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Badge Color - - Alpha Component - 0.5 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 1 - - Bold Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Cursor Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Cursor Guide Color - - Alpha Component - 0.25 - Blue Component - 1 - Color Space - Calibrated - Green Component - 0.9100000262260437 - Red Component - 0.64999997615814209 - - Cursor Text Color - - Alpha Component - 1 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 0.0 - - Foreground Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Link Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Selected Text Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Selection Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - - - Default Bookmark Guid - CB76C277-038B-48DF-B249-8C871E2EF0C4 - DimInactiveSplitPanes - - DimOnlyText - - EnableDivisionView - - EnableProxyIcon - - FlashTabBarInFullscreen - - HideActivityIndicator - - HideMenuBarInFullscreen - - HideScrollbar - - HideTab - - HideTabCloseButton - - HideTabNumber - - HotkeyMigratedFromSingleToMulti - - LoadPrefsFromCustomFolder - - NSFontPanelAttributes - 1, 8 - NSNavLastRootDirectory - ~/Workspace/hauleth/dotfiles/iterm2 - NSNavPanelExpandedSizeForOpenMode - {712, 448} - NSQuotedKeystrokeBinding - - NSRepeatCountBinding - - NSScrollAnimationEnabled - - NSScrollViewShouldScrollUnderTitlebar - - NSSplitView Subview Frames NSColorPanelSplitView - - 0.000000, 0.000000, 224.000000, 263.000000, NO, NO - 0.000000, 264.000000, 224.000000, 43.000000, NO, NO - - NSTableView Columns v2 KeyBingingTable - - YnBsaXN0MDDUAQIDBAUGNjdYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoK4HCA8aGxwdHh8gJjAxMlUkbnVsbNIJCgsOWk5TLm9iamVjdHNWJGNsYXNzogwN - gAKACoAN0xAJChEVGVdOUy5rZXlzoxITFIADgASABaMWFxiABoAHgAiACVpJZGVudGlm - aWVyVVdpZHRoVkhpZGRlblEwI0BowAAAAAAACNIhIiMkWiRjbGFzc25hbWVYJGNsYXNz - ZXNcTlNEaWN0aW9uYXJ5oiMlWE5TT2JqZWN00xAJCicrGaMSExSAA4AEgAWjLC0YgAuA - DIAIgAlRMSNAdKGdsi0OVtIhIjM0Xk5TTXV0YWJsZUFycmF5ozM1JVdOU0FycmF5XxAP - TlNLZXllZEFyY2hpdmVy0Tg5VUFycmF5gAEACAARABoAIwAtADIANwBGAEwAUQBcAGMA - ZgBoAGoAbABzAHsAfwCBAIMAhQCJAIsAjQCPAJEAnACiAKkAqwC0ALUAugDFAM4A2wDe - AOcA7gDyAPQA9gD4APwA/gEAAQIBBAEGAQ8BFAEjAScBLwFBAUQBSgAAAAAAAAIBAAAA - AAAAADoAAAAAAAAAAAAAAAAAAAFM - - NSTableView Sort Ordering v2 KeyBingingTable - - YnBsaXN0MDDUAQIDBAUGFBVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKMHCA1VJG51bGzSCQoLDFpOUy5vYmplY3RzViRjbGFzc6CAAtIODxARWiRjbGFz - c25hbWVYJGNsYXNzZXNeTlNNdXRhYmxlQXJyYXmjEBITV05TQXJyYXlYTlNPYmplY3Rf - EA9OU0tleWVkQXJjaGl2ZXLRFhdVQXJyYXmAAQgRGiMtMjc7QUZRWFlbYGt0g4ePmKqt - swAAAAAAAAEBAAAAAAAAABgAAAAAAAAAAAAAAAAAAAC1 - - NSTableView Supports v2 KeyBingingTable - - NSToolbar Configuration com.apple.NSColorPanel - - TB Is Shown - 1 - - NSWindow Frame NSFontPanel - 399 280 659 77 0 0 1440 900 - NSWindow Frame SUAutomaticUpdateAlert - 412 544 616 174 0 0 1440 900 - NSWindow Frame SUUpdateAlert - -1270 516 620 392 -1920 0 1920 1080 - NSWindow Frame SessionsPreferences - 269 126 606 469 0 0 1440 900 - NSWindow Frame SharedPreferences - 263 495 918 394 0 0 1440 900 - NSWindow Frame UKCrashReporter - 99 316 592 584 0 0 1440 900 - NSWindow Frame com.apple.typography_panel_Hasklig-Regular - -1620 731 260 310 -1920 0 1920 1080 - NSWindow Frame com.apple.typography_panel_Iosevka - 246 252 260 352 0 0 1440 900 - NSWindow Frame iTerm Window 0 - 10 5 1419 890 0 0 1440 900 - NSWindow Frame iTerm Window 1 - 10 458 1419 431 0 0 1440 900 - NSWindow Frame iTerm Window 2 - 12 -90 1896 900 0 0 1440 900 - NSWindow Frame iTerm Window 3 - 963 -90 944 900 0 0 1440 900 - New Bookmarks - - - ASCII Anti Aliased - - ASCII Ligatures - - AWDS Pane Directory - - AWDS Pane Option - Recycle - AWDS Tab Directory - - AWDS Tab Option - No - AWDS Window Directory - - AWDS Window Option - No - Ambiguous Double Width - - Ansi 0 Color - - Alpha Component - 1 - Blue Component - 0.19181996583938599 - Color Space - Calibrated - Green Component - 0.14617142081260681 - Red Component - 0.12683285772800446 - - Ansi 1 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Ansi 10 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 11 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 12 Color - - Alpha Component - 1 - Blue Component - 0.52074593305587769 - Color Space - Calibrated - Green Component - 0.42553600668907166 - Red Component - 0.29273521900177002 - - Ansi 13 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 14 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 15 Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Ansi 2 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 3 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 4 Color - - Alpha Component - 1 - Blue Component - 0.52243638038635254 - Color Space - Calibrated - Green Component - 0.42390361428260803 - Red Component - 0.29416996240615845 - - Ansi 5 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 6 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 7 Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - Ansi 8 Color - - Alpha Component - 1 - Blue Component - 0.32186272740364075 - Color Space - Calibrated - Green Component - 0.25110143423080444 - Red Component - 0.22601978480815887 - - Ansi 9 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - BM Growl - - Background Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Background Image Location - - Badge Color - - Alpha Component - 0.5 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 1 - - Blinking Cursor - - Blur - - Bold Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Character Encoding - 4 - Close Sessions On End - - Columns - 80 - Command - - Cursor Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Cursor Guide Color - - Alpha Component - 0.25 - Blue Component - 1 - Color Space - Calibrated - Green Component - 0.9100000262260437 - Red Component - 0.64999997615814209 - - Cursor Text Color - - Alpha Component - 1 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 0.0 - - Custom Command - No - Custom Directory - Advanced - Default Bookmark - No - Description - Default - Disable Window Resizing - - Flashing Bell - - Foreground Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Guid - CB76C277-038B-48DF-B249-8C871E2EF0C4 - 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 - - - Link Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Minimum Contrast - 0.0 - Mouse Reporting - - Name - Default - Non Ascii Font - Monaco 12 - Non-ASCII Anti Aliased - - Normal Font - Iosevka 13 - Only The Default BG Color Uses Transparency - - Option Key Sends - 2 - Prompt Before Closing 2 - - Right Option Key Sends - 0 - Rows - 25 - Screen - -1 - Scrollback Lines - 1000 - Selected Text Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Selection Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - Send Code When Idle - - Shortcut - - Silence Bell - - Smart Cursor Color - - Sync Title - - Tab Color - - Alpha Component - 1 - Blue Component - 0.25098039215686274 - Color Space - sRGB - Green Component - 0.19607843137254902 - Red Component - 0.16862745098039217 - - Tags - - Terminal Type - xterm-256color - Thin Strokes - 4 - Transparency - 0.07771851205583756 - Unicode Normalization - 0 - Unicode Version - 9 - Unlimited Scrollback - - Use Bold Font - - Use Bright Bold - - Use Cursor Guide - - Use Italic Font - - Use Non-ASCII Font - - Use Tab Color - - Use Underline Color - - Vertical Spacing - 1 - Visual Bell - - Window Type - 12 - Working Directory - /Users/hauleth - - - ASCII Anti Aliased - - ASCII Ligatures - - AWDS Pane Directory - - AWDS Pane Option - Recycle - AWDS Tab Directory - - AWDS Tab Option - No - AWDS Window Directory - - AWDS Window Option - No - Ambiguous Double Width - - Ansi 0 Color - - Alpha Component - 1 - Blue Component - 0.19181996583938599 - Color Space - Calibrated - Green Component - 0.14617142081260681 - Red Component - 0.12683285772800446 - - Ansi 1 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Ansi 10 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 11 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 12 Color - - Alpha Component - 1 - Blue Component - 0.52074593305587769 - Color Space - Calibrated - Green Component - 0.42553600668907166 - Red Component - 0.29273521900177002 - - Ansi 13 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 14 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 15 Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Ansi 2 Color - - Alpha Component - 1 - Blue Component - 0.61565852165222168 - Color Space - Calibrated - Green Component - 0.65109741687774658 - Red Component - 0.46455502510070801 - - Ansi 3 Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Ansi 4 Color - - Alpha Component - 1 - Blue Component - 0.52243638038635254 - Color Space - Calibrated - Green Component - 0.42390361428260803 - Red Component - 0.29416996240615845 - - Ansi 5 Color - - Alpha Component - 1 - Blue Component - 0.34057667851448059 - Color Space - Calibrated - Green Component - 0.19128309190273285 - Red Component - 0.24134033918380737 - - Ansi 6 Color - - Alpha Component - 1 - Blue Component - 0.52057713270187378 - Color Space - Calibrated - Green Component - 0.42788803577423096 - Red Component - 0.054009675979614258 - - Ansi 7 Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - Ansi 8 Color - - Alpha Component - 1 - Blue Component - 0.32186272740364075 - Color Space - Calibrated - Green Component - 0.25110143423080444 - Red Component - 0.22601978480815887 - - Ansi 9 Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - BM Growl - - Background Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Background Image Location - - Badge Color - - Alpha Component - 0.5 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 1 - - Blinking Cursor - - Blur - - Bold Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Bound Hosts - - Character Encoding - 4 - Close Sessions On End - - Columns - 80 - Command - - Cursor Color - - Alpha Component - 1 - Blue Component - 0.99999129772186279 - Color Space - Calibrated - Green Component - 0.99997437000274658 - Red Component - 1 - - Cursor Guide Color - - Alpha Component - 0.25 - Blue Component - 1 - Color Space - Calibrated - Green Component - 0.9100000262260437 - Red Component - 0.64999997615814209 - - Cursor Text Color - - Alpha Component - 1 - Blue Component - 0.0 - Color Space - Calibrated - Green Component - 0.0 - Red Component - 0.0 - - Custom Command - No - Custom Directory - Advanced - Default Bookmark - No - Description - Default - Disable Window Resizing - - Flashing Bell - - Foreground Color - - Alpha Component - 1 - Blue Component - 0.79255306720733643 - Color Space - Calibrated - Green Component - 0.7406609058380127 - Red Component - 0.70601540803909302 - - Guid - 1D1CB424-D1FF-49F0-88BA-31092F3A9D15 - 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 - - - Link Color - - Alpha Component - 1 - Blue Component - 0.20610834658145905 - Color Space - Calibrated - Green Component - 0.07032255083322525 - Red Component - 0.5645938515663147 - - Minimum Contrast - 0.0 - Mouse Reporting - - Name - Presentation - Non Ascii Font - Monaco 12 - Non-ASCII Anti Aliased - - Normal Font - Hasklig-Regular 36 - Option Key Sends - 2 - Prompt Before Closing 2 - - Right Option Key Sends - 0 - Rows - 25 - Screen - -1 - Scrollback Lines - 1000 - Selected Text Color - - Alpha Component - 1 - Blue Component - 0.19181998074054718 - Color Space - Calibrated - Green Component - 0.14616937935352325 - Red Component - 0.12683001160621643 - - Selection Color - - Alpha Component - 1 - Blue Component - 0.58937221765518188 - Color Space - Calibrated - Green Component - 0.52406448125839233 - Red Component - 0.47656098008155823 - - Send Code When Idle - - Shortcut - P - Silence Bell - - Sync Title - - Tags - - Terminal Type - xterm-256color - Transparency - 0.0 - Unicode Normalization - 0 - Unlimited Scrollback - - Use Bold Font - - Use Bright Bold - - Use Italic Font - - Use Non-ASCII Font - - Use Tab Color - - Use Underline Color - - Vertical Spacing - 1 - Visual Bell - - Window Type - 0 - Working Directory - /Users/hauleth - - - NoSyncCommandHistoryHasEverBeenUsed - - NoSyncHaveWarnedAboutIncompatibleSoftware - - NoSyncHaveWarnedAboutPasteConfirmationChange - - NoSyncInstallUtilitiesPackage - - NoSyncInstallUtilitiesPackage_selection - 0 - NoSyncInstallationId - DF86C20E-673B-4101-AAB8-B9915499917C - NoSyncNeverRemindPrefsChangesLostForFile - - NoSyncNeverRemindPrefsChangesLostForFile_selection - 0 - NoSyncPermissionToShowTip - - NoSyncTimeOfFirstLaunchOfVersionWithTip - 511865962.15414101 - NoSyncTurnOffBracketedPasteOnHostChange - - OpenTmuxWindowsIn - 1 - PMPrintingExpandedStateForPrint2 - - 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/hauleth/Workspace/hauleth/dotfiles/iterm2 - Print In Black And White - - SUAutomaticallyUpdate - - SUEnableAutomaticChecks - - SUFeedAlternateAppNameKey - iTerm - SUFeedURL - https://iterm2.com/appcasts/testing.xml?shard=53 - SUHasLaunchedBefore - - SULastCheckTime - 2018-07-11T14:13:39Z - SUSendProfileInfo - - ShowBookmarkName - - ShowFullScreenTabBar - - ShowNewOutputIndicator - - ShowPaneTitles - - StretchTabsToFillBar - - TabStyle - 1 - TabViewType - 1 - TerminalMargin - 20 - TerminalVMargin - 20 - UseBorder - - UseMetal - - WordCharacters - kkk - findIgnoreCase_iTerm - - findRegex_iTerm - - iTerm Version - 3.2.0beta6 - kCPKSelectionViewPreferredModeKey - 0 - kCPKSelectionViewShowHSBTextFieldsKey - - - diff --git a/iterm2/xterm-256color.terminfo b/iterm2/xterm-256color.terminfo deleted file mode 100644 --- a/iterm2/xterm-256color.terminfo +++ /dev/null @@ -1,5 +0,0 @@ -# A xterm-256color based TERMINFO that adds the escape sequences for italic. -xterm-256color|xterm with 256 colors and italic, - sitm=\E[3m, ritm=\E[23m, - use=xterm-256color, - kbs=\177, diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf new file mode 100644 --- /dev/null +++ b/kitty/.config/kitty/kitty.conf @@ -0,0 +1,812 @@ +# vim:fileencoding=utf-8:ft=conf:foldmethod=marker + +#: Fonts {{{ + +#: kitty has very powerful font management. You can configure +#: individual font faces and even specify special fonts for particular +#: characters. + +font_family Iosevka Term SS10 Medium +bold_font Iosevka Term SS10 Bold +italic_font Iosevka Term SS10 Medium Italic +bold_italic_font Iosevka Term SS10 Bold Italic + +#: You can specify different fonts for the bold/italic/bold-italic +#: variants. By default they are derived automatically, by the OSes +#: font system. Setting them manually is useful for font families that +#: have many weight variants like Book, Medium, Thick, etc. For +#: example:: + +#: font_family Operator Mono Book +#: bold_font Operator Mono Medium +#: italic_font Operator Mono Book Italic +#: bold_italic_font Operator Mono Medium Italic + +font_size 14.0 + +#: Font size (in pts) + +# adjust_line_height 0 +# adjust_column_width 0 + +#: Change the size of each character cell kitty renders. You can use +#: either numbers, which are interpreted as pixels or percentages +#: (number followed by %), which are interpreted as percentages of the +#: unmodified values. You can use negative pixels or percentages less +#: than 100% to reduce sizes (but this might cause rendering +#: artifacts). + +# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols + +#: Map the specified unicode codepoints to a particular font. Useful +#: if you need special rendering for some symbols, such as for +#: Powerline. Avoids the need for patched fonts. Each unicode code +#: point is specified in the form U+. You +#: can specify multiple code points, separated by commas and ranges +#: separated by hyphens. symbol_map itself can be specified multiple +#: times. Syntax is:: + +#: symbol_map codepoints Font Family Name + +# box_drawing_scale 0.001, 1, 1.5, 2 + +#: Change the sizes of the lines used for the box drawing unicode +#: characters These values are in pts. They will be scaled by the +#: monitor DPI to arrive at a pixel value. There must be four values +#: corresponding to thin, normal, thick, and very thick lines. + +#: }}} + +#: Cursor customization {{{ + +cursor #ffffff + +#: Default cursor color + +# cursor_shape block + +#: The cursor shape can be one of (block, beam, underline) + +# cursor_blink_interval 0.5 +# cursor_stop_blinking_after 15.0 + +#: The interval (in seconds) at which to blink the cursor. Set to zero +#: to disable blinking. Note that numbers smaller than repaint_delay +#: will be limited to repaint_delay. Stop blinking cursor after the +#: specified number of seconds of keyboard inactivity. Set to zero to +#: never stop blinking. + +#: }}} + +#: Scrollback {{{ + +# scrollback_lines 2000 + +#: Number of lines of history to keep in memory for scrolling back. +#: Memory is allocated on demand. + +# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER + +#: Program with which to view scrollback in a new window. The +#: scrollback buffer is passed as STDIN to this program. If you change +#: it, make sure the program you use can handle ANSI escape sequences +#: for colors and text formatting. INPUT_LINE_NUMBER in the command +#: line above will be replaced by an integer representing which line +#: should be at the top of the screen. + +# wheel_scroll_multiplier 5.0 + +#: Modify the amount scrolled by the mouse wheel or touchpad. Use +#: negative numbers to change scroll direction. + +#: }}} + +#: Mouse {{{ + +# url_color #0087BD +# url_style curly + +#: The color and style for highlighting URLs on mouse-over. url_style +#: can be one of: none, single, double, curly + +# open_url_modifiers kitty_mod + +#: The modifier keys to press when clicking with the mouse on URLs to +#: open the URL + +# open_url_with default + +#: The program with which to open URLs that are clicked on. The +#: special value default means to use the operating system's default +#: URL handler. + +# copy_on_select no + +#: Copy to clipboard on select. With this enabled, simply selecting +#: text with the mouse will cause the text to be copied to clipboard. +#: Useful on platforms such as macOS/Wayland that do not have the +#: concept of primary selections. Note that this is a security risk, +#: as all programs, including websites open in your browser can read +#: the contents of the clipboard. + +# rectangle_select_modifiers ctrl+alt + +#: The modifiers to use rectangular selection (i.e. to select text in +#: a rectangular block with the mouse) + +# select_by_word_characters :@-./_~?&=%+# + +#: Characters considered part of a word when double clicking. In +#: addition to these characters any character that is marked as an +#: alpha-numeric character in the unicode database will be matched. + +# click_interval 0.5 + +#: The interval between successive clicks to detect double/triple +#: clicks (in seconds) + +# mouse_hide_wait 3.0 + +#: Hide mouse cursor after the specified number of seconds of the +#: mouse not being used. Set to zero to disable mouse cursor hiding. + +# focus_follows_mouse no + +#: Set the active window to the window under the mouse when moving the +#: mouse around + +#: }}} + +#: Performance tuning {{{ + +# repaint_delay 10 + +#: Delay (in milliseconds) between screen updates. Decreasing it, +#: increases frames-per-second (FPS) at the cost of more CPU usage. +#: The default value yields ~100 FPS which is more than sufficient for +#: most uses. Note that to actually achieve 100 FPS you have to either +#: set sync_to_monitor to no or use a monitor with a high refresh +#: rate. + +# input_delay 3 + +#: Delay (in milliseconds) before input from the program running in +#: the terminal is processed. Note that decreasing it will increase +#: responsiveness, but also increase CPU usage and might cause flicker +#: in full screen programs that redraw the entire screen on each loop, +#: because kitty is so fast that partial screen updates will be drawn. + +# sync_to_monitor yes + +#: Sync screen updates to the refresh rate of the monitor. This +#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing) +#: when scrolling. However, it limits the rendering speed to the +#: refresh rate of your monitor. With a very high speed mouse/high +#: keyboard repeat rate, you may notice some slight input latency. If +#: so, set this to no. + +#: }}} + +#: Terminal bell {{{ + +enable_audio_bell false + +#: Enable/disable the audio bell. Useful in environments that require +#: silence. + +visual_bell_duration 0.1 + +#: Visual bell duration. Flash the screen when a bell occurs for the +#: specified number of seconds. Set to zero to disable. + +# window_alert_on_bell yes + +#: Request window attention on bell. Makes the dock icon bounce on +#: macOS or the taskbar flash on linux. + +# bell_on_tab yes + +#: Show a bell symbol on the tab if a bell occurs in one of the +#: windows in the tab and the window is not the currently focused +#: window + +#: }}} + +#: Window layout {{{ + +# remember_window_size yes +# initial_window_width 640 +# initial_window_height 400 + +#: If enabled, the window size will be remembered so that new +#: instances of kitty will have the same size as the previous +#: instance. If disabled, the window will initially have size +#: configured by initial_window_width/height, in pixels. You can use a +#: suffix of "c" on the width/height values to have them interpreted +#: as number of cells instead of pixels. + +# enabled_layouts * + +#: The enabled window layouts. A comma separated list of layout names. +#: The special value * means all layouts. The first listed layout will +#: be used as the startup layout. For a list of available layouts, see +#: the layouts. + +# window_resize_step_cells 2 +# window_resize_step_lines 2 + +#: The step size (in units of cell width/cell height) to use when +#: resizing windows. The cells value is used for horizontal resizing +#: and the lines value for vertical resizing. + +# window_border_width 1.0 + +#: The width (in pts) of window borders. Will be rounded to the +#: nearest number of pixels based on screen resolution. Note that +#: borders are displayed only when more than one window is visible. +#: They are meant to separate multiple windows. + +# draw_minimal_borders yes + +#: Draw only the minimum borders needed. This means that only the +#: minimum needed borders for inactive windows are drawn. That is only +#: the borders that separate the inactive window from a neighbor. Note +#: that setting a non-zero window margin overrides this and causes all +#: borders to be drawn. + +# window_margin_width 10.0 + +#: The window margin (in pts) (blank area outside the border) + +# single_window_margin_width -1000.0 + +#: The window margin (in pts) to use when only a single window is +#: visible. Negative values will cause the value of +#: window_margin_width to be used instead. + +window_padding_width 30.0 + +#: The window padding (in pts) (blank area between the text and the +#: window border) + +# active_border_color #00ff00 + +#: The color for the border of the active window + +# inactive_border_color #cccccc + +#: The color for the border of inactive windows + +# bell_border_color #ff5a00 + +#: The color for the border of inactive windows in which a bell has +#: occurred + +# inactive_text_alpha 1.0 + +#: Fade the text in inactive windows by the specified amount (a number +#: between zero and one, with zero being fully faded). + +#: }}} + +#: Tab bar {{{ + +# tab_bar_edge bottom + +#: Which edge to show the tab bar on, top or bottom + +# tab_bar_margin_width 0.0 + +#: The margin to the left and right of the tab bar (in pts) + +# tab_bar_style fade + +#: The tab bar style, can be one of: fade or separator. In the fade +#: style, each tab's edges fade into the background color, in the +#: separator style, tabs are separated by a configurable separator. + +# tab_fade 0.25 0.5 0.75 1 + +#: Control how each tab fades into the background when using fade for +#: the tab_bar_style. Each number is an alpha (between zero and one) +#: that controls how much the corresponding cell fades into the +#: background, with zero being no fade and one being full fade. You +#: can change the number of cells used by adding/removing entries to +#: this list. + +# tab_separator " ┇" + +#: The separator between tabs in the tab bar when using separator as +#: the tab_bar_style. + +# active_tab_foreground #000 +# active_tab_background #eee +# active_tab_font_style bold-italic +# inactive_tab_foreground #444 +# inactive_tab_background #999 +# inactive_tab_font_style normal + +#: Tab bar colors and styles + +#: }}} + +#: Color scheme {{{ + +foreground #c1c9d4 +background #2b3240 + +#: The foreground and background colors + +background_opacity 1 +# dynamic_background_opacity no + +#: The opacity of the background. A number between 0 and 1, where 1 is +#: opaque and 0 is fully transparent. This will only work if +#: supported by the OS (for instance, when using a compositor under +#: X11). Note that it only sets the default background color's +#: opacity. This is so that things like the status bar in vim, +#: powerline prompts, etc. still look good. But it means that if you +#: use a color theme with a background color in your editor, it will +#: not be rendered as transparent. Instead you should change the +#: default background color in your kitty config and not use a +#: background color in the editor color scheme. Or use the escape +#: codes to set the terminals default colors in a shell script to +#: launch your editor. Be aware that using a value less than 1.0 is a +#: (possibly significant) performance hit. If you want to dynamically +#: change transparency of windows set dynamic_background_opacity to +#: yes (this is off by default as it has a performance cost) + +# dim_opacity 0.75 + +#: How much to dim text that has the DIM/FAINT attribute set. One +#: means no dimming and zero means fully dimmed (i.e. invisible). + +selection_foreground #2b3240 +selection_background #8c98a7 + +#: The foreground and background for text selected with the mouse + + +#: The 16 terminal colors. There are 8 basic colors, each color has a +#: dull and bright version. You can also set the remaining colors from +#: the 256 color table as color16 to color255. + +color0 #2b3240 +color8 #4a5265 + +#: black + +color1 #bc284f +color9 #bc284f + +#: red + +color2 #88b4ad +color10 #88b4ad + +#: green + +color3 #ffffff +color11 #ffffff + +#: yellow + +color4 #5c8097 +color12 #5c8097 + +#: blue + +color5 #4f426a +color13 #4f426a + +#: magenta + +color6 #008097 +color14 #008097 + +#: cyan + +color7 #8c98a7 +color15 #c1c9d4 + +#: white + +#: }}} + +#: Advanced {{{ + +# shell . + +#: The shell program to execute. The default value of . means to use +#: whatever shell is set as the default shell for the current user. +#: Note that on macOS if you change this, you might need to add +#: --login to ensure that the shell starts in interactive mode and +#: reads its startup rc files. + +# editor . + +#: The console editor to use when editing the kitty config file or +#: similar tasks. A value of . means to use the environment variable +#: EDITOR. Note that this environment variable has to be set not just +#: in your shell startup scripts but system-wide, otherwise kitty will +#: not see it. + +# close_on_child_death no + +#: Close the window when the child process (shell) exits. If no (the +#: default), the terminal will remain open when the child exits as +#: long as there are still processes outputting to the terminal (for +#: example disowned or backgrounded processes). If yes, the window +#: will close as soon as the child process exits. Note that setting it +#: to yes means that any background processes still using the terminal +#: can fail silently because their stdout/stderr/stdin no longer work. + +# allow_remote_control no + +#: Allow other programs to control kitty. If you turn this on other +#: programs can control all aspects of kitty, including sending text +#: to kitty windows, opening new windows, closing windows, reading the +#: content of windows, etc. Note that this even works over ssh +#: connections. + +# startup_session none + +#: Path to a session file to use for all kitty instances. Can be +#: overridden by using the kitty --session command line option for +#: individual instances. See sessions in the kitty documentation for +#: details. Note that relative paths are interpreted with respect to +#: the kitty config directory. Environment variables in the path are +#: expanded. + +# clipboard_control write-clipboard write-primary + +#: Allow programs running in kitty to read and write from the +#: clipboard. You can control exactly which actions are allowed. The +#: set of possible actions is: write-clipboard read-clipboard write- +#: primary read-primary The default is to allow writing to the +#: clipboard and primary selection. Note that enabling the read +#: functionality is a security risk as it means that any program, even +#: one running on a remote server via SSH can read your clipboard. + +term xterm-256color + +#: The value of the TERM environment variable to set. Changing this +#: can break many terminal programs, only change it if you know what +#: you are doing, not because you read some advice on Stack Overflow +#: to change it. + +#: }}} + +#: OS specific tweaks {{{ + +macos_thicken_font 0.0 + +# macos_titlebar_color system + +#: Change the color of the kitty window's titlebar on macOS. A value +#: of system means to use the default system color, a value of +#: background means to use the background color of the currently +#: active window and finally you can use an arbitrary color, such as +#: #12af59 or red. WARNING: This option works by using a hack, as +#: there is no proper Cocoa API for it. It sets the background color +#: of the entire window and makes the titlebar transparent. As such it +#: is incompatible with background_opacity. If you want to use both, +#: you are probably better off just hiding the titlebar with +#: macos_hide_titlebar. + +macos_hide_titlebar yes + +#: Hide the kitty window's title bar on macOS. + +# x11_hide_window_decorations no + +#: Hide the window decorations (title bar and window borders) on X11 +#: and Wayland. Whether this works and exactly what effect it has +#: depends on the window manager, as it is the job of the window +#: manager/compositor to draw window decorations. + +# macos_option_as_alt no + +#: Use the option key as an alt key. With this set to no, kitty will +#: use the macOS native Option+Key = unicode character behavior. This +#: will break any Alt+key keyboard shortcuts in your terminal +#: programs, but you can use the macOS unicode input technique. + +# macos_hide_from_tasks no + +#: Hide the kitty window from running tasks (Option+Tab) on macOS. + +# macos_quit_when_last_window_closed no + +#: Have kitty quit when all the top-level windows are closed. By +#: default, kitty will stay running, even with no open windows, as is +#: the expected behavior on macOS. + +# macos_window_resizable yes + +#: Disable this if you want kitty top-level (OS) windows to not be +#: resizable on macOS. + +#: }}} + +#: Keyboard shortcuts {{{ + +#: For a list of key names, see: GLFW keys +#: . The name to use +#: is the part after the GLFW_KEY_ prefix. For a list of modifier +#: names, see: GLFW mods +#: + +#: On Linux you can also use XKB key names to bind keys that are not +#: supported by GLFW. See XKB keys +#: for a list of key names. The name to use is the part +#: after the XKB_KEY_ prefix. Note that you should only use an XKB key +#: name for keys that are not present in the list of GLFW keys. + +#: You can use the special action no_op to unmap a keyboard shortcut +#: that is assigned in the default configuration. + +#: You can combine multiple actions to be triggered by a single +#: shortcut, using the syntax below:: + +#: map key combine action1 action2 action3 ... + +#: For example:: + +#: map kitty_mod+e combine : new_window : next_layout + +#: this will create a new window and switch to the next available +#: layout + +#: You can use multi-key shortcuts using the syntax shown below:: + +#: map key1>key2>key3 action + +#: For example:: + +#: map ctrl+f>2 set_font_size 20 + +# kitty_mod ctrl+shift + +#: The value of kitty_mod is used as the modifier for all default +#: shortcuts, you can change it in your kitty.conf to change the +#: modifiers for all the default shortcuts. + +# clear_all_shortcuts no + +#: You can have kitty remove all shortcut definition seen up to this +#: point. Useful, for instance, to remove the default shortcuts. + +#: Clipboard {{{ + +# map cmd+c copy_to_clipboard +# map kitty_mod+c copy_to_clipboard +# map cmd+v paste_from_clipboard +# map kitty_mod+v paste_from_clipboard +# map kitty_mod+s paste_from_selection +# map shift+insert paste_from_selection +# map kitty_mod+o pass_selection_to_program + +#: You can also pass the contents of the current selection to any +#: program using pass_selection_to_program. By default, the system's +#: open program is used, but you can specify your own, for example:: + +#: map kitty_mod+o pass_selection_to_program firefox + +#: You can pass the current selection to a terminal program running in +#: a new kitty window, by using the @selection placeholder:: + +#: map kitty_mod+y new_window less @selection + +#: }}} + +#: Scrolling {{{ + +# map kitty_mod+up scroll_line_up +# map kitty_mod+k scroll_line_up +# map kitty_mod+down scroll_line_down +# map kitty_mod+j scroll_line_down +# map kitty_mod+page_up scroll_page_up +# map kitty_mod+page_down scroll_page_down +# map kitty_mod+home scroll_home +# map kitty_mod+end scroll_end +# map kitty_mod+h show_scrollback + +#: You can send the contents of the current screen + history buffer as +#: stdin to an arbitrary program using the placeholders @text (which +#: is the plain text) and @ansi (which includes text styling escape +#: codes). For only the current screen, use @screen or @ansi_screen. +#: For example, the following command opens the scrollback buffer in +#: less in a new window:: + +#: map kitty_mod+y new_window @ansi less +G -R + +#: }}} + +#: Window management {{{ + +# map cmd+n new_window + +#: You can open a new window running an arbitrary program, for +#: example:: + +#: map kitty_mod+y new_window mutt + +#: You can open a new window with the current working directory set to +#: the working directory of the current window using:: + +#: map ctrl+alt+enter new_window_with_cwd + +# map cmd+n new_os_window +# map kitty_mod+n new_os_window +# map kitty_mod+w close_window +# map kitty_mod+] next_window +# map kitty_mod+[ previous_window +# map kitty_mod+f move_window_forward +# map kitty_mod+b move_window_backward +# map kitty_mod+` move_window_to_top +# map kitty_mod+r start_resizing_window +# map kitty_mod+1 first_window +# map kitty_mod+2 second_window +# map kitty_mod+3 third_window +# map kitty_mod+4 fourth_window +# map kitty_mod+5 fifth_window +# map kitty_mod+6 sixth_window +# map kitty_mod+7 seventh_window +# map kitty_mod+8 eighth_window +# map kitty_mod+9 ninth_window +# map kitty_mod+0 tenth_window +#: }}} + +#: Tab management {{{ + +# map kitty_mod+right next_tab +# map kitty_mod+left previous_tab +# map kitty_mod+t new_tab +# map kitty_mod+q close_tab +# map kitty_mod+. move_tab_forward +# map kitty_mod+, move_tab_backward +# map kitty_mod+alt+t set_tab_title + +#: You can also create shortcuts to go to specific tabs, with 1 being +#: the first tab:: + +#: map ctrl+alt+1 goto_tab 1 +#: map ctrl+alt+2 goto_tab 2 + +#: Just as with new_window above, you can also pass the name of +#: arbitrary commands to run when using new_tab and use +#: new_tab_with_cwd. +#: }}} + +#: Layout management {{{ + +# map kitty_mod+l next_layout + +#: You can also create shortcuts to switch to specific layouts:: + +#: map ctrl+alt+t goto_layout tall +#: map ctrl+alt+s goto_layout stack +#: }}} + +#: Font sizes {{{ + +#: You can change the font size for all top-level kitty windows at a +#: time or only the current one. + +# map kitty_mod+equal change_font_size all +2.0 +# map kitty_mod+minus change_font_size all -2.0 +# map kitty_mod+backspace change_font_size all 0 + +#: To setup shortcuts for specific font sizes:: + +#: map kitty_mod+f6 change_font_size all 10.0 + +#: To setup shortcuts to change only the current window's font size:: + +#: map kitty_mod+f6 change_font_size current 10.0 +#: }}} + +#: Select and act on visible text {{{ + +#: Use the hints kitten to select text and either pass it to an +#: external program or insert it into the terminal or copy it to the +#: clipboard. + +# map kitty_mod+e kitten hints + +#: Open a currently visible URL using the keyboard. The program used +#: to open the URL is specified in open_url_with. + +# map kitty_mod+p>f kitten hints --type path --program - + +#: Select a path/filename and insert it into the terminal. Useful, for +#: instance to run git commands on a filename output from a previous +#: git command. + +# map kitty_mod+p>shift+f kitten hints --type path + +#: Select a path/filename and open it with the default open program. + +# map kitty_mod+p>l kitten hints --type line --program - + +#: Select a line of text and insert it into the terminal. Use for the +#: output of things like: ls -1 + +# map kitty_mod+p>w kitten hints --type word --program - + +#: Select words and insert into terminal. + +# map kitty_mod+p>h kitten hints --type hash --program - + +#: Select something that looks like a hash and insert it into the +#: terminal. Useful with git, which uses sha1 hashes to identify +#: commits + + +#: The hints kitten has many more modes of operation that you can map +#: to different shortcuts. For a full description see kittens/hints. +#: }}} + +#: Miscellaneous {{{ + +# map kitty_mod+f11 toggle_fullscreen +# map kitty_mod+u input_unicode_character +# map kitty_mod+f2 edit_config_file +# map kitty_mod+escape kitty_shell window + +#: Open the kitty shell in a new window/tab/overlay/os_window to +#: control kitty using commands. + +# map kitty_mod+a>m set_background_opacity +0.1 +# map kitty_mod+a>l set_background_opacity -0.1 +# map kitty_mod+a>1 set_background_opacity 1 +# map kitty_mod+a>d set_background_opacity default + +#: You can tell kitty to send arbitrary (UTF-8) encoded text to the +#: client program when pressing specified shortcut keys. For example:: + +#: map ctrl+alt+a send_text all Special text + +#: This will send "Special text" when you press the ctrl+alt+a key +#: combination. The text to be sent is a python string literal so you +#: can use escapes like \x1b to send control codes or \u21fb to send +#: unicode characters (or you can just input the unicode characters +#: directly as UTF-8 text). The first argument to send_text is the +#: keyboard modes in which to activate the shortcut. The possible +#: values are normal or application or kitty or a comma separated +#: combination of them. The special keyword all means all modes. The +#: modes normal and application refer to the DECCKM cursor key mode +#: for terminals, and kitty refers to the special kitty extended +#: keyboard protocol. + +#: Another example, that outputs a word and then moves the cursor to +#: the start of the line (same as pressing the Home key):: + +#: map ctrl+alt+a send_text normal Word\x1b[H +#: map ctrl+alt+a send_text application Word\x1bOH + +#: }}} + +map alt+a send_text all \u0105 +map alt+c send_text all \u0107 +map alt+e send_text all \u0119 +map alt+l send_text all \u0142 +map alt+n send_text all \u0144 +map alt+o send_text all \u00F3 +map alt+s send_text all \u015B +map alt+x send_text all \u017A +map alt+z send_text all \u017C + +map alt+shift+a send_text all \u0104 +map alt+shift+c send_text all \u0106 +map alt+shift+e send_text all \u0118 +map alt+shift+l send_text all \u0141 +map alt+shift+n send_text all \u0143 +map alt+shift+o send_text all \u00d3 +map alt+shift+s send_text all \u015a +map alt+shift+x send_text all \u0179 +map alt+shift+z send_text all \u017b + +# }}} diff --git a/mix.vim b/mix.vim deleted file mode 100644 --- a/mix.vim +++ /dev/null @@ -1,11 +0,0 @@ -if exists('current_compiler') - finish -endif -let current_compiler = 'mix-compile' - -if exists(":CompilerSet") != 2 - command -nargs=* CompilerSet setlocal -endif - -CompilerSet errorformat& -CompilerSet makeprg=mix diff --git a/vim/.config/nvim/after/ftplugin/elixir.vim b/vim/.config/nvim/after/ftplugin/elixir.vim --- a/vim/.config/nvim/after/ftplugin/elixir.vim +++ b/vim/.config/nvim/after/ftplugin/elixir.vim @@ -1,4 +1,3 @@ -setlocal tabstop=2 setlocal iskeyword+=!,? setlocal makeprg=mix @@ -8,7 +7,8 @@ command! -buffer Function echo ft#elixir#full_ident() command! -buffer XrefCallers call asyncdo#run(1, { 'job': 'mix', 'errorformat': '%f:%l: %m' }, 'xref', 'callers', ft#elixir#full_ident()) command! -buffer -nargs=* -complete=customlist,ft#elixir#mix_compl -bang Mix call asyncdo#run(0, 'mix', ) -inoreabbrev mdoc @moduledoc """ +inoreabbrev mdoc @moduledoc """""" +inoreabbrev fdoc @doc """""" inoreabbrev pry require IEx; IEx.pry inoreabbrev defm defmodule @@ -18,9 +18,8 @@ inoremap ,, => inoreabbrev pkey add :id, :binary_id, primary_key: true -setlocal path=,, +setlocal path=lib,apps/*/lib,apps/*/mix.exs,mix.exs,tests,apps/*/tests + +nnoremap gQ :%!mix format - -augroup elixir_projectionist - au! - autocmd User ProjectionistDetect call projections#elixir#detect() -augroup END +let b:undo_ftplugin = b:undo_ftplugin . ' | setl path& mp& isk&' diff --git a/vim/.config/nvim/after/ftplugin/erlang.vim b/vim/.config/nvim/after/ftplugin/erlang.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/after/ftplugin/erlang.vim @@ -0,0 +1,3 @@ +setlocal shiftwidth=2 + +let b:undo_ftplugin = 'setl sw&' diff --git a/vim/.config/nvim/after/ftplugin/fish.vim b/vim/.config/nvim/after/ftplugin/fish.vim --- a/vim/.config/nvim/after/ftplugin/fish.vim +++ b/vim/.config/nvim/after/ftplugin/fish.vim @@ -1,2 +1,4 @@ -setlocal tabstop=4 +setlocal shiftwidth=4 setlocal equalprg=fish_indent + +let b:undo_ftplugin = 'setl ep& sw&' diff --git a/vim/.config/nvim/after/ftplugin/gitcommit.vim b/vim/.config/nvim/after/ftplugin/gitcommit.vim --- a/vim/.config/nvim/after/ftplugin/gitcommit.vim +++ b/vim/.config/nvim/after/ftplugin/gitcommit.vim @@ -1,7 +1,3 @@ setlocal spell -let g:issue_tracker = 'pivotaltracker' - -if pivotaltracker#available() || get(g:, 'issue_tracker') is# 'pivotaltracker' - setlocal omnifunc=pivotaltracker#stories -endif +let b:undo_ftplugin = b:undo_ftplugin . ' | setlocal nospell' diff --git a/vim/.config/nvim/after/ftplugin/go.vim b/vim/.config/nvim/after/ftplugin/go.vim deleted file mode 100644 --- a/vim/.config/nvim/after/ftplugin/go.vim +++ /dev/null @@ -1,1 +0,0 @@ -setlocal noexpandtab diff --git a/vim/.config/nvim/after/ftplugin/haskell.vim b/vim/.config/nvim/after/ftplugin/haskell.vim deleted file mode 100644 --- a/vim/.config/nvim/after/ftplugin/haskell.vim +++ /dev/null @@ -1,1 +0,0 @@ -setlocal tabstop=8 diff --git a/vim/.config/nvim/after/ftplugin/javascript.vim b/vim/.config/nvim/after/ftplugin/javascript.vim --- a/vim/.config/nvim/after/ftplugin/javascript.vim +++ b/vim/.config/nvim/after/ftplugin/javascript.vim @@ -3,7 +3,6 @@ setlocal makeprg=yarn setlocal includeexpr=ft#javascript#includeexpr(v:fname) -augroup node_projectionist - au! - autocmd User ProjectionistDetect call projections#node#detect() -augroup END +setlocal isfname+=@-@ + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl sw& mp& inex& isf&' diff --git a/vim/.config/nvim/after/ftplugin/json.vim b/vim/.config/nvim/after/ftplugin/json.vim --- a/vim/.config/nvim/after/ftplugin/json.vim +++ b/vim/.config/nvim/after/ftplugin/json.vim @@ -1,7 +1,4 @@ -setlocal formatprg=jq\ . +setlocal equalprg=jq\ . setlocal shiftwidth=2 -augroup node_projectionist - au! - autocmd User ProjectionistDetect call projections#node#detect() -augroup END +let b:undo_ftplugin = 'setl ep& sw&' diff --git a/vim/.config/nvim/after/ftplugin/make.vim b/vim/.config/nvim/after/ftplugin/make.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/after/ftplugin/make.vim @@ -0,0 +1,3 @@ +setlocal shiftwidth=8 + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl sw&' diff --git a/vim/.config/nvim/after/ftplugin/man.vim b/vim/.config/nvim/after/ftplugin/man.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/after/ftplugin/man.vim @@ -0,0 +1,3 @@ +setlocal bufhidden=wipe + +let b:undo_ftplugin = b:undo_ftplugin . '| setl bh&' diff --git a/vim/.config/nvim/after/ftplugin/markdown.vim b/vim/.config/nvim/after/ftplugin/markdown.vim --- a/vim/.config/nvim/after/ftplugin/markdown.vim +++ b/vim/.config/nvim/after/ftplugin/markdown.vim @@ -1,1 +1,3 @@ setlocal spell + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl spell&' diff --git a/vim/.config/nvim/after/ftplugin/robots.vim b/vim/.config/nvim/after/ftplugin/robots.vim --- a/vim/.config/nvim/after/ftplugin/robots.vim +++ b/vim/.config/nvim/after/ftplugin/robots.vim @@ -1,1 +1,3 @@ setlocal commentstring=#%s + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl cms&' diff --git a/vim/.config/nvim/after/ftplugin/ruby.vim b/vim/.config/nvim/after/ftplugin/ruby.vim --- a/vim/.config/nvim/after/ftplugin/ruby.vim +++ b/vim/.config/nvim/after/ftplugin/ruby.vim @@ -1,2 +1,4 @@ setlocal formatprg=rubocop-clean -setlocal tabstop=2 +setlocal shiftwidth=2 + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl fp& sw&' diff --git a/vim/.config/nvim/after/ftplugin/rust.vim b/vim/.config/nvim/after/ftplugin/rust.vim --- a/vim/.config/nvim/after/ftplugin/rust.vim +++ b/vim/.config/nvim/after/ftplugin/rust.vim @@ -1,12 +1,8 @@ compiler cargo setlocal iskeyword+=! -setlocal formatprg=rustfmt\ --write-mode=display let g:rustfmt_autosave = 1 inoreabbrev excr extern crate -augroup rust_projectionist - au! - autocmd User ProjectionistDetect call projections#rust#detect() -augroup END +let b:undo_ftplugin = b:undo_ftplugin . ' | setl ep&' diff --git a/vim/.config/nvim/after/ftplugin/tf.vim b/vim/.config/nvim/after/ftplugin/tf.vim --- a/vim/.config/nvim/after/ftplugin/tf.vim +++ b/vim/.config/nvim/after/ftplugin/tf.vim @@ -1,8 +1,10 @@ setlocal makeprg=terraform -setlocal formatprg=terraform\ fmt\ - +setlocal equalprg=terraform\ fmt\ - setlocal shiftwidth=2 augroup autoformat au! - au BufWritePre norm! gggqG`` + au BufWritePre norm! gg=G`` augroup END + +let b:undo_ftplugin = 'setl mp& fp& sw&' diff --git a/vim/.config/nvim/after/ftplugin/vim.vim b/vim/.config/nvim/after/ftplugin/vim.vim --- a/vim/.config/nvim/after/ftplugin/vim.vim +++ b/vim/.config/nvim/after/ftplugin/vim.vim @@ -1,1 +1,6 @@ setlocal omnifunc=complimentary#CompleteCpty +setlocal iskeyword-=- + +packadd vim-scriptease + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl ofu& | setl iskeyword+=-' diff --git a/vim/.config/nvim/after/ftplugin/vue.vim b/vim/.config/nvim/after/ftplugin/vue.vim --- a/vim/.config/nvim/after/ftplugin/vue.vim +++ b/vim/.config/nvim/after/ftplugin/vue.vim @@ -1,8 +1,5 @@ runtime! ftplugin/javascript.vim -" Override HTML completion -setlocal omnifunc=lsp#complete - augroup fix_vue_syntax au! autocmd BufEnter syntax sync fromstart diff --git a/vim/.config/nvim/after/ftplugin/yaml.vim b/vim/.config/nvim/after/ftplugin/yaml.vim --- a/vim/.config/nvim/after/ftplugin/yaml.vim +++ b/vim/.config/nvim/after/ftplugin/yaml.vim @@ -1,1 +1,3 @@ setlocal shiftwidth=2 + +let b:undo_ftplugin = b:undo_ftplugin . ' | setl sw&' diff --git a/vim/.config/nvim/after/syntax/qf.vim b/vim/.config/nvim/after/syntax/qf.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/after/syntax/qf.vim @@ -0,0 +1,16 @@ +" Extra qf syntax + +if !get(g:, 'kickfix_zebra', 1) + finish +endif + +syn sync fromstart + +syn match qfFileName1 /^[^|]\+/ nextgroup=qfSeparator contained +syn match qfFileName2 /^[^|]\+/ nextgroup=qfSeparator contained + +syn region qfZebra1 start=/^\z([^|]\+\)/ end=/\n\(\z1|\)\@!/ nextgroup=qfZebra2 skipnl keepend fold contains=qfFileName1 +syn region qfZebra2 start=/^\z([^|]\+\)/ end=/\n\(\z1|\)\@!/ nextgroup=qfZebra1 skipnl keepend fold contains=qfFileName2 + +hi def link qfFileName1 Directory +hi def link qfFileName2 Question diff --git a/vim/.config/nvim/autoload/completion.vim b/vim/.config/nvim/autoload/completion.vim deleted file mode 100644 --- a/vim/.config/nvim/autoload/completion.vim +++ /dev/null @@ -1,59 +0,0 @@ -let s:lsp_servers = [ - \ { - \ 'name': 'elixir-ls', - \ 'cmd': {server_info->[$HOME.'/.local/share/applications/lsp/language_server.sh']}, - \ 'whitelist': ['elixir'], - \ }, - \ { - \ 'name': 'rls', - \ 'cmd': {server_info->['rustup', 'run', 'nightly', 'rls']}, - \ 'whitelist': ['rust'], - \ }, - \ { - \ 'name': 'vue-language-server', - \ 'cmd': {server_info->['vls']}, - \ 'whitelist': ['vue'], - \ }, - \ ] - -func! s:append_env(env, path) abort - return (a:env is# '' ? '' : a:env.':') . expand(a:path) -endfunc - -func! s:setup_mappings() abort - for l:server in lsp#get_whitelisted_servers() - let l:cap = lsp#get_server_capabilities(l:server) - - if !empty(get(l:cap, 'completionProvider')) && empty(&omnifunc) - setlocal omnifunc=lsp#complete - endif - - if get(l:cap, 'definitionProvider') && maparg('') is# '' - nnoremap :LspDefinition - endif - - if get(l:cap, 'documentFormattingProvider') - nnoremap gQ :LspDocumentFormat - endif - - if get(l:cap, 'hoverProvider') - setlocal keywordprg=:LspHover - endif - endfor -endfunc - -func! completion#lsp() abort - for l:server in s:lsp_servers - call lsp#register_server(l:server) - endfor - - let g:lsp_log_file=$HOME.'/.local/share/nvim/lsp.log' - - call s:setup_mappings() - - augroup lsp_mappings - autocmd! - autocmd User lsp_server_init call s:setup_mappings() - autocmd FileType * call s:setup_mappings() - augroup END -endfunc diff --git a/vim/.config/nvim/autoload/db/adapter/ecto.vim b/vim/.config/nvim/autoload/db/adapter/ecto.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/autoload/db/adapter/ecto.vim @@ -0,0 +1,21 @@ +let s:path = expand(':h') +let s:cmd = join(['mix', 'run', '--no-start', '--no-compile', shellescape(s:path.'/get_repos.exs')]) + +function! s:repo_list() abort + return map(systemlist(s:cmd), 'split(v:val)') +endfunction + +function! db#adapter#ecto#canonicalize(url) abort + echom a:url + for l:item in s:repo_list() + let l:name = get(l:item, 0) + let l:url = get(l:item, 1) + if !empty(l:name) && 'ecto:'.l:name ==# a:url + return l:url + endif + endfor +endfunction + +function! db#adapter#ecto#complete_opaque(url) abort + return map(s:repo_list(), 'v:val[0]') +endfunction diff --git a/vim/.config/nvim/autoload/db/adapter/get_repos.exs b/vim/.config/nvim/autoload/db/adapter/get_repos.exs new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/autoload/db/adapter/get_repos.exs @@ -0,0 +1,54 @@ +defmodule LoadRepos do + defp load_apps do + :code.get_path() + |> Enum.flat_map(fn app_dir -> + Path.join(app_dir, "*.app") |> Path.wildcard() + end) + |> Enum.map(fn app_file -> + app_file |> Path.basename() |> Path.rootname(".app") |> String.to_atom() + end) + |> Enum.map(&Application.load/1) + end + + defp configs do + for {app, _, _} <- Application.loaded_applications(), + repos = Application.get_env(app, :ecto_repos), + is_list(repos) and repos != [], + repo <- repos, + do: {repo, Map.new(Application.get_env(app, repo))} + end + + defp config_to_url(_, %{url: url}), do: url + + defp config_to_url(repo, %{ + hostname: hostname, + username: username, + password: password, + database: database + }) do + %URI{ + scheme: adapter_to_string(repo.__adapter__), + userinfo: "#{username}:#{password}", + host: hostname, + path: Path.join("/", database) + } + |> URI.to_string() + end + + defp adapter_to_string(Ecto.Adapters.Postgres), do: "postgres" + defp adapter_to_string(Ecto.Adapters.MySQL), do: "mysql" + defp adapter_to_string(mod), do: raise("Unknown adapter #{inspect(mod)}") + + def main do + load_apps() + + configs() + |> Enum.map(fn {repo, config} -> + [inspect(repo), ?\s, config_to_url(repo, config)] + end) + |> Enum.intersperse(?\n) + |> IO.puts() + end +end + +LoadRepos.main() diff --git a/vim/.config/nvim/autoload/ft/javascript.vim b/vim/.config/nvim/autoload/ft/javascript.vim --- a/vim/.config/nvim/autoload/ft/javascript.vim +++ b/vim/.config/nvim/autoload/ft/javascript.vim @@ -1,4 +1,4 @@ func! ft#javascript#includeexpr(path) abort echom a:path - return substitute(a:path, '^\~/', '', '') + return substitute(a:path, '^[\~@]/', '', '') endfunc diff --git a/vim/.config/nvim/autoload/plugins.vim b/vim/.config/nvim/autoload/plugins.vim --- a/vim/.config/nvim/autoload/plugins.vim +++ b/vim/.config/nvim/autoload/plugins.vim @@ -10,86 +10,80 @@ endfunc endif func! plugins#spec() abort - packadd minpac + packadd vim-packager - echom 'Load minpac spec' - - call minpac#init() + call packager#init({'dir': '~/.local/share/nvim/site/pack/packager'}) " Package manager {{{ - call minpac#add('k-takata/minpac', {'type': 'opt'}) + call packager#add('kristijanhusak/vim-packager', {'type': 'opt'}) " }}} " Colorscheme {{{ - call minpac#add('hauleth/blame.vim') " colorscheme - " }}} - " Launch screen {{{ - call minpac#add('mhinz/vim-startify') " Required during startup + call packager#add('hauleth/blame.vim') " colorscheme + call packager#add('dylanaraps/wal.vim') " colorscheme " }}} - " Languages {{{ - call minpac#add('cespare/vim-toml') " ftplugin - call minpac#add('dag/vim-fish') " ftplugin - call minpac#add('elixir-lang/vim-elixir') " ftplugin - call minpac#add('pangloss/vim-javascript') " ftplugin - call minpac#add('tsandall/vim-rego') " ftplugin - call minpac#add('posva/vim-vue') " ftplugin - call minpac#add('tpope/vim-scriptease') " ftplugin - call minpac#add('saltstack/salt-vim') " ftplugin + " Project navigation {{{ + call packager#add('tpope/vim-projectionist') " Requires access to VimEnter " }}} " Git {{{ - call minpac#add('tpope/vim-fugitive', { 'type': 'opt' }) - call minpac#add('idanarye/vim-merginal', { 'type': 'opt' }) + call packager#add('tpope/vim-fugitive', { 'type': 'opt' }) " }}} - " Project navigation {{{ - call minpac#add('tpope/vim-projectionist') " Requires access to VimEnter + " Launch screen {{{ + call packager#add('mhinz/vim-startify') " Required during startup + " }}} + " Languages {{{ + call packager#add('aklt/plantuml-syntax') " ftplugin + call packager#add('b4b4r07/vim-hcl') " ftplugin + call packager#add('cespare/vim-toml') " ftplugin + call packager#add('dag/vim-fish') " ftplugin + call packager#add('elixir-lang/vim-elixir') " ftplugin + call packager#add('pangloss/vim-javascript') " ftplugin + call packager#add('tpope/vim-cucumber') " ftplugin + call packager#add('tpope/vim-scriptease', {'type': 'opt'}) " ftplugin + call packager#add('LnL7/vim-nix') " }}} " File manager {{{ - call minpac#add('justinmk/vim-dirvish') " Required for opening directories - call minpac#add('tpope/vim-eunuch', {'type': 'opt'}) + call packager#add('justinmk/vim-dirvish') " Required for opening directories + call packager#add('tpope/vim-eunuch') " }}} " Completion {{{ - call minpac#add('prabirshrestha/async.vim') " autoload-only - call minpac#add('prabirshrestha/vim-lsp') - call minpac#add('Shougo/echodoc.vim', {'type': 'opt'}) - call minpac#add('fcpg/vim-complimentary') " autoload-only - call minpac#add('hauleth/pivotaltracker.vim') " autoload-only + call packager#add('prabirshrestha/async.vim') " autoload-only + call packager#add('prabirshrestha/vim-lsp') + call packager#add('Shougo/echodoc.vim') + call packager#add('fcpg/vim-complimentary') " autoload-only + call packager#add('vim-erlang/vim-erlang-omnicomplete') " }}} " Code manipulation {{{ - call minpac#add('AndrewRadev/splitjoin.vim', {'type': 'opt'}) - call minpac#add('hauleth/sad.vim', {'type': 'opt'}) - call minpac#add('tommcdo/vim-exchange', {'type': 'opt'}) - call minpac#add('tommcdo/vim-lion', {'type': 'opt'}) - call minpac#add('tpope/vim-commentary', {'type': 'opt'}) - call minpac#add('tpope/vim-endwise') " Requires access to au FileType - call minpac#add('tpope/vim-surround', {'type': 'opt'}) + call packager#add('AndrewRadev/splitjoin.vim') + call packager#add('hauleth/sad.vim') + call packager#add('tommcdo/vim-exchange') + call packager#add('tommcdo/vim-lion') + call packager#add('tpope/vim-commentary') + call packager#add('tpope/vim-endwise') " Requires access to au FileType + call packager#add('machakann/vim-sandwich', {'type': 'opt'}) " }}} " Movements {{{ - call minpac#add('wellle/targets.vim', {'type': 'opt'}) - call minpac#add('tommcdo/vim-ninja-feet') - call minpac#add('rhysd/clever-f.vim') + call packager#add('wellle/targets.vim', {'type': 'opt'}) + call packager#add('rhysd/clever-f.vim') + call packager#add('edkolev/erlang-motions.vim') " }}} " Task running & quickfix {{{ - call minpac#add('hauleth/asyncdo.vim', {'type': 'opt'}) - call minpac#add('romainl/vim-qf', {'type': 'opt'}) - call minpac#add('romainl/vim-qlist', {'type': 'opt'}) - call minpac#add('Olical/vim-enmasse', {'type': 'opt'}) - call minpac#add('igemnace/vim-makery') + call packager#add('hauleth/asyncdo.vim') + call packager#add('romainl/vim-qf') + call packager#add('romainl/vim-qlist') + call packager#add('Olical/vim-enmasse') + call packager#add('igemnace/vim-makery') " }}} " Splits management {{{ - call minpac#add('t9md/vim-choosewin', {'type': 'opt'}) + call packager#add('t9md/vim-choosewin') " }}} " Utils {{{ - call minpac#add('tpope/vim-repeat') " autoload-only plugin - call minpac#add('tpope/vim-unimpaired', {'type': 'opt'}) - call minpac#add('tpope/vim-rsi', {'type': 'opt'}) - call minpac#add('machakann/vim-highlightedyank') - if executable('direnv') - call minpac#add('direnv/direnv.vim') " Requires access to VimEnter - endif - call minpac#add('sgur/vim-editorconfig') " Required during startup - call minpac#add('tpope/vim-characterize') - call minpac#add('junegunn/limelight.vim') - call minpac#add('wakatime/vim-wakatime', {'type': 'opt'}) - call minpac#add('https://gitlab.com/hauleth/qfx.vim.git') - call minpac#add('tpope/vim-dadbod') - call minpac#add('https://gitlab.com/hauleth/smart.vim.git') + call packager#add('tpope/vim-repeat') " autoload-only plugin + call packager#add('tpope/vim-unimpaired', {'type': 'opt'}) + call packager#add('tpope/vim-rsi') + call packager#add('direnv/direnv.vim', {'type': 'opt'}) + call packager#add('sgur/vim-editorconfig') " Required during startup + call packager#add('tpope/vim-characterize') + call packager#add('https://gitlab.com/hauleth/qfx.vim.git') + call packager#add('tpope/vim-dadbod') + call packager#add('https://gitlab.com/hauleth/smart.vim.git') " }}} endfunc diff --git a/vim/.config/nvim/autoload/projections.vim b/vim/.config/nvim/autoload/projections.vim deleted file mode 100644 --- a/vim/.config/nvim/autoload/projections.vim +++ /dev/null @@ -1,18 +0,0 @@ -func! projections#find_root(path, func) abort - let root = simplify(fnamemodify(a:path, ':p')) - let previous = '' - while root !=# previous && root !=# '/' - if a:func(root) - return root - end - let previous = root - let root = fnamemodify(root, ':h') - endwhile - return '' -endfunc - -func! projections#append(path, projections) abort - if a:path !=# '' - call projectionist#append(a:path, a:projections) - endif -endfunc diff --git a/vim/.config/nvim/autoload/projections/elixir.vim b/vim/.config/nvim/autoload/projections/elixir.vim deleted file mode 100644 --- a/vim/.config/nvim/autoload/projections/elixir.vim +++ /dev/null @@ -1,37 +0,0 @@ -let s:projections = { - \ 'apps/*/mix.exs': { 'type': 'app' }, - \ 'lib/*.ex': { - \ 'type': 'lib', - \ 'alternate': 'test/{}_test.exs', - \ 'template': ['defmodule {camelcase|capitalize|dot} do', 'end'], - \ }, - \ 'test/*_test.exs': { - \ 'type': 'test', - \ 'alternate': 'lib/{}.ex', - \ 'template': ['defmodule {camelcase|capitalize|dot}Test do', ' use ExUnit.Case', 'end'], - \ }, - \ 'priv/**/migrations/*.exs': { 'type': 'migration' }, - \ 'mix.exs': { 'type': 'mix' }, - \ 'config/*.exs': { 'type': 'config' }, - \ '*.ex': { - \ 'makery': { - \ 'lint': { 'compiler': 'credo' }, - \ 'test': { 'compiler': 'exunit' }, - \ 'build': { 'compiler': 'mix' } - \ } - \ }, - \ '*.exs': { - \ 'makery': { - \ 'lint': { 'compiler': 'credo' }, - \ 'test': { 'compiler': 'exunit' }, - \ 'build': { 'compiler': 'mix' } - \ } - \ } - \ } - -func! projections#elixir#detect() abort - let l:root = projections#find_root( - \ g:projectionist_file, - \ {path -> filereadable(path . '/mix.exs')}) - call projections#append(l:root, s:projections) -endfunc diff --git a/vim/.config/nvim/autoload/projections/node.vim b/vim/.config/nvim/autoload/projections/node.vim deleted file mode 100644 --- a/vim/.config/nvim/autoload/projections/node.vim +++ /dev/null @@ -1,55 +0,0 @@ -let s:yarn_projections = { - \ '*.js': { 'make': 'yarn' }, - \ 'package.json': { 'type': 'package' } - \ } -let s:nuxt_projections = { - \ '*.vue': { - \ 'make': 'yarn', - \ 'template': [ - \ '', - \ '', - \ '', - \ '', - \ '', - \ ] - \ }, - \ 'components/*.vue': { 'type': 'component' }, - \ 'layouts/*.vue': { 'type': 'layout' }, - \ 'pages/*.vue': { 'type': 'page' }, - \ 'plugins/*.js': { 'type': 'plugin' }, - \ 'middlewares/*.js': { 'type': 'middleware' }, - \ 'store/*.js': { - \ 'type': 'store', - \ 'template': [ - \ 'export const state = () => ({open}', - \ '{close})', - \ '', - \ 'export const getters = {open}', - \ '{close}', - \ '', - \ 'export const mutations = {open}', - \ '{close}', - \ '', - \ 'export const actions = {open}', - \ '{close}', - \ ] - \ }, - \ 'nuxt.config.js': { 'type': 'config' }, - \ } - -func! s:check_for(file, projections) abort - let l:root = projections#find_root( - \ g:projectionist_file, - \ {path -> filereadable(path . a:file)}) - call projections#append(l:root, a:projections) -endfunc - -func! projections#node#detect() abort - call s:check_for('/nuxt.config.js', s:nuxt_projections) - call s:check_for('/package.json', s:yarn_projections) -endfunc diff --git a/vim/.config/nvim/autoload/projections/rust.vim b/vim/.config/nvim/autoload/projections/rust.vim deleted file mode 100644 --- a/vim/.config/nvim/autoload/projections/rust.vim +++ /dev/null @@ -1,19 +0,0 @@ -let s:projections = { - \ 'src/*.rs': { - \ 'type': 'src', - \ }, - \ 'tests/*.rs': { - \ 'type': 'test', - \ }, - \ 'benchmarks/*.rs': { - \ 'type': 'bench', - \ }, - \ 'Cargo.toml': { 'type': 'config' }, - \ } - -func! projections#rust#detect() abort - let l:root = projections#find_root( - \ g:projectionist_file, - \ {path -> filereadable(path . '/Cargo.toml')}) - call projections#append(l:root, s:projections) -endfunc diff --git a/vim/.config/nvim/autoload/statusline.vim b/vim/.config/nvim/autoload/statusline.vim --- a/vim/.config/nvim/autoload/statusline.vim +++ b/vim/.config/nvim/autoload/statusline.vim @@ -16,6 +16,8 @@ function! statusline#filename() abort if isdirectory(expand('%')) return 'Dirvish' + elseif &buftype ==# 'nofile' && (&bufhidden ==# 'hidden' || &bufhidden ==# 'delete') + return 'Scratch' else return fnamemodify(statusline#relpath(), ':t') endif diff --git a/vim/.config/nvim/autoload/utils.vim b/vim/.config/nvim/autoload/utils.vim --- a/vim/.config/nvim/autoload/utils.vim +++ b/vim/.config/nvim/autoload/utils.vim @@ -1,6 +1,8 @@ func! utils#cleanup() abort - for buf in filter(getbufinfo({'buflisted':1}), {_, v -> !filereadable(v.name) && empty(v.windows)}) + let l:bufers = filter(getbufinfo({'buflisted':1}), {_, v -> !filereadable(v.name) && empty(v.windows)}) + for buf in l:bufers exec 'bd '.buf.bufnr - echo buf.name endfor + + return l:bufers endfunc diff --git a/vim/.config/nvim/compiler/credo.vim b/vim/.config/nvim/compiler/credo.vim --- a/vim/.config/nvim/compiler/credo.vim +++ b/vim/.config/nvim/compiler/credo.vim @@ -11,4 +11,4 @@ CompilerSet errorformat= \%f:%l:%c:\ %t:\ %m, \%f:%l:\ %t:\ %m -CompilerSet makeprg=mix\ credo\ suggest\ --format=flycheck +CompilerSet makeprg=mix\ credo\ list\ --format=flycheck diff --git a/vim/.config/nvim/init.vim b/vim/.config/nvim/init.vim --- a/vim/.config/nvim/init.vim +++ b/vim/.config/nvim/init.vim @@ -1,14 +1,19 @@ " vi: foldmethod=marker foldlevel=0 scriptencoding utf-8 +if exists('$IN_NIX_SHELL') + set shell=fish +endif + " Plugins {{{ let g:loaded_netrwPlugin = 1 -command! -bar PackUpdate call plugins#reload() | call minpac#update() -command! -bar PackClean call plugins#reload() | call minpac#clean() +command! -bar PackInstall call plugins#reload() | call packager#install() +command! -bar PackUpdate call plugins#reload() | call packager#update() +command! -bar PackClean call plugins#reload() | call packager#clean() +command! -bar PackStatus call plugins#reload() | call packager#status() set runtimepath^=/usr/local/opt/fzf/ -set packpath^=~/.local/share/nvim " }}} " Identation {{{ set shiftwidth=4 expandtab @@ -19,6 +24,8 @@ " }}} " User interface {{{ set lazyredraw +set updatetime=500 + set title " Ignore case. If your code uses different casing to differentiate files, then @@ -60,6 +67,10 @@ " Split in CORRECT places {{{ set splitright splitbelow " }}} " }}} +" Diff options {{{ +set diffopt-=internal +set diffopt+=indent-heuristic,algorithm:patience +" }}} " Search {{{ " Smart case searches set ignorecase smartcase @@ -83,7 +94,7 @@ nnoremap Up :Gpush nnoremap Us :Gstatus nnoremap Ud :Gdiff nnoremap Ub :MerginalToggle -nnoremap UB :Gblame +nnoremap UB :Start tig blame % nnoremap Uc :Gcommit nnoremap Uu :Gpull nnoremap Ug :Glog @@ -93,9 +104,11 @@ cabbrev G Git cabbrev G! Git! " }}} " Asynchronous commands {{{ -command! -bang -nargs=* Make call asyncdo#run(0, &makeprg, ) -command! -bang -nargs=* -complete=dir Grep call asyncdo#run(0, { 'job': &grepprg, 'errorformat': &grepformat }, ) -command! -bang -nargs=* LMake call asyncdo#lrun(0, &makeprg, ) +command! -bang -nargs=* -complete=file Make call asyncdo#run(0, &makeprg, ) +command! -bang -nargs=* -complete=dir Grep call asyncdo#run(0, + \ { 'job': &grepprg, 'errorformat': &grepformat }, + \ ) +command! -bang -nargs=* -complete=file LMake call asyncdo#lrun(0, &makeprg, ) command! -bang -nargs=* -complete=dir LGrep call asyncdo#lrun(0, { 'job': &grepprg, 'errorformat': &grepformat }, ) " }}} " Expand abbreviations on enter {{{ @@ -126,13 +139,6 @@ set foldmethod=syntax set foldlevel=999 nnoremap foldlevel('.') ? 'za' : "\" -" }}} -" Scratchpad {{{ -command! Scratchify setlocal nobuflisted noswapfile buftype=nofile bufhidden=delete -command! Scratch enew |Scratchify -command! SScratch new +Scratchify -command! VScratch vnew +Scratchify -command! TScratch tabnew +Scratchify " }}} " Format {{{ nnoremap g= =aGg`` @@ -182,56 +188,45 @@ nmap (choosewin) " }}} " Startify {{{ let g:startify_list_order = ['sessions', 'dir'] -let g:startify_session_dir = '~/.local/share/nvim/sessions/' -let g:startify_session_autoload = 1 -let g:startify_session_persistence = 1 +let g:startify_session_dir = '~/.local/share/nvim/site/sessions/' +let g:startify_session_autoload = v:true +let g:startify_session_persistence = v:true -let g:startify_change_to_dir = 0 -let g:startify_change_to_vcs_root = 1 -" }}} -" HighlihtedYank {{{ -let g:highlightedyank_highlight_duration = 200 +let g:startify_change_to_dir = v:false +let g:startify_change_to_vcs_root = v:true +let g:startify_fortune_use_unicode = v:true " }}} " }}} " Completions {{{ set complete=.,w,b,t,k,kspell set completeopt=menuone,noselect,noinsert -" Set username for PT plugin -let g:pivotaltracker_name = 'hauleth' - -let g:lsp_async_completion = v:true -let g:echodoc_enable_at_startup = v:true - -let g:usnip_dirs = ['~/.config/nvim/snips'] - -augroup lsp_servers_setup - au! - au User lsp_setup call completion#lsp() -augroup END -" }}} -" Reload $MYVIMRC on save {{{ -augroup autoreload_config - autocmd! - autocmd BufWritePost $MYVIMRC source $MYVIMRC | e! -augroup END +let g:echodoc#enable_at_startup = v:true +let g:echodoc#type = 'virtual' " }}} +set sessionoptions-=help + if executable('direnv') - augroup autoreload_config + augroup autoreload_envrc autocmd! autocmd BufWritePost .envrc silent !direnv allow % augroup END endif " Needed for Projectionist and dadbod -command! -nargs=* Start split term:// startinsert -command! -nargs=0 Ctags call jobstart(['ptags', '--include-ignored', '--include-untracked']) +command! -nargs=* Start split new call termopen() startinsert +command! -nargs=0 Ctags AsyncDo ctags -R command! -nargs=? Dash call dash#open() nnoremap gK :Dash onoremap aG :normal! ggVG + +command! Bd b#|bd# + +packadd! vim-sandwich +runtime macros/sandwich/keymap/surround.vim " Load custom configuration for given machine runtime custom.vim diff --git a/vim/.config/nvim/plugin/langclient.vim b/vim/.config/nvim/plugin/langclient.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/plugin/langclient.vim @@ -0,0 +1,53 @@ +let g:lsp_log_file = expand('~/vim-lsp.log') + +func! s:setup_ls(...) abort + let l:servers = lsp#get_whitelisted_servers() + + for l:server in l:servers + let l:cap = lsp#get_server_capabilities(l:server) + + if has_key(l:cap, 'completionProvider') + setlocal omnifunc=lsp#complete + endif + + if has_key(l:cap, 'hoverProvider') + setlocal keywordprg=:LspHover + endif + + if has_key(l:cap, 'definitionProvider') + nmap gd (lsp-definition) + endif + + if has_key(l:cap, 'referencesProvider') + nmap gr (lsp-references) + endif + endfor +endfunc + +augroup LSC + autocmd! + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'ElixirLS', + \ 'cmd': {_->[$HOME.'/.local/share/applications/lsp/language_server.sh']}, + \ 'whitelist': ['elixir', 'eelixir'] + \}) + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'RLS', + \ 'cmd': {_->['rls']}, + \ 'whitelist': ['rust'] + \}) + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'solargraph', + \ 'cmd': {server_info->['solargraph', 'stdio']}, + \ 'initialization_options': {"diagnostics": "true"}, + \ 'whitelist': ['ruby'], + \ }) + autocmd User lsp_setup call lsp#register_server({ + \ 'name': 'dot', + \ 'cmd': {server_info->['dot-language-server', '--stdio']}, + \ 'whitelist': ['dot'], + \ }) + + autocmd User lsp_server_init call setup_ls() + autocmd BufEnter * call setup_ls() +augroup END diff --git a/vim/.config/nvim/plugin/manuclose.vim b/vim/.config/nvim/plugin/manuclose.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/plugin/manuclose.vim @@ -0,0 +1,27 @@ +if exists('g:loaded_manuclose') + finish +endif +let g:loaded_manuclose = 1 + +fun! s:manual_close() + let cls = {} + let opn = {} + + for [l:o, l:c] in map(split(&matchpairs, ','), 'split(v:val, ":")') + let cls[l:o] = l:c + let opn[l:c] = l:o + endfor + let stack = [] + + for c in split(getline('.'), '\zs') + if match(join(keys(l:cls)) , c) > -1 + call insert(stack, c) + elseif match(join(keys(l:opn)), c) > -1 + call remove(stack, index(stack, opn[c])) + endif + endfor + + return len(stack) ? cls[stack[0]] : '' +endfun + +inoremap manual_close() diff --git a/vim/.config/nvim/plugin/pack-delayed.vim b/vim/.config/nvim/plugin/pack-delayed.vim --- a/vim/.config/nvim/plugin/pack-delayed.vim +++ b/vim/.config/nvim/plugin/pack-delayed.vim @@ -3,38 +3,22 @@ finish endif let g:loaded_pack_delayed = 1 -func! s:delayed_load(...) " No abort as we want to continue if any plugin fails +func! DelayedLoad(...) abort " No abort as we want to continue if any plugin fails echom 'Loading plugins' " Git packadd vim-fugitive \ | call fugitive#detect(getcwd()) - \ | packadd vim-merginal - packadd asyncdo.vim - packadd echodoc.vim - packadd sad.vim - packadd splitjoin.vim - packadd targets.vim - packadd vim-choosewin - packadd vim-commentary - packadd vim-enmasse - packadd vim-eunuch - packadd vim-exchange - packadd vim-lion - packadd vim-qf - packadd vim-qlist - packadd vim-rsi - packadd vim-surround packadd vim-unimpaired + packadd targets.vim - if get(g:, 'wakatime_enabled', v:false) - packadd vim-wakatime - endif + autocmd! delayed_pack_load + echom 'Loaded plugins' endfunc augroup delayed_pack_load autocmd! - autocmd VimEnter * call timer_start(0, function('s:delayed_load')) + autocmd CursorHold,CursorMoved,VimEnter * call timer_start(0, function('DelayedLoad')) augroup end diff --git a/vim/.config/nvim/plugin/projections.vim b/vim/.config/nvim/plugin/projections.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/plugin/projections.vim @@ -0,0 +1,119 @@ +let g:projectionist_heuristics = {} + +let g:projectionist_heuristics['Cargo.toml'] = { + \ 'src/*.rs': { + \ 'type': 'src', + \ }, + \ 'tests/*.rs': { + \ 'type': 'test', + \ }, + \ 'benchmarks/*.rs': { + \ 'type': 'bench', + \ }, + \ 'Cargo.toml': { 'type': 'config' }, + \ } + +let g:projectionist_heuristics['mix.exs'] = { + \ 'apps/*/mix.exs': { 'type': 'app' }, + \ 'lib/*.ex': { + \ 'type': 'lib', + \ 'alternate': 'test/{}_test.exs', + \ 'template': ['defmodule {camelcase|capitalize|dot} do', 'end'], + \ }, + \ 'test/*_test.exs': { + \ 'type': 'test', + \ 'alternate': 'lib/{}.ex', + \ 'template': ['defmodule {camelcase|capitalize|dot}Test do', ' use ExUnit.Case', '', ' alias {camelcase|capitalize|dot}, as: Subject', '', ' doctest Subject', 'end'], + \ }, + \ 'mix.exs': { 'type': 'mix' }, + \ 'config/*.exs': { 'type': 'config' }, + \ '*.ex': { + \ 'makery': { + \ 'lint': { 'compiler': 'credo' }, + \ 'test': { 'compiler': 'exunit' }, + \ 'build': { 'compiler': 'mix' } + \ } + \ }, + \ '*.exs': { + \ 'makery': { + \ 'lint': { 'compiler': 'credo' }, + \ 'test': { 'compiler': 'exunit' }, + \ 'build': { 'compiler': 'mix' } + \ } + \ } + \ } + +let g:projectionist_heuristics['rebar.config'] = { + \ '*.erl': { + \ 'template': ['-module({basename}).', '', '-export([]).', ''], + \ }, + \ 'src/*.app.src': { 'type': 'app' }, + \ 'src/*.erl': { + \ 'type': 'src', + \ 'alternate': 'test/{}_SUITE.erl', + \ }, + \ 'test/*_SUITE.erl': { + \ 'type': 'test', + \ 'alternate': 'src/{}.erl', + \ }, + \ 'rebar.config': { 'type': 'rebar' } + \ } + +let g:projectionist_heuristics['package.json'] = { + \ '*.js': { 'make': 'yarn' }, + \ 'package.json': { 'type': 'package' } + \ } + +let g:projectionist_heuristics['nuxt.config.js'] = { + \ '*.vue': { + \ 'make': 'yarn', + \ 'template': [ + \ '', + \ '', + \ '', + \ '', + \ '', + \ ] + \ }, + \ 'components/*.vue': { 'type': 'component' }, + \ 'layouts/*.vue': { 'type': 'layout' }, + \ 'pages/*.vue': { 'type': 'page' }, + \ 'plugins/*.js': { 'type': 'plugin' }, + \ 'middlewares/*.js': { 'type': 'middleware' }, + \ 'store/*.js': { + \ 'type': 'store', + \ 'template': [ + \ 'export const state = () => ({open}', + \ '{close})', + \ '', + \ 'export const getters = {open}', + \ '{close}', + \ '', + \ 'export const mutations = {open}', + \ '{close}', + \ '', + \ 'export const actions = {open}', + \ '{close}', + \ ] + \ }, + \ 'nuxt.config.js': { 'type': 'config' }, + \ } + +func! s:options() abort + if &ft !=# '' | return | endif + + for [_, value] in projectionist#query('filetype') + exec 'setf '.l:value + return + endfor +endfunc + +augroup projectionist_ft + au! + au BufEnter * call options() +augroup END diff --git a/vim/.config/nvim/plugin/qf.vim b/vim/.config/nvim/plugin/qf.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/plugin/qf.vim @@ -0,0 +1,15 @@ +if exists('g:loaded_hqf') + finish +endif +let g:loaded_hqf = 1 + +function! s:load_file(type, bang, file) abort + let l:efm = &l:efm + let &l:errorformat = "%-G%f:%l: All of '%#%.depend'%.%#,%f%.%l col %c%. %m" + let l:cmd = a:bang ? 'getfile' : 'file' + exec a:type.l:cmd.' '.a:file + let &l:efm = l:efm +endfunction + +command! -complete=file -nargs=1 -bang Cfile call load_file('c', 0, ) +command! -complete=file -nargs=1 -bang Lfile call load_file('l', 0, ) diff --git a/vim/.config/nvim/plugin/scratch.vim b/vim/.config/nvim/plugin/scratch.vim new file mode 100644 --- /dev/null +++ b/vim/.config/nvim/plugin/scratch.vim @@ -0,0 +1,10 @@ +if exists('g:loaded_scratch') + finish +endif +let g:loaded_scratch = 1 + +command! Scratchify setlocal nobuflisted noswapfile buftype=nofile bufhidden=delete +command! Scratch enew |Scratchify +command! SScratch new +Scratchify +command! VScratch vnew +Scratchify +command! TScratch tabnew +Scratchify diff --git a/vim/.config/nvim/plugin/utils.vim b/vim/.config/nvim/plugin/utils.vim deleted file mode 100644 --- a/vim/.config/nvim/plugin/utils.vim +++ /dev/null @@ -1,12 +0,0 @@ -if exists('g:loaded_utils') - finish -endif -let g:loaded_utils = 1 - -func! s:psql_complete(lead, ...) abort - let l:dbs = systemlist("psql -Atqwl | awk -F '|' 'NF > 1 { print $1 }'") - - return filter(l:dbs, {_, val -> val =~? '^'.a:lead}) -endfunc - -command! -nargs=+ -complete=customlist,s:psql_complete Psql split term://pgcli diff --git a/vim/.vimrc b/vim/.vimrc --- a/vim/.vimrc +++ b/vim/.vimrc @@ -1,5 +1,13 @@ let s:config_dir = exists('$XDG_CONFIG_DIR') ? $XDG_CONFIG_DIR : $HOME . '/.config' +let s:data_dir = exists('$XDG_DATA_HOME') ? $XDG_DATA_HOME : $HOME . '/.local/share' -exec 'set runtimepath^='.s:config_dir.'/nvim' +exec 'set runtimepath^='.s:config_dir.'/nvim,'.s:data_dir.'/nvim/site' +exec 'set packpath^='.s:data_dir.'/nvim/site' + +syntax on +filetype plugin indent on + +set laststatus=2 +set wildmenu runtime init.vim diff --git a/wm/.chunkwmrc b/wm/.chunkwmrc --- a/wm/.chunkwmrc +++ b/wm/.chunkwmrc @@ -51,12 +51,12 @@ chunkc set window_float_next 0 chunkc set window_float_center 1 chunkc set window_region_locked 1 -chunkc set focused_border_color "$NFOCUS" +chunkc set focused_border_color "0xFFc1c9d4" chunkc set focused_border_width 5 chunkc set focused_border_radius 0 chunkc set focused_border_skip_floating 0 -chunkc tiling::rule --owner Dash --state float +chunkc tiling::rule --owner Dash --state sticky # # NOTE: specify plugins to load when chunkwm starts.