diff --git a/git/gitconfig b/git/gitconfig new file mode 100644 index 0000000..15c741b --- /dev/null +++ b/git/gitconfig @@ -0,0 +1,101 @@ +[user] + email = nikolasweger@googlemail.com + name = Nikolas Weger + +[alias] + exec = ! "exec" + st = status -sb + br = branch -vv + bra = branch -vv --all + bed = branch --edit-description + aa = add --all :/ + ci = commit -v + ca = commit --amend -v + save = commit -a -m "Save" + co = checkout + di = diff + dis = diff --stat + diw = diff --color-words + dic = diff --color-words=. + dc = diff --cached + dcs = diff --cached --stat + dcw = diff --cached --color-words + dcc = diff --cached --color-words=. + dh = diff HEAD~ + dhs = diff HEAD~ --stat + dhw = diff HEAD~ --color-words + dhc = diff HEAD~ --color-words=. + grp = grep -C 1 + ff = merge --ff-only + noff = merge --no-ff + fa = fetch --all + deleted = remote prune --dry-run + prunable = ! "pr() { git remote | xargs -L 1 git deleted; }; pr" + pruneall = ! "pa() { git remote | xargs -L 1 git remote prune; }; pa" + pullff = pull --ff-only + pullrb = pull --rebase + mirror-remote = ! "mr() { git push \"${2}\" \"refs/remotes/${1}/*:refs/heads/*\" && git remote set-head \"${2}\" -a; }; mr" + count = diff --stat "4b825dc642cb6eb9a060e54bf8d69288fbee4904" # hash of empty tree + credit = shortlog -sn + linecredit = ! "lc() { git ls-tree --name-only -z -r HEAD | xargs -0 -n1 git diff --no-index --numstat /dev/null 2>/dev/null | grep -v '^-' | cut -f 3- | cut -d ' ' -f 3- | xargs -n1 git blame --line-porcelain | grep '^author ' | cut -d ' ' -f 2- | sort | uniq -c | sort -nr; }; lc" + cc = rev-list HEAD --count + cca = rev-list --all --count + lg = log -p + gr = log --graph --format=compact # graph + grl = log --graph --format=line # graph line + grd = log --graph --format=detail # graph detail + gra = log --graph --format=compact --all # graph all + gral = log --graph --format=line --all # graph all line + grad = log --graph --format=detail --all # graph all in detail + sf = show --format=fuller + sfs = show --format=fuller --stat + info = ! "inf() { if git rev-parse ${1} >/dev/null 2>&1; then git cat-file -p $(git rev-parse ${1}); else echo Invalid object; fi }; inf" + cleanall = clean -fdx # this is dangerous, so it's intentionally long to type + update-submodules = submodule update --init --recursive + upgrade-submodules = submodule update --init --remote + upgrade-all-submodules = submodule foreach git pull origin master + empty-tree-hash = hash-object -t tree /dev/null + root = rev-parse --show-toplevel + ctags = ! "ctg() { trap \"rm -f .git/tags.$$\" EXIT; ctags --tag-relative -Rf.git/tags.$$ --exclude=.git; mv .git/tags.$$ .git/tags; }; ctg" + tar = ! "tar() { git archive --format tar --prefix=\"${PWD##*/}/\" HEAD -o ${1}; }; tar" + targz = ! "targz() { git archive --format tar.gz --prefix=\"${PWD##*/}/\" HEAD -o ${1}; }; targz" + zip = ! "zip() { git archive --format zip --prefix=\"${PWD##*/}/\" HEAD -o ${1}; }; zip" + +[color] + ui = auto + +[color "grep"] + match = cyan bold + selected = blue + context = normal + filename = magenta + linenumber = green + separator = yellow + function = blue + +[pretty] + line = "%C(auto)%h%d %s %C(yellow)by %C(blue)%an %C(green)%ar" + compact = "%C(auto)%h %s %C(green)%ar%n %C(auto)%d%n" + detail = "%C(auto)%h %s%n %C(yellow)by %C(blue)%an %C(magenta)<%ae> [%G?] %C(green)%ar%n %C(auto)%d%n" + +[merge] + defaultToUpstream = true + tool = vimdiff + +[mergetool] + keepBackup = false + +[push] + default = upstream + +[credential] + helper = cache --timeout=3600 + +[grep] + lineNumber = true + +[advice] + detachedHead = false + +[core] + excludesfile = ~/.gitignore_global diff --git a/git/gitignore_global b/git/gitignore_global new file mode 100644 index 0000000..b9c0cc3 --- /dev/null +++ b/git/gitignore_global @@ -0,0 +1,31 @@ +# Compiled source # +################### +*.com +*.class +*.dll +*.exe +*.o +*.so +*.pyc + +# Editing tools and IDEs # +########################## +*.swp +*~ + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +Icon? +ehthumbs.db +Thumbs.db diff --git a/install.conf.yaml b/install.conf.yaml index c84defc..5dddf7a 100644 --- a/install.conf.yaml +++ b/install.conf.yaml @@ -10,7 +10,7 @@ ~/.dircolors: zsh/dircolors ~/.gitconfig: git/gitconfig ~/.gitignore_global: git/gitignore_global - ~/.zsh: zsh/ + ~/.zsh: zsh ~/.zshrc: zsh/zshrc - shell: diff --git a/zsh/aliases.d/own.zsh b/zsh/aliases.d/own.zsh index 6cf31d4..82de0a4 100644 --- a/zsh/aliases.d/own.zsh +++ b/zsh/aliases.d/own.zsh @@ -1,9 +1,8 @@ -# Own Aliases -alias fuck='eval $(thefuck $(fc -ln -1 | tail -n 1)); fc -R' +# Command Line Foo alias clf='clf --color' # The Fuck -alias fuck='eval $(thefuck $(fc -ln -1))' +TF_ALIAS=fuck alias fuck='eval $(thefuck $(fc -ln -1 | tail -n 1)); fc -R' # PClear pclear () { @@ -11,6 +10,9 @@ pclear () { printf '\033[3J' } +# Termbin +alias tb='nc termbin.com 9999' + # Create SSL One Line sslcreate() { if [[ "$1" = "create" ]]; then diff --git a/zsh/dircolors b/zsh/dircolors new file mode 100644 index 0000000..bec0c25 --- /dev/null +++ b/zsh/dircolors @@ -0,0 +1,309 @@ +# Configuration file for dircolors, a utility to help you set the +# LS_COLORS environment variable used by GNU ls with the --color option. + +# Copyright (C) 1996, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# Copying and distribution of this file, with or without modification, +# are permitted provided the copyright notice and this notice are preserved. +# +# You can copy this file to .dir_colors in your $HOME directory to override +# the system defaults. + +# Below, there should be one TERM entry for each termtype that is colorizable +TERM Eterm +TERM ansi +TERM color-xterm +TERM con132x25 +TERM con132x30 +TERM con132x43 +TERM con132x60 +TERM con80x25 +TERM con80x28 +TERM con80x30 +TERM con80x43 +TERM con80x50 +TERM con80x60 +TERM console +TERM cygwin +TERM dtterm +TERM gnome +TERM konsole +TERM kterm +TERM linux +TERM linux-c +TERM mach-color +TERM mlterm +TERM putty +TERM rxvt +TERM rxvt-cygwin +TERM rxvt-cygwin-native +TERM rxvt-unicode +TERM screen +TERM screen-256color +TERM screen-bce +TERM screen-w +TERM screen.linux +TERM vt100 +TERM xterm +TERM xterm-256color +TERM xterm-color +TERM xterm-debian + +# Special files + +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +NORMAL 00;37 # global default, although everything should be something. +FILE 01;34 # normal file +RESET 00;37 # reset to "normal" color +DIR 00;34 # directory +LINK 00;36 # symbolic link. (If you set this to 'target' instead of a + # numerical value, the color is as for the file pointed to.) +MULTIHARDLINK 00;37 # regular file with more than one link +FIFO 40;33 # pipe +SOCK 00;35 # socket +DOOR 00;35 # door +BLK 40;33;01 # block device driver +CHR 40;33;01 # character device driver +ORPHAN 00;05;37;41 # orphaned syminks +MISSING 00;05;37;41 # ... and the files they point to +SETUID 37;41 # file that is setuid (u+s) +SETGID 30;43 # file that is setgid (g+s) +CAPABILITY 30;41 # file with capability +STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w) +OTHER_WRITABLE 04;34 # dir that is other-writable (o+w) and not sticky +STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable +EXEC 00;32 # This is for files with execute permission: + +# If you use DOS-style suffixes, you may want to uncomment the following: +.cmd 00;33 # executables (bright green) +.exe 00;33 +.com 00;33 +.btm 00;33 +.bat 00;33 + +## Archives or compressed (red) +.tar 01;31 +.tgz 01;31 +.arj 01;31 +.taz 01;31 +.lzh 01;31 +.lzma 01;31 +.tlz 01;31 +.txz 01;31 +.zip 01;31 +.z 01;31 +.Z 01;31 +.dz 01;31 +.gz 01;31 +.lz 01;31 +.xz 01;31 +.bz 01;31 +.bz2 01;31 +.bzip2 01;31 +.tbz 01;31 +.tbz2 01;31 +.tz 01;31 +.deb 01;31 +.rpm 01;31 +.jar 01;31 +.rar 01;31 # rar +.ace 01;31 # unace +.zoo 01;31 # zoo +.cpio 01;31 # cpio +.7z 01;31 # p7zip +.rz 01;31 # rzip +.apk 01;31 # rzip +.gem 01;31 # rzip + +## image formats (magenta) +.jpg 00;35 +.JPG 00;35 +.jpeg 00;35 +.gif 00;35 +.bmp 00;35 +.pbm 00;35 +.pgm 00;35 +.ppm 00;35 +.tga 00;35 +.xbm 00;35 +.xpm 00;35 +.tif 00;35 +.tiff 00;35 +.png 00;35 +.svg 00;35 +.svgz 00;35 +.mng 00;35 +.pcx 00;35 +.dl 00;35 +.xcf 00;35 +.xwd 00;35 +.yuv 00;35 +.cgm 00;35 +.emf 00;35 +.eps 00;35 +.CR2 00;35 +.ico 00;35 + +## Document files (green) +.pdf 00;32 +.ps 00;32 +.txt 00;32 +.html 00;32 +.rst 00;32 +.md 00;32 +.patch 00;32 +.diff 00;32 +.tex 00;32 +.doc 00;32 +.xml 00;32 +.xls 00;32 +.xlsx 00;32 +.doc 00;32 +.docx 00;32 +.ppt 00;32 +.pptx 00;32 +.key 00;32 # Keynote presentation + +## Template files (bright green) +.pt 01;32 # Zope page template +.tmpl 01;32 +.in 01;32 + +## Audio formats (bright red) +.aac 01;36 +.au 01;36 +.flac 01;36 +.mid 01;36 +.midi 01;36 +.mka 01;36 +.mp3 01;36 +.mpc 01;36 +.ogg 01;36 +.ra 01;36 +.wav 01;36 +.m4a 01;36 +.axa 01;36 +.oga 01;36 +.spx 01;36 +.xspf 01;36 + +## Video formats (as audio + bold) +.mov 01;36 +.mpg 01;36 +.mpeg 01;36 +.m2v 01;36 +.mkv 01;36 +.ogm 01;36 +.mp4 01;36 +.m4v 01;36 +.mp4v 01;36 +.vob 01;36 +.qt 01;36 +.nuv 01;36 +.wmv 01;36 +.asf 01;36 +.rm 01;36 +.rmvb 01;36 +.flc 01;36 +.avi 01;36 +.fli 01;36 +.flv 01;36 +.gl 01;36 +.m2ts 01;36 +.divx 01;36 +.webm 01;36 +.axv 01;36 +.anx 01;36 +.ogv 01;36 +.ogx 01;36 + +## Config files (cyan) +.conf 00;36 +.cnf 00;36 +.cfg 00;36 +.ini 00;36 +.properties 00;36 +.yaml 00;36 +.vcl 00;36 # Varnish + +## Source code files (yellow) +.c 00;33 +.cpp 00;33 +.py 00;33 +.coffesscript 00;33 +.js 00;33 +.rb 00;33 +.sh 00;33 +.zsh 00;33 +.env 00;33 +.bash 00;33 +.php 00;33 +.java 00;33 +.zcml 00;33 # Zope configuration language + +## Data / database (green) +.db 00;32 +.sql 00;32 +.json 00;32 +.plist 00;32 # OSX properties +.fs 00;32 # ZODB Data.fs + +## Files of special interest (base1 + bold) +.tex 01;37 +.rdf 01;37 +.owl 01;37 +.n3 01;37 +.ttl 01;37 +.nt 01;37 +.torrent 01;37 +.xml 01;37 +*Makefile 01;37 +*Rakefile 01;37 +*build.xml 01;37 +*rc 01;37 +.nfo 01;37 +*README 01;37 +*README.txt 01;37 +*readme.txt 01;37 +*README.markdown 01;37 +*README.md 01;37 +.ini 01;37 +.yml 01;37 +.cfg 01;37 +.conf 01;37 +.c 01;37 +.cpp 01;37 +.cc 01;37 + +## Machine generated files / non-important (bright black) +.log 01;30 +.bak 01;30 +.aux 01;30 +.lof 01;30 +.lol 01;30 +.lot 01;30 +.out 01;30 +.toc 01;30 +.bbl 01;30 +.blg 01;30 +*~ 01;30 +*# 01;30 +.part 01;30 +.incomplete 01;30 +.swp 01;30 +.tmp 01;30 +.temp 01;30 +.o 01;30 +.obj 01;30 +.pyc 01;30 +.pyo 01;30 +.class 01;30 +.cache 01;30 +.egg-info 01;30 diff --git a/zsh/zshrc b/zsh/zshrc new file mode 100644 index 0000000..d153ec2 --- /dev/null +++ b/zsh/zshrc @@ -0,0 +1,57 @@ +# Oh My ZSH Path +export ZSH=~/.dotfiles/lib/ohmyzsh + +# Oh My ZSH Theme +ZSH_THEME="pygmalion" + +# Path +export PATH="$HOME/.gem/ruby/2.2.0/bin:$HOME/utils:$HOME/bin:$PATH" + +# Plugins +plugins=(gem bundler composer git pip vagrant docker python extract) +plugins+=(npm systemd systemadmin frontend-search web-search gitignore) +plugins+=(command-not-found colored-man fabric tmux taskwarrior) + +if [ $(uname -n) = "megumi" -o $(uname -n) = "kimari" -o $(uname -n) = "sayaka" ]; then + plugins+=(archlinux) +fi +if [ $(uname -n) = "mail" ]; then + plugins+=(debian) +fi +# Color TERM +export TERM=xterm-256color + +# Preferred editor for local and remote sessions +export EDITOR='nano' + +# Load Oh My ZSH +source $ZSH/oh-my-zsh.sh + +# Source k.sh +source ~/.dotfiles/lib/k/k.sh + +# Shell Syntax Highlighter +source ~/.dotfiles/lib/highlighting/zsh-syntax-highlighting.zsh +ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets) + +# CD without typing cd +setopt autocd + +# History +setopt histsavenodups +setopt histverify +setopt histignorealldups +setopt extendedhistory +setopt histreduceblanks +export HISTSIZE=1000000 SAVEHIST=1000000 HISTFILE=~/.zhistory + +# Dircolors +eval `dircolors ~/.dircolors` + +# Source Aliases +source ~/.zsh/alias.zsh + +# Completions Path +fpath=(~/.dotfiles/lib/completions/src $fpath) + +[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh