diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-06-08 17:05:30 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-06-08 17:05:30 +0200 |
commit | 381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f (patch) | |
tree | b1cf57dea578ac40c373cbdec969fce153a4d427 | |
download | dotfiles-381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f.tar.gz dotfiles-381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f.tar.bz2 dotfiles-381eb6df61ce6d6e2c7bd926a5bd73f7b4c2333f.zip |
initial commit
-rw-r--r-- | home/.bashrc | 113 | ||||
-rw-r--r-- | home/.gitconfig | 11 | ||||
-rw-r--r-- | home/.gnupg/gpg.conf | 90 | ||||
-rw-r--r-- | home/.gnupg/sks-keyservers.netCA.pem | 32 | ||||
-rw-r--r-- | home/.mutt/accounts/gmail | 17 | ||||
-rw-r--r-- | home/.mutt/colors | 87 | ||||
-rw-r--r-- | home/.mutt/gpg | 89 | ||||
-rw-r--r-- | home/.mutt/muttrc | 21 | ||||
-rw-r--r-- | home/.rsyncignore | 23 | ||||
-rw-r--r-- | home/.sbt/.rsyncignore | 4 | ||||
-rw-r--r-- | home/.sbt/0.13/bintray.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/dependency-graph.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/eclipse.sbt | 5 | ||||
-rw-r--r-- | home/.sbt/0.13/gpg.sbt | 5 | ||||
-rw-r--r-- | home/.sbt/0.13/plugins/bintray.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/plugins/dependency-graph.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/plugins/eclipse.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/plugins/ensime.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/plugins/gpg.sbt | 1 | ||||
-rw-r--r-- | home/.sbt/0.13/plugins/updates.sbt | 1 | ||||
-rwxr-xr-x | home/bin/backup | 58 | ||||
-rwxr-xr-x | home/bin/codename | 4 | ||||
-rwxr-xr-x | home/bin/editor | 2 | ||||
-rwxr-xr-x | home/bin/night | 6 | ||||
-rwxr-xr-x | home/bin/sw | 15 | ||||
-rwxr-xr-x | home/bin/updatedots | 63 |
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 |