aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-06-08 17:05:30 +0200
committerJakob Odersky <jodersky@gmail.com>2015-06-08 17:05:30 +0200
commit381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f (patch)
treeb1cf57dea578ac40c373cbdec969fce153a4d427
downloaddotfiles-381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f.tar.gz
dotfiles-381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f.tar.bz2
dotfiles-381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f.zip
initial commit
-rw-r--r--home/.bashrc113
-rw-r--r--home/.gitconfig11
-rw-r--r--home/.gnupg/gpg.conf90
-rw-r--r--home/.gnupg/sks-keyservers.netCA.pem32
-rw-r--r--home/.mutt/accounts/gmail17
-rw-r--r--home/.mutt/colors87
-rw-r--r--home/.mutt/gpg89
-rw-r--r--home/.mutt/muttrc21
-rw-r--r--home/.rsyncignore23
-rw-r--r--home/.sbt/.rsyncignore4
-rw-r--r--home/.sbt/0.13/bintray.sbt1
-rw-r--r--home/.sbt/0.13/dependency-graph.sbt1
-rw-r--r--home/.sbt/0.13/eclipse.sbt5
-rw-r--r--home/.sbt/0.13/gpg.sbt5
-rw-r--r--home/.sbt/0.13/plugins/bintray.sbt1
-rw-r--r--home/.sbt/0.13/plugins/dependency-graph.sbt1
-rw-r--r--home/.sbt/0.13/plugins/eclipse.sbt1
-rw-r--r--home/.sbt/0.13/plugins/ensime.sbt1
-rw-r--r--home/.sbt/0.13/plugins/gpg.sbt1
-rw-r--r--home/.sbt/0.13/plugins/updates.sbt1
-rwxr-xr-xhome/bin/backup58
-rwxr-xr-xhome/bin/codename4
-rwxr-xr-xhome/bin/editor2
-rwxr-xr-xhome/bin/night6
-rwxr-xr-xhome/bin/sw15
-rwxr-xr-xhome/bin/updatedots63
26 files changed, 653 insertions, 0 deletions
diff --git a/home/.bashrc b/home/.bashrc
new file mode 100644
index 0000000..0b6f13e
--- /dev/null
+++ b/home/.bashrc
@@ -0,0 +1,113 @@
+# ~/.bashrc: executed by bash(1) for non-login shells.
+# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
+# for examples
+
+# If not running interactively, don't do anything
+case $- in
+ *i*) ;;
+ *) return;;
+esac
+
+# don't put duplicate lines or lines starting with space in the history.
+# See bash(1) for more options
+HISTCONTROL=ignoreboth
+
+# append to the history file, don't overwrite it
+shopt -s histappend
+
+# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
+HISTSIZE=1000
+HISTFILESIZE=2000
+
+# check the window size after each command and, if necessary,
+# update the values of LINES and COLUMNS.
+shopt -s checkwinsize
+
+# If set, the pattern "**" used in a pathname expansion context will
+# match all files and zero or more directories and subdirectories.
+#shopt -s globstar
+
+# make less more friendly for non-text input files, see lesspipe(1)
+#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
+
+# set variable identifying the chroot you work in (used in the prompt below)
+if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
+ debian_chroot=$(cat /etc/debian_chroot)
+fi
+
+# set a fancy prompt (non-color, unless we know we "want" color)
+case "$TERM" in
+ xterm-color) color_prompt=yes;;
+esac
+
+# uncomment for a colored prompt, if the terminal has the capability; turned
+# off by default to not distract the user: the focus in a terminal window
+# should be on the output of commands, not on the prompt
+force_color_prompt=yes
+
+if [ -n "$force_color_prompt" ]; then
+ if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
+ # We have color support; assume it's compliant with Ecma-48
+ # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
+ # a case would tend to support setf rather than setaf.)
+ color_prompt=yes
+ else
+ color_prompt=
+ fi
+fi
+
+if [ "$color_prompt" = yes ]; then
+ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
+else
+ PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
+fi
+unset color_prompt force_color_prompt
+
+# If this is an xterm set the title to user@host:dir
+case "$TERM" in
+xterm*|rxvt*)
+ PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
+ ;;
+*)
+ ;;
+esac
+
+# enable color support of ls and also add handy aliases
+if [ -x /usr/bin/dircolors ]; then
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+ alias ls='ls --color=auto'
+ #alias dir='dir --color=auto'
+ #alias vdir='vdir --color=auto'
+
+ alias grep='grep --color=auto'
+ #alias fgrep='fgrep --color=auto'
+ #alias egrep='egrep --color=auto'
+fi
+
+# colored GCC warnings and errors
+export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
+
+# some more ls aliases
+alias ll='ls -l'
+alias la='ls -A'
+alias l='ls -CF'
+
+# Alias definitions.
+# You may want to put all your additions into a separate file like
+# ~/.bash_aliases, instead of adding them here directly.
+# See /usr/share/doc/bash-doc/examples in the bash-doc package.
+
+if [ -f ~/.bash_aliases ]; then
+ . ~/.bash_aliases
+fi
+
+# enable programmable completion features (you don't need to enable
+# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
+# sources /etc/bash.bashrc).
+if ! shopt -oq posix; then
+ if [ -f /usr/share/bash-completion/bash_completion ]; then
+ . /usr/share/bash-completion/bash_completion
+ elif [ -f /etc/bash_completion ]; then
+ . /etc/bash_completion
+ fi
+fi
diff --git a/home/.gitconfig b/home/.gitconfig
new file mode 100644
index 0000000..9bb38d7
--- /dev/null
+++ b/home/.gitconfig
@@ -0,0 +1,11 @@
+[user]
+ name = Jakob Odersky
+ email = jodersky@gmail.com
+[color]
+ ui = auto
+[alias]
+ s = status
+ hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
+ lg = log --oneline --decorate --all --graph
+[push]
+ default = simple
diff --git a/home/.gnupg/gpg.conf b/home/.gnupg/gpg.conf
new file mode 100644
index 0000000..c746992
--- /dev/null
+++ b/home/.gnupg/gpg.conf
@@ -0,0 +1,90 @@
+#
+# This is an implementation of the Riseup OpenPGP Best Practices
+# https://help.riseup.net/en/security/message-security/openpgp/best-practices
+#
+
+
+#-----------------------------
+# default key
+#-----------------------------
+
+# The default key to sign with. If this option is not used, the default key is
+# the first key found in the secret keyring
+
+default-key 0x4E7DA7B5A0F86992D6EB3F514601878662E33372
+
+
+#-----------------------------
+# behavior
+#-----------------------------
+
+# Disable inclusion of the version string in ASCII armored output
+no-emit-version
+
+# Disable comment string in clear text signatures and ASCII armored messages
+no-comments
+
+# Display long key IDs
+keyid-format 0xlong
+
+# List all keys (or the specified ones) along with their fingerprints
+with-fingerprint
+
+# Display the calculated validity of user IDs during key listings
+list-options show-uid-validity
+verify-options show-uid-validity
+
+# Try to use the GnuPG-Agent. With this option, GnuPG first tries to connect to
+# the agent before it asks for a passphrase.
+use-agent
+
+
+#-----------------------------
+# keyserver
+#-----------------------------
+
+# This is the server that --recv-keys, --send-keys, and --search-keys will
+# communicate with to receive keys from, send keys to, and search for keys on
+keyserver hkps://hkps.pool.sks-keyservers.net
+
+# Provide a certificate store to override the system default
+# Get this from https://sks-keyservers.net/sks-keyservers.netCA.pem
+keyserver-options ca-cert-file=/home/jodersky/.gnupg/sks-keyservers.netCA.pem
+
+# Set the proxy to use for HTTP and HKP keyservers - default to the standard
+# local Tor socks proxy
+# It is encouraged to use Tor for improved anonymity. Preferrably use either a
+# dedicated SOCKSPort for GnuPG and/or enable IsolateDestPort and
+# IsolateDestAddr
+#keyserver-options http-proxy=socks5-hostname://127.0.0.1:9050
+
+# Don't leak DNS, see https://trac.torproject.org/projects/tor/ticket/2846
+keyserver-options no-try-dns-srv
+
+# When using --refresh-keys, if the key in question has a preferred keyserver
+# URL, then disable use of that preferred keyserver to refresh the key from
+keyserver-options no-honor-keyserver-url
+
+# When searching for a key with --search-keys, include keys that are marked on
+# the keyserver as revoked
+keyserver-options include-revoked
+
+
+#-----------------------------
+# algorithm and ciphers
+#-----------------------------
+
+# list of personal digest preferences. When multiple digests are supported by
+# all recipients, choose the strongest one
+personal-cipher-preferences AES256 AES192 AES CAST5
+
+# list of personal digest preferences. When multiple ciphers are supported by
+# all recipients, choose the strongest one
+personal-digest-preferences SHA512 SHA384 SHA256 SHA224
+
+# message digest algorithm used when signing a key
+cert-digest-algo SHA512
+
+# This preference list is used for new keys and becomes the default for
+# "setpref" in the edit menu
+default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
diff --git a/home/.gnupg/sks-keyservers.netCA.pem b/home/.gnupg/sks-keyservers.netCA.pem
new file mode 100644
index 0000000..24a2ad2
--- /dev/null
+++ b/home/.gnupg/sks-keyservers.netCA.pem
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFizCCA3OgAwIBAgIJAK9zyLTPn4CPMA0GCSqGSIb3DQEBBQUAMFwxCzAJBgNV
+BAYTAk5PMQ0wCwYDVQQIDARPc2xvMR4wHAYDVQQKDBVza3Mta2V5c2VydmVycy5u
+ZXQgQ0ExHjAcBgNVBAMMFXNrcy1rZXlzZXJ2ZXJzLm5ldCBDQTAeFw0xMjEwMDkw
+MDMzMzdaFw0yMjEwMDcwMDMzMzdaMFwxCzAJBgNVBAYTAk5PMQ0wCwYDVQQIDARP
+c2xvMR4wHAYDVQQKDBVza3Mta2V5c2VydmVycy5uZXQgQ0ExHjAcBgNVBAMMFXNr
+cy1rZXlzZXJ2ZXJzLm5ldCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBANdsWy4PXWNUCkS3L//nrd0GqN3dVwoBGZ6w94Tw2jPDPifegwxQozFXkG6I
+6A4TK1CJLXPvfz0UP0aBYyPmTNadDinaB9T4jIwd4rnxl+59GiEmqkN3IfPsv5Jj
+MkKUmJnvOT0DEVlEaO1UZIwx5WpfprB3mR81/qm4XkAgmYrmgnLXd/pJDAMk7y1F
+45b5zWofiD5l677lplcIPRbFhpJ6kDTODXh/XEdtF71EAeaOdEGOvyGDmCO0GWqS
+FDkMMPTlieLA/0rgFTcz4xwUYj/cD5e0ZBuSkYsYFAU3hd1cGfBue0cPZaQH2HYx
+Qk4zXD8S3F4690fRhr+tki5gyG6JDR67aKp3BIGLqm7f45WkX1hYp+YXywmEziM4
+aSbGYhx8hoFGfq9UcfPEvp2aoc8u5sdqjDslhyUzM1v3m3ZGbhwEOnVjljY6JJLx
+MxagxnZZSAY424ZZ3t71E/Mn27dm2w+xFRuoy8JEjv1d+BT3eChM5KaNwrj0IO/y
+u8kFIgWYA1vZ/15qMT+tyJTfyrNVV/7Df7TNeWyNqjJ5rBmt0M6NpHG7CrUSkBy9
+p8JhimgjP5r0FlEkgg+lyD+V79H98gQfVgP3pbJICz0SpBQf2F/2tyS4rLm+49rP
+fcOajiXEuyhpcmzgusAj/1FjrtlynH1r9mnNaX4e+rLWzvU5AgMBAAGjUDBOMB0G
+A1UdDgQWBBTkwyoJFGfYTVISTpM8E+igjdq28zAfBgNVHSMEGDAWgBTkwyoJFGfY
+TVISTpM8E+igjdq28zAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4ICAQAR
+OXnYwu3g1ZjHyley3fZI5aLPsaE17cOImVTehC8DcIphm2HOMR/hYTTL+V0G4P+u
+gH+6xeRLKSHMHZTtSBIa6GDL03434y9CBuwGvAFCMU2GV8w92/Z7apkAhdLToZA/
+X/iWP2jeaVJhxgEcH8uPrnSlqoPBcKC9PrgUzQYfSZJkLmB+3jEa3HKruy1abJP5
+gAdQvwvcPpvYRnIzUc9fZODsVmlHVFBCl2dlu/iHh2h4GmL4Da2rRkUMlbVTdioB
+UYIvMycdOkpH5wJftzw7cpjsudGas0PARDXCFfGyKhwBRFY7Xp7lbjtU5Rz0Gc04
+lPrhDf0pFE98Aw4jJRpFeWMjpXUEaG1cq7D641RpgcMfPFvOHY47rvDTS7XJOaUT
+BwRjmDt896s6vMDcaG/uXJbQjuzmmx3W2Idyh3s5SI0GTHb0IwMKYb4eBUIpQOnB
+cE77VnCYqKvN1NVYAqhWjXbY7XasZvszCRcOG+W3FqNaHOK/n/0ueb0uijdLan+U
+f4p1bjbAox8eAOQS/8a3bzkJzdyBNUKGx1BIK2IBL9bn/HravSDOiNRSnZ/R3l9G
+ZauX0tu7IIDlRCILXSyeazu0aj/vdT3YFQXPcvt5Fkf5wiNTo53f72/jYEJd6qph
+WrpoKqrwGwTpRUCMhYIUt65hsTxCiJJ5nKe39h46sg==
+-----END CERTIFICATE-----
diff --git a/home/.mutt/accounts/gmail b/home/.mutt/accounts/gmail
new file mode 100644
index 0000000..f890f9a
--- /dev/null
+++ b/home/.mutt/accounts/gmail
@@ -0,0 +1,17 @@
+## Receive Options
+set imap_user = jodersky@gmail.com
+set imap_pass = "`pass sites/gmail.com`"
+set folder = imaps://jodersky@imap.gmail.com
+set spoolfile = +INBOX
+#set record = +Sent
+
+## Send Options
+set smtp_url=smtps://$imap_user:$imap_pass@smtp.gmail.com
+set realname = "Jakob Odersky"
+set from = jodersky@gmail.com
+set hostname = "gmail.com"
+
+set ssl_force_tls = yes
+unset ssl_starttls
+
+account-hook $folder "set imap_user=jodersky@gmail.com imap_pass=`pass sites/gmail.com`" \ No newline at end of file
diff --git a/home/.mutt/colors b/home/.mutt/colors
new file mode 100644
index 0000000..c8affeb
--- /dev/null
+++ b/home/.mutt/colors
@@ -0,0 +1,87 @@
+## Theme kindly inspired from
+## http://nongeekshandbook.blogspot.ie/2009/03/mutt-color-configuration.html
+
+## Colours for items in the index
+color index brightcyan black ~N
+color index brightred black ~O
+color index brightyellow black ~F
+color index black green ~T
+color index brightred black ~D
+mono index bold ~N
+mono index bold ~F
+mono index bold ~T
+mono index bold ~D
+
+## Highlights inside the body of a message.
+
+## URLs
+color body brightgreen black "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
+color body brightgreen black "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
+mono body bold "(http|ftp|news|telnet|finger)://[^ \"\t\r\n]*"
+mono body bold "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
+
+## Email addresses.
+color body brightgreen black "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
+
+## Header
+color header green black "^from:"
+color header green black "^to:"
+color header green black "^cc:"
+color header green black "^date:"
+color header yellow black "^newsgroups:"
+color header yellow black "^reply-to:"
+color header brightcyan black "^subject:"
+color header red black "^x-spam-rule:"
+color header green black "^x-mailer:"
+color header yellow black "^message-id:"
+color header yellow black "^Organization:"
+color header yellow black "^Organisation:"
+color header yellow black "^User-Agent:"
+color header yellow black "^message-id: .*pine"
+color header yellow black "^X-Fnord:"
+color header yellow black "^X-WebTV-Stationery:"
+
+color header red black "^x-spam-rule:"
+color header green black "^x-mailer:"
+color header yellow black "^message-id:"
+color header yellow black "^Organization:"
+color header yellow black "^Organisation:"
+color header yellow black "^User-Agent:"
+color header yellow black "^message-id: .*pine"
+color header yellow black "^X-Fnord:"
+color header yellow black "^X-WebTV-Stationery:"
+color header yellow black "^X-Message-Flag:"
+color header yellow black "^X-Spam-Status:"
+color header yellow black "^X-SpamProbe:"
+color header red black "^X-SpamProbe: SPAM"
+
+## Coloring quoted text - coloring the first 7 levels:
+color quoted cyan black
+color quoted1 yellow black
+color quoted2 red black
+color quoted3 green black
+color quoted4 cyan black
+color quoted5 yellow black
+color quoted6 red black
+color quoted7 green black
+
+## Default color definitions
+#color hdrdefault white green
+color signature brightmagenta black
+color indicator black cyan
+color attachment black green
+color error red black
+color message white black
+color search brightwhite magenta
+color status brightyellow blue
+color tree brightblue black
+color normal white black
+color tilde green black
+color bold brightyellow black
+#color underline magenta black
+color markers brightcyan black
+
+## Colour definitions when on a mono screen
+mono bold bold
+mono underline underline
+mono indicator reverse
diff --git a/home/.mutt/gpg b/home/.mutt/gpg
new file mode 100644
index 0000000..96b89d1
--- /dev/null
+++ b/home/.mutt/gpg
@@ -0,0 +1,89 @@
+set pgp_use_gpg_agent = yes
+set pgp_autosign = yes
+unset pgp_autoencrypt
+#set pgp_encryptself
+set pgp_replysign = yes
+set pgp_replyencrypt = yes
+set pgp_verify_sig = yes
+set pgp_sign_as = 0x4E7DA7B5A0F86992D6EB3F514601878662E33372
+
+# Command formats for gpg.
+#
+#
+# %p The empty string when no passphrase is needed,
+# the string "PGPPASSFD=0" if one is needed.
+#
+# This is mostly used in conditional % sequences.
+#
+# %f Most PGP commands operate on a single file or a file
+# containing a message. %f expands to this file's name.
+#
+# %s When verifying signatures, there is another temporary file
+# containing the detached signature. %s expands to this
+# file's name.
+#
+# %a In "signing" contexts, this expands to the value of the
+# configuration variable $pgp_sign_as. You probably need to
+# use this within a conditional % sequence.
+#
+# %r In many contexts, mutt passes key IDs to pgp. %r expands to
+# a list of key IDs.
+
+# Note that we explicitly set the comment armor header since GnuPG, when used
+# in some localiaztion environments, generates 8bit data in that header, thereby
+# breaking PGP/MIME.
+
+# decode application/pgp
+set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
+
+# verify a pgp/mime signature
+set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f"
+
+# decrypt a pgp/mime attachment
+set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
+
+# create a pgp/mime signed attachment
+# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
+set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
+
+# create a application/pgp signed (old-style) message
+# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
+set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
+
+# create a pgp/mime encrypted attachment
+# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
+set pgp_encrypt_only_command="/usr/lib/mutt/pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
+
+# create a pgp/mime encrypted and signed attachment
+# set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
+set pgp_encrypt_sign_command="/usr/lib/mutt/pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
+
+# import a key into the public key ring
+set pgp_import_command="gpg --no-verbose --import %f"
+
+# export a key from the public key ring
+set pgp_export_command="gpg --no-verbose --export --armor %r"
+
+# verify a key
+set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r"
+
+# read in the public key ring
+set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --list-keys %r"
+
+# read in the secret key ring
+set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --list-secret-keys %r"
+
+# fetch keys
+# set pgp_getkeys_command="pkspxycwrap %r"
+# This will work when #172960 will be fixed upstream
+# set pgp_getkeys_command="gpg --recv-keys %r"
+
+# pattern for good signature - may need to be adapted to locale!
+
+# set pgp_good_sign="^gpgv?: Good signature from "
+
+# OK, here's a version which uses gnupg's message catalog:
+# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`"
+
+# This version uses --status-fd messages
+set pgp_good_sign="^\\[GNUPG:\\] GOODSIG" \ No newline at end of file
diff --git a/home/.mutt/muttrc b/home/.mutt/muttrc
new file mode 100644
index 0000000..f4d9ee7
--- /dev/null
+++ b/home/.mutt/muttrc
@@ -0,0 +1,21 @@
+## General options
+set header_cache = "~/.cache/mutt"
+set imap_check_subscribed
+set imap_keepalive = 300
+unset imap_passive
+set mail_check = 60
+set certificate_file = "~/.mutt/certificates"
+#set mbx_type=Maildir
+#set postponed = ~/Mail/postponed
+#set record = ~/Mail/sent
+
+# UI
+source ~/.mutt/colors
+set editor = "emacs -nw"
+
+# GPG
+source ~/.mutt/gpg
+
+## Gmail
+source "~/.mutt/accounts/gmail"
+folder-hook $folder "source ~/.mutt/accounts/gmail"
diff --git a/home/.rsyncignore b/home/.rsyncignore
new file mode 100644
index 0000000..a3f3ca1
--- /dev/null
+++ b/home/.rsyncignore
@@ -0,0 +1,23 @@
+# keep these hidden files and directories
++ /.rsyncignore
++ /.ssh
++ /.gnupg
++ /.password-store
++ /.sbt
++ /.mutt
++ /.emacs.d
++ /.dotfiles
++ .gitignore
+
+# ignore other hidden files
+- /.*
+
+# ignore temporary files
+- **~
+
+# ignore files in any .gitignore files
+- : .gitignore
+
+# ignore following directories
+- /Downloads
+- /opt
diff --git a/home/.sbt/.rsyncignore b/home/.sbt/.rsyncignore
new file mode 100644
index 0000000..2516d64
--- /dev/null
+++ b/home/.sbt/.rsyncignore
@@ -0,0 +1,4 @@
+- boot
+- project
+- staging
+- target
diff --git a/home/.sbt/0.13/bintray.sbt b/home/.sbt/0.13/bintray.sbt
new file mode 100644
index 0000000..b9ecfee
--- /dev/null
+++ b/home/.sbt/0.13/bintray.sbt
@@ -0,0 +1 @@
+bintray.BintrayKeys.bintrayReleaseOnPublish := false
diff --git a/home/.sbt/0.13/dependency-graph.sbt b/home/.sbt/0.13/dependency-graph.sbt
new file mode 100644
index 0000000..3cd9849
--- /dev/null
+++ b/home/.sbt/0.13/dependency-graph.sbt
@@ -0,0 +1 @@
+net.virtualvoid.sbt.graph.Plugin.graphSettings \ No newline at end of file
diff --git a/home/.sbt/0.13/eclipse.sbt b/home/.sbt/0.13/eclipse.sbt
new file mode 100644
index 0000000..84ed8ad
--- /dev/null
+++ b/home/.sbt/0.13/eclipse.sbt
@@ -0,0 +1,5 @@
+EclipseKeys.createSrc := EclipseCreateSrc.Default + EclipseCreateSrc.Managed
+
+EclipseKeys.skipParents in ThisBuild := false
+
+EclipseKeys.withSource := true
diff --git a/home/.sbt/0.13/gpg.sbt b/home/.sbt/0.13/gpg.sbt
new file mode 100644
index 0000000..38741b5
--- /dev/null
+++ b/home/.sbt/0.13/gpg.sbt
@@ -0,0 +1,5 @@
+import com.typesafe.sbt.pgp.PgpKeys._
+
+pgpSigningKey in Global := Some(0x2CED17AB2B6D6F37l)
+
+useGpg in Global := true
diff --git a/home/.sbt/0.13/plugins/bintray.sbt b/home/.sbt/0.13/plugins/bintray.sbt
new file mode 100644
index 0000000..8dd913f
--- /dev/null
+++ b/home/.sbt/0.13/plugins/bintray.sbt
@@ -0,0 +1 @@
+addSbtPlugin("me.lessis" % "bintray-sbt" % "0.3.0")
diff --git a/home/.sbt/0.13/plugins/dependency-graph.sbt b/home/.sbt/0.13/plugins/dependency-graph.sbt
new file mode 100644
index 0000000..10dfae8
--- /dev/null
+++ b/home/.sbt/0.13/plugins/dependency-graph.sbt
@@ -0,0 +1 @@
+addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.5")
diff --git a/home/.sbt/0.13/plugins/eclipse.sbt b/home/.sbt/0.13/plugins/eclipse.sbt
new file mode 100644
index 0000000..13e0a81
--- /dev/null
+++ b/home/.sbt/0.13/plugins/eclipse.sbt
@@ -0,0 +1 @@
+addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "3.0.0")
diff --git a/home/.sbt/0.13/plugins/ensime.sbt b/home/.sbt/0.13/plugins/ensime.sbt
new file mode 100644
index 0000000..d235a27
--- /dev/null
+++ b/home/.sbt/0.13/plugins/ensime.sbt
@@ -0,0 +1 @@
+addSbtPlugin("org.ensime" % "ensime-sbt" % "0.1.6")
diff --git a/home/.sbt/0.13/plugins/gpg.sbt b/home/.sbt/0.13/plugins/gpg.sbt
new file mode 100644
index 0000000..4ce4d9e
--- /dev/null
+++ b/home/.sbt/0.13/plugins/gpg.sbt
@@ -0,0 +1 @@
+addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")
diff --git a/home/.sbt/0.13/plugins/updates.sbt b/home/.sbt/0.13/plugins/updates.sbt
new file mode 100644
index 0000000..2cbd1e8
--- /dev/null
+++ b/home/.sbt/0.13/plugins/updates.sbt
@@ -0,0 +1 @@
+addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.1.8")
diff --git a/home/bin/backup b/home/bin/backup
new file mode 100755
index 0000000..020e22e
--- /dev/null
+++ b/home/bin/backup
@@ -0,0 +1,58 @@
+#!/bin/bash
+set -e
+
+# source folder to back up, don't forget to add trailing slash
+: ${BACKUPSOURCE:="/home/jodersky/"}
+
+# backup root folder, i.e. the one that will contain all backups in separate sub-folders
+: ${BACKUPCAPSULE:="/media/jodersky/backup/backup/jakob/"}
+
+
+#destination folder to back up to
+destination="$BACKUPCAPSULE"/$(date +%Y-%m-%d_%H-%M-%S)
+
+#symbolic link to latest backup (if any)
+latest="$BACKUPCAPSULE/latest"
+
+# rsync options
+roptions=(
+ -a
+ -P
+ --copy-unsafe-links
+ --delete
+ --delete-excluded
+ --filter=": .rsyncignore"
+)
+
+# settings that are passed through arguments
+init=0; # initialise new backup
+dryrun=0; # perform a simulated run, don't backup any files
+
+# process arguments
+while [ $# -gt 0 ]
+do
+ if [ "$1" = "--init" ]; then
+ init=1
+ elif [ "$1" = "-n" ]; then
+ dryrun=1
+ else
+ echo "invalid argument: $1"
+ exit 1
+ fi
+ shift
+done
+
+if [ $init -eq 0 ]; then
+ roptions+=(--link-dest="$latest")
+fi
+if [ $dryrun -eq 1 ]; then
+ roptions+=(-n)
+ roptions+=(-vv)
+fi
+
+rsync "${roptions[@]}" "$BACKUPSOURCE" "$destination"
+
+if [ $dryrun -eq 0 ]; then
+ rm -f $latest
+ ln -s "$destination" "$latest"
+fi
diff --git a/home/bin/codename b/home/bin/codename
new file mode 100755
index 0000000..fba80f0
--- /dev/null
+++ b/home/bin/codename
@@ -0,0 +1,4 @@
+#!/bin/sh
+# Generate a random name for a project
+
+aspell dump master -d en_US | grep -v "'s" | shuf -n 2
diff --git a/home/bin/editor b/home/bin/editor
new file mode 100755
index 0000000..89c5db3
--- /dev/null
+++ b/home/bin/editor
@@ -0,0 +1,2 @@
+#!/bin/bash
+exec emacsclient --alternate-editor="" -c "$@" -nw \ No newline at end of file
diff --git a/home/bin/night b/home/bin/night
new file mode 100755
index 0000000..3893a69
--- /dev/null
+++ b/home/bin/night
@@ -0,0 +1,6 @@
+#!/bin/bash
+# Dim screen and adjust red color levels for working in dark environments.
+
+xbacklight -set 10
+redshift -l 46.52:6.62 -t 5700:3600 -g 0.8 -m vidmode -v
+xbacklight -set 60
diff --git a/home/bin/sw b/home/bin/sw
new file mode 100755
index 0000000..f021d7f
--- /dev/null
+++ b/home/bin/sw
@@ -0,0 +1,15 @@
+#!/bin/bash
+# Switch workspace between a specified primary one and the current one.
+
+PRIMARY=0
+CURRENT=$(wmctrl -d | grep \* | cut -d " " -f1)
+
+SAVE_FILE=/tmp/current-workspace
+
+if [ "$CURRENT" = "$PRIMARY" ] && [ -e "$SAVE_FILE" ]; then
+ wmctrl -s $(cat "$SAVE_FILE")
+else
+ echo "$CURRENT" > "$SAVE_FILE"
+ wmctrl -s $PRIMARY
+fi
+
diff --git a/home/bin/updatedots b/home/bin/updatedots
new file mode 100755
index 0000000..4426ba7
--- /dev/null
+++ b/home/bin/updatedots
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+# Root directory of dotfiles project
+BASEDIR=$(dirname "$(readlink -f "$0")")/../..
+
+# Directory containing all dotfiles that will be linked to $HOMEDIR
+DOTDIR=${BASEDIR}/home
+
+# Directory into which files will be linked
+HOMEDIR=${HOME}
+
+# Directory into which any pre-existing dotfiles will be copied
+BACKUPDIR=${HOMEDIR}/.updatedots-backup
+
+# Dotfiles relative to $DOTDIR
+RDOTFILES=$(find ${DOTDIR} -type f -print | sed "s|^${DOTDIR}/||g")
+
+# Command used to create symbolic links
+LINK="ln --symbolic --relative"
+
+# Publish dotfiles to home directory, backing up any collisions
+create_links() {
+ if [ ! -e "$BACKUPDIR" ]; then
+ mkdir "$BACKUPDIR"
+ fi
+ if [ -n "$(ls -A $BACKUPDIR)" ]; then
+ echo "Backup directory $BACKUPDIR is not empty. Local files could be lost. Aborting." >&2
+ exit 1
+ fi
+
+ local moved=0
+
+ echo "*** Linking dotfiles from $(realpath $DOTDIR) to $HOMEDIR ***"
+ for relative in $RDOTFILES; do
+ local src=$DOTDIR/$relative
+ local dest=$HOMEDIR/$relative
+
+ echo -n "$dest: "
+
+ mkdir -p $(dirname "$dest")
+
+ if [ -e "$dest" ] && [ $(readlink -f "$dest") = $(readlink -f "$src") ]; then
+ echo "nothing to be done"
+ else
+ if [ -e "$dest" ]; then
+ mv "$dest" "$BACKUPDIR/$file"
+ moved=1
+ echo -n "saved original, "
+ fi
+
+ $LINK "$src" "$dest"
+ echo "linked"
+ fi
+ done
+
+ echo "*** Finished linking dotfiles ***"
+ echo
+ if [ "$moved" -gt 0 ]; then
+ echo "WARNING: some local files were moved to $BACKUPDIR" >&2
+ fi
+}
+
+create_links