From f05d745f30dea9810c42b75c5f191e57a68fa74a Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Thu, 6 Oct 2016 20:45:23 +0300 Subject: mustn't be a repository anymore --- %HOME%/.bash_profile | 56 ++++++++++ %HOME%/.bash_utils/cxx.sh | 118 ++++++++++++++++++++ %HOME%/.bash_utils/distr.sh | 29 +++++ %HOME%/.bash_utils/file.sh | 35 ++++++ %HOME%/.bash_utils/git.sh | 102 +++++++++++++++++ %HOME%/.bash_utils/text.sh | 43 ++++++++ %HOME%/.bashrc | 226 ++++++++++++++++++++++++++++++++++++++ %HOME%/.fonts.conf | 28 +++++ %HOME%/.gitconfig | 30 +++++ %HOME%/.gnupg/gpg.conf | 242 +++++++++++++++++++++++++++++++++++++++++ %HOME%/.inputrc | 76 +++++++++++++ %HOME%/.minttyrc | 23 ++++ %HOME%/.nanorc | 8 ++ %HOME%/.profile | 37 +++++++ %HOME%/.pythonrc | 2 + %HOME%/.ssh/config | 1 + %HOME%/.vimrc | 53 +++++++++ %HOME%/.vimtmp/backup/.gitkeep | 0 %HOME%/.vimtmp/swap/.gitkeep | 0 %HOME%/.vimtmp/undo/.gitkeep | 0 .LICENSE.txt | 21 ---- .README.md | 50 --------- .bash_profile | 56 ---------- .bash_utils/cxx.sh | 118 -------------------- .bash_utils/distr.sh | 29 ----- .bash_utils/file.sh | 35 ------ .bash_utils/git.sh | 102 ----------------- .bash_utils/text.sh | 43 -------- .bashrc | 226 -------------------------------------- .fonts.conf | 28 ----- .gitconfig | 30 ----- .gitignore | 7 +- .gnupg/.gitignore | 4 - .gnupg/gpg.conf | 242 ----------------------------------------- .inputrc | 76 ------------- .minttyrc | 23 ---- .nanorc | 8 -- .profile | 37 ------- .pythonrc | 2 - .ssh/.gitignore | 4 - .ssh/config | 1 - .vimrc | 53 --------- .vimtmp/backup/.gitignore | 3 - .vimtmp/swap/.gitignore | 3 - .vimtmp/undo/.gitignore | 3 - LICENSE.txt | 21 ++++ README.md | 50 +++++++++ 47 files changed, 1181 insertions(+), 1203 deletions(-) create mode 100644 %HOME%/.bash_profile create mode 100644 %HOME%/.bash_utils/cxx.sh create mode 100644 %HOME%/.bash_utils/distr.sh create mode 100644 %HOME%/.bash_utils/file.sh create mode 100644 %HOME%/.bash_utils/git.sh create mode 100644 %HOME%/.bash_utils/text.sh create mode 100644 %HOME%/.bashrc create mode 100644 %HOME%/.fonts.conf create mode 100644 %HOME%/.gitconfig create mode 100644 %HOME%/.gnupg/gpg.conf create mode 100644 %HOME%/.inputrc create mode 100644 %HOME%/.minttyrc create mode 100644 %HOME%/.nanorc create mode 100644 %HOME%/.profile create mode 100644 %HOME%/.pythonrc create mode 100644 %HOME%/.ssh/config create mode 100644 %HOME%/.vimrc create mode 100644 %HOME%/.vimtmp/backup/.gitkeep create mode 100644 %HOME%/.vimtmp/swap/.gitkeep create mode 100644 %HOME%/.vimtmp/undo/.gitkeep delete mode 100644 .LICENSE.txt delete mode 100644 .README.md delete mode 100644 .bash_profile delete mode 100644 .bash_utils/cxx.sh delete mode 100644 .bash_utils/distr.sh delete mode 100644 .bash_utils/file.sh delete mode 100644 .bash_utils/git.sh delete mode 100644 .bash_utils/text.sh delete mode 100644 .bashrc delete mode 100644 .fonts.conf delete mode 100644 .gitconfig delete mode 100644 .gnupg/.gitignore delete mode 100644 .gnupg/gpg.conf delete mode 100644 .inputrc delete mode 100644 .minttyrc delete mode 100644 .nanorc delete mode 100644 .profile delete mode 100644 .pythonrc delete mode 100644 .ssh/.gitignore delete mode 100644 .ssh/config delete mode 100644 .vimrc delete mode 100644 .vimtmp/backup/.gitignore delete mode 100644 .vimtmp/swap/.gitignore delete mode 100644 .vimtmp/undo/.gitignore create mode 100644 LICENSE.txt create mode 100644 README.md 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 . + +# 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 +# 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 +# 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 +# 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 +# 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 +# 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 . + +# 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 @@ + + + + + + + rgb + true + true + hintfull + + + serif + Liberation Serif + + + sans-serif + Liberation Sans + + + monospace + Liberation Mono + + + Liberation Mono + 14 + + 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=::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 . + +# 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 . + +# 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 :set invpaste paste? +set pastetoggle= +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 diff --git a/%HOME%/.vimtmp/swap/.gitkeep b/%HOME%/.vimtmp/swap/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/%HOME%/.vimtmp/undo/.gitkeep b/%HOME%/.vimtmp/undo/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/.LICENSE.txt b/.LICENSE.txt deleted file mode 100644 index 80c5e0a..0000000 --- a/.LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Egor Tensin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.README.md b/.README.md deleted file mode 100644 index 7846367..0000000 --- a/.README.md +++ /dev/null @@ -1,50 +0,0 @@ -Cygwin configuration files -========================== - -My Cygwin home (`~`) configuration files. - -Deployment ----------- - -To deploy on a fresh Cygwin installation, execute the lines below. -**Be careful** though, some of your files will be **deleted**. -Basically, every file/directory **not** listed in ".gitignore" will be deleted. -Execute the lines below one-by-one and, **most importantly**, review the list -of files `git clean` will delete by adding the `--dry-run` parameter. - - git init - curl --silent --show-error --location https://github.com/egor-tensin/cygwin-home/raw/master/.gitignore -o .gitignore - git clean -d --force - - git remote add origin https://github.com/egor-tensin/cygwin-home.git - git pull origin master - git branch --set-upstream-to=origin/master master - -The deployment should preferably take place right after you install Cygwin. - -File permissions ----------------- - -`git` doesn't preserve file permissions. -After the deployment, anyone will be able to read any of the files in the -repository. -To adjust the permissions so that only you can read the files, `source` -".bashrc" (`bash` does this automatically) and execute: - - ( cd && tighten_repo_security ) - -This also makes sure the directories in the repository are accessible only by -yourself (including the ".git" directory). - -The important thing to note is that the permissions are reset each time `git` -writes to a file. -It is thus necessary to execute the line above after each invokation of `git -pull`, `git checkout`, etc. - -License -------- - -Distributed under the MIT License. -See [.LICENSE.txt] for details. - -[.LICENSE.txt]: .LICENSE.txt diff --git a/.bash_profile b/.bash_profile deleted file mode 100644 index 342b8a3..0000000 --- a/.bash_profile +++ /dev/null @@ -1,56 +0,0 @@ -# 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 . - -# 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/.bash_utils/cxx.sh b/.bash_utils/cxx.sh deleted file mode 100644 index 527c120..0000000 --- a/.bash_utils/cxx.sh +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2016 Egor Tensin -# 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/.bash_utils/distr.sh b/.bash_utils/distr.sh deleted file mode 100644 index 06d342a..0000000 --- a/.bash_utils/distr.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2016 Egor Tensin -# 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/.bash_utils/file.sh b/.bash_utils/file.sh deleted file mode 100644 index 0321833..0000000 --- a/.bash_utils/file.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2016 Egor Tensin -# 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/.bash_utils/git.sh b/.bash_utils/git.sh deleted file mode 100644 index 54e50f6..0000000 --- a/.bash_utils/git.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2016 Egor Tensin -# 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/.bash_utils/text.sh b/.bash_utils/text.sh deleted file mode 100644 index ad3f203..0000000 --- a/.bash_utils/text.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2016 Egor Tensin -# 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/.bashrc b/.bashrc deleted file mode 100644 index f92324a..0000000 --- a/.bashrc +++ /dev/null @@ -1,226 +0,0 @@ -# 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 . - -# 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/.fonts.conf b/.fonts.conf deleted file mode 100644 index 1141094..0000000 --- a/.fonts.conf +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - rgb - true - true - hintfull - - - serif - Liberation Serif - - - sans-serif - Liberation Sans - - - monospace - Liberation Mono - - - Liberation Mono - 14 - - diff --git a/.gitconfig b/.gitconfig deleted file mode 100644 index 9da4196..0000000 --- a/.gitconfig +++ /dev/null @@ -1,30 +0,0 @@ -[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/.gitignore b/.gitignore index c8ab7d0..b91e650 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1 @@ -.bash_history -.lesshst -.python_history -.rnd -.vim/ -.viminfo +/db.bin diff --git a/.gnupg/.gitignore b/.gnupg/.gitignore deleted file mode 100644 index 1c0a3ca..0000000 --- a/.gnupg/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -* - -!.gitignore -!gpg.conf diff --git a/.gnupg/gpg.conf b/.gnupg/gpg.conf deleted file mode 100644 index 018cc7e..0000000 --- a/.gnupg/gpg.conf +++ /dev/null @@ -1,242 +0,0 @@ -# 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=::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/.inputrc b/.inputrc deleted file mode 100644 index cd471e8..0000000 --- a/.inputrc +++ /dev/null @@ -1,76 +0,0 @@ -# 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 . - -# 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/.minttyrc b/.minttyrc deleted file mode 100644 index 43fd612..0000000 --- a/.minttyrc +++ /dev/null @@ -1,23 +0,0 @@ -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/.nanorc b/.nanorc deleted file mode 100644 index 57c2c06..0000000 --- a/.nanorc +++ /dev/null @@ -1,8 +0,0 @@ -set autoindent -#set const -set morespace -#set nohelp -set nowrap -set tabsize 4 -set tabstospaces -set smooth diff --git a/.profile b/.profile deleted file mode 100644 index 6b44625..0000000 --- a/.profile +++ /dev/null @@ -1,37 +0,0 @@ -# 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 . - -# 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/.pythonrc b/.pythonrc deleted file mode 100644 index 23b7e11..0000000 --- a/.pythonrc +++ /dev/null @@ -1,2 +0,0 @@ -import readline, rlcompleter -readline.parse_and_bind("tab:complete") diff --git a/.ssh/.gitignore b/.ssh/.gitignore deleted file mode 100644 index b569931..0000000 --- a/.ssh/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -* - -!.gitignore -!config diff --git a/.ssh/config b/.ssh/config deleted file mode 100644 index 07ff3a5..0000000 --- a/.ssh/config +++ /dev/null @@ -1 +0,0 @@ -AddKeysToAgent yes diff --git a/.vimrc b/.vimrc deleted file mode 100644 index 58ca33c..0000000 --- a/.vimrc +++ /dev/null @@ -1,53 +0,0 @@ -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 :set invpaste paste? -set pastetoggle= -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/.vimtmp/backup/.gitignore b/.vimtmp/backup/.gitignore deleted file mode 100644 index cec9082..0000000 --- a/.vimtmp/backup/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* - -!.gitignore diff --git a/.vimtmp/swap/.gitignore b/.vimtmp/swap/.gitignore deleted file mode 100644 index cec9082..0000000 --- a/.vimtmp/swap/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* - -!.gitignore diff --git a/.vimtmp/undo/.gitignore b/.vimtmp/undo/.gitignore deleted file mode 100644 index cec9082..0000000 --- a/.vimtmp/undo/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* - -!.gitignore diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..80c5e0a --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Egor Tensin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..7846367 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +Cygwin configuration files +========================== + +My Cygwin home (`~`) configuration files. + +Deployment +---------- + +To deploy on a fresh Cygwin installation, execute the lines below. +**Be careful** though, some of your files will be **deleted**. +Basically, every file/directory **not** listed in ".gitignore" will be deleted. +Execute the lines below one-by-one and, **most importantly**, review the list +of files `git clean` will delete by adding the `--dry-run` parameter. + + git init + curl --silent --show-error --location https://github.com/egor-tensin/cygwin-home/raw/master/.gitignore -o .gitignore + git clean -d --force + + git remote add origin https://github.com/egor-tensin/cygwin-home.git + git pull origin master + git branch --set-upstream-to=origin/master master + +The deployment should preferably take place right after you install Cygwin. + +File permissions +---------------- + +`git` doesn't preserve file permissions. +After the deployment, anyone will be able to read any of the files in the +repository. +To adjust the permissions so that only you can read the files, `source` +".bashrc" (`bash` does this automatically) and execute: + + ( cd && tighten_repo_security ) + +This also makes sure the directories in the repository are accessible only by +yourself (including the ".git" directory). + +The important thing to note is that the permissions are reset each time `git` +writes to a file. +It is thus necessary to execute the line above after each invokation of `git +pull`, `git checkout`, etc. + +License +------- + +Distributed under the MIT License. +See [.LICENSE.txt] for details. + +[.LICENSE.txt]: .LICENSE.txt -- cgit v1.2.3