aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/%HOME%
diff options
context:
space:
mode:
Diffstat (limited to '%HOME%')
-rw-r--r--%HOME%/.bash_profile56
-rw-r--r--%HOME%/.bash_utils/cxx.sh118
-rw-r--r--%HOME%/.bash_utils/distr.sh29
-rw-r--r--%HOME%/.bash_utils/file.sh35
-rw-r--r--%HOME%/.bash_utils/git.sh102
-rw-r--r--%HOME%/.bash_utils/text.sh43
-rw-r--r--%HOME%/.bashrc226
-rw-r--r--%HOME%/.fonts.conf28
-rw-r--r--%HOME%/.gitconfig30
-rw-r--r--%HOME%/.gnupg/gpg.conf242
-rw-r--r--%HOME%/.inputrc76
-rw-r--r--%HOME%/.minttyrc23
-rw-r--r--%HOME%/.nanorc8
-rw-r--r--%HOME%/.profile37
-rw-r--r--%HOME%/.pythonrc2
-rw-r--r--%HOME%/.ssh/config1
-rw-r--r--%HOME%/.vimrc53
-rw-r--r--%HOME%/.vimtmp/backup/.gitkeep0
-rw-r--r--%HOME%/.vimtmp/swap/.gitkeep0
-rw-r--r--%HOME%/.vimtmp/undo/.gitkeep0
20 files changed, 1109 insertions, 0 deletions
diff --git a/%HOME%/.bash_profile b/%HOME%/.bash_profile
new file mode 100644
index 0000000..342b8a3
--- /dev/null
+++ b/%HOME%/.bash_profile
@@ -0,0 +1,56 @@
+# To the extent possible under law, the author(s) have dedicated all
+# copyright and related and neighboring rights to this software to the
+# public domain worldwide. This software is distributed without any warranty.
+# You should have received a copy of the CC0 Public Domain Dedication along
+# with this software.
+# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+# base-files version 4.2-4
+
+# ~/.bash_profile: executed by bash(1) for login shells.
+
+# The latest version as installed by the Cygwin Setup program can
+# always be found at /etc/defaults/etc/skel/.bash_profile
+
+# Modifying /etc/skel/.bash_profile directly will prevent
+# setup from updating it.
+
+# The copy in your home directory (~/.bash_profile) is yours, please
+# feel free to customise it to create a shell
+# environment to your liking. If you feel a change
+# would be benifitial to all, please feel free to send
+# a patch to the cygwin mailing list.
+
+# User dependent .bash_profile file
+
+# source the users bashrc if it exists
+if [ -f "${HOME}/.bashrc" ] ; then
+ source "${HOME}/.bashrc"
+fi
+
+# Set PATH so it includes user's private bin if it exists
+# if [ -d "${HOME}/bin" ] ; then
+# PATH="${HOME}/bin:${PATH}"
+# fi
+
+# Set MANPATH so it includes users' private man if it exists
+# if [ -d "${HOME}/man" ]; then
+# MANPATH="${HOME}/man:${MANPATH}"
+# fi
+
+# Set INFOPATH so it includes users' private info if it exists
+# if [ -d "${HOME}/info" ]; then
+# INFOPATH="${HOME}/info:${INFOPATH}"
+# fi
+
+spawn_ssh_agent() {
+ [ -n "${SSH_AGENT_PID:+x}" ] && return 0
+
+ eval "$( ssh-agent -s )" > /dev/null \
+ && trap "$( printf 'kill %q' "$SSH_AGENT_PID" )" 0 \
+ && ssh-add &> /dev/null
+}
+
+[ "$( uname -o )" == 'Cygwin' ] && spawn_ssh_agent
+
+echo "Welcome to $( hostname )"
diff --git a/%HOME%/.bash_utils/cxx.sh b/%HOME%/.bash_utils/cxx.sh
new file mode 100644
index 0000000..527c120
--- /dev/null
+++ b/%HOME%/.bash_utils/cxx.sh
@@ -0,0 +1,118 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2016 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is part of the "Cygwin configuration files" project.
+# For details, see https://github.com/egor-tensin/cygwin-home.
+# Distributed under the MIT License.
+
+runc_flags=('-Wall' '-Wextra')
+
+runc() (
+ set -o errexit -o nounset -o pipefail
+
+ local -a c_flags=("${runc_flags[@]+"${runc_flags[@]}"}")
+ local -a src_files
+ local -a prog_flags
+
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -c|--c-flags)
+ if [ "$#" -le 1 ]; then
+ echo "${FUNCNAME[0]}: missing argument for parameter: $1" >&2
+ return 1
+ fi
+ shift
+ c_flags+=("$1")
+ shift
+ ;;
+
+ -h|--help)
+ echo "usage: ${FUNCNAME[0]} [-h|--help] [-c|--c-flags FLAG]... [--] [SRC_PATH]..."
+ return 0
+ ;;
+
+ --)
+ shift
+ break
+ ;;
+
+ *)
+ src_files+=("$( realpath "$1" )")
+ shift
+ ;;
+ esac
+ done
+
+ prog_flags=("$@")
+
+ local build_dir
+ build_dir="$( mktemp --directory )"
+
+ trap "$( printf 'popd > /dev/null && rm -rf %q' "$build_dir" )" 0
+ pushd "$build_dir" > /dev/null
+
+ local output_name
+ output_name="$( mktemp --tmpdir=. "${FUNCNAME[0]}XXX.exe" )"
+
+ gcc -o "$output_name" \
+ "${c_flags[@]+"${c_flags[@]}"}" \
+ "${src_files[@]+"${src_files[@]}"}"
+
+ "$output_name" "${prog_flags[@]+"${prog_flags[@]}"}"
+)
+
+runcxx_flags=('-Wall' '-Wextra' '-std=c++14')
+
+runcxx() (
+ set -o errexit -o nounset -o pipefail
+
+ local -a cxx_flags=("${runcxx_flags[@]+"${runcxx_flags[@]}"}")
+ local -a src_files
+ local -a prog_flags
+
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -c|--cxx-flags)
+ if [ "$#" -le 1 ]; then
+ echo "${FUNCNAME[0]}: missing argument for parameter: $1" >&2
+ return 1
+ fi
+ shift
+ cxx_flags+=("$1")
+ shift
+ ;;
+
+ -h|--help)
+ echo "usage: ${FUNCNAME[0]} [-h|--help] [-c|--cxx-flags FLAG]... [--] [SRC_PATH]..."
+ return 0
+ ;;
+
+ --)
+ shift
+ break
+ ;;
+
+ *)
+ src_files+=("$( realpath "$1" )")
+ shift
+ ;;
+ esac
+ done
+
+ prog_flags=("$@")
+
+ local build_dir
+ build_dir="$( mktemp --directory )"
+
+ trap "$( printf 'popd > /dev/null && rm -rf %q' "$build_dir" )" 0
+ pushd "$build_dir" > /dev/null
+
+ local output_name
+ output_name="$( mktemp --tmpdir=. "${FUNCNAME[0]}XXX.exe" )"
+
+ g++ -o "$output_name" \
+ "${cxx_flags[@]+"${cxx_flags[@]}"}" \
+ "${src_files[@]+"${src_files[@]}"}"
+
+ "$output_name" "${prog_flags[@]+"${prog_flags[@]}"}"
+)
diff --git a/%HOME%/.bash_utils/distr.sh b/%HOME%/.bash_utils/distr.sh
new file mode 100644
index 0000000..06d342a
--- /dev/null
+++ b/%HOME%/.bash_utils/distr.sh
@@ -0,0 +1,29 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2016 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is part of the "Cygwin configuration files" project.
+# For details, see https://github.com/egor-tensin/cygwin-home.
+# Distributed under the MIT License.
+
+checksums_path='sha1sums.txt'
+
+update_checksums() {
+ sha1sum -- "$@" > "$checksums_path"
+}
+
+update_checksums_distr() (
+ set -o errexit -o nounset -o pipefail
+
+ local -a paths
+ local path
+
+ while IFS= read -d '' -r path; do
+ paths+=("$path")
+ done < <( find . -type f -\( -iname '*.exe' -o -iname '*.iso' -\) -print0 )
+
+ update_checksums "${paths[@]+"${paths[@]}"}"
+)
+
+verify_checksums() {
+ sha1sum --check "$checksums_path"
+}
diff --git a/%HOME%/.bash_utils/file.sh b/%HOME%/.bash_utils/file.sh
new file mode 100644
index 0000000..0321833
--- /dev/null
+++ b/%HOME%/.bash_utils/file.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2016 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is part of the "Cygwin configuration files" project.
+# For details, see https://github.com/egor-tensin/cygwin-home.
+# Distributed under the MIT License.
+
+swap_files() (
+ set -o errexit -o nounset -o pipefail
+
+ if [ "$#" -ne 2 ]; then
+ echo "usage: ${FUNCNAME[0]} PATH1 PATH2" >&2
+ return 1
+ fi
+
+ local path1="$1"
+ local path2="$2"
+
+ if [ ! -f "$path1" ]; then
+ echo "${FUNCNAME[0]}: must be a regular file: $path1" >&2
+ return 1
+ fi
+
+ if [ ! -f "$path2" ]; then
+ echo "${FUNCNAME[0]}: must be a regular file: $path2" >&2
+ return 1
+ fi
+
+ local tmp_path
+ tmp_path="$( mktemp "$( dirname "$path1" )/XXX" )"
+
+ mv "$path1" "$tmp_path"
+ mv "$path2" "$path1"
+ mv "$tmp_path" "$path2"
+)
diff --git a/%HOME%/.bash_utils/git.sh b/%HOME%/.bash_utils/git.sh
new file mode 100644
index 0000000..54e50f6
--- /dev/null
+++ b/%HOME%/.bash_utils/git.sh
@@ -0,0 +1,102 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2016 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is part of the "Cygwin configuration files" project.
+# For details, see https://github.com/egor-tensin/cygwin-home.
+# Distributed under the MIT License.
+
+list_repo_files() (
+ set -o errexit -o nounset -o pipefail
+
+ local -a cmd=(git ls-files)
+
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -z|-0)
+ cmd+=(-z)
+ shift
+ ;;
+
+ -h|--help)
+ echo "usage: ${FUNCNAME[0]} [-h|--help] [-z|-0]"
+ return 0
+ ;;
+
+ *)
+ echo "${FUNCNAME[0]}: unrecognized parameter: $1" >&2
+ return 1
+ ;;
+ esac
+ done
+
+ eval "${cmd[@]+"${cmd[@]}"}"
+)
+
+list_repo_dirs() (
+ set -o errexit -o nounset -o pipefail
+
+ local -a cmd=(git ls-tree -d -r)
+
+ while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -z|-0)
+ cmd+=(-z)
+ shift
+ ;;
+
+ -h|--help)
+ echo "usage: ${FUNCNAME[0]} [-h|--help] [-z|-0]"
+ return 0
+ ;;
+
+ *)
+ echo "${FUNCNAME[0]}: unrecognized parameter: $1" >&2
+ return 1
+ ;;
+ esac
+ done
+
+ cmd+=(--name-only HEAD)
+
+ eval "${cmd[@]+"${cmd[@]}"}"
+)
+
+tighten_repo_security() (
+ set -o errexit -o nounset -o pipefail
+
+ list_repo_files -z | xargs -0 chmod 0600
+ list_repo_dirs -z | xargs -0 chmod 0700
+ chmod 0700 .git
+)
+
+backup_repo() (
+ set -o errexit -o nounset -o pipefail
+
+ local repo_dir
+ repo_dir="$( realpath . )"
+ local repo_name
+ repo_name="$( basename "$repo_dir" )"
+ local backup_dir="$repo_dir"
+
+ if [ $# -eq 1 ]; then
+ backup_dir="$1"
+ elif [ $# -gt 1 ]; then
+ echo "usage: ${FUNCNAME[0]} [BACKUP_DIR]" >&2
+ exit 1
+ fi
+
+ local zip_name
+ zip_name="${repo_name}_$( date -u +'%Y%m%dT%H%M%S' ).zip"
+
+ git archive \
+ --format=zip -9 \
+ --output="$backup_dir/$zip_name" \
+ --remote="$repo_dir" \
+ HEAD
+)
+
+backup_repo_dropbox() (
+ set -o errexit -o nounset -o pipefail
+
+ backup_repo "$USERPROFILE/Dropbox/backups"
+)
diff --git a/%HOME%/.bash_utils/text.sh b/%HOME%/.bash_utils/text.sh
new file mode 100644
index 0000000..ad3f203
--- /dev/null
+++ b/%HOME%/.bash_utils/text.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2016 Egor Tensin <Egor.Tensin@gmail.com>
+# This file is part of the "Cygwin configuration files" project.
+# For details, see https://github.com/egor-tensin/cygwin-home.
+# Distributed under the MIT License.
+
+alias dos2eol='sed --binary --in-place '"'"'s/\(\r\?\)$//'"'"
+alias eol2dos='sed --binary --in-place '"'"'s/\r\?$/\r/'"'"
+
+alias trim='sed --binary --in-place '"'"'s/[[:blank:]]*\(\r\?\)$/\1/'"'"
+
+alias trimeol='sed --binary --in-place -e :a -e '"'"'/^\n*$/{$d;N;ba}'"'"
+alias trimdoseol='sed --binary --in-place -e :a -e '"'"'/^\(\r\n\)*\r$/{$d;N;ba}'"'"
+
+alias eol='sed --binary --in-place '"'"'$a\'"'"
+alias doseol='sed --binary --in-place '"'"'$s/\r\?$/\r/;a\'"'"
+
+alias trimbom='sed --binary --in-place '"'"'1 s/^\xef\xbb\xbf//'"'"
+
+lint() {
+ trim "$@" && trimeol "$@" && eol "$@"
+}
+
+doslint() {
+ trim "$@" && trimdoseol "$@" && doseol "$@"
+}
+
+replace_word() (
+ set -o errexit -o nounset -o pipefail
+
+ if [ "$#" -lt 3 ]; then
+ echo "usage: ${FUNCNAME[0]} OLD NEW PATH..." >&2
+ return 1
+ fi
+
+ local old="$1"
+ shift
+ local new="$2"
+ shift
+
+ sed --binary --in-place "s/\\b$old\\b/$new/g" "$@"
+)
diff --git a/%HOME%/.bashrc b/%HOME%/.bashrc
new file mode 100644
index 0000000..f92324a
--- /dev/null
+++ b/%HOME%/.bashrc
@@ -0,0 +1,226 @@
+# To the extent possible under law, the author(s) have dedicated all
+# copyright and related and neighboring rights to this software to the
+# public domain worldwide. This software is distributed without any warranty.
+# You should have received a copy of the CC0 Public Domain Dedication along
+# with this software.
+# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+# base-files version 4.2-4
+
+# ~/.bashrc: executed by bash(1) for interactive shells.
+
+# The latest version as installed by the Cygwin Setup program can
+# always be found at /etc/defaults/etc/skel/.bashrc
+
+# Modifying /etc/skel/.bashrc directly will prevent
+# setup from updating it.
+
+# The copy in your home directory (~/.bashrc) is yours, please
+# feel free to customise it to create a shell
+# environment to your liking. If you feel a change
+# would be benifitial to all, please feel free to send
+# a patch to the cygwin mailing list.
+
+# User dependent .bashrc file
+
+# If not running interactively, don't do anything
+[[ "$-" != *i* ]] && return
+
+# Shell Options
+#
+# See man bash for more options...
+#
+# Don't wait for job termination notification
+# set -o notify
+#
+# Don't use ^D to exit
+# set -o ignoreeof
+#
+# Use case-insensitive filename globbing
+# shopt -s nocaseglob
+#
+# Make bash append rather than overwrite the history on disk
+# shopt -s histappend
+#
+# When changing directory small typos can be ignored by bash
+# for example, cd /vr/lgo/apaache would find /var/log/apache
+# shopt -s cdspell
+
+# Completion options
+#
+# These completion tuning parameters change the default behavior of bash_completion:
+#
+# Define to access remotely checked-out files over passwordless ssh for CVS
+# COMP_CVS_REMOTE=1
+#
+# Define to avoid stripping description in --option=description of './configure --help'
+# COMP_CONFIGURE_HINTS=1
+#
+# Define to avoid flattening internal contents of tar files
+# COMP_TAR_INTERNAL_PATHS=1
+#
+# Uncomment to turn on programmable completion enhancements.
+# Any completions you add in ~/.bash_completion are sourced last.
+# [[ -f /etc/bash_completion ]] && . /etc/bash_completion
+
+# History Options
+#
+# Don't put duplicate lines in the history.
+# export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
+#
+# Ignore some controlling instructions
+# HISTIGNORE is a colon-delimited list of patterns which should be excluded.
+# The '&' is a special pattern which suppresses duplicate entries.
+# export HISTIGNORE=$'[ \t]*:&:[fb]g:exit'
+# export HISTIGNORE=$'[ \t]*:&:[fb]g:exit:ls' # Ignore the ls command as well
+#
+# Whenever displaying the prompt, write the previous line to disk
+# export PROMPT_COMMAND="history -a"
+
+# Aliases
+#
+# Some people use a different file for aliases
+# if [ -f "${HOME}/.bash_aliases" ]; then
+# source "${HOME}/.bash_aliases"
+# fi
+#
+# Some example alias instructions
+# If these are enabled they will be used instead of any instructions
+# they may mask. For example, alias rm='rm -i' will mask the rm
+# application. To override the alias instruction use a \ before, ie
+# \rm will call the real rm not the alias.
+#
+# Interactive operation...
+# alias rm='rm -i'
+# alias cp='cp -i'
+# alias mv='mv -i'
+#
+# Default to human readable figures
+# alias df='df -h'
+# alias du='du -h'
+#
+# Misc :)
+# alias less='less -r' # raw control characters
+# alias whence='type -a' # where, of a sort
+# alias grep='grep --color' # show differences in colour
+# alias egrep='egrep --color=auto' # show differences in colour
+# alias fgrep='fgrep --color=auto' # show differences in colour
+#
+# Some shortcuts for different directory listings
+# alias ls='ls -hF --color=tty' # classify files in colour
+# alias dir='ls --color=auto --format=vertical'
+# alias vdir='ls --color=auto --format=long'
+# alias ll='ls -l' # long list
+# alias la='ls -A' # all but . and ..
+# alias l='ls -CF' #
+
+# Umask
+#
+# /etc/profile sets 022, removing write perms to group + others.
+# Set a more restrictive umask: i.e. no exec perms for others:
+# umask 027
+# Paranoid: neither group nor others have any perms:
+# umask 077
+
+# Functions
+#
+# Some people use a different file for functions
+# if [ -f "${HOME}/.bash_functions" ]; then
+# source "${HOME}/.bash_functions"
+# fi
+#
+# Some example functions:
+#
+# a) function settitle
+# settitle ()
+# {
+# echo -ne "\e]2;$@\a\e]1;$@\a";
+# }
+#
+# b) function cd_func
+# This function defines a 'cd' replacement function capable of keeping,
+# displaying and accessing history of visited directories, up to 10 entries.
+# To use it, uncomment it, source this file and try 'cd --'.
+# acd_func 1.0.5, 10-nov-2004
+# Petar Marinov, http:/geocities.com/h2428, this is public domain
+# cd_func ()
+# {
+# local x2 the_new_dir adir index
+# local -i cnt
+#
+# if [[ $1 == "--" ]]; then
+# dirs -v
+# return 0
+# fi
+#
+# the_new_dir=$1
+# [[ -z $1 ]] && the_new_dir=$HOME
+#
+# if [[ ${the_new_dir:0:1} == '-' ]]; then
+# #
+# # Extract dir N from dirs
+# index=${the_new_dir:1}
+# [[ -z $index ]] && index=1
+# adir=$(dirs +$index)
+# [[ -z $adir ]] && return 1
+# the_new_dir=$adir
+# fi
+#
+# #
+# # '~' has to be substituted by ${HOME}
+# [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}"
+#
+# #
+# # Now change to the new dir and add to the top of the stack
+# pushd "${the_new_dir}" > /dev/null
+# [[ $? -ne 0 ]] && return 1
+# the_new_dir=$(pwd)
+#
+# #
+# # Trim down everything beyond 11th entry
+# popd -n +11 2>/dev/null 1>/dev/null
+#
+# #
+# # Remove any other occurence of this dir, skipping the top of the stack
+# for ((cnt=1; cnt <= 10; cnt++)); do
+# x2=$(dirs +${cnt} 2>/dev/null)
+# [[ $? -ne 0 ]] && return 0
+# [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}"
+# if [[ "${x2}" == "${the_new_dir}" ]]; then
+# popd -n +$cnt 2>/dev/null 1>/dev/null
+# cnt=cnt-1
+# fi
+# done
+#
+# return 0
+# }
+#
+# alias cd=cd_func
+
+PS1='\[\e[33m\]\W\[\e[0m\]: '
+
+set -o nounset
+set -o pipefail
+
+shopt -s dotglob
+shopt -s nullglob
+shopt -s nocaseglob
+
+export PYTHONSTARTUP="$HOME/.pythonrc"
+
+alias df='df --human-readable'
+alias du='du --human-readable'
+alias egrep='egrep --color=auto'
+alias fgrep='fgrep --color=auto'
+alias grep='grep --color=auto'
+alias less='less --RAW-CONTROL-CHARS'
+alias ls='ls --almost-all -l --human-readable --color=auto'
+alias tree='tree -a'
+
+alias cygwin_packages='cygcheck -cd'
+
+[ -f '.bash_utils/cxx.sh' ] && source .bash_utils/cxx.sh
+[ -f '.bash_utils/distr.sh' ] && source .bash_utils/distr.sh
+[ -f '.bash_utils/file.sh' ] && source .bash_utils/file.sh
+[ -f '.bash_utils/git.sh' ] && source .bash_utils/git.sh
+[ -f '.bash_utils/text.sh' ] && source .bash_utils/text.sh
diff --git a/%HOME%/.fonts.conf b/%HOME%/.fonts.conf
new file mode 100644
index 0000000..1141094
--- /dev/null
+++ b/%HOME%/.fonts.conf
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+
+<fontconfig>
+ <match target="font">
+ <edit mode="assign" name="rgba"><const>rgb</const></edit>
+ <edit mode="assign" name="antialias"><bool>true</bool></edit>
+ <edit mode="assign" name="hinting"><bool>true</bool></edit>
+ <edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
+ </match>
+ <alias>
+ <family>serif</family>
+ <prefer><family>Liberation Serif</family></prefer>
+ </alias>
+ <alias>
+ <family>sans-serif</family>
+ <prefer><family>Liberation Sans</family></prefer>
+ </alias>
+ <alias>
+ <family>monospace</family>
+ <prefer><family>Liberation Mono</family></prefer>
+ </alias>
+ <match target="font">
+ <test name="family"><string>Liberation Mono</string></test>
+ <edit mode="assign" name="pixelsize"><double>14</double></edit>
+ </match>
+</fontconfig>
diff --git a/%HOME%/.gitconfig b/%HOME%/.gitconfig
new file mode 100644
index 0000000..9da4196
--- /dev/null
+++ b/%HOME%/.gitconfig
@@ -0,0 +1,30 @@
+[user]
+ name = Egor Tensin
+ email = Egor.Tensin@gmail.com
+[core]
+ editor = vim
+ ignorecase = false
+ autocrlf = true
+[push]
+ default = current
+[merge]
+ tool = kdiff3
+[mergetool "kdiff3"]
+ trustExitCode = false
+[mergetool]
+ keepBackup = false
+[diff]
+ tool = kdiff3
+[difftool]
+ keepBackup = false
+[difftool "kdiff3"]
+ trustExitCode = false
+[pull]
+ ff = only
+[alias]
+ clean-all = clean -fdx
+ clean-ignored = clean -fdX
+ clean-unknown = clean -fd
+ l = log --oneline
+[fetch]
+ prune = true
diff --git a/%HOME%/.gnupg/gpg.conf b/%HOME%/.gnupg/gpg.conf
new file mode 100644
index 0000000..018cc7e
--- /dev/null
+++ b/%HOME%/.gnupg/gpg.conf
@@ -0,0 +1,242 @@
+# Options for GnuPG
+# Copyright 1998, 1999, 2000, 2001, 2002, 2003,
+# 2010 Free Software Foundation, Inc.
+#
+# This file is free software; as a special exception the author gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+#
+# This file is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Unless you specify which option file to use (with the command line
+# option "--options filename"), GnuPG uses the file ~/.gnupg/gpg.conf
+# by default.
+#
+# An options file can contain any long options which are available in
+# GnuPG. If the first non white space character of a line is a '#',
+# this line is ignored. Empty lines are also ignored.
+#
+# See the man page for a list of options.
+
+# Uncomment the following option to get rid of the copyright notice
+
+#no-greeting
+
+# If you have more than 1 secret key in your keyring, you may want to
+# uncomment the following option and set your preferred keyid.
+
+#default-key 621CC013
+
+# If you do not pass a recipient to gpg, it will ask for one. Using
+# this option you can encrypt to a default key. Key validation will
+# not be done in this case. The second form uses the default key as
+# default recipient.
+
+#default-recipient some-user-id
+#default-recipient-self
+
+# Use --encrypt-to to add the specified key as a recipient to all
+# messages. This is useful, for example, when sending mail through a
+# mail client that does not automatically encrypt mail to your key.
+# In the example, this option allows you to read your local copy of
+# encrypted mail that you've sent to others.
+
+#encrypt-to some-key-id
+
+# By default GnuPG creates version 4 signatures for data files as
+# specified by OpenPGP. Some earlier (PGP 6, PGP 7) versions of PGP
+# require the older version 3 signatures. Setting this option forces
+# GnuPG to create version 3 signatures.
+
+#force-v3-sigs
+
+# Because some mailers change lines starting with "From " to ">From "
+# it is good to handle such lines in a special way when creating
+# cleartext signatures; all other PGP versions do it this way too.
+
+#no-escape-from-lines
+
+# If you do not use the Latin-1 (ISO-8859-1) charset, you should tell
+# GnuPG which is the native character set. Please check the man page
+# for supported character sets. This character set is only used for
+# metadata and not for the actual message which does not undergo any
+# translation. Note that future version of GnuPG will change to UTF-8
+# as default character set. In most cases this option is not required
+# as GnuPG is able to figure out the correct charset at runtime.
+
+#charset utf-8
+
+# Group names may be defined like this:
+# group mynames = paige 0x12345678 joe patti
+#
+# Any time "mynames" is a recipient (-r or --recipient), it will be
+# expanded to the names "paige", "joe", and "patti", and the key ID
+# "0x12345678". Note there is only one level of expansion - you
+# cannot make an group that points to another group. Note also that
+# if there are spaces in the recipient name, this will appear as two
+# recipients. In these cases it is better to use the key ID.
+
+#group mynames = paige 0x12345678 joe patti
+
+# Lock the file only once for the lifetime of a process. If you do
+# not define this, the lock will be obtained and released every time
+# it is needed, which is usually preferable.
+
+#lock-once
+
+# GnuPG can send and receive keys to and from a keyserver. These
+# servers can be HKP, email, or LDAP (if GnuPG is built with LDAP
+# support).
+#
+# Example HKP keyserver:
+# hkp://keys.gnupg.net
+# hkp://subkeys.pgp.net
+#
+# Example email keyserver:
+# mailto:pgp-public-keys@keys.pgp.net
+#
+# Example LDAP keyservers:
+# ldap://keyserver.pgp.com
+#
+# Regular URL syntax applies, and you can set an alternate port
+# through the usual method:
+# hkp://keyserver.example.net:22742
+#
+# Most users just set the name and type of their preferred keyserver.
+# Note that most servers (with the notable exception of
+# ldap://keyserver.pgp.com) synchronize changes with each other. Note
+# also that a single server name may actually point to multiple
+# servers via DNS round-robin. hkp://keys.gnupg.net is an example of
+# such a "server", which spreads the load over a number of physical
+# servers. To see the IP address of the server actually used, you may use
+# the "--keyserver-options debug".
+
+keyserver hkp://keys.gnupg.net
+#keyserver mailto:pgp-public-keys@keys.nl.pgp.net
+#keyserver ldap://keyserver.pgp.com
+
+# Common options for keyserver functions:
+#
+# include-disabled : when searching, include keys marked as "disabled"
+# on the keyserver (not all keyservers support this).
+#
+# no-include-revoked : when searching, do not include keys marked as
+# "revoked" on the keyserver.
+#
+# verbose : show more information as the keys are fetched.
+# Can be used more than once to increase the amount
+# of information shown.
+#
+# use-temp-files : use temporary files instead of a pipe to talk to the
+# keyserver. Some platforms (Win32 for one) always
+# have this on.
+#
+# keep-temp-files : do not delete temporary files after using them
+# (really only useful for debugging)
+#
+# http-proxy="proxy" : set the proxy to use for HTTP and HKP keyservers.
+# This overrides the "http_proxy" environment variable,
+# if any.
+#
+# auto-key-retrieve : automatically fetch keys as needed from the keyserver
+# when verifying signatures or when importing keys that
+# have been revoked by a revocation key that is not
+# present on the keyring.
+#
+# no-include-attributes : do not include attribute IDs (aka "photo IDs")
+# when sending keys to the keyserver.
+
+#keyserver-options auto-key-retrieve
+
+# Display photo user IDs in key listings
+
+# list-options show-photos
+
+# Display photo user IDs when a signature from a key with a photo is
+# verified
+
+# verify-options show-photos
+
+# Use this program to display photo user IDs
+#
+# %i is expanded to a temporary file that contains the photo.
+# %I is the same as %i, but the file isn't deleted afterwards by GnuPG.
+# %k is expanded to the key ID of the key.
+# %K is expanded to the long OpenPGP key ID of the key.
+# %t is expanded to the extension of the image (e.g. "jpg").
+# %T is expanded to the MIME type of the image (e.g. "image/jpeg").
+# %f is expanded to the fingerprint of the key.
+# %% is %, of course.
+#
+# If %i or %I are not present, then the photo is supplied to the
+# viewer on standard input. If your platform supports it, standard
+# input is the best way to do this as it avoids the time and effort in
+# generating and then cleaning up a secure temp file.
+#
+# If no photo-viewer is provided, GnuPG will look for xloadimage, eog,
+# or display (ImageMagick). On Mac OS X and Windows, the default is
+# to use your regular JPEG image viewer.
+#
+# Some other viewers:
+# photo-viewer "qiv %i"
+# photo-viewer "ee %i"
+#
+# This one saves a copy of the photo ID in your home directory:
+# photo-viewer "cat > ~/photoid-for-key-%k.%t"
+#
+# Use your MIME handler to view photos:
+# photo-viewer "metamail -q -d -b -c %T -s 'KeyID 0x%k' -f GnuPG"
+
+# Passphrase agent
+#
+# We support the old experimental passphrase agent protocol as well as
+# the new Assuan based one (currently available in the "newpg" package
+# at ftp.gnupg.org/gcrypt/alpha/aegypten/). To make use of the agent,
+# you have to run an agent as daemon and use the option
+#
+# use-agent
+#
+# which tries to use the agent but will fallback to the regular mode
+# if there is a problem connecting to the agent. The normal way to
+# locate the agent is by looking at the environment variable
+# GPG_AGENT_INFO which should have been set during gpg-agent startup.
+# In certain situations the use of this variable is not possible, thus
+# the option
+#
+# --gpg-agent-info=<path>:<pid>:1
+#
+# may be used to override it.
+
+# Automatic key location
+#
+# GnuPG can automatically locate and retrieve keys as needed using the
+# auto-key-locate option. This happens when encrypting to an email
+# address (in the "user@example.com" form), and there are no
+# user@example.com keys on the local keyring. This option takes the
+# following arguments, in the order they are to be tried:
+#
+# cert = locate a key using DNS CERT, as specified in RFC-4398.
+# GnuPG can handle both the PGP (key) and IPGP (URL + fingerprint)
+# CERT methods.
+#
+# pka = locate a key using DNS PKA.
+#
+# ldap = locate a key using the PGP Universal method of checking
+# "ldap://keys.(thedomain)". For example, encrypting to
+# user@example.com will check ldap://keys.example.com.
+#
+# keyserver = locate a key using whatever keyserver is defined using
+# the keyserver option.
+#
+# You may also list arbitrary keyservers here by URL.
+#
+# Try CERT, then PKA, then LDAP, then hkp://subkeys.net:
+#auto-key-locate cert pka ldap hkp://subkeys.pgp.net
+
+personal-cipher-preferences AES256 AES192 AES CAST5
+personal-digest-preferences SHA512 SHA384 SHA256 SHA224
+cert-digest-algo SHA512
+personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
+default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
diff --git a/%HOME%/.inputrc b/%HOME%/.inputrc
new file mode 100644
index 0000000..cd471e8
--- /dev/null
+++ b/%HOME%/.inputrc
@@ -0,0 +1,76 @@
+# To the extent possible under law, the author(s) have dedicated all
+# copyright and related and neighboring rights to this software to the
+# public domain worldwide. This software is distributed without any warranty.
+# You should have received a copy of the CC0 Public Domain Dedication along
+# with this software.
+# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+# base-files version 4.2-4
+
+# ~/.inputrc: readline initialization file.
+
+# The latest version as installed by the Cygwin Setup program can
+# always be found at /etc/defaults/etc/skel/.inputrc
+
+# Modifying /etc/skel/.inputrc directly will prevent
+# setup from updating it.
+
+# The copy in your home directory (~/.inputrc) is yours, please
+# feel free to customise it to create a shell
+# environment to your liking. If you feel a change
+# would be benifitial to all, please feel free to send
+# a patch to the cygwin mailing list.
+
+# the following line is actually
+# equivalent to "\C-?": delete-char
+"\e[3~": delete-char
+
+# VT
+"\e[1~": beginning-of-line
+"\e[4~": end-of-line
+
+# kvt
+"\e[H": beginning-of-line
+"\e[F": end-of-line
+
+# rxvt and konsole (i.e. the KDE-app...)
+"\e[7~": beginning-of-line
+"\e[8~": end-of-line
+
+# VT220
+"\eOH": beginning-of-line
+"\eOF": end-of-line
+
+# Allow 8-bit input/output
+#set meta-flag on
+#set convert-meta off
+#set input-meta on
+#set output-meta on
+$if Bash
+ # Don't ring bell on completion
+ set bell-style none
+
+ # or, don't beep at me - show me
+ set bell-style visible
+
+ # Filename completion/expansion
+ set completion-ignore-case on
+ set show-all-if-ambiguous on
+
+ # Expand homedir name
+ set expand-tilde on
+
+ # Append "/" to all dirnames
+ set mark-directories on
+ set mark-symlinked-directories on
+
+ # Match all files
+ set match-hidden-files on
+
+ # 'Magic Space'
+ # Insert a space character then performs
+ # a history expansion in the line
+ #Space: magic-space
+
+ TAB: menu-complete
+$endif
diff --git a/%HOME%/.minttyrc b/%HOME%/.minttyrc
new file mode 100644
index 0000000..43fd612
--- /dev/null
+++ b/%HOME%/.minttyrc
@@ -0,0 +1,23 @@
+BoldAsFont=no
+Font=Consolas
+FontHeight=11
+Rows=25
+ScrollbackLines=9000
+BackgroundColour=30,30,30
+CursorColour=210,210,210
+Black=30,30,30
+BoldBlack=30,30,30
+Red=210,120,120
+BoldRed=210,120,120
+Green=120,210,120
+BoldGreen=120,210,120
+Yellow=210,210,120
+BoldYellow=210,210,120
+Blue=120,165,210
+BoldBlue=120,165,210
+Magenta=240,90,165
+BoldMagenta=240,90,165
+Cyan=90,210,210
+BoldCyan=90,210,210
+White=210,210,210
+BoldWhite=210,210,210
diff --git a/%HOME%/.nanorc b/%HOME%/.nanorc
new file mode 100644
index 0000000..57c2c06
--- /dev/null
+++ b/%HOME%/.nanorc
@@ -0,0 +1,8 @@
+set autoindent
+#set const
+set morespace
+#set nohelp
+set nowrap
+set tabsize 4
+set tabstospaces
+set smooth
diff --git a/%HOME%/.profile b/%HOME%/.profile
new file mode 100644
index 0000000..6b44625
--- /dev/null
+++ b/%HOME%/.profile
@@ -0,0 +1,37 @@
+# To the extent possible under law, the author(s) have dedicated all
+# copyright and related and neighboring rights to this software to the
+# public domain worldwide. This software is distributed without any warranty.
+# You should have received a copy of the CC0 Public Domain Dedication along
+# with this software.
+# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+# base-files version 4.2-4
+
+# ~/.profile: executed by the command interpreter for login shells.
+
+# The latest version as installed by the Cygwin Setup program can
+# always be found at /etc/defaults/etc/skel/.profile
+
+# Modifying /etc/skel/.profile directly will prevent
+# setup from updating it.
+
+# The copy in your home directory (~/.profile) is yours, please
+# feel free to customise it to create a shell
+# environment to your liking. If you feel a change
+# would be benificial to all, please feel free to send
+# a patch to the cygwin mailing list.
+
+# User dependent .profile file
+
+# Set user-defined locale
+export LANG=$(locale -uU)
+
+# This file is not read by bash(1) if ~/.bash_profile or ~/.bash_login
+# exists.
+#
+# if running bash
+if [ -n "${BASH_VERSION}" ]; then
+ if [ -f "${HOME}/.bashrc" ]; then
+ source "${HOME}/.bashrc"
+ fi
+fi
diff --git a/%HOME%/.pythonrc b/%HOME%/.pythonrc
new file mode 100644
index 0000000..23b7e11
--- /dev/null
+++ b/%HOME%/.pythonrc
@@ -0,0 +1,2 @@
+import readline, rlcompleter
+readline.parse_and_bind("tab:complete")
diff --git a/%HOME%/.ssh/config b/%HOME%/.ssh/config
new file mode 100644
index 0000000..07ff3a5
--- /dev/null
+++ b/%HOME%/.ssh/config
@@ -0,0 +1 @@
+AddKeysToAgent yes
diff --git a/%HOME%/.vimrc b/%HOME%/.vimrc
new file mode 100644
index 0000000..58ca33c
--- /dev/null
+++ b/%HOME%/.vimrc
@@ -0,0 +1,53 @@
+source $VIMRUNTIME/vimrc_example.vim
+
+" Color scheme.
+color desert
+
+" 4 spaces per indentation level, no tabs.
+set softtabstop=4
+set shiftwidth=4
+set expandtab
+
+highlight ColorColumn ctermbg=darkgrey
+
+" In insert mode, press F2 to enter 'paste mode'.
+" Now you can paste text from elsewhere and _not_ mess up indentation.
+" Nice and easy, right?
+" Press F2 again to exit 'paste mode'.
+nnoremap <F2> :set invpaste paste?<CR>
+set pastetoggle=<F2>
+set showmode
+
+" Backup files are written to ~/.vimtmp/backup/.
+" I'm not sure how the whole thing's gonna work out in case of concurrent
+" writes to multiple files with the same name, since backup file names will
+" collide due to a long-standing Vim issue.
+" Vim treats `backupdir` option inconsistently: if its value ends with two
+" slashes, Vim doesn't convert the absolute path of the file being backed up
+" to its backup file name (replacing directory separators with % signs) as it
+" does with swap and 'persisent undo' files, but rather simply appends ~ to
+" the end of file's name.
+" For some reason it still works this way when there're two slashes at the
+" end, so I'm gonna stick with this, hoping that this problem gets fixed in
+" the future.
+set backupdir=~/.vimtmp/backup//
+set nobackup
+set writebackup
+
+" Swap files are written to ~/.vimrc/swap/.
+set directory=~/.vimtmp/swap//
+set swapfile
+
+" 'Persistent undo' files are written to ~/.vimrc/undo/.
+if has('persistent_undo')
+ set undodir=~/.vimtmp/undo//
+ set undofile
+endif
+
+" Enable current-directory .vimrc files.
+set exrc
+set secure
+
+" Case-insensitive (more precisely, so-called smart) search.
+set ignorecase
+set smartcase
diff --git a/%HOME%/.vimtmp/backup/.gitkeep b/%HOME%/.vimtmp/backup/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/%HOME%/.vimtmp/backup/.gitkeep
diff --git a/%HOME%/.vimtmp/swap/.gitkeep b/%HOME%/.vimtmp/swap/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/%HOME%/.vimtmp/swap/.gitkeep
diff --git a/%HOME%/.vimtmp/undo/.gitkeep b/%HOME%/.vimtmp/undo/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/%HOME%/.vimtmp/undo/.gitkeep