From 45503702fdb366ad643f4827e50c0df7cf93980e Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Wed, 13 Jan 2021 23:31:44 +0100 Subject: Reorder using Stow better --- bash/.bash_aliases | 44 -- bash/.bash_profile | 4 - bash/.bashrc | 65 --- bash/dot-bash_aliases | 44 ++ bash/dot-bash_profile | 4 + bash/dot-bashrc | 65 +++ git/.git-prompt.sh | 531 -------------------- git/.gitconfig | 15 - git/dot-git-prompt.sh | 531 ++++++++++++++++++++ git/dot-gitconfig | 17 + i3/config | 185 ------- i3/i3/config | 201 ++++++++ i3status/config | 48 -- i3status/i3status/config | 48 ++ install.sh | 8 +- kitty/dracula.conf | 58 --- kitty/greyscale.conf | 48 -- kitty/kitty.conf | 1198 -------------------------------------------- kitty/kitty/dracula.conf | 58 +++ kitty/kitty/greyscale.conf | 48 ++ kitty/kitty/kitty.conf | 1198 ++++++++++++++++++++++++++++++++++++++++++++ tmux/.tmux.conf | 8 - tmux/dot-tmux.conf | 8 + uninstall.sh | 10 +- 24 files changed, 2231 insertions(+), 2213 deletions(-) delete mode 100644 bash/.bash_aliases delete mode 100644 bash/.bash_profile delete mode 100644 bash/.bashrc create mode 100644 bash/dot-bash_aliases create mode 100644 bash/dot-bash_profile create mode 100644 bash/dot-bashrc delete mode 100644 git/.git-prompt.sh delete mode 100644 git/.gitconfig create mode 100644 git/dot-git-prompt.sh create mode 100644 git/dot-gitconfig delete mode 100644 i3/config create mode 100644 i3/i3/config delete mode 100644 i3status/config create mode 100644 i3status/i3status/config delete mode 100644 kitty/dracula.conf delete mode 100644 kitty/greyscale.conf delete mode 100644 kitty/kitty.conf create mode 100644 kitty/kitty/dracula.conf create mode 100644 kitty/kitty/greyscale.conf create mode 100644 kitty/kitty/kitty.conf delete mode 100644 tmux/.tmux.conf create mode 100644 tmux/dot-tmux.conf diff --git a/bash/.bash_aliases b/bash/.bash_aliases deleted file mode 100644 index 55b8292..0000000 --- a/bash/.bash_aliases +++ /dev/null @@ -1,44 +0,0 @@ -# vimdiff style with nvim -alias vim='nvim' -alias nvimdiff='nvim -d' - -# ssh as root -> Sysadmin trick -alias r='ssh -l root' - -# fuck! -alias fuck='COMMAND=$(history -p \!\!); echo sudo $COMMAND; sudo $COMMAND' - -# enable color support of ls and also add handy aliases -alias ls='ls --color=auto' -alias grep='grep --color=auto' -alias fgrep='fgrep --color=auto' -alias egrep='egrep --color=auto' - -# some more ls aliases -alias ll='ls -alF' -alias la='ls -A' -alias l='ls -CF' - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - - -# alias for Node.js projects -alias ntree='tree -I node_modules' -# alias for Clojure projects -alias ctree='tree -I target' - -# Clean whiteboards! -# found at: https://gist.github.com/lelandbatey/8677901 -alias whiteboard="convert $1 -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 $2" - -# Pandoc for ElenQ -alias pandoc-xelatex="pandoc $@ --pdf-engine=xelatex --to latex -N" -alias elenqdoc-article="pandoc-xelatex $@ --standalone --template elenq-article --metadata=documentclass:article" -alias elenqdoc-book="pandoc-xelatex $@ --standalone --template elenq-book --metadata=documentclass:book --top-level-division=chapter" - -# Kitty -if [ $TERM = "xterm-kitty" ]; then - alias ssh="kitty +kitten ssh" -fi diff --git a/bash/.bash_profile b/bash/.bash_profile deleted file mode 100644 index 7d5f3c9..0000000 --- a/bash/.bash_profile +++ /dev/null @@ -1,4 +0,0 @@ -# Load bashrc to mantain only one file -if [ -f "$HOME/.bashrc" ]; then - source "$HOME/.bashrc" -fi diff --git a/bash/.bashrc b/bash/.bashrc deleted file mode 100644 index df74698..0000000 --- a/bash/.bashrc +++ /dev/null @@ -1,65 +0,0 @@ -# Bash initialization for interactive non-login shells and -# for remote shells (info "(bash) Bash Startup Files"). - -export SHELL - -if [[ $- != *i* ]] -then - # We are being invoked from a non-interactive shell. If this - # is an SSH session (as in "ssh host command"), source - # /etc/profile so we get PATH and other essential variables. - [[ -n "$SSH_CLIENT" ]] && source /etc/profile - - # Don't do anything else. - return -fi - -source /etc/bashrc - -# VARIABLE EXPORTS -###################################################################### -export COLOR_BLACK="\[\033[0;30m\]" -export COLOR_RED="\[\033[0;31m\]" -export COLOR_GREEN="\[\033[0;32m\]" -export COLOR_YELLOW="\[\033[0;33m\]" -export COLOR_BLUE="\[\033[0;34m\]" -export COLOR_MAGENTA="\[\033[0;35m\]" -export COLOR_CYAN="\[\033[0;36m\]" -export COLOR_GREY="\[\033[0;37m\]" -export COLOR_DEFAULT="\[\033[0;39m\]" -export COLOR_WHITE=$COLOR_DEFAULT - -export EDITOR=nvim -PATH=$PATH:$HOME/.local/bin - -# PROMPT -PS1BASE="$COLOR_BLUE\u$COLOR_GREY@\h $COLOR_YELLOW\w\[\033[00m\]" - -#PS1BASE="$COLOR_CYAN\u $COLOR_YELLOW\w\[\033[m\]" -PS1GIT="$COLOR_BLUE\$(__git_ps1)$COLOR_DEFAULT" -PS1END="$COLOR_DEFAULT\$ " -export PS1="${PS1BASE}${PS1GIT}${PS1END}" - -# GUIX -###################################################################### - -# Adjust the prompt depending on whether we're in 'guix environment'. -if [ -n "$GUIX_ENVIRONMENT" ] -then - PS1="$PS1BASE$PS1GIT [env]$PS1END" -fi -###################################################################### - -# Pandoc bash completion -if hash pandoc 2>/dev/null; then - eval "$(pandoc --bash-completion)" -fi - -# Load in the git branch prompt script. -source ~/.git-prompt.sh - -# Load aliases -if [ -f ~/.bash_aliases ] ; then - . ~/.bash_aliases -fi - diff --git a/bash/dot-bash_aliases b/bash/dot-bash_aliases new file mode 100644 index 0000000..55b8292 --- /dev/null +++ b/bash/dot-bash_aliases @@ -0,0 +1,44 @@ +# vimdiff style with nvim +alias vim='nvim' +alias nvimdiff='nvim -d' + +# ssh as root -> Sysadmin trick +alias r='ssh -l root' + +# fuck! +alias fuck='COMMAND=$(history -p \!\!); echo sudo $COMMAND; sudo $COMMAND' + +# enable color support of ls and also add handy aliases +alias ls='ls --color=auto' +alias grep='grep --color=auto' +alias fgrep='fgrep --color=auto' +alias egrep='egrep --color=auto' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + + +# alias for Node.js projects +alias ntree='tree -I node_modules' +# alias for Clojure projects +alias ctree='tree -I target' + +# Clean whiteboards! +# found at: https://gist.github.com/lelandbatey/8677901 +alias whiteboard="convert $1 -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 $2" + +# Pandoc for ElenQ +alias pandoc-xelatex="pandoc $@ --pdf-engine=xelatex --to latex -N" +alias elenqdoc-article="pandoc-xelatex $@ --standalone --template elenq-article --metadata=documentclass:article" +alias elenqdoc-book="pandoc-xelatex $@ --standalone --template elenq-book --metadata=documentclass:book --top-level-division=chapter" + +# Kitty +if [ $TERM = "xterm-kitty" ]; then + alias ssh="kitty +kitten ssh" +fi diff --git a/bash/dot-bash_profile b/bash/dot-bash_profile new file mode 100644 index 0000000..7d5f3c9 --- /dev/null +++ b/bash/dot-bash_profile @@ -0,0 +1,4 @@ +# Load bashrc to mantain only one file +if [ -f "$HOME/.bashrc" ]; then + source "$HOME/.bashrc" +fi diff --git a/bash/dot-bashrc b/bash/dot-bashrc new file mode 100644 index 0000000..df74698 --- /dev/null +++ b/bash/dot-bashrc @@ -0,0 +1,65 @@ +# Bash initialization for interactive non-login shells and +# for remote shells (info "(bash) Bash Startup Files"). + +export SHELL + +if [[ $- != *i* ]] +then + # We are being invoked from a non-interactive shell. If this + # is an SSH session (as in "ssh host command"), source + # /etc/profile so we get PATH and other essential variables. + [[ -n "$SSH_CLIENT" ]] && source /etc/profile + + # Don't do anything else. + return +fi + +source /etc/bashrc + +# VARIABLE EXPORTS +###################################################################### +export COLOR_BLACK="\[\033[0;30m\]" +export COLOR_RED="\[\033[0;31m\]" +export COLOR_GREEN="\[\033[0;32m\]" +export COLOR_YELLOW="\[\033[0;33m\]" +export COLOR_BLUE="\[\033[0;34m\]" +export COLOR_MAGENTA="\[\033[0;35m\]" +export COLOR_CYAN="\[\033[0;36m\]" +export COLOR_GREY="\[\033[0;37m\]" +export COLOR_DEFAULT="\[\033[0;39m\]" +export COLOR_WHITE=$COLOR_DEFAULT + +export EDITOR=nvim +PATH=$PATH:$HOME/.local/bin + +# PROMPT +PS1BASE="$COLOR_BLUE\u$COLOR_GREY@\h $COLOR_YELLOW\w\[\033[00m\]" + +#PS1BASE="$COLOR_CYAN\u $COLOR_YELLOW\w\[\033[m\]" +PS1GIT="$COLOR_BLUE\$(__git_ps1)$COLOR_DEFAULT" +PS1END="$COLOR_DEFAULT\$ " +export PS1="${PS1BASE}${PS1GIT}${PS1END}" + +# GUIX +###################################################################### + +# Adjust the prompt depending on whether we're in 'guix environment'. +if [ -n "$GUIX_ENVIRONMENT" ] +then + PS1="$PS1BASE$PS1GIT [env]$PS1END" +fi +###################################################################### + +# Pandoc bash completion +if hash pandoc 2>/dev/null; then + eval "$(pandoc --bash-completion)" +fi + +# Load in the git branch prompt script. +source ~/.git-prompt.sh + +# Load aliases +if [ -f ~/.bash_aliases ] ; then + . ~/.bash_aliases +fi + diff --git a/git/.git-prompt.sh b/git/.git-prompt.sh deleted file mode 100644 index 64219e6..0000000 --- a/git/.git-prompt.sh +++ /dev/null @@ -1,531 +0,0 @@ -# bash/zsh git prompt support -# -# Copyright (C) 2006,2007 Shawn O. Pearce -# Distributed under the GNU General Public License, version 2.0. -# -# This script allows you to see repository status in your prompt. -# -# To enable: -# -# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh). -# 2) Add the following line to your .bashrc/.zshrc: -# source ~/.git-prompt.sh -# 3a) Change your PS1 to call __git_ps1 as -# command-substitution: -# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' -# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' -# the optional argument will be used as format string. -# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can -# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh -# with two parameters,
 and , which are strings
-#        you would put in $PS1 before and after the status string
-#        generated by the git-prompt machinery.  e.g.
-#        Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
-#          will show username, at-sign, host, colon, cwd, then
-#          various status string, followed by dollar and SP, as
-#          your prompt.
-#        ZSH:  precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
-#          will show username, pipe, then various status string,
-#          followed by colon, cwd, dollar and SP, as your prompt.
-#        Optionally, you can supply a third argument with a printf
-#        format string to finetune the output of the branch status
-#
-# The repository status will be displayed only if you are currently in a
-# git repository. The %s token is the placeholder for the shown status.
-#
-# The prompt status always includes the current branch name.
-#
-# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
-# unstaged (*) and staged (+) changes will be shown next to the branch
-# name.  You can configure this per-repository with the
-# bash.showDirtyState variable, which defaults to true once
-# GIT_PS1_SHOWDIRTYSTATE is enabled.
-#
-# You can also see if currently something is stashed, by setting
-# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
-# then a '$' will be shown next to the branch name.
-#
-# If you would like to see if there're untracked files, then you can set
-# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
-# files, then a '%' will be shown next to the branch name.  You can
-# configure this per-repository with the bash.showUntrackedFiles
-# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
-# enabled.
-#
-# If you would like to see the difference between HEAD and its upstream,
-# set GIT_PS1_SHOWUPSTREAM="auto".  A "<" indicates you are behind, ">"
-# indicates you are ahead, "<>" indicates you have diverged and "="
-# indicates that there is no difference. You can further control
-# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
-# of values:
-#
-#     verbose       show number of commits ahead/behind (+/-) upstream
-#     name          if verbose, then also show the upstream abbrev name
-#     legacy        don't use the '--count' option available in recent
-#                   versions of git-rev-list
-#     git           always compare HEAD to @{upstream}
-#     svn           always compare HEAD to your SVN upstream
-#
-# You can change the separator between the branch name and the above
-# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
-# is SP.
-#
-# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
-# find one, or @{upstream} otherwise.  Once you have set
-# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
-# setting the bash.showUpstream config variable.
-#
-# If you would like to see more information about the identity of
-# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
-# to one of these values:
-#
-#     contains      relative to newer annotated tag (v1.6.3.2~35)
-#     branch        relative to newer tag or branch (master~4)
-#     describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
-#     default       exactly matching tag
-#
-# If you would like a colored hint about the current dirty state, set
-# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
-# the colored output of "git status -sb" and are available only when
-# using __git_ps1 for PROMPT_COMMAND or precmd.
-#
-# If you would like __git_ps1 to do nothing in the case when the current
-# directory is set up to be ignored by git, then set
-# GIT_PS1_HIDE_IF_PWD_IGNORED to a nonempty value. Override this on the
-# repository level by setting bash.hideIfPwdIgnored to "false".
-
-# check whether printf supports -v
-__git_printf_supports_v=
-printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
-
-# stores the divergence from upstream in $p
-# used by GIT_PS1_SHOWUPSTREAM
-__git_ps1_show_upstream ()
-{
-	local key value
-	local svn_remote svn_url_pattern count n
-	local upstream=git legacy="" verbose="" name=""
-
-	svn_remote=()
-	# get some config options from git-config
-	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
-	while read -r key value; do
-		case "$key" in
-		bash.showupstream)
-			GIT_PS1_SHOWUPSTREAM="$value"
-			if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
-				p=""
-				return
-			fi
-			;;
-		svn-remote.*.url)
-			svn_remote[$((${#svn_remote[@]} + 1))]="$value"
-			svn_url_pattern="$svn_url_pattern\\|$value"
-			upstream=svn+git # default upstream is SVN if available, else git
-			;;
-		esac
-	done <<< "$output"
-
-	# parse configuration values
-	for option in ${GIT_PS1_SHOWUPSTREAM}; do
-		case "$option" in
-		git|svn) upstream="$option" ;;
-		verbose) verbose=1 ;;
-		legacy)  legacy=1  ;;
-		name)    name=1 ;;
-		esac
-	done
-
-	# Find our upstream
-	case "$upstream" in
-	git)    upstream="@{upstream}" ;;
-	svn*)
-		# get the upstream from the "git-svn-id: ..." in a commit message
-		# (git-svn uses essentially the same procedure internally)
-		local -a svn_upstream
-		svn_upstream=($(git log --first-parent -1 \
-					--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
-		if [[ 0 -ne ${#svn_upstream[@]} ]]; then
-			svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
-			svn_upstream=${svn_upstream%@*}
-			local n_stop="${#svn_remote[@]}"
-			for ((n=1; n <= n_stop; n++)); do
-				svn_upstream=${svn_upstream#${svn_remote[$n]}}
-			done
-
-			if [[ -z "$svn_upstream" ]]; then
-				# default branch name for checkouts with no layout:
-				upstream=${GIT_SVN_ID:-git-svn}
-			else
-				upstream=${svn_upstream#/}
-			fi
-		elif [[ "svn+git" = "$upstream" ]]; then
-			upstream="@{upstream}"
-		fi
-		;;
-	esac
-
-	# Find how many commits we are ahead/behind our upstream
-	if [[ -z "$legacy" ]]; then
-		count="$(git rev-list --count --left-right \
-				"$upstream"...HEAD 2>/dev/null)"
-	else
-		# produce equivalent output to --count for older versions of git
-		local commits
-		if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
-		then
-			local commit behind=0 ahead=0
-			for commit in $commits
-			do
-				case "$commit" in
-				"<"*) ((behind++)) ;;
-				*)    ((ahead++))  ;;
-				esac
-			done
-			count="$behind	$ahead"
-		else
-			count=""
-		fi
-	fi
-
-	# calculate the result
-	if [[ -z "$verbose" ]]; then
-		case "$count" in
-		"") # no upstream
-			p="" ;;
-		"0	0") # equal to upstream
-			p="=" ;;
-		"0	"*) # ahead of upstream
-			p=">" ;;
-		*"	0") # behind upstream
-			p="<" ;;
-		*)	    # diverged from upstream
-			p="<>" ;;
-		esac
-	else
-		case "$count" in
-		"") # no upstream
-			p="" ;;
-		"0	0") # equal to upstream
-			p=" u=" ;;
-		"0	"*) # ahead of upstream
-			p=" u+${count#0	}" ;;
-		*"	0") # behind upstream
-			p=" u-${count%	0}" ;;
-		*)	    # diverged from upstream
-			p=" u+${count#*	}-${count%	*}" ;;
-		esac
-		if [[ -n "$count" && -n "$name" ]]; then
-			__git_ps1_upstream_name=$(git rev-parse \
-				--abbrev-ref "$upstream" 2>/dev/null)
-			if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
-				p="$p \${__git_ps1_upstream_name}"
-			else
-				p="$p ${__git_ps1_upstream_name}"
-				# not needed anymore; keep user's
-				# environment clean
-				unset __git_ps1_upstream_name
-			fi
-		fi
-	fi
-
-}
-
-# Helper function that is meant to be called from __git_ps1.  It
-# injects color codes into the appropriate gitstring variables used
-# to build a gitstring.
-__git_ps1_colorize_gitstring ()
-{
-	if [[ -n ${ZSH_VERSION-} ]]; then
-		local c_red='%F{red}'
-		local c_green='%F{green}'
-		local c_lblue='%F{blue}'
-		local c_clear='%f'
-	else
-		# Using \[ and \] around colors is necessary to prevent
-		# issues with command line editing/browsing/completion!
-		local c_red='\[\e[31m\]'
-		local c_green='\[\e[32m\]'
-		local c_lblue='\[\e[1;34m\]'
-		local c_clear='\[\e[0m\]'
-	fi
-	local bad_color=$c_red
-	local ok_color=$c_green
-	local flags_color="$c_lblue"
-
-	local branch_color=""
-	if [ $detached = no ]; then
-		branch_color="$ok_color"
-	else
-		branch_color="$bad_color"
-	fi
-	c="$branch_color$c"
-
-	z="$c_clear$z"
-	if [ "$w" = "*" ]; then
-		w="$bad_color$w"
-	fi
-	if [ -n "$i" ]; then
-		i="$ok_color$i"
-	fi
-	if [ -n "$s" ]; then
-		s="$flags_color$s"
-	fi
-	if [ -n "$u" ]; then
-		u="$bad_color$u"
-	fi
-	r="$c_clear$r"
-}
-
-__git_eread ()
-{
-	local f="$1"
-	shift
-	test -r "$f" && read "$@" <"$f"
-}
-
-# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
-# when called from PS1 using command substitution
-# in this mode it prints text to add to bash PS1 prompt (includes branch name)
-#
-# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
-# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
-# when two arguments are given, the first is prepended and the second appended
-# to the state string when assigned to PS1.
-# The optional third parameter will be used as printf format string to further
-# customize the output of the git-status string.
-# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
-__git_ps1 ()
-{
-	# preserve exit status
-	local exit=$?
-	local pcmode=no
-	local detached=no
-	local ps1pc_start='\u@\h:\w '
-	local ps1pc_end='\$ '
-	local printf_format=' (%s)'
-
-	case "$#" in
-		2|3)	pcmode=yes
-			ps1pc_start="$1"
-			ps1pc_end="$2"
-			printf_format="${3:-$printf_format}"
-			# set PS1 to a plain prompt so that we can
-			# simply return early if the prompt should not
-			# be decorated
-			PS1="$ps1pc_start$ps1pc_end"
-		;;
-		0|1)	printf_format="${1:-$printf_format}"
-		;;
-		*)	return $exit
-		;;
-	esac
-
-	# ps1_expanded:  This variable is set to 'yes' if the shell
-	# subjects the value of PS1 to parameter expansion:
-	#
-	#   * bash does unless the promptvars option is disabled
-	#   * zsh does not unless the PROMPT_SUBST option is set
-	#   * POSIX shells always do
-	#
-	# If the shell would expand the contents of PS1 when drawing
-	# the prompt, a raw ref name must not be included in PS1.
-	# This protects the user from arbitrary code execution via
-	# specially crafted ref names.  For example, a ref named
-	# 'refs/heads/$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)' might cause the
-	# shell to execute 'sudo rm -rf /' when the prompt is drawn.
-	#
-	# Instead, the ref name should be placed in a separate global
-	# variable (in the __git_ps1_* namespace to avoid colliding
-	# with the user's environment) and that variable should be
-	# referenced from PS1.  For example:
-	#
-	#     __git_ps1_foo=$(do_something_to_get_ref_name)
-	#     PS1="...stuff...\${__git_ps1_foo}...stuff..."
-	#
-	# If the shell does not expand the contents of PS1, the raw
-	# ref name must be included in PS1.
-	#
-	# The value of this variable is only relevant when in pcmode.
-	#
-	# Assume that the shell follows the POSIX specification and
-	# expands PS1 unless determined otherwise.  (This is more
-	# likely to be correct if the user has a non-bash, non-zsh
-	# shell and safer than the alternative if the assumption is
-	# incorrect.)
-	#
-	local ps1_expanded=yes
-	[ -z "$ZSH_VERSION" ] || [[ -o PROMPT_SUBST ]] || ps1_expanded=no
-	[ -z "$BASH_VERSION" ] || shopt -q promptvars || ps1_expanded=no
-
-	local repo_info rev_parse_exit_code
-	repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
-		--is-bare-repository --is-inside-work-tree \
-		--short HEAD 2>/dev/null)"
-	rev_parse_exit_code="$?"
-
-	if [ -z "$repo_info" ]; then
-		return $exit
-	fi
-
-	local short_sha
-	if [ "$rev_parse_exit_code" = "0" ]; then
-		short_sha="${repo_info##*$'\n'}"
-		repo_info="${repo_info%$'\n'*}"
-	fi
-	local inside_worktree="${repo_info##*$'\n'}"
-	repo_info="${repo_info%$'\n'*}"
-	local bare_repo="${repo_info##*$'\n'}"
-	repo_info="${repo_info%$'\n'*}"
-	local inside_gitdir="${repo_info##*$'\n'}"
-	local g="${repo_info%$'\n'*}"
-
-	if [ "true" = "$inside_worktree" ] &&
-	   [ -n "${GIT_PS1_HIDE_IF_PWD_IGNORED-}" ] &&
-	   [ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] &&
-	   git check-ignore -q .
-	then
-		return $exit
-	fi
-
-	local r=""
-	local b=""
-	local step=""
-	local total=""
-	if [ -d "$g/rebase-merge" ]; then
-		__git_eread "$g/rebase-merge/head-name" b
-		__git_eread "$g/rebase-merge/msgnum" step
-		__git_eread "$g/rebase-merge/end" total
-		if [ -f "$g/rebase-merge/interactive" ]; then
-			r="|REBASE-i"
-		else
-			r="|REBASE-m"
-		fi
-	else
-		if [ -d "$g/rebase-apply" ]; then
-			__git_eread "$g/rebase-apply/next" step
-			__git_eread "$g/rebase-apply/last" total
-			if [ -f "$g/rebase-apply/rebasing" ]; then
-				__git_eread "$g/rebase-apply/head-name" b
-				r="|REBASE"
-			elif [ -f "$g/rebase-apply/applying" ]; then
-				r="|AM"
-			else
-				r="|AM/REBASE"
-			fi
-		elif [ -f "$g/MERGE_HEAD" ]; then
-			r="|MERGING"
-		elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
-			r="|CHERRY-PICKING"
-		elif [ -f "$g/REVERT_HEAD" ]; then
-			r="|REVERTING"
-		elif [ -f "$g/BISECT_LOG" ]; then
-			r="|BISECTING"
-		fi
-
-		if [ -n "$b" ]; then
-			:
-		elif [ -h "$g/HEAD" ]; then
-			# symlink symbolic ref
-			b="$(git symbolic-ref HEAD 2>/dev/null)"
-		else
-			local head=""
-			if ! __git_eread "$g/HEAD" head; then
-				return $exit
-			fi
-			# is it a symbolic ref?
-			b="${head#ref: }"
-			if [ "$head" = "$b" ]; then
-				detached=yes
-				b="$(
-				case "${GIT_PS1_DESCRIBE_STYLE-}" in
-				(contains)
-					git describe --contains HEAD ;;
-				(branch)
-					git describe --contains --all HEAD ;;
-				(describe)
-					git describe HEAD ;;
-				(* | default)
-					git describe --tags --exact-match HEAD ;;
-				esac 2>/dev/null)" ||
-
-				b="$short_sha..."
-				b="($b)"
-			fi
-		fi
-	fi
-
-	if [ -n "$step" ] && [ -n "$total" ]; then
-		r="$r $step/$total"
-	fi
-
-	local w=""
-	local i=""
-	local s=""
-	local u=""
-	local c=""
-	local p=""
-
-	if [ "true" = "$inside_gitdir" ]; then
-		if [ "true" = "$bare_repo" ]; then
-			c="BARE:"
-		else
-			b="GIT_DIR!"
-		fi
-	elif [ "true" = "$inside_worktree" ]; then
-		if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
-		   [ "$(git config --bool bash.showDirtyState)" != "false" ]
-		then
-			git diff --no-ext-diff --quiet || w="*"
-			git diff --no-ext-diff --cached --quiet || i="+"
-			if [ -z "$short_sha" ] && [ -z "$i" ]; then
-				i="#"
-			fi
-		fi
-		if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
-		   git rev-parse --verify --quiet refs/stash >/dev/null
-		then
-			s="$"
-		fi
-
-		if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
-		   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
-		   git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
-		then
-			u="%${ZSH_VERSION+%}"
-		fi
-
-		if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
-			__git_ps1_show_upstream
-		fi
-	fi
-
-	local z="${GIT_PS1_STATESEPARATOR-" "}"
-
-	# NO color option unless in PROMPT_COMMAND mode
-	if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
-		__git_ps1_colorize_gitstring
-	fi
-
-	b=${b##refs/heads/}
-	if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
-		__git_ps1_branch_name=$b
-		b="\${__git_ps1_branch_name}"
-	fi
-
-	local f="$w$i$s$u"
-	local gitstring="$c$b${f:+$z$f}$r$p"
-
-	if [ $pcmode = yes ]; then
-		if [ "${__git_printf_supports_v-}" != yes ]; then
-			gitstring=$(printf -- "$printf_format" "$gitstring")
-		else
-			printf -v gitstring -- "$printf_format" "$gitstring"
-		fi
-		PS1="$ps1pc_start$gitstring$ps1pc_end"
-	else
-		printf -- "$printf_format" "$gitstring"
-	fi
-
-	return $exit
-}
diff --git a/git/.gitconfig b/git/.gitconfig
deleted file mode 100644
index e293ba4..0000000
--- a/git/.gitconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-[user]
-	email = ekaitz@elenq.tech
-	name = Ekaitz Zarraga
-[core]
-	editor = nvim
-[color]
-	ui = auto
-[diff]
-	tool = nvimdiff
-[merge]
-	tool = nvimdiff
-[push]
-	default = simple
-[alias]
-	lg = log --graph --oneline --decorate --all
diff --git a/git/dot-git-prompt.sh b/git/dot-git-prompt.sh
new file mode 100644
index 0000000..64219e6
--- /dev/null
+++ b/git/dot-git-prompt.sh
@@ -0,0 +1,531 @@
+# bash/zsh git prompt support
+#
+# Copyright (C) 2006,2007 Shawn O. Pearce 
+# Distributed under the GNU General Public License, version 2.0.
+#
+# This script allows you to see repository status in your prompt.
+#
+# To enable:
+#
+#    1) Copy this file to somewhere (e.g. ~/.git-prompt.sh).
+#    2) Add the following line to your .bashrc/.zshrc:
+#        source ~/.git-prompt.sh
+#    3a) Change your PS1 to call __git_ps1 as
+#        command-substitution:
+#        Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
+#        ZSH:  setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
+#        the optional argument will be used as format string.
+#    3b) Alternatively, for a slightly faster prompt, __git_ps1 can
+#        be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
+#        with two parameters, 
 and , which are strings
+#        you would put in $PS1 before and after the status string
+#        generated by the git-prompt machinery.  e.g.
+#        Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
+#          will show username, at-sign, host, colon, cwd, then
+#          various status string, followed by dollar and SP, as
+#          your prompt.
+#        ZSH:  precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
+#          will show username, pipe, then various status string,
+#          followed by colon, cwd, dollar and SP, as your prompt.
+#        Optionally, you can supply a third argument with a printf
+#        format string to finetune the output of the branch status
+#
+# The repository status will be displayed only if you are currently in a
+# git repository. The %s token is the placeholder for the shown status.
+#
+# The prompt status always includes the current branch name.
+#
+# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
+# unstaged (*) and staged (+) changes will be shown next to the branch
+# name.  You can configure this per-repository with the
+# bash.showDirtyState variable, which defaults to true once
+# GIT_PS1_SHOWDIRTYSTATE is enabled.
+#
+# You can also see if currently something is stashed, by setting
+# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed,
+# then a '$' will be shown next to the branch name.
+#
+# If you would like to see if there're untracked files, then you can set
+# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked
+# files, then a '%' will be shown next to the branch name.  You can
+# configure this per-repository with the bash.showUntrackedFiles
+# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
+# enabled.
+#
+# If you would like to see the difference between HEAD and its upstream,
+# set GIT_PS1_SHOWUPSTREAM="auto".  A "<" indicates you are behind, ">"
+# indicates you are ahead, "<>" indicates you have diverged and "="
+# indicates that there is no difference. You can further control
+# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list
+# of values:
+#
+#     verbose       show number of commits ahead/behind (+/-) upstream
+#     name          if verbose, then also show the upstream abbrev name
+#     legacy        don't use the '--count' option available in recent
+#                   versions of git-rev-list
+#     git           always compare HEAD to @{upstream}
+#     svn           always compare HEAD to your SVN upstream
+#
+# You can change the separator between the branch name and the above
+# state symbols by setting GIT_PS1_STATESEPARATOR. The default separator
+# is SP.
+#
+# By default, __git_ps1 will compare HEAD to your SVN upstream if it can
+# find one, or @{upstream} otherwise.  Once you have set
+# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by
+# setting the bash.showUpstream config variable.
+#
+# If you would like to see more information about the identity of
+# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
+# to one of these values:
+#
+#     contains      relative to newer annotated tag (v1.6.3.2~35)
+#     branch        relative to newer tag or branch (master~4)
+#     describe      relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
+#     default       exactly matching tag
+#
+# If you would like a colored hint about the current dirty state, set
+# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
+# the colored output of "git status -sb" and are available only when
+# using __git_ps1 for PROMPT_COMMAND or precmd.
+#
+# If you would like __git_ps1 to do nothing in the case when the current
+# directory is set up to be ignored by git, then set
+# GIT_PS1_HIDE_IF_PWD_IGNORED to a nonempty value. Override this on the
+# repository level by setting bash.hideIfPwdIgnored to "false".
+
+# check whether printf supports -v
+__git_printf_supports_v=
+printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1
+
+# stores the divergence from upstream in $p
+# used by GIT_PS1_SHOWUPSTREAM
+__git_ps1_show_upstream ()
+{
+	local key value
+	local svn_remote svn_url_pattern count n
+	local upstream=git legacy="" verbose="" name=""
+
+	svn_remote=()
+	# get some config options from git-config
+	local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')"
+	while read -r key value; do
+		case "$key" in
+		bash.showupstream)
+			GIT_PS1_SHOWUPSTREAM="$value"
+			if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then
+				p=""
+				return
+			fi
+			;;
+		svn-remote.*.url)
+			svn_remote[$((${#svn_remote[@]} + 1))]="$value"
+			svn_url_pattern="$svn_url_pattern\\|$value"
+			upstream=svn+git # default upstream is SVN if available, else git
+			;;
+		esac
+	done <<< "$output"
+
+	# parse configuration values
+	for option in ${GIT_PS1_SHOWUPSTREAM}; do
+		case "$option" in
+		git|svn) upstream="$option" ;;
+		verbose) verbose=1 ;;
+		legacy)  legacy=1  ;;
+		name)    name=1 ;;
+		esac
+	done
+
+	# Find our upstream
+	case "$upstream" in
+	git)    upstream="@{upstream}" ;;
+	svn*)
+		# get the upstream from the "git-svn-id: ..." in a commit message
+		# (git-svn uses essentially the same procedure internally)
+		local -a svn_upstream
+		svn_upstream=($(git log --first-parent -1 \
+					--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
+		if [[ 0 -ne ${#svn_upstream[@]} ]]; then
+			svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
+			svn_upstream=${svn_upstream%@*}
+			local n_stop="${#svn_remote[@]}"
+			for ((n=1; n <= n_stop; n++)); do
+				svn_upstream=${svn_upstream#${svn_remote[$n]}}
+			done
+
+			if [[ -z "$svn_upstream" ]]; then
+				# default branch name for checkouts with no layout:
+				upstream=${GIT_SVN_ID:-git-svn}
+			else
+				upstream=${svn_upstream#/}
+			fi
+		elif [[ "svn+git" = "$upstream" ]]; then
+			upstream="@{upstream}"
+		fi
+		;;
+	esac
+
+	# Find how many commits we are ahead/behind our upstream
+	if [[ -z "$legacy" ]]; then
+		count="$(git rev-list --count --left-right \
+				"$upstream"...HEAD 2>/dev/null)"
+	else
+		# produce equivalent output to --count for older versions of git
+		local commits
+		if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)"
+		then
+			local commit behind=0 ahead=0
+			for commit in $commits
+			do
+				case "$commit" in
+				"<"*) ((behind++)) ;;
+				*)    ((ahead++))  ;;
+				esac
+			done
+			count="$behind	$ahead"
+		else
+			count=""
+		fi
+	fi
+
+	# calculate the result
+	if [[ -z "$verbose" ]]; then
+		case "$count" in
+		"") # no upstream
+			p="" ;;
+		"0	0") # equal to upstream
+			p="=" ;;
+		"0	"*) # ahead of upstream
+			p=">" ;;
+		*"	0") # behind upstream
+			p="<" ;;
+		*)	    # diverged from upstream
+			p="<>" ;;
+		esac
+	else
+		case "$count" in
+		"") # no upstream
+			p="" ;;
+		"0	0") # equal to upstream
+			p=" u=" ;;
+		"0	"*) # ahead of upstream
+			p=" u+${count#0	}" ;;
+		*"	0") # behind upstream
+			p=" u-${count%	0}" ;;
+		*)	    # diverged from upstream
+			p=" u+${count#*	}-${count%	*}" ;;
+		esac
+		if [[ -n "$count" && -n "$name" ]]; then
+			__git_ps1_upstream_name=$(git rev-parse \
+				--abbrev-ref "$upstream" 2>/dev/null)
+			if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+				p="$p \${__git_ps1_upstream_name}"
+			else
+				p="$p ${__git_ps1_upstream_name}"
+				# not needed anymore; keep user's
+				# environment clean
+				unset __git_ps1_upstream_name
+			fi
+		fi
+	fi
+
+}
+
+# Helper function that is meant to be called from __git_ps1.  It
+# injects color codes into the appropriate gitstring variables used
+# to build a gitstring.
+__git_ps1_colorize_gitstring ()
+{
+	if [[ -n ${ZSH_VERSION-} ]]; then
+		local c_red='%F{red}'
+		local c_green='%F{green}'
+		local c_lblue='%F{blue}'
+		local c_clear='%f'
+	else
+		# Using \[ and \] around colors is necessary to prevent
+		# issues with command line editing/browsing/completion!
+		local c_red='\[\e[31m\]'
+		local c_green='\[\e[32m\]'
+		local c_lblue='\[\e[1;34m\]'
+		local c_clear='\[\e[0m\]'
+	fi
+	local bad_color=$c_red
+	local ok_color=$c_green
+	local flags_color="$c_lblue"
+
+	local branch_color=""
+	if [ $detached = no ]; then
+		branch_color="$ok_color"
+	else
+		branch_color="$bad_color"
+	fi
+	c="$branch_color$c"
+
+	z="$c_clear$z"
+	if [ "$w" = "*" ]; then
+		w="$bad_color$w"
+	fi
+	if [ -n "$i" ]; then
+		i="$ok_color$i"
+	fi
+	if [ -n "$s" ]; then
+		s="$flags_color$s"
+	fi
+	if [ -n "$u" ]; then
+		u="$bad_color$u"
+	fi
+	r="$c_clear$r"
+}
+
+__git_eread ()
+{
+	local f="$1"
+	shift
+	test -r "$f" && read "$@" <"$f"
+}
+
+# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
+# when called from PS1 using command substitution
+# in this mode it prints text to add to bash PS1 prompt (includes branch name)
+#
+# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
+# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
+# when two arguments are given, the first is prepended and the second appended
+# to the state string when assigned to PS1.
+# The optional third parameter will be used as printf format string to further
+# customize the output of the git-status string.
+# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
+__git_ps1 ()
+{
+	# preserve exit status
+	local exit=$?
+	local pcmode=no
+	local detached=no
+	local ps1pc_start='\u@\h:\w '
+	local ps1pc_end='\$ '
+	local printf_format=' (%s)'
+
+	case "$#" in
+		2|3)	pcmode=yes
+			ps1pc_start="$1"
+			ps1pc_end="$2"
+			printf_format="${3:-$printf_format}"
+			# set PS1 to a plain prompt so that we can
+			# simply return early if the prompt should not
+			# be decorated
+			PS1="$ps1pc_start$ps1pc_end"
+		;;
+		0|1)	printf_format="${1:-$printf_format}"
+		;;
+		*)	return $exit
+		;;
+	esac
+
+	# ps1_expanded:  This variable is set to 'yes' if the shell
+	# subjects the value of PS1 to parameter expansion:
+	#
+	#   * bash does unless the promptvars option is disabled
+	#   * zsh does not unless the PROMPT_SUBST option is set
+	#   * POSIX shells always do
+	#
+	# If the shell would expand the contents of PS1 when drawing
+	# the prompt, a raw ref name must not be included in PS1.
+	# This protects the user from arbitrary code execution via
+	# specially crafted ref names.  For example, a ref named
+	# 'refs/heads/$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)' might cause the
+	# shell to execute 'sudo rm -rf /' when the prompt is drawn.
+	#
+	# Instead, the ref name should be placed in a separate global
+	# variable (in the __git_ps1_* namespace to avoid colliding
+	# with the user's environment) and that variable should be
+	# referenced from PS1.  For example:
+	#
+	#     __git_ps1_foo=$(do_something_to_get_ref_name)
+	#     PS1="...stuff...\${__git_ps1_foo}...stuff..."
+	#
+	# If the shell does not expand the contents of PS1, the raw
+	# ref name must be included in PS1.
+	#
+	# The value of this variable is only relevant when in pcmode.
+	#
+	# Assume that the shell follows the POSIX specification and
+	# expands PS1 unless determined otherwise.  (This is more
+	# likely to be correct if the user has a non-bash, non-zsh
+	# shell and safer than the alternative if the assumption is
+	# incorrect.)
+	#
+	local ps1_expanded=yes
+	[ -z "$ZSH_VERSION" ] || [[ -o PROMPT_SUBST ]] || ps1_expanded=no
+	[ -z "$BASH_VERSION" ] || shopt -q promptvars || ps1_expanded=no
+
+	local repo_info rev_parse_exit_code
+	repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
+		--is-bare-repository --is-inside-work-tree \
+		--short HEAD 2>/dev/null)"
+	rev_parse_exit_code="$?"
+
+	if [ -z "$repo_info" ]; then
+		return $exit
+	fi
+
+	local short_sha
+	if [ "$rev_parse_exit_code" = "0" ]; then
+		short_sha="${repo_info##*$'\n'}"
+		repo_info="${repo_info%$'\n'*}"
+	fi
+	local inside_worktree="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local bare_repo="${repo_info##*$'\n'}"
+	repo_info="${repo_info%$'\n'*}"
+	local inside_gitdir="${repo_info##*$'\n'}"
+	local g="${repo_info%$'\n'*}"
+
+	if [ "true" = "$inside_worktree" ] &&
+	   [ -n "${GIT_PS1_HIDE_IF_PWD_IGNORED-}" ] &&
+	   [ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] &&
+	   git check-ignore -q .
+	then
+		return $exit
+	fi
+
+	local r=""
+	local b=""
+	local step=""
+	local total=""
+	if [ -d "$g/rebase-merge" ]; then
+		__git_eread "$g/rebase-merge/head-name" b
+		__git_eread "$g/rebase-merge/msgnum" step
+		__git_eread "$g/rebase-merge/end" total
+		if [ -f "$g/rebase-merge/interactive" ]; then
+			r="|REBASE-i"
+		else
+			r="|REBASE-m"
+		fi
+	else
+		if [ -d "$g/rebase-apply" ]; then
+			__git_eread "$g/rebase-apply/next" step
+			__git_eread "$g/rebase-apply/last" total
+			if [ -f "$g/rebase-apply/rebasing" ]; then
+				__git_eread "$g/rebase-apply/head-name" b
+				r="|REBASE"
+			elif [ -f "$g/rebase-apply/applying" ]; then
+				r="|AM"
+			else
+				r="|AM/REBASE"
+			fi
+		elif [ -f "$g/MERGE_HEAD" ]; then
+			r="|MERGING"
+		elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
+			r="|CHERRY-PICKING"
+		elif [ -f "$g/REVERT_HEAD" ]; then
+			r="|REVERTING"
+		elif [ -f "$g/BISECT_LOG" ]; then
+			r="|BISECTING"
+		fi
+
+		if [ -n "$b" ]; then
+			:
+		elif [ -h "$g/HEAD" ]; then
+			# symlink symbolic ref
+			b="$(git symbolic-ref HEAD 2>/dev/null)"
+		else
+			local head=""
+			if ! __git_eread "$g/HEAD" head; then
+				return $exit
+			fi
+			# is it a symbolic ref?
+			b="${head#ref: }"
+			if [ "$head" = "$b" ]; then
+				detached=yes
+				b="$(
+				case "${GIT_PS1_DESCRIBE_STYLE-}" in
+				(contains)
+					git describe --contains HEAD ;;
+				(branch)
+					git describe --contains --all HEAD ;;
+				(describe)
+					git describe HEAD ;;
+				(* | default)
+					git describe --tags --exact-match HEAD ;;
+				esac 2>/dev/null)" ||
+
+				b="$short_sha..."
+				b="($b)"
+			fi
+		fi
+	fi
+
+	if [ -n "$step" ] && [ -n "$total" ]; then
+		r="$r $step/$total"
+	fi
+
+	local w=""
+	local i=""
+	local s=""
+	local u=""
+	local c=""
+	local p=""
+
+	if [ "true" = "$inside_gitdir" ]; then
+		if [ "true" = "$bare_repo" ]; then
+			c="BARE:"
+		else
+			b="GIT_DIR!"
+		fi
+	elif [ "true" = "$inside_worktree" ]; then
+		if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
+		   [ "$(git config --bool bash.showDirtyState)" != "false" ]
+		then
+			git diff --no-ext-diff --quiet || w="*"
+			git diff --no-ext-diff --cached --quiet || i="+"
+			if [ -z "$short_sha" ] && [ -z "$i" ]; then
+				i="#"
+			fi
+		fi
+		if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
+		   git rev-parse --verify --quiet refs/stash >/dev/null
+		then
+			s="$"
+		fi
+
+		if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
+		   [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
+		   git ls-files --others --exclude-standard --directory --no-empty-directory --error-unmatch -- ':/*' >/dev/null 2>/dev/null
+		then
+			u="%${ZSH_VERSION+%}"
+		fi
+
+		if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
+			__git_ps1_show_upstream
+		fi
+	fi
+
+	local z="${GIT_PS1_STATESEPARATOR-" "}"
+
+	# NO color option unless in PROMPT_COMMAND mode
+	if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
+		__git_ps1_colorize_gitstring
+	fi
+
+	b=${b##refs/heads/}
+	if [ $pcmode = yes ] && [ $ps1_expanded = yes ]; then
+		__git_ps1_branch_name=$b
+		b="\${__git_ps1_branch_name}"
+	fi
+
+	local f="$w$i$s$u"
+	local gitstring="$c$b${f:+$z$f}$r$p"
+
+	if [ $pcmode = yes ]; then
+		if [ "${__git_printf_supports_v-}" != yes ]; then
+			gitstring=$(printf -- "$printf_format" "$gitstring")
+		else
+			printf -v gitstring -- "$printf_format" "$gitstring"
+		fi
+		PS1="$ps1pc_start$gitstring$ps1pc_end"
+	else
+		printf -- "$printf_format" "$gitstring"
+	fi
+
+	return $exit
+}
diff --git a/git/dot-gitconfig b/git/dot-gitconfig
new file mode 100644
index 0000000..86dcce2
--- /dev/null
+++ b/git/dot-gitconfig
@@ -0,0 +1,17 @@
+[user]
+	email = ekaitz@elenq.tech
+	name = Ekaitz Zarraga
+[core]
+	editor = nvim
+[color]
+	ui = auto
+[diff]
+	tool = nvimdiff
+[merge]
+	tool = nvimdiff
+[push]
+	default = simple
+[alias]
+	lg = log --graph --oneline --decorate --all
+[pull]
+	ff = only
diff --git a/i3/config b/i3/config
deleted file mode 100644
index ca89d6e..0000000
--- a/i3/config
+++ /dev/null
@@ -1,185 +0,0 @@
-# This file has been auto-generated by i3-config-wizard(1).
-# It will not be overwritten, so edit it as you like.
-#
-# Should you change your keyboard layout some time, delete
-# this file and re-run i3-config-wizard(1).
-#
-
-# i3 config file (v4)
-#
-# Please see https://i3wm.org/docs/userguide.html for a complete reference!
-
-set $mod Mod4
-
-# Font for window titles. Will also be used by the bar unless a different font
-# is used in the bar {} block below.
-font pango:monospace 10
-
-# This font is widely installed, provides lots of unicode glyphs, right-to-left
-# text rendering and scalability on retina/hidpi displays (thanks to pango).
-#font pango:DejaVu Sans Mono 8
-
-# The combination of xss-lock, nm-applet and pactl is a popular choice, so
-# they are included here as an example. Modify as you see fit.
-
-# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
-# screen before suspend. Use loginctl lock-session to lock your screen.
-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
-
-# NetworkManager is the most popular way to manage wireless networks on Linux,
-# and nm-applet is a desktop environment-independent system tray GUI for it.
-exec --no-startup-id nm-applet
-
-# Use pactl to adjust volume in PulseAudio.
-set $refresh_i3status killall -SIGUSR1 i3status
-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
-bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
-
-# Brightness control
-bindsym XF86MonBrightnessUp exec light -A 10 # increase screen brightness
-bindsym XF86MonBrightnessDown exec light -U 10 # decrease screen brightness
-
-# Use Mouse+$mod to drag floating windows to their wanted position
-floating_modifier $mod
-
-# start a terminal
-bindsym $mod+Return exec kitty
-
-# kill focused window
-bindsym $mod+Shift+q kill
-
-# start dmenu (a program launcher)
-bindsym $mod+d exec dmenu_run
-# There also is the (new) i3-dmenu-desktop which only displays applications
-# shipping a .desktop file. It is a wrapper around dmenu, so you need that
-# installed.
-# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
-
-# change focus
-bindsym $mod+h focus left
-bindsym $mod+j focus down
-bindsym $mod+k focus up
-bindsym $mod+l focus right
-
-# alternatively, you can use the cursor keys:
-bindsym $mod+Left focus left
-bindsym $mod+Down focus down
-bindsym $mod+Up focus up
-bindsym $mod+Right focus right
-
-# move focused window
-bindsym $mod+Shift+j move left
-bindsym $mod+Shift+k move down
-bindsym $mod+Shift+l move up
-bindsym $mod+Shift+ntilde move right
-
-# alternatively, you can use the cursor keys:
-bindsym $mod+Shift+Left move left
-bindsym $mod+Shift+Down move down
-bindsym $mod+Shift+Up move up
-bindsym $mod+Shift+Right move right
-
-# split in horizontal orientation
-bindsym $mod+Shift+h split h
-
-# split in vertical orientation
-bindsym $mod+Shift+v split v
-
-# enter fullscreen mode for the focused container
-bindsym $mod+f fullscreen toggle
-
-# change container layout (stacked, tabbed, toggle split)
-bindsym $mod+s layout stacking
-bindsym $mod+w layout tabbed
-bindsym $mod+e layout toggle split
-
-# toggle tiling / floating
-bindsym $mod+Shift+space floating toggle
-
-# change focus between tiling / floating windows
-bindsym $mod+space focus mode_toggle
-
-# focus the parent container
-bindsym $mod+a focus parent
-
-# focus the child container
-#bindsym $mod+d focus child
-
-# Define names for default workspaces for which we configure key bindings later on.
-# We use variables to avoid repeating the names in multiple places.
-set $ws1 "1"
-set $ws2 "2"
-set $ws3 "3"
-set $ws4 "4"
-set $ws5 "5"
-set $ws6 "6"
-set $ws7 "7"
-set $ws8 "8"
-set $ws9 "9"
-set $ws10 "10"
-
-# switch to workspace
-bindsym $mod+1 workspace number $ws1
-bindsym $mod+2 workspace number $ws2
-bindsym $mod+3 workspace number $ws3
-bindsym $mod+4 workspace number $ws4
-bindsym $mod+5 workspace number $ws5
-bindsym $mod+6 workspace number $ws6
-bindsym $mod+7 workspace number $ws7
-bindsym $mod+8 workspace number $ws8
-bindsym $mod+9 workspace number $ws9
-bindsym $mod+0 workspace number $ws10
-
-# move focused container to workspace
-bindsym $mod+Shift+1 move container to workspace number $ws1
-bindsym $mod+Shift+2 move container to workspace number $ws2
-bindsym $mod+Shift+3 move container to workspace number $ws3
-bindsym $mod+Shift+4 move container to workspace number $ws4
-bindsym $mod+Shift+5 move container to workspace number $ws5
-bindsym $mod+Shift+6 move container to workspace number $ws6
-bindsym $mod+Shift+7 move container to workspace number $ws7
-bindsym $mod+Shift+8 move container to workspace number $ws8
-bindsym $mod+Shift+9 move container to workspace number $ws9
-bindsym $mod+Shift+0 move container to workspace number $ws10
-
-# reload the configuration file
-bindsym $mod+Shift+c reload
-# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
-bindsym $mod+Shift+r restart
-# exit i3 (logs you out of your X session)
-bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
-
-# resize window (you can also use the mouse for that)
-mode "resize" {
-        # These bindings trigger as soon as you enter the resize mode
-
-        # Pressing left will shrink the window’s width.
-        # Pressing right will grow the window’s width.
-        # Pressing up will shrink the window’s height.
-        # Pressing down will grow the window’s height.
-        bindsym j resize shrink width 10 px or 10 ppt
-        bindsym k resize grow height 10 px or 10 ppt
-        bindsym l resize shrink height 10 px or 10 ppt
-        bindsym ntilde resize grow width 10 px or 10 ppt
-
-        # same bindings, but for the arrow keys
-        bindsym Left resize shrink width 10 px or 10 ppt
-        bindsym Down resize grow height 10 px or 10 ppt
-        bindsym Up resize shrink height 10 px or 10 ppt
-        bindsym Right resize grow width 10 px or 10 ppt
-
-        # back to normal: Enter or Escape or $mod+r
-        bindsym Return mode "default"
-        bindsym Escape mode "default"
-        bindsym $mod+r mode "default"
-}
-
-bindsym $mod+r mode "resize"
-
-# Start i3bar to display a workspace bar (plus the system information i3status
-# finds out, if available)
-bar {
-        status_command i3status
-}
diff --git a/i3/i3/config b/i3/i3/config
new file mode 100644
index 0000000..b599bdd
--- /dev/null
+++ b/i3/i3/config
@@ -0,0 +1,201 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:monospace 10
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute        exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute     exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+# Brightness control
+bindsym XF86MonBrightnessUp   exec light -A 5  # increase screen brightness
+bindsym XF86MonBrightnessDown exec light -U 5  # decrease screen brightness
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec kitty
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec dmenu_run
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+Control+h split h
+
+# split in vertical orientation
+bindsym $mod+Control+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+        # These bindings trigger as soon as you enter the resize mode
+
+        # Pressing left will shrink the window’s width.
+        # Pressing right will grow the window’s width.
+        # Pressing up will shrink the window’s height.
+        # Pressing down will grow the window’s height.
+        bindsym h resize shrink width 10 px or 10 ppt
+        bindsym j resize grow height 10 px or 10 ppt
+        bindsym k resize shrink height 10 px or 10 ppt
+        bindsym l resize grow width 10 px or 10 ppt
+
+        # same bindings, but for the arrow keys
+        bindsym Left resize shrink width 10 px or 10 ppt
+        bindsym Down resize grow height 10 px or 10 ppt
+        bindsym Up resize shrink height 10 px or 10 ppt
+        bindsym Right resize grow width 10 px or 10 ppt
+
+        # back to normal: Enter or Escape or $mod+r
+        bindsym Return mode "default"
+        bindsym Escape mode "default"
+        bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+        status_command i3status
+}
+
+
+## Clipboard Screenshots
+bindsym Print       exec --no-startup-id maim | xclip -selection clipboard -t image/png
+bindsym Shift+Print exec --no-startup-id maim --select | xclip -selection clipboard -t image/png
+
+
+# TODO:
+#bindsym XF86TouchpadToggle       exec xinput --disable 12
+#bindsym XF86TouchpadToggle       exec xinput --enable  12
+bindsym $mod+Shift+t exec xinput --enable  12
+bindsym $mod+t       exec xinput --disable  12
+
+
+# Keyboard layout change
+# bindsym $mod+x exec setxkbmap ru
diff --git a/i3status/config b/i3status/config
deleted file mode 100644
index 4583ca8..0000000
--- a/i3status/config
+++ /dev/null
@@ -1,48 +0,0 @@
-general {
-        colors = true
-        color_good =     "#a3be8c"
-        color_bad =      "#bf616a"
-        color_degraded = "#d08770"
-        output_format = "i3bar"
-        interval = 1
-}
-
-order += "disk /"
-order += "battery 0"
-order += "cpu_temperature 0"
-order += "load"
-order += "time"
-order += "volume master"
-
-battery 0 {
-        format = "%status %percentage %remaining %emptytime"
-        format_down = "No battery"
-        status_chr = "⚡ CHR"
-        status_bat = "🔋 BAT"
-        status_unk = "? UNK"
-        status_full = "☻ FULL"
-        low_threshold = 10
-}
-
-time {
-        format = "%Y-%m-%d %H:%M:%S"
-}
-
-load {
-        format = "%5min"
-}
-
-cpu_temperature 0 {
-        format = "T: %degrees °C"
-}
-
-disk "/" {
-        format = "%free"
-}
-
-volume master {
-        format = "Vol:%volume"
-        device = "default"
-        mixer = "Master"
-        mixer_idx = 0
-}
diff --git a/i3status/i3status/config b/i3status/i3status/config
new file mode 100644
index 0000000..4583ca8
--- /dev/null
+++ b/i3status/i3status/config
@@ -0,0 +1,48 @@
+general {
+        colors = true
+        color_good =     "#a3be8c"
+        color_bad =      "#bf616a"
+        color_degraded = "#d08770"
+        output_format = "i3bar"
+        interval = 1
+}
+
+order += "disk /"
+order += "battery 0"
+order += "cpu_temperature 0"
+order += "load"
+order += "time"
+order += "volume master"
+
+battery 0 {
+        format = "%status %percentage %remaining %emptytime"
+        format_down = "No battery"
+        status_chr = "⚡ CHR"
+        status_bat = "🔋 BAT"
+        status_unk = "? UNK"
+        status_full = "☻ FULL"
+        low_threshold = 10
+}
+
+time {
+        format = "%Y-%m-%d %H:%M:%S"
+}
+
+load {
+        format = "%5min"
+}
+
+cpu_temperature 0 {
+        format = "T: %degrees °C"
+}
+
+disk "/" {
+        format = "%free"
+}
+
+volume master {
+        format = "Vol:%volume"
+        device = "default"
+        mixer = "Master"
+        mixer_idx = 0
+}
diff --git a/install.sh b/install.sh
index 2cd6510..a76a6bc 100644
--- a/install.sh
+++ b/install.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 # Link at home folder
-stow -Rt ~ bash tmux git
+stow --dotfiles -Rt ~ bash tmux git
 
 # Link at XDG_CONFIG_HOME if set, if not to $HOME/.config (they should be the same)
 stow -Rt ${XDG_CONFIG_HOME:=$HOME/.config} nvim
@@ -10,14 +10,14 @@ stow -Rt ${XDG_CONFIG_HOME:=$HOME/.config} nvim
 # stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/konsole" konsole
 
 # kitty
-stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/kitty" kitty
+stow -Rt ${XDG_CONFIG_HOME:=$HOME/.config} kitty
 
 # Guix channels
 stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/guix" guix
 
 # i3
-stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/i3" i3
-stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/i3status" i3status
+stow -Rt ${XDG_CONFIG_HOME:=$HOME/.config} i3
+stow -Rt ${XDG_CONFIG_HOME:=$HOME/.config} i3status
 # Plasma session environment variables
 #stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/plasma-workspace/env" plasma-env
 
diff --git a/kitty/dracula.conf b/kitty/dracula.conf
deleted file mode 100644
index f517731..0000000
--- a/kitty/dracula.conf
+++ /dev/null
@@ -1,58 +0,0 @@
-# https://draculatheme.com/kitty
-#
-# Installation instructions:
-#
-#  cp dracula.conf ~/.config/kitty/
-#  echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
-#
-# Then reload kitty for the config to take affect.
-# Alternatively copy paste below directly into kitty.conf
-
-foreground            #f8f8f2
-background            #282a36
-selection_foreground  #44475a
-selection_background  #f8f8f2
-
-url_color #ffb86c
-
-# black
-color0  #21222c
-color8  #6272a4
-
-# red
-color1  #ff5555
-color9  #ff6e6e
-
-# green
-color2  #50fa7b
-color10 #69ff94
-
-# yellow
-color3  #f1fa8c
-color11 #ffffa5
-
-# blue
-color4  #bd93f9
-color12 #d6acff
-
-# magenta
-color5  #ff79c6
-color13 #ff92df
-
-# cyan
-color6  #8be9fd
-color14 #a4ffff
-
-# white
-color7  #f8f8f2
-color15 #ffffff
-
-# Cursor colors
-cursor            #f8f8f2
-cursor_text_color background
-
-# Tab bar colors
-active_tab_foreground   #44475a
-active_tab_background   #f8f8f2
-inactive_tab_foreground #282a36
-inactive_tab_background #6272a4
diff --git a/kitty/greyscale.conf b/kitty/greyscale.conf
deleted file mode 100644
index 02cc41a..0000000
--- a/kitty/greyscale.conf
+++ /dev/null
@@ -1,48 +0,0 @@
-foreground            #FFFFFF
-background            #000000
-selection_foreground  #FFFFFF
-selection_background  #EEEEEE
-
-url_color #ffb86c
-
-# black
-color0  #000000
-color8  #000000
-
-# red
-color1  #444444
-color9  #555555
-
-# green
-color2  #888888
-color10 #999999
-
-# yellow
-color3  #333333
-color11 #DDDDDD
-
-# blue
-color4  #222222
-color12 #333333
-
-# magenta
-color5  #666666
-color13 #777777
-
-# cyan
-color6  #AAAAAA
-color14 #BBBBBB
-
-# white
-color7  #EEEEEE
-color15 #FFFFFF
-
-# Cursor colors
-cursor            color15
-cursor_text_color background
-
-# Tab bar colors
-active_tab_foreground   #44475a
-active_tab_background   #f8f8f2
-inactive_tab_foreground #282a36
-inactive_tab_background #6272a4
diff --git a/kitty/kitty.conf b/kitty/kitty.conf
deleted file mode 100644
index 4b8a0c1..0000000
--- a/kitty/kitty.conf
+++ /dev/null
@@ -1,1198 +0,0 @@
-# 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      B612 Mono Regular
-bold_font        B612 Mono Bold
-italic_font      B612 Mono Italic
-bold_italic_font B612 Mono BoldItalic
-
-#: You can specify different fonts for the bold/italic/bold-italic
-#: variants. To get a full list of supported fonts use the `kitty
-#: list-fonts` command. 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 12.0
-
-#: Font size (in pts)
-
-# force_ltr no
-
-#: kitty does not support BIDI (bidirectional text), however, for RTL
-#: scripts, words are automatically displayed in RTL. That is to say,
-#: in an RTL script, the words "HELLO WORLD" display in kitty as
-#: "WORLD HELLO", and if you try to select a substring of an RTL-
-#: shaped string, you will get the character that would be there had
-#: the the string been LTR. For example, assuming the Hebrew word
-#: ירושלים, selecting the character that on the screen appears to be ם
-#: actually writes into the selection buffer the character י.
-
-#: kitty's default behavior is useful in conjunction with a filter to
-#: reverse the word order, however, if you wish to manipulate RTL
-#: glyphs, it can be very challenging to work with, so this option is
-#: provided to turn it off. Furthermore, this option can be used with
-#: the command line program GNU FriBidi
-#:  to get BIDI
-#: support, because it will force kitty to always treat the text as
-#: LTR, which FriBidi expects for terminals.
-
-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
-
-disable_ligatures never
-
-#: Choose how you want to handle multi-character ligatures. The
-#: default is to always render them.  You can tell kitty to not render
-#: them when the cursor is over them by using cursor to make editing
-#: easier, or have kitty never render them at all by using always, if
-#: you don't like them. The ligature strategy can be set per-window
-#: either using the kitty remote control facility or by defining
-#: shortcuts for it in kitty.conf, for example::
-
-#:     map alt+1 disable_ligatures_in active always
-#:     map alt+2 disable_ligatures_in all never
-#:     map alt+3 disable_ligatures_in tab cursor
-
-# font_features none
-
-#: Choose exactly which OpenType features to enable or disable. This
-#: is useful as some fonts might have features worthwhile in a
-#: terminal. For example, Fira Code Retina includes a discretionary
-#: feature, zero, which in that font changes the appearance of the
-#: zero (0), to make it more easily distinguishable from Ø. Fira Code
-#: Retina also includes other discretionary features known as
-#: Stylistic Sets which have the tags ss01 through ss20.
-
-#: Note that this code is indexed by PostScript name, and not the font
-#: family. This allows you to define very precise feature settings;
-#: e.g. you can disable a feature in the italic font but not in the
-#: regular font.
-
-#: To get the PostScript name for a font, use kitty + list-fonts
-#: --psnames::
-
-#:     $ kitty + list-fonts --psnames | grep Fira
-#:     Fira Code
-#:     Fira Code Bold (FiraCode-Bold)
-#:     Fira Code Light (FiraCode-Light)
-#:     Fira Code Medium (FiraCode-Medium)
-#:     Fira Code Regular (FiraCode-Regular)
-#:     Fira Code Retina (FiraCode-Retina)
-
-#: The part in brackets is the PostScript name.
-
-#: Enable alternate zero and oldstyle numerals::
-
-#:     font_features FiraCode-Retina +zero +onum
-
-#: Enable only alternate zero::
-
-#:     font_features FiraCode-Retina +zero
-
-#: Disable the normal ligatures, but keep the calt feature which (in
-#: this font) breaks up monotony::
-
-#:     font_features TT2020StyleB-Regular -liga +calt
-
-#: In conjunction with force_ltr, you may want to disable Arabic
-#: shaping entirely, and only look at their isolated forms if they
-#: show up in a document. You can do this with e.g.::
-
-#:     font_features UnifontMedium +isol -medi -fina -init
-
-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 #cccccc
-
-#: Default cursor color
-
-cursor_text_color #111111
-
-#: Choose the color of text under the cursor. If you want it rendered
-#: with the background color of the cell underneath instead, use the
-#: special keyword: background
-
-cursor_shape block
-
-#: The cursor shape can be one of (block, beam, underline)
-
-cursor_blink_interval -1
-
-#: The interval (in seconds) at which to blink the cursor. Set to zero
-#: to disable blinking. Negative values mean use system default. Note
-#: that numbers smaller than repaint_delay will be limited to
-#: repaint_delay.
-
-cursor_stop_blinking_after 15.0
-
-#: Stop blinking cursor after the specified number of seconds of
-#: keyboard inactivity.  Set to zero to never stop blinking.
-
-#: }}}
-
-#: Scrollback {{{
-
-scrollback_lines -1
-
-#: Number of lines of history to keep in memory for scrolling back.
-#: Memory is allocated on demand. Negative numbers are (effectively)
-#: infinite scrollback. Note that using very large scrollback is not
-#: recommended as it can slow down resizing of the terminal and also
-#: use large amounts of RAM.
-
-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.
-
-scrollback_pager_history_size 0
-
-#: Separate scrollback history size, used only for browsing the
-#: scrollback buffer (in MB). This separate buffer is not available
-#: for interactive scrolling but will be piped to the pager program
-#: when viewing scrollback buffer in a separate window. The current
-#: implementation stores one character in 4 bytes, so approximatively
-#: 2500 lines per megabyte at 100 chars per line. A value of zero or
-#: less disables this feature. The maximum allowed size is 4GB.
-
-wheel_scroll_multiplier 5.0
-
-#: Modify the amount scrolled by the mouse wheel. Note this is only
-#: used for low precision scrolling devices, not for high precision
-#: scrolling on platforms such as macOS and Wayland. Use negative
-#: numbers to change scroll direction.
-
-touch_scroll_multiplier 1.0
-
-#: Modify the amount scrolled by a touchpad. Note this is only used
-#: for high precision scrolling devices on platforms such as macOS and
-#: Wayland. Use negative numbers to change scroll direction.
-
-#: }}}
-
-#: Mouse {{{
-
-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.
-#: Set to a negative value to hide the mouse cursor immediately when
-#: typing text. Disabled by default on macOS as getting it to work
-#: robustly with the ever-changing sea of bugs that is Cocoa is too
-#: much effort.
-
-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 or a private buffer on select. With this set to
-#: clipboard, simply selecting text with the mouse will cause the text
-#: to be copied to clipboard. Useful on platforms such as macOS that
-#: do not have the concept of primary selections. You can instead
-#: specify a name such as a1 to copy to a private kitty buffer
-#: instead. Map a shortcut with the paste_from_buffer action to paste
-#: from this private buffer. For example::
-
-#:     map cmd+shift+v paste_from_buffer a1
-
-#: Note that copying to the clipboard is a security risk, as all
-#: programs, including websites open in your browser can read the
-#: contents of the system clipboard.
-
-strip_trailing_spaces never
-
-#: Remove spaces at the end of lines when copying to clipboard. A
-#: value of smart will do it when using normal selections, but not
-#: rectangle selections. always will always do it.
-
-rectangle_select_modifiers ctrl+alt
-
-#: The modifiers to use rectangular selection (i.e. to select text in
-#: a rectangular block with the mouse)
-
-terminal_select_modifiers shift
-
-#: The modifiers to override mouse selection even when a terminal
-#: application has grabbed 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
-#: alphanumeric character in the unicode database will be matched.
-
-click_interval -1.0
-
-#: The interval between successive clicks to detect double/triple
-#: clicks (in seconds). Negative numbers will use the system default
-#: instead, if available, or fallback to 0.5.
-
-focus_follows_mouse no
-
-#: Set the active window to the window under the mouse when moving the
-#: mouse around
-
-pointer_shape_when_grabbed arrow
-
-#: The shape of the mouse pointer when the program running in the
-#: terminal grabs the mouse. Valid values are: arrow, beam and hand
-
-#: }}}
-
-#: 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. Also, to minimize latency when there is pending input to be
-#: processed, repaint_delay is ignored.
-
-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 no
-
-#: Enable/disable the audio bell. Useful in environments that require
-#: silence.
-
-visual_bell_duration 0.0
-
-#: 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
-
-command_on_bell none
-
-#: Program to run when a bell occurs.
-
-#: }}}
-
-#: 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 all means all layouts. The first listed layout
-#: will be used as the startup layout. Default configuration is all
-#: layouts in alphabetical order. For a list of available layouts, see
-#: the https://sw.kovidgoyal.net/kitty/index.html#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 0.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 0.0
-
-#: The window padding (in pts) (blank area between the text and the
-#: window border)
-
-placement_strategy center
-
-#: When the window size is not an exact multiple of the cell size, the
-#: cell area of the terminal window will have some extra padding on
-#: the sides. You can control how that padding is distributed with
-#: this option. Using a value of center means the cell area will be
-#: placed centrally. A value of top-left means the padding will be on
-#: only the bottom and right edges.
-
-active_border_color #00ff00
-
-#: The color for the border of the active window. Set this to none to
-#: not draw borders around 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).
-
-hide_window_decorations no
-
-#: Hide the window decorations (title-bar and window borders) with
-#: yes. On macOS, titlebar-only can be used to only hide the titlebar.
-#: Whether this works and exactly what effect it has depends on the
-#: window manager/operating system.
-
-resize_debounce_time 0.1
-
-#: The time (in seconds) to wait before redrawing the screen when a
-#: resize event is received. On platforms such as macOS, where the
-#: operating system sends events corresponding to the start and end of
-#: a resize, this number is ignored.
-
-resize_draw_strategy static
-
-#: Choose how kitty draws a window while a resize is in progress. A
-#: value of static means draw the current window contents, mostly
-#: unchanged. A value of scale means draw the current window contents
-#: scaled. A value of blank means draw a blank window. A value of size
-#: means show the window size in cells.
-
-# resize_in_steps no
-
-#: Resize the OS window in steps as large as the cells, instead of
-#: with the usual pixel accuracy. Combined with an
-#: initial_window_width and initial_window_height in number of cells,
-#: this option can be used to keep the margins as small as possible
-#: when resizing the OS window. Note that this does not currently work
-#: on Wayland.
-
-#: }}}
-
-#: 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, separator, powerline, or
-#: hidden. In the fade style, each tab's edges fade into the
-#: background color, in the separator style, tabs are separated by a
-#: configurable separator, and the powerline shows the tabs as a
-#: continuous line.
-
-tab_bar_min_tabs 2
-
-#: The minimum number of tabs that must exist before the tab bar is
-#: shown
-
-tab_switch_strategy previous
-
-#: The algorithm to use when switching to a tab when the current tab
-#: is closed. The default of previous will switch to the last used
-#: tab. A value of left will switch to the tab to the left of the
-#: closed tab. A value of last will switch to the right-most tab.
-
-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.
-
-tab_title_template {title}
-
-#: A template to render the tab title. The default just renders the
-#: title. If you wish to include the tab-index as well, use something
-#: like: {index}: {title}. Useful if you have shortcuts mapped for
-#: goto_tab N.
-
-# active_tab_title_template none
-
-#: Template to use for active tabs, if not specified falls back to
-#: tab_title_template.
-
-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
-
-# tab_bar_background none
-
-#: Background color for the tab bar. Defaults to using the terminal
-#: background color.
-
-#: }}}
-
-#: Color scheme {{{
-
-foreground #dddddd
-background #000000
-
-#: The foreground and background colors
-
-background_opacity 1.0
-
-#: 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)
-
-dynamic_background_opacity no
-
-#: Allow changing of the background_opacity dynamically, using either
-#: keyboard shortcuts (increase_background_opacity and
-#: decrease_background_opacity) or the remote control facility.
-
-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 #000000
-
-#: The foreground for text selected with the mouse. A value of none
-#: means to leave the color unchanged.
-
-selection_background #fffacd
-
-#: The 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 #000000
-color8 #767676
-
-#: black
-
-color1 #cc0403
-color9 #f2201f
-
-#: red
-
-color2  #19cb00
-color10 #23fd00
-
-#: green
-
-color3  #cecb00
-color11 #fffd00
-
-#: yellow
-
-color4  #0d73cc
-color12 #1a8fff
-
-#: blue
-
-color5  #cb1ed1
-color13 #fd28ff
-
-#: magenta
-
-color6  #0dcdcd
-color14 #14ffff
-
-#: cyan
-
-color7  #dddddd
-color15 #ffffff
-
-#: white
-
-# mark1_foreground black
-
-#: Color for marks of type 1
-
-# mark1_background #98d3cb
-
-#: Color for marks of type 1 (light steel blue)
-
-# mark2_foreground black
-
-#: Color for marks of type 2
-
-# mark2_background #f2dcd3
-
-#: Color for marks of type 1 (beige)
-
-# mark3_foreground black
-
-#: Color for marks of type 3
-
-# mark3_background #f274bc
-
-#: Color for marks of type 1 (violet)
-
-#: }}}
-
-#: 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 variables
-#: VISUAL and EDITOR in that order. 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. You can chose to either allow any program running
-#: within kitty to control it, with yes or only programs that connect
-#: to the socket specified with the kitty --listen-on command line
-#: option, if you use the value socket-only. The latter is useful if
-#: you want to prevent programs running on a remote computer over ssh
-#: from controlling kitty.
-
-# env 
-
-#: Specify environment variables to set in all child processes. Note
-#: that environment variables are expanded recursively, so if you
-#: use::
-
-#:     env MYVAR1=a
-#:     env MYVAR2=${MYVAR1}/${HOME}/b
-
-#: The value of MYVAR2 will be a//b.
-
-update_check_interval 24
-
-#: Periodically check if an update to kitty is available. If an update
-#: is found a system notification is displayed informing you of the
-#: available update. The default is to check every 24 hrs, set to zero
-#: to disable.
-
-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
-#: https://sw.kovidgoyal.net/kitty/index.html#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. You can additionally specify no-append to
-#: disable kitty's protocol extension for clipboard concatenation. The
-#: default is to allow writing to the clipboard and primary selection
-#: with concatenation enabled. 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-kitty
-
-#: 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. The TERM variable is used by various programs to get
-#: information about the capabilities and behavior of the terminal. If
-#: you change it, depending on what programs you run, and how
-#: different the terminal you are changing it to is, various things
-#: from key-presses, to colors, to various advanced features may not
-#: work.
-
-#: }}}
-
-#: OS specific tweaks {{{
-
-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
-#: hide_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. You
-#: can use the values: left, right, or both to use only the left,
-#: right or both Option keys as Alt, instead.
-
-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.
-
-macos_thicken_font 0
-
-#: Draw an extra border around the font with the given width, to
-#: increase legibility at small font sizes. For example, a value of
-#: 0.75 will result in rendering that looks similar to sub-pixel
-#: antialiasing at common font sizes.
-
-macos_traditional_fullscreen no
-
-#: Use the traditional full-screen transition, that is faster, but
-#: less pretty.
-
-macos_show_window_title_in all
-
-#: Show or hide the window title in the macOS window or menu-bar. A
-#: value of window will show the title of the currently active window
-#: at the top of the macOS window. A value of menubar will show the
-#: title of the currently active window in the macOS menu-bar, making
-#: use of otherwise wasted space. all will show the title everywhere
-#: and none hides the title in the window and the menu-bar.
-
-macos_custom_beam_cursor no
-
-#: Enable/disable custom mouse cursor for macOS that is easier to see
-#: on both light and dark backgrounds. WARNING: this might make your
-#: mouse cursor invisible on dual GPU machines.
-
-linux_display_server auto
-
-#: Choose between Wayland and X11 backends. By default, an appropriate
-#: backend based on the system state is chosen automatically. Set it
-#: to x11 or wayland to force the choice.
-
-#: }}}
-
-#: 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.
-
-#: Finally, you can use raw system key codes to map keys. To see the
-#: system key code for a key, start kitty with the kitty --debug-
-#: keyboard option. Then kitty will output some debug text for every
-#: key event. In that text look for ``native_code`` the value of that
-#: becomes the key name in the shortcut. For example:
-
-#: .. code-block:: none
-
-#:     on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
-
-#: Here, the key name for the A key is 0x61 and you can use it with::
-
-#:     map ctrl+0x61 something
-
-#: to map ctrl+a to something.
-
-#: You can use the special action no_op to unmap a keyboard shortcut
-#: that is assigned in the default configuration::
-
-#:     map kitty_mod+space no_op
-
-#: 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.
-
-# kitten_alias hints hints --hints-offset=0
-
-#: You can create aliases for kitten names, this allows overriding the
-#: defaults for kitten options and can also be used to shorten
-#: repeated mappings of the same kitten with a specific group of
-#: options. For example, the above alias changes the default value of
-#: kitty +kitten hints --hints-offset to zero for all mappings,
-#: including the builtin ones.
-
-#: Clipboard {{{
-
-map kitty_mod+c copy_to_clipboard
-
-#: There is also a copy_or_interrupt action that can be optionally
-#: mapped to Ctrl+c. It will copy only if there is a selection and
-#: send an interrupt otherwise.
-
-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, the selection
-#: will be passed as a command line argument to the program, 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 pipe the contents of the current screen + history buffer as
-#: STDIN to an arbitrary program using the ``launch`` function. For
-#: example, the following opens the scrollback buffer in less in an
-#: overlay window::
-
-#:     map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
-
-#: For more details on piping screen and buffer contents to external
-#: programs, see launch.
-
-#: }}}
-
-#: Window management {{{
-
-map kitty_mod+enter new_window
-
-#: You can open a new window running an arbitrary program, for
-#: example::
-
-#:     map kitty_mod+y      launch 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    launch --cwd=current
-
-#: You can open a new window that is allowed to control kitty via the
-#: kitty remote control facility by prefixing the command line with @.
-#: Any programs running in that window will be allowed to control
-#: kitty. For example::
-
-#:     map ctrl+enter launch --allow-remote-control some_program
-
-#: You can open a new window next to the currently active window or as
-#: the first window, with::
-
-#:     map ctrl+n launch --location=neighbor some_program
-#:     map ctrl+f launch --location=first some_program
-
-#: For more details, see launch.
-
-map kitty_mod+n new_os_window
-
-#: Works like new_window above, except that it opens a top level OS
-#: kitty window. In particular you can use new_os_window_with_cwd to
-#: open a window with the current working directory.
-
-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, 2 the second tab and -1 being the previously active
-#: tab, and any number larger than the last tab being the last 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. Finally, if you want the new tab to open next to
-#: the current tab rather than at the end of the tabs list, use::
-
-#:     map ctrl+t new_tab !neighbor [optional cmd to run]
-#: }}}
-
-#: 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
-
-#: Similarly, to switch back to the previous layout::
-
-#:    map ctrl+alt+p last_used_layout
-#: }}}
-
-#: Font sizes {{{
-
-#: You can change the font size for all top-level kitty OS 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 OS 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
-
-map kitty_mod+p>n kitten hints --type linenum
-
-#: Select something that looks like filename:linenum and open it in
-#: vim at the specified line number.
-
-
-#: 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+f10    toggle_maximized
-map kitty_mod+u      kitten unicode_input
-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
-map kitty_mod+delete clear_terminal reset active
-
-#: You can create shortcuts to clear/reset the terminal. For example::
-
-#:     # Reset the terminal
-#:     map kitty_mod+f9 clear_terminal reset active
-#:     # Clear the terminal screen by erasing all contents
-#:     map kitty_mod+f10 clear_terminal clear active
-#:     # Clear the terminal scrollback by erasing it
-#:     map kitty_mod+f11 clear_terminal scrollback active
-#:     # Scroll the contents of the screen into the scrollback
-#:     map kitty_mod+f12 clear_terminal scroll active
-
-#: If you want to operate on all windows instead of just the current
-#: one, use all instead of active.
-
-#: It is also possible to remap Ctrl+L to both scroll the current
-#: screen contents into the scrollback buffer and clear the screen,
-#: instead of just clearing the screen::
-
-#:     map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c
-
-
-#: 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
-
-#: }}}
-
-# }}}
-#
-include dracula.conf
-
-# Zoom
-map alt+3 disable_ligatures_in tab cursor
-map ctrl+shift+plus change_font_size all +2.0
-map ctrl+shift+minus change_font_size all -2.0
-
-
-
-# extras
-map ctrl+shift+t launch --cwd=current --type=tab
-map ctrl+alt+shift+t launch --type=tab
diff --git a/kitty/kitty/dracula.conf b/kitty/kitty/dracula.conf
new file mode 100644
index 0000000..f517731
--- /dev/null
+++ b/kitty/kitty/dracula.conf
@@ -0,0 +1,58 @@
+# https://draculatheme.com/kitty
+#
+# Installation instructions:
+#
+#  cp dracula.conf ~/.config/kitty/
+#  echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
+#
+# Then reload kitty for the config to take affect.
+# Alternatively copy paste below directly into kitty.conf
+
+foreground            #f8f8f2
+background            #282a36
+selection_foreground  #44475a
+selection_background  #f8f8f2
+
+url_color #ffb86c
+
+# black
+color0  #21222c
+color8  #6272a4
+
+# red
+color1  #ff5555
+color9  #ff6e6e
+
+# green
+color2  #50fa7b
+color10 #69ff94
+
+# yellow
+color3  #f1fa8c
+color11 #ffffa5
+
+# blue
+color4  #bd93f9
+color12 #d6acff
+
+# magenta
+color5  #ff79c6
+color13 #ff92df
+
+# cyan
+color6  #8be9fd
+color14 #a4ffff
+
+# white
+color7  #f8f8f2
+color15 #ffffff
+
+# Cursor colors
+cursor            #f8f8f2
+cursor_text_color background
+
+# Tab bar colors
+active_tab_foreground   #44475a
+active_tab_background   #f8f8f2
+inactive_tab_foreground #282a36
+inactive_tab_background #6272a4
diff --git a/kitty/kitty/greyscale.conf b/kitty/kitty/greyscale.conf
new file mode 100644
index 0000000..02cc41a
--- /dev/null
+++ b/kitty/kitty/greyscale.conf
@@ -0,0 +1,48 @@
+foreground            #FFFFFF
+background            #000000
+selection_foreground  #FFFFFF
+selection_background  #EEEEEE
+
+url_color #ffb86c
+
+# black
+color0  #000000
+color8  #000000
+
+# red
+color1  #444444
+color9  #555555
+
+# green
+color2  #888888
+color10 #999999
+
+# yellow
+color3  #333333
+color11 #DDDDDD
+
+# blue
+color4  #222222
+color12 #333333
+
+# magenta
+color5  #666666
+color13 #777777
+
+# cyan
+color6  #AAAAAA
+color14 #BBBBBB
+
+# white
+color7  #EEEEEE
+color15 #FFFFFF
+
+# Cursor colors
+cursor            color15
+cursor_text_color background
+
+# Tab bar colors
+active_tab_foreground   #44475a
+active_tab_background   #f8f8f2
+inactive_tab_foreground #282a36
+inactive_tab_background #6272a4
diff --git a/kitty/kitty/kitty.conf b/kitty/kitty/kitty.conf
new file mode 100644
index 0000000..4b8a0c1
--- /dev/null
+++ b/kitty/kitty/kitty.conf
@@ -0,0 +1,1198 @@
+# 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      B612 Mono Regular
+bold_font        B612 Mono Bold
+italic_font      B612 Mono Italic
+bold_italic_font B612 Mono BoldItalic
+
+#: You can specify different fonts for the bold/italic/bold-italic
+#: variants. To get a full list of supported fonts use the `kitty
+#: list-fonts` command. 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 12.0
+
+#: Font size (in pts)
+
+# force_ltr no
+
+#: kitty does not support BIDI (bidirectional text), however, for RTL
+#: scripts, words are automatically displayed in RTL. That is to say,
+#: in an RTL script, the words "HELLO WORLD" display in kitty as
+#: "WORLD HELLO", and if you try to select a substring of an RTL-
+#: shaped string, you will get the character that would be there had
+#: the the string been LTR. For example, assuming the Hebrew word
+#: ירושלים, selecting the character that on the screen appears to be ם
+#: actually writes into the selection buffer the character י.
+
+#: kitty's default behavior is useful in conjunction with a filter to
+#: reverse the word order, however, if you wish to manipulate RTL
+#: glyphs, it can be very challenging to work with, so this option is
+#: provided to turn it off. Furthermore, this option can be used with
+#: the command line program GNU FriBidi
+#:  to get BIDI
+#: support, because it will force kitty to always treat the text as
+#: LTR, which FriBidi expects for terminals.
+
+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
+
+disable_ligatures never
+
+#: Choose how you want to handle multi-character ligatures. The
+#: default is to always render them.  You can tell kitty to not render
+#: them when the cursor is over them by using cursor to make editing
+#: easier, or have kitty never render them at all by using always, if
+#: you don't like them. The ligature strategy can be set per-window
+#: either using the kitty remote control facility or by defining
+#: shortcuts for it in kitty.conf, for example::
+
+#:     map alt+1 disable_ligatures_in active always
+#:     map alt+2 disable_ligatures_in all never
+#:     map alt+3 disable_ligatures_in tab cursor
+
+# font_features none
+
+#: Choose exactly which OpenType features to enable or disable. This
+#: is useful as some fonts might have features worthwhile in a
+#: terminal. For example, Fira Code Retina includes a discretionary
+#: feature, zero, which in that font changes the appearance of the
+#: zero (0), to make it more easily distinguishable from Ø. Fira Code
+#: Retina also includes other discretionary features known as
+#: Stylistic Sets which have the tags ss01 through ss20.
+
+#: Note that this code is indexed by PostScript name, and not the font
+#: family. This allows you to define very precise feature settings;
+#: e.g. you can disable a feature in the italic font but not in the
+#: regular font.
+
+#: To get the PostScript name for a font, use kitty + list-fonts
+#: --psnames::
+
+#:     $ kitty + list-fonts --psnames | grep Fira
+#:     Fira Code
+#:     Fira Code Bold (FiraCode-Bold)
+#:     Fira Code Light (FiraCode-Light)
+#:     Fira Code Medium (FiraCode-Medium)
+#:     Fira Code Regular (FiraCode-Regular)
+#:     Fira Code Retina (FiraCode-Retina)
+
+#: The part in brackets is the PostScript name.
+
+#: Enable alternate zero and oldstyle numerals::
+
+#:     font_features FiraCode-Retina +zero +onum
+
+#: Enable only alternate zero::
+
+#:     font_features FiraCode-Retina +zero
+
+#: Disable the normal ligatures, but keep the calt feature which (in
+#: this font) breaks up monotony::
+
+#:     font_features TT2020StyleB-Regular -liga +calt
+
+#: In conjunction with force_ltr, you may want to disable Arabic
+#: shaping entirely, and only look at their isolated forms if they
+#: show up in a document. You can do this with e.g.::
+
+#:     font_features UnifontMedium +isol -medi -fina -init
+
+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 #cccccc
+
+#: Default cursor color
+
+cursor_text_color #111111
+
+#: Choose the color of text under the cursor. If you want it rendered
+#: with the background color of the cell underneath instead, use the
+#: special keyword: background
+
+cursor_shape block
+
+#: The cursor shape can be one of (block, beam, underline)
+
+cursor_blink_interval -1
+
+#: The interval (in seconds) at which to blink the cursor. Set to zero
+#: to disable blinking. Negative values mean use system default. Note
+#: that numbers smaller than repaint_delay will be limited to
+#: repaint_delay.
+
+cursor_stop_blinking_after 15.0
+
+#: Stop blinking cursor after the specified number of seconds of
+#: keyboard inactivity.  Set to zero to never stop blinking.
+
+#: }}}
+
+#: Scrollback {{{
+
+scrollback_lines -1
+
+#: Number of lines of history to keep in memory for scrolling back.
+#: Memory is allocated on demand. Negative numbers are (effectively)
+#: infinite scrollback. Note that using very large scrollback is not
+#: recommended as it can slow down resizing of the terminal and also
+#: use large amounts of RAM.
+
+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.
+
+scrollback_pager_history_size 0
+
+#: Separate scrollback history size, used only for browsing the
+#: scrollback buffer (in MB). This separate buffer is not available
+#: for interactive scrolling but will be piped to the pager program
+#: when viewing scrollback buffer in a separate window. The current
+#: implementation stores one character in 4 bytes, so approximatively
+#: 2500 lines per megabyte at 100 chars per line. A value of zero or
+#: less disables this feature. The maximum allowed size is 4GB.
+
+wheel_scroll_multiplier 5.0
+
+#: Modify the amount scrolled by the mouse wheel. Note this is only
+#: used for low precision scrolling devices, not for high precision
+#: scrolling on platforms such as macOS and Wayland. Use negative
+#: numbers to change scroll direction.
+
+touch_scroll_multiplier 1.0
+
+#: Modify the amount scrolled by a touchpad. Note this is only used
+#: for high precision scrolling devices on platforms such as macOS and
+#: Wayland. Use negative numbers to change scroll direction.
+
+#: }}}
+
+#: Mouse {{{
+
+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.
+#: Set to a negative value to hide the mouse cursor immediately when
+#: typing text. Disabled by default on macOS as getting it to work
+#: robustly with the ever-changing sea of bugs that is Cocoa is too
+#: much effort.
+
+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 or a private buffer on select. With this set to
+#: clipboard, simply selecting text with the mouse will cause the text
+#: to be copied to clipboard. Useful on platforms such as macOS that
+#: do not have the concept of primary selections. You can instead
+#: specify a name such as a1 to copy to a private kitty buffer
+#: instead. Map a shortcut with the paste_from_buffer action to paste
+#: from this private buffer. For example::
+
+#:     map cmd+shift+v paste_from_buffer a1
+
+#: Note that copying to the clipboard is a security risk, as all
+#: programs, including websites open in your browser can read the
+#: contents of the system clipboard.
+
+strip_trailing_spaces never
+
+#: Remove spaces at the end of lines when copying to clipboard. A
+#: value of smart will do it when using normal selections, but not
+#: rectangle selections. always will always do it.
+
+rectangle_select_modifiers ctrl+alt
+
+#: The modifiers to use rectangular selection (i.e. to select text in
+#: a rectangular block with the mouse)
+
+terminal_select_modifiers shift
+
+#: The modifiers to override mouse selection even when a terminal
+#: application has grabbed 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
+#: alphanumeric character in the unicode database will be matched.
+
+click_interval -1.0
+
+#: The interval between successive clicks to detect double/triple
+#: clicks (in seconds). Negative numbers will use the system default
+#: instead, if available, or fallback to 0.5.
+
+focus_follows_mouse no
+
+#: Set the active window to the window under the mouse when moving the
+#: mouse around
+
+pointer_shape_when_grabbed arrow
+
+#: The shape of the mouse pointer when the program running in the
+#: terminal grabs the mouse. Valid values are: arrow, beam and hand
+
+#: }}}
+
+#: 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. Also, to minimize latency when there is pending input to be
+#: processed, repaint_delay is ignored.
+
+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 no
+
+#: Enable/disable the audio bell. Useful in environments that require
+#: silence.
+
+visual_bell_duration 0.0
+
+#: 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
+
+command_on_bell none
+
+#: Program to run when a bell occurs.
+
+#: }}}
+
+#: 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 all means all layouts. The first listed layout
+#: will be used as the startup layout. Default configuration is all
+#: layouts in alphabetical order. For a list of available layouts, see
+#: the https://sw.kovidgoyal.net/kitty/index.html#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 0.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 0.0
+
+#: The window padding (in pts) (blank area between the text and the
+#: window border)
+
+placement_strategy center
+
+#: When the window size is not an exact multiple of the cell size, the
+#: cell area of the terminal window will have some extra padding on
+#: the sides. You can control how that padding is distributed with
+#: this option. Using a value of center means the cell area will be
+#: placed centrally. A value of top-left means the padding will be on
+#: only the bottom and right edges.
+
+active_border_color #00ff00
+
+#: The color for the border of the active window. Set this to none to
+#: not draw borders around 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).
+
+hide_window_decorations no
+
+#: Hide the window decorations (title-bar and window borders) with
+#: yes. On macOS, titlebar-only can be used to only hide the titlebar.
+#: Whether this works and exactly what effect it has depends on the
+#: window manager/operating system.
+
+resize_debounce_time 0.1
+
+#: The time (in seconds) to wait before redrawing the screen when a
+#: resize event is received. On platforms such as macOS, where the
+#: operating system sends events corresponding to the start and end of
+#: a resize, this number is ignored.
+
+resize_draw_strategy static
+
+#: Choose how kitty draws a window while a resize is in progress. A
+#: value of static means draw the current window contents, mostly
+#: unchanged. A value of scale means draw the current window contents
+#: scaled. A value of blank means draw a blank window. A value of size
+#: means show the window size in cells.
+
+# resize_in_steps no
+
+#: Resize the OS window in steps as large as the cells, instead of
+#: with the usual pixel accuracy. Combined with an
+#: initial_window_width and initial_window_height in number of cells,
+#: this option can be used to keep the margins as small as possible
+#: when resizing the OS window. Note that this does not currently work
+#: on Wayland.
+
+#: }}}
+
+#: 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, separator, powerline, or
+#: hidden. In the fade style, each tab's edges fade into the
+#: background color, in the separator style, tabs are separated by a
+#: configurable separator, and the powerline shows the tabs as a
+#: continuous line.
+
+tab_bar_min_tabs 2
+
+#: The minimum number of tabs that must exist before the tab bar is
+#: shown
+
+tab_switch_strategy previous
+
+#: The algorithm to use when switching to a tab when the current tab
+#: is closed. The default of previous will switch to the last used
+#: tab. A value of left will switch to the tab to the left of the
+#: closed tab. A value of last will switch to the right-most tab.
+
+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.
+
+tab_title_template {title}
+
+#: A template to render the tab title. The default just renders the
+#: title. If you wish to include the tab-index as well, use something
+#: like: {index}: {title}. Useful if you have shortcuts mapped for
+#: goto_tab N.
+
+# active_tab_title_template none
+
+#: Template to use for active tabs, if not specified falls back to
+#: tab_title_template.
+
+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
+
+# tab_bar_background none
+
+#: Background color for the tab bar. Defaults to using the terminal
+#: background color.
+
+#: }}}
+
+#: Color scheme {{{
+
+foreground #dddddd
+background #000000
+
+#: The foreground and background colors
+
+background_opacity 1.0
+
+#: 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)
+
+dynamic_background_opacity no
+
+#: Allow changing of the background_opacity dynamically, using either
+#: keyboard shortcuts (increase_background_opacity and
+#: decrease_background_opacity) or the remote control facility.
+
+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 #000000
+
+#: The foreground for text selected with the mouse. A value of none
+#: means to leave the color unchanged.
+
+selection_background #fffacd
+
+#: The 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 #000000
+color8 #767676
+
+#: black
+
+color1 #cc0403
+color9 #f2201f
+
+#: red
+
+color2  #19cb00
+color10 #23fd00
+
+#: green
+
+color3  #cecb00
+color11 #fffd00
+
+#: yellow
+
+color4  #0d73cc
+color12 #1a8fff
+
+#: blue
+
+color5  #cb1ed1
+color13 #fd28ff
+
+#: magenta
+
+color6  #0dcdcd
+color14 #14ffff
+
+#: cyan
+
+color7  #dddddd
+color15 #ffffff
+
+#: white
+
+# mark1_foreground black
+
+#: Color for marks of type 1
+
+# mark1_background #98d3cb
+
+#: Color for marks of type 1 (light steel blue)
+
+# mark2_foreground black
+
+#: Color for marks of type 2
+
+# mark2_background #f2dcd3
+
+#: Color for marks of type 1 (beige)
+
+# mark3_foreground black
+
+#: Color for marks of type 3
+
+# mark3_background #f274bc
+
+#: Color for marks of type 1 (violet)
+
+#: }}}
+
+#: 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 variables
+#: VISUAL and EDITOR in that order. 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. You can chose to either allow any program running
+#: within kitty to control it, with yes or only programs that connect
+#: to the socket specified with the kitty --listen-on command line
+#: option, if you use the value socket-only. The latter is useful if
+#: you want to prevent programs running on a remote computer over ssh
+#: from controlling kitty.
+
+# env 
+
+#: Specify environment variables to set in all child processes. Note
+#: that environment variables are expanded recursively, so if you
+#: use::
+
+#:     env MYVAR1=a
+#:     env MYVAR2=${MYVAR1}/${HOME}/b
+
+#: The value of MYVAR2 will be a//b.
+
+update_check_interval 24
+
+#: Periodically check if an update to kitty is available. If an update
+#: is found a system notification is displayed informing you of the
+#: available update. The default is to check every 24 hrs, set to zero
+#: to disable.
+
+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
+#: https://sw.kovidgoyal.net/kitty/index.html#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. You can additionally specify no-append to
+#: disable kitty's protocol extension for clipboard concatenation. The
+#: default is to allow writing to the clipboard and primary selection
+#: with concatenation enabled. 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-kitty
+
+#: 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. The TERM variable is used by various programs to get
+#: information about the capabilities and behavior of the terminal. If
+#: you change it, depending on what programs you run, and how
+#: different the terminal you are changing it to is, various things
+#: from key-presses, to colors, to various advanced features may not
+#: work.
+
+#: }}}
+
+#: OS specific tweaks {{{
+
+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
+#: hide_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. You
+#: can use the values: left, right, or both to use only the left,
+#: right or both Option keys as Alt, instead.
+
+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.
+
+macos_thicken_font 0
+
+#: Draw an extra border around the font with the given width, to
+#: increase legibility at small font sizes. For example, a value of
+#: 0.75 will result in rendering that looks similar to sub-pixel
+#: antialiasing at common font sizes.
+
+macos_traditional_fullscreen no
+
+#: Use the traditional full-screen transition, that is faster, but
+#: less pretty.
+
+macos_show_window_title_in all
+
+#: Show or hide the window title in the macOS window or menu-bar. A
+#: value of window will show the title of the currently active window
+#: at the top of the macOS window. A value of menubar will show the
+#: title of the currently active window in the macOS menu-bar, making
+#: use of otherwise wasted space. all will show the title everywhere
+#: and none hides the title in the window and the menu-bar.
+
+macos_custom_beam_cursor no
+
+#: Enable/disable custom mouse cursor for macOS that is easier to see
+#: on both light and dark backgrounds. WARNING: this might make your
+#: mouse cursor invisible on dual GPU machines.
+
+linux_display_server auto
+
+#: Choose between Wayland and X11 backends. By default, an appropriate
+#: backend based on the system state is chosen automatically. Set it
+#: to x11 or wayland to force the choice.
+
+#: }}}
+
+#: 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.
+
+#: Finally, you can use raw system key codes to map keys. To see the
+#: system key code for a key, start kitty with the kitty --debug-
+#: keyboard option. Then kitty will output some debug text for every
+#: key event. In that text look for ``native_code`` the value of that
+#: becomes the key name in the shortcut. For example:
+
+#: .. code-block:: none
+
+#:     on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
+
+#: Here, the key name for the A key is 0x61 and you can use it with::
+
+#:     map ctrl+0x61 something
+
+#: to map ctrl+a to something.
+
+#: You can use the special action no_op to unmap a keyboard shortcut
+#: that is assigned in the default configuration::
+
+#:     map kitty_mod+space no_op
+
+#: 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.
+
+# kitten_alias hints hints --hints-offset=0
+
+#: You can create aliases for kitten names, this allows overriding the
+#: defaults for kitten options and can also be used to shorten
+#: repeated mappings of the same kitten with a specific group of
+#: options. For example, the above alias changes the default value of
+#: kitty +kitten hints --hints-offset to zero for all mappings,
+#: including the builtin ones.
+
+#: Clipboard {{{
+
+map kitty_mod+c copy_to_clipboard
+
+#: There is also a copy_or_interrupt action that can be optionally
+#: mapped to Ctrl+c. It will copy only if there is a selection and
+#: send an interrupt otherwise.
+
+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, the selection
+#: will be passed as a command line argument to the program, 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 pipe the contents of the current screen + history buffer as
+#: STDIN to an arbitrary program using the ``launch`` function. For
+#: example, the following opens the scrollback buffer in less in an
+#: overlay window::
+
+#:     map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
+
+#: For more details on piping screen and buffer contents to external
+#: programs, see launch.
+
+#: }}}
+
+#: Window management {{{
+
+map kitty_mod+enter new_window
+
+#: You can open a new window running an arbitrary program, for
+#: example::
+
+#:     map kitty_mod+y      launch 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    launch --cwd=current
+
+#: You can open a new window that is allowed to control kitty via the
+#: kitty remote control facility by prefixing the command line with @.
+#: Any programs running in that window will be allowed to control
+#: kitty. For example::
+
+#:     map ctrl+enter launch --allow-remote-control some_program
+
+#: You can open a new window next to the currently active window or as
+#: the first window, with::
+
+#:     map ctrl+n launch --location=neighbor some_program
+#:     map ctrl+f launch --location=first some_program
+
+#: For more details, see launch.
+
+map kitty_mod+n new_os_window
+
+#: Works like new_window above, except that it opens a top level OS
+#: kitty window. In particular you can use new_os_window_with_cwd to
+#: open a window with the current working directory.
+
+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, 2 the second tab and -1 being the previously active
+#: tab, and any number larger than the last tab being the last 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. Finally, if you want the new tab to open next to
+#: the current tab rather than at the end of the tabs list, use::
+
+#:     map ctrl+t new_tab !neighbor [optional cmd to run]
+#: }}}
+
+#: 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
+
+#: Similarly, to switch back to the previous layout::
+
+#:    map ctrl+alt+p last_used_layout
+#: }}}
+
+#: Font sizes {{{
+
+#: You can change the font size for all top-level kitty OS 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 OS 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
+
+map kitty_mod+p>n kitten hints --type linenum
+
+#: Select something that looks like filename:linenum and open it in
+#: vim at the specified line number.
+
+
+#: 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+f10    toggle_maximized
+map kitty_mod+u      kitten unicode_input
+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
+map kitty_mod+delete clear_terminal reset active
+
+#: You can create shortcuts to clear/reset the terminal. For example::
+
+#:     # Reset the terminal
+#:     map kitty_mod+f9 clear_terminal reset active
+#:     # Clear the terminal screen by erasing all contents
+#:     map kitty_mod+f10 clear_terminal clear active
+#:     # Clear the terminal scrollback by erasing it
+#:     map kitty_mod+f11 clear_terminal scrollback active
+#:     # Scroll the contents of the screen into the scrollback
+#:     map kitty_mod+f12 clear_terminal scroll active
+
+#: If you want to operate on all windows instead of just the current
+#: one, use all instead of active.
+
+#: It is also possible to remap Ctrl+L to both scroll the current
+#: screen contents into the scrollback buffer and clear the screen,
+#: instead of just clearing the screen::
+
+#:     map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c
+
+
+#: 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
+
+#: }}}
+
+# }}}
+#
+include dracula.conf
+
+# Zoom
+map alt+3 disable_ligatures_in tab cursor
+map ctrl+shift+plus change_font_size all +2.0
+map ctrl+shift+minus change_font_size all -2.0
+
+
+
+# extras
+map ctrl+shift+t launch --cwd=current --type=tab
+map ctrl+alt+shift+t launch --type=tab
diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf
deleted file mode 100644
index dfa24d7..0000000
--- a/tmux/.tmux.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-# Scroll
-set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
-
-# Use vim bindings
-setw -g mode-keys vi
-
-# Mouse works as expected
-set -g mouse on
diff --git a/tmux/dot-tmux.conf b/tmux/dot-tmux.conf
new file mode 100644
index 0000000..dfa24d7
--- /dev/null
+++ b/tmux/dot-tmux.conf
@@ -0,0 +1,8 @@
+# Scroll
+set -ga terminal-overrides ',xterm*:smcup@:rmcup@'
+
+# Use vim bindings
+setw -g mode-keys vi
+
+# Mouse works as expected
+set -g mouse on
diff --git a/uninstall.sh b/uninstall.sh
index 3c1e99b..fc3c2c6 100644
--- a/uninstall.sh
+++ b/uninstall.sh
@@ -1,12 +1,12 @@
 #!/bin/bash
 
 # Link at home folder
-stow -Dt ~ bash tmux git
+stow --dotfiles -Dt ~ bash tmux git
 
 # Link at XDG_CONFIG_HOME if set, if not to $HOME/.config (they should be the same)
 
 # NeoVim
-stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} -D nvim
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} nvim
 
 # Shepherd
 stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} shepherd
@@ -15,13 +15,13 @@ stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} shepherd
 # stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/konsole" konsole
 
 # kitty
-stow -Dt "${XDG_CONFIG_HOME:=$HOME/.config}/kitty" kitty
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} kitty
 
 # Guix channels
 stow -Dt "${XDG_CONFIG_HOME:=$HOME/.config}/guix" guix
 
 # i3
-stow -Dt "${XDG_CONFIG_HOME:=$HOME/.config}/i3" i3
-stow -Dt "${XDG_CONFIG_HOME:=$HOME/.config}/i3status" i3status
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} i3
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} i3status
 # Plasma session environment variables
 #stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/plasma-workspace/env" plasma-env
-- 
cgit v1.2.3