diff --git a/.Xresources b/.Xresources
new file mode 100644
index 0000000..a5cc5ad
--- /dev/null
+++ b/.Xresources
@@ -0,0 +1,140 @@
+! ------------- URxvt -----------------
+ URxvt*termName: rxvt
+! URxvt*geometry: geometry
+! URxvt*chdir: string
+! URxvt*reverseVideo: boolean
+! URxvt*loginShell: boolean
+! URxvt*multiClickTime: number
+! URxvt*jumpScroll: boolean
+! URxvt*skipScroll: boolean
+! URxvt*pastableTabs: boolean
+! URxvt*scrollstyle: mode
+ URxvt*scrollBar: false
+! URxvt*scrollBar_right: true
+! URxvt*scrollBar_floating: boolean
+! URxvt*scrollBar_align: mode
+! URxvt*thickness: number
+! URxvt*scrollTtyOutput: boolean
+! URxvt*scrollTtyKeypress: boolean
+! URxvt*scrollWithBuffer: boolean
+! URxvt*inheritPixmap: boolean
+! URxvt*transparent: boolean
+! URxvt*tintColor: color
+! URxvt*shading: number
+! URxvt*blurRadius: HxV
+ URxvt*fading: 10
+! URxvt*fadeColor: color
+! URxvt*utmpInhibit: boolean
+! URxvt*urgentOnBell: boolean
+! URxvt*visualBell: boolean
+! URxvt*mapAlert: boolean
+! URxvt*meta8: boolean
+! URxvt*mouseWheelScrollPage: boolean
+! URxvt*tripleclickwords: boolean
+! URxvt*insecure: boolean
+! URxvt*cursorUnderline: boolean
+! URxvt*cursorBlink: boolean
+! URxvt*pointerBlank: boolean
+ URxvt*background: black
+ URxvt*foreground: white
+! URxvt*color0: color
+! URxvt*color1: color
+! URxvt*color2: color
+! URxvt*color3: color
+! URxvt*color4: color
+! URxvt*color5: color
+! URxvt*color6: color
+! URxvt*color7: color
+! URxvt*color8: color
+! URxvt*color9: color
+! URxvt*color10: color
+! URxvt*color11: color
+! URxvt*color12: color
+! URxvt*color13: color
+! URxvt*color14: color
+! URxvt*color15: color
+! URxvt*colorBD: color
+! URxvt*colorIT: color
+! URxvt*colorUL: color
+! URxvt*colorRV: color
+! URxvt*underlineColor: color
+! URxvt*scrollColor: color
+! URxvt*troughColor: color
+! URxvt*highlightColor: color
+! URxvt*highlightTextColor: color
+! URxvt*cursorColor: color
+! URxvt*cursorColor2: color
+! URxvt*pointerColor: color
+! URxvt*pointerColor2: color
+! URxvt*borderColor: color
+! URxvt*iconFile: file
+ URxvt*font: xft:Hack:size=9
+ URxvt*letterSpace: -1
+! URxvt*boldFont: fontname
+! URxvt*italicFont: fontname
+! URxvt*boldItalicFont: fontname
+! URxvt*intensityStyles: boolean
+! URxvt*inputMethod: name
+! URxvt*preeditType: style
+! URxvt*imLocale: string
+! URxvt*imFont: fontname
+! URxvt*title: string
+! URxvt*iconName: string
+! URxvt*saveLines: number
+! URxvt*buffered: boolean
+! URxvt*depth: number
+! URxvt*visual: number
+! URxvt*transient-for: windowid
+! URxvt*override-redirect: boolean
+! URxvt*hold: boolean
+! URxvt*externalBorder: number
+! URxvt*internalBorder: number
+! URxvt*borderLess: boolean
+! URxvt*lineSpace: number
+! URxvt*letterSpace: number
+! URxvt*skipBuiltinGlyphs: boolean
+! URxvt*pointerBlankDelay: number
+! URxvt*backspacekey: string
+! URxvt*deletekey: string
+! URxvt*print-pipe: string
+! URxvt*modifier: modifier
+! URxvt*cutchars: string
+! URxvt*answerbackString: string
+! URxvt*secondaryScreen: boolean
+! URxvt*secondaryScroll: boolean
+! URxvt*perl-lib: string
+! URxvt*perl-eval: perl-eval
+! URxvt*perl-ext-common: default,matcher,clipboard
+! URxvt*perl-ext: string
+! URxvt*iso14755: false
+! URxvt*iso14755_52: boolean
+! URxvt*xrm: string
+! URxvt*keysym.sym: keysym
+! URxvt*keysym.C-0x68: string:i3-msg focus left >/dev/null\n
+! URxvt*keysym.C-0x6a: string:i3-msg focus down >/dev/null\n
+! URxvt*keysym.C-0x6b: string:i3-msg focus up >/dev/null\n
+! URxvt*keysym.C-0x6c: string:i3-msg focus right >/dev/null\n
+! URxvt*background.border: boolean
+! URxvt*background.expr: string
+! URxvt*background.interval: seconds
+! URxvt*bell-command: string
+! URxvt*kuake.hotkey: string
+! URxvt*matcher.button: 1
+! URxvt*matcher.launcher: string
+! URxvt*matcher.launcher.*: string
+! URxvt*matcher.pattern.*: string
+! URxvt*matcher.rend.*: string
+! URxvt*remote-clipboard.fetch: string
+! URxvt*remote-clipboard.store: string
+! URxvt*searchable-scrollback: string
+! URxvt*selection-autotransform.*: string
+! URxvt*selection-pastebin.cmd: string
+! URxvt*selection-pastebin.url: string
+! URxvt*selection.pattern-0: string
+! URxvt*tab-bg: colour
+! URxvt*tab-fg: colour
+! URxvt*tabbar-bg: colour
+! URxvt*tabbar-fg: colour
+ URxvt*url-launcher: /usr/bin/firefox
+! URxvt.keysym.Shift-Control-C: perl:clipboard:copy
+! URxvt.keysym.Shift-Control-V: perl:clipboard:paste
diff --git a/.config/i3/config b/.config/i3/config
new file mode 100644
index 0000000..3541cdc
--- /dev/null
+++ b/.config/i3/config
@@ -0,0 +1,237 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+#font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+font pango:Hack Sans Mono 8
+
+# Before i3 v4.8, we used to recommend this one as the default:
+# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, its unicode glyph coverage is limited, the old
+# X core fonts rendering does not support right-to-left and this being a bitmap
+# font, it doesn’t scale on retina/hidpi displays.
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec i3-sensible-terminal
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+# bindsym $mod+d exec dmenu_run
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+bindsym $mod+d exec i3-dmenu-desktop --entry-type=Name
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+j focus down
+bindsym $mod+k focus up
+bindsym $mod+l focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+j move down
+bindsym $mod+Shift+k move up
+bindsym $mod+Shift+l move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+x split h
+
+# split in vertical orientation
+bindsym $mod+z split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# switch to workspace
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+bindsym $mod+5 workspace 5
+bindsym $mod+6 workspace 6
+bindsym $mod+7 workspace 7
+bindsym $mod+8 workspace 8
+bindsym $mod+9 workspace 9
+bindsym $mod+0 workspace 10
+bindsym $mod+c workspace "Chat"
+bindsym $mod+o workspace "JD"
+bindsym $mod+m workspace "Mail"
+bindsym $mod+p workspace "KP"
+bindsym $mod+n workspace "Notes"
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+6 move container to workspace 6
+bindsym $mod+Shift+7 move container to workspace 7
+bindsym $mod+Shift+8 move container to workspace 8
+bindsym $mod+Shift+9 move container to workspace 9
+bindsym $mod+Shift+0 move container to workspace 10
+bindsym $mod+Shift+c move container to workspace "Chat"
+#bindsym $mod+Shift+j move container to workspace "JD"
+#bindsym $mod+Shift+m move container to workspace "Mail"
+#bindsym $mod+Shift+k move container to workspace "KP"
+#bindsym $mod+Shift+n move container to workspace "Notes"
+
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym h resize shrink width 10 px or 10 ppt
+ bindsym j resize grow height 10 px or 10 ppt
+ bindsym k resize shrink height 10 px or 10 ppt
+ bindsym l resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+set $mode_system System: (h) shutdown, (r) reboot, (f) fullscreen, (s) hybrid sleep
+mode "$mode_system" {
+ bindsym h exec poweroff
+ bindsym r exec reboot
+ bindsym f exec xset s off -dpms, exec --no-startup-id notify-send "Screensaver and dpms disabled", mode "default"
+ bindsym Shift + f exec xset s on +dpms, exec --no-startup-id notify-send "Screensaver and dpms enabled", mode "default"
+ bindsym s exec systemctl hybrid-sleep, mode "default"
+ bindsym Escape mode "default"
+}
+bindsym $mod+Shift+e mode "$mode_system"
+
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+# status_command i3status --config ~/.config/i3/i3status.conf
+ status_command py3status -b -c ~/.config/i3/i3status.conf
+ tray_output LVDS1
+}
+
+# User Shortcuts
+
+bindsym $mod+Shift+f exec firefox-developer
+bindsym $mod+Shift+z exec pcmanfm
+bindsym $mod+Shift+m exec evolution
+bindsym $mod+Shift+p exec keepassx2, workspace "KP"
+bindsym $mod+Shift+o exec jdownloader
+bindsym $mod+Shift+n workspace "Notes", exec gvim -c 'cd ~/Nextcloud/Notes' ~/Nextcloud/Notes
+bindsym $mod+Shift+x [urgent=latest] focus
+bindsym $mod+Shift+period move workspace to output HDMI1
+bindsym $mod+Shift+comma move workspace to output LVDS1
+bindsym XF86ScreenSaver exec "xset dpms force off", exec "i3lock -c 000000", mode "default"
+
+bindsym XF86AudioRaiseVolume exec amixer -q set Master 5%+ unmute, exec amixer -q set Headphone unmute, exec amixer -q set Speaker unmute, exec amixer -q set Speaker 100%, exec amixer -q set Headphone 100%, exec --no-startup-id notify-send -t 1 -h int:value:$(amixer get Master | grep -e Mono: -e Left: | awk '{print $5}' | grep -o '[0-9]\+') "Volume:"
+
+bindsym XF86AudioLowerVolume exec amixer -q set Master 5%- unmute, exec amixer -q set Headphone unmute, exec amixer -q set Speaker unmute, exec amixer sset Headphone 100%, exec amixer sset Speaker 100%, exec --no-startup-id notify-send -t 1 -h int:value:$(amixer get Master | grep -e Mono: -e Left: | awk '{print $5}' | grep -o '[0-9]\+') "Volume:"
+
+bindsym XF86AudioMute exec amixer -q set Master mute, exec --no-startup-id notify-send -t 1 "Sound Output: $(amixer get Master | grep -e Mono: -e Left: | awk '{print $6}' | grep -o '[a-z]\+')"
+
+bindsym XF86AudioMicMute exec --no-startup-id notify-send -t 1 "Microphone: $(/usr/local/bin/toggleMic.sh)"
+# no capture by default
+exec amixer -q set Capture nocap
+
+bindsym XF86MonBrightnessUp exec xbacklight -inc 10, exec --no-startup-id notify-send -t 1 -h int:value:$(xbacklight) "Backlight:"
+bindsym XF86MonBrightnessDown exec xbacklight -dec 10, exec --no-startup-id notify-send -t 1 -h int:value:$(xbacklight) "Backlight:"
+
+bindsym XF86Display exec --no-startup-id /usr/local/bin/displayconfig.sh
+bindsym XF86LaunchA exec --no-startup-id /usr/local/bin/displayconfig.sh
+bindsym Print exec gnome-screenshot
+bindsym Shift+Print exec gnome-screenshot -a
+bindsym XF86WLAN exec /usr/local/bin/toggleWifi.sh, exec --no-startup-id notify-send -t 1 "Wifi" $(nmcli radio wifi)
+bindsym Shift+F5 exec /usr/local/bin/toggleWwan.sh
+#bindsym Shift+F5 exec --no-startup-id notify-send -t 1 "WWAN" $(nmcli radio wwan)'
+bindsym Shift+F1 exec notify-send "test"
+
+# On Startup
+exec --no-startup-id nm-applet
+exec --no-startup-id "xss-lock -- i3lock -n -c 000000 &"
+exec --no-startup-id redshift-gtk
+exec nextcloud
+
+# User Config
+force_display_urgency_hint 500 ms
+hide_edge_borders both
+exec xset dpms 300 600 900 &
+
+# Workspace Assignment
+assign [class="Evolution"] "Mail"
+assign [class="JDownloader"] "JD"
+#assign [class="Chromium" instance="crx_bikioccmkafdpakkkcpdbppfkghcmihk"] "Chat"
+#assign [class="Chromium"] "Chat"
+#assign [class="Rocket.Chat+"] "Chat"
+assign [class="Chromium" instance="messenger.com"] "Chat"
+assign [class="Chromium" instance="web.telegram.org"] "Chat"
+assign [class="Signal"] "Chat"
+assign [class="Keepassx"] "KP"
+
+# Environment dependent Config
+
+#TODO i3lock per systemd implementieren, notify-send "DUNST_COMMAND_PAUSE" vor lock, "DUNST_COMMAND_RESUME" danach
diff --git a/.tmux.conf b/.tmux.conf
new file mode 100644
index 0000000..35526fc
--- /dev/null
+++ b/.tmux.conf
@@ -0,0 +1,25 @@
+
+# attach to already existing session
+new-session -n $HOST
+#new-session -A -s main
+
+# smart pane switching with awareness of vim splits
+bind -n C-h run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-h) || tmux select-pane -L"
+bind -n C-j run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-j) || tmux select-pane -D"
+bind -n C-k run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-k) || tmux select-pane -U"
+bind -n C-l run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys C-l;) || tmux select-pane -R"
+bind -n C-\ run "(tmux display-message -p '#{pane_current_command}' | grep -iq vim && tmux send-keys 'C-\\') || tmux select-pane -l""')"
+# vim bindings in copy mode
+setw -g mode-keys vi
+
+# mouse
+set -g mouse on
+
+# Setup 'v' to begin selection as in Vim
+#bind-key -t vi-copy v begin-selection
+#bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
+
+# reattach to user name space (start programs from within tmux)
+# set-option -g default-command "reattach-to-user-namespace -l bash"
+
+set -g default-terminal "tmux-256color"
diff --git a/.vim/.netrwhist b/.vim/.netrwhist
new file mode 100644
index 0000000..62d5b3c
--- /dev/null
+++ b/.vim/.netrwhist
@@ -0,0 +1,5 @@
+let g:netrw_dirhistmax =10
+let g:netrw_dirhist_cnt =3
+let g:netrw_dirhist_1='/home/michel/Nextcloud/Notes'
+let g:netrw_dirhist_2='/home/michel/go/src/hello'
+let g:netrw_dirhist_3='/home/michel/Nextcloud/Notes'
diff --git a/.vim/autoload/pathogen.vim b/.vim/autoload/pathogen.vim
new file mode 100644
index 0000000..3582fbf
--- /dev/null
+++ b/.vim/autoload/pathogen.vim
@@ -0,0 +1,264 @@
+" pathogen.vim - path option manipulation
+" Maintainer: Tim Pope
+" Version: 2.4
+
+" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
+"
+" For management of individually installed plugins in ~/.vim/bundle (or
+" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
+" .vimrc is the only other setup necessary.
+"
+" The API is documented inline below.
+
+if exists("g:loaded_pathogen") || &cp
+ finish
+endif
+let g:loaded_pathogen = 1
+
+" Point of entry for basic default usage. Give a relative path to invoke
+" pathogen#interpose() or an absolute path to invoke pathogen#surround().
+" Curly braces are expanded with pathogen#expand(): "bundle/{}" finds all
+" subdirectories inside "bundle" inside all directories in the runtime path.
+" If no arguments are given, defaults "bundle/{}", and also "pack/{}/start/{}"
+" on versions of Vim without native package support.
+function! pathogen#infect(...) abort
+ if a:0
+ let paths = filter(reverse(copy(a:000)), 'type(v:val) == type("")')
+ else
+ let paths = ['bundle/{}', 'pack/{}/start/{}']
+ endif
+ if has('packages')
+ call filter(paths, 'v:val !~# "^pack/[^/]*/start/[^/]*$"')
+ endif
+ let static = '^\%([$~\\/]\|\w:[\\/]\)[^{}*]*$'
+ for path in filter(copy(paths), 'v:val =~# static')
+ call pathogen#surround(path)
+ endfor
+ for path in filter(copy(paths), 'v:val !~# static')
+ if path =~# '^\%([$~\\/]\|\w:[\\/]\)'
+ call pathogen#surround(path)
+ else
+ call pathogen#interpose(path)
+ endif
+ endfor
+ call pathogen#cycle_filetype()
+ if pathogen#is_disabled($MYVIMRC)
+ return 'finish'
+ endif
+ return ''
+endfunction
+
+" Split a path into a list.
+function! pathogen#split(path) abort
+ if type(a:path) == type([]) | return a:path | endif
+ if empty(a:path) | return [] | endif
+ let split = split(a:path,'\\\@]','\\&','')
+ endif
+endfunction
+
+" Like findfile(), but hardcoded to use the runtimepath.
+function! pathogen#runtime_findfile(file,count) abort
+ let rtp = pathogen#join(1,pathogen#split(&rtp))
+ let file = findfile(a:file,rtp,a:count)
+ if file ==# ''
+ return ''
+ else
+ return fnamemodify(file,':p')
+ endif
+endfunction
+
+" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
diff --git a/.vim/bundle/base16-vim b/.vim/bundle/base16-vim
new file mode 160000
index 0000000..2d991f1
--- /dev/null
+++ b/.vim/bundle/base16-vim
@@ -0,0 +1 @@
+Subproject commit 2d991f14f688a38b7b2bcd397bad5efadd0f80a9
diff --git a/.vim/bundle/command-t b/.vim/bundle/command-t
new file mode 160000
index 0000000..85949ce
--- /dev/null
+++ b/.vim/bundle/command-t
@@ -0,0 +1 @@
+Subproject commit 85949ce7a70a26abf6f9d355e38d1473facba022
diff --git a/.vim/bundle/i3-vim-nav b/.vim/bundle/i3-vim-nav
new file mode 160000
index 0000000..0b57e15
--- /dev/null
+++ b/.vim/bundle/i3-vim-nav
@@ -0,0 +1 @@
+Subproject commit 0b57e1557d4d4301e4ad34ef972acb4a4215dd85
diff --git a/.vim/bundle/vim-cython b/.vim/bundle/vim-cython
new file mode 160000
index 0000000..9ad391d
--- /dev/null
+++ b/.vim/bundle/vim-cython
@@ -0,0 +1 @@
+Subproject commit 9ad391d52df188c4fdc6fa78c789b46a800350f2
diff --git a/.vim/bundle/vim-go b/.vim/bundle/vim-go
new file mode 160000
index 0000000..432dc7f
--- /dev/null
+++ b/.vim/bundle/vim-go
@@ -0,0 +1 @@
+Subproject commit 432dc7f7f89f49c141503a28c5840e83edffbeed
diff --git a/.vim/colors/solarized.vim b/.vim/colors/solarized.vim
new file mode 100644
index 0000000..ee46b17
--- /dev/null
+++ b/.vim/colors/solarized.vim
@@ -0,0 +1,969 @@
+" Name: Solarized vim colorscheme
+" Author: Ethan Schoonover
+" URL: http://ethanschoonover.com/solarized
+" (see this url for latest release & screenshots)
+" License: OSI approved MIT license (see end of this file)
+" Created: In the middle of the night
+" Modified: 2011 Apr 14
+"
+" Usage "{{{
+"
+" ---------------------------------------------------------------------
+" ABOUT:
+" ---------------------------------------------------------------------
+" Solarized is a carefully designed selective contrast colorscheme with dual
+" light and dark modes that runs in both GUI, 256 and 16 color modes.
+"
+" See the homepage above for screenshots and details.
+"
+" ---------------------------------------------------------------------
+" INSTALLATION:
+" ---------------------------------------------------------------------
+"
+" Two options for installation: manual or pathogen
+"
+" MANUAL INSTALLATION OPTION:
+" ---------------------------------------------------------------------
+"
+" 1. Put the files in the right place!
+" 2. Move `solarized.vim` to your `.vim/colors` directory.
+"
+" RECOMMENDED PATHOGEN INSTALLATION OPTION:
+" ---------------------------------------------------------------------
+"
+" 1. Download and install Tim Pope's Pathogen from:
+" https://github.com/tpope/vim-pathogen
+"
+" 2. Next, move or clone the `vim-colors-solarized` directory so that it is
+" a subdirectory of the `.vim/bundle` directory.
+"
+" a. **clone with git:**
+"
+" $ cd ~/.vim/bundle
+" $ git clone git://github.com/altercation/vim-colors-solarized.git
+"
+" b. **or move manually into the pathogen bundle directory:**
+" In the parent directory of vim-colors-solarized:
+"
+" $ mv vim-colors-solarized ~/.vim/bundle/
+"
+" MODIFY VIMRC:
+"
+" After either Option 1 or Option 2 above, put the following two lines in your
+" .vimrc:
+"
+" syntax enable
+" set background=dark
+" colorscheme solarized
+"
+" or, for the light background mode of Solarized:
+"
+" syntax enable
+" set background=light
+" colorscheme solarized
+"
+" I like to have a different background in GUI and terminal modes, so I can use
+" the following if-then. However, I find vim's background autodetection to be
+" pretty good and, at least with MacVim, I can leave this background value
+" assignment out entirely and get the same results.
+"
+" if has('gui_running')
+" set background=light
+" else
+" set background=dark
+" endif
+"
+" See the Solarized homepage at http://ethanschoonover.com/solarized for
+" screenshots which will help you select either the light or dark background.
+"
+" Other options are detailed below.
+"
+" IMPORTANT NOTE FOR TERMINAL USERS:
+"
+" If you are going to use Solarized in Terminal mode (i.e. not in a GUI version
+" like gvim or macvim), **please please please** consider setting your terminal
+" emulator's colorscheme to used the Solarized palette. I've included palettes
+" for some popular terminal emulator as well as Xdefaults in the official
+" Solarized download available from [Solarized homepage]. If you use
+" Solarized *without* these colors, Solarized will need to be told to degrade
+" its colorscheme to a set compatible with the limited 256 terminal palette
+" (whereas by using the terminal's 16 ansi color values, you can set the
+" correct, specific values for the Solarized palette).
+"
+" If you do use the custom terminal colors, solarized.vim should work out of
+" the box for you. If you are using a terminal emulator that supports 256
+" colors and don't want to use the custom Solarized terminal colors, you will
+" need to use the degraded 256 colorscheme. To do so, simply add the following
+" line *before* the `colorschem solarized` line:
+"
+" let g:solarized_termcolors=256
+"
+" Again, I recommend just changing your terminal colors to Solarized values
+" either manually or via one of the many terminal schemes available for import.
+"
+" ---------------------------------------------------------------------
+" TOGGLE BACKGROUND FUNCTION:
+" ---------------------------------------------------------------------
+"
+" Solarized comes with a Toggle Background plugin that by default will map to
+" if that mapping is available. If it is not available you will need to
+" either map the function manually or change your current mapping to
+" something else. If you wish to map the function manually, enter the following
+" lines in your .vimrc:
+"
+" nmap ToggleBackground
+" imap ToggleBackground
+" vmap ToggleBackground
+"
+" Note that it is important to *not* use the noremap map variants. The plugin
+" uses noremap internally. You may run `:help togglebg` for more information.
+"
+" ---------------------------------------------------------------------
+" OPTIONS
+" ---------------------------------------------------------------------
+"
+" Set these in your vimrc file prior to calling the colorscheme.
+"
+" option name default optional
+" ------------------------------------------------
+" g:solarized_termcolors= 16 | 256
+" g:solarized_termtrans = 0 | 1
+" g:solarized_degrade = 0 | 1
+" g:solarized_bold = 1 | 0
+" g:solarized_underline = 1 | 0
+" g:solarized_italic = 1 | 0
+" g:solarized_contrast = "normal"| "high" or "low"
+" g:solarized_visibility= "normal"| "high" or "low"
+" ------------------------------------------------
+"
+" OPTION DETAILS
+"
+" ------------------------------------------------
+" g:solarized_termcolors= 256 | 16
+" ------------------------------------------------
+" The most important option if you are using vim in terminal (non gui) mode!
+" This tells Solarized to use the 256 degraded color mode if running in a 256
+" color capable terminal. Otherwise, if set to `16` it will use the terminal
+" emulators colorscheme (best option as long as you've set the emulators colors
+" to the Solarized palette).
+"
+" If you are going to use Solarized in Terminal mode (i.e. not in a GUI
+" version like gvim or macvim), **please please please** consider setting your
+" terminal emulator's colorscheme to used the Solarized palette. I've included
+" palettes for some popular terminal emulator as well as Xdefaults in the
+" official Solarized download available from:
+" http://ethanschoonover.com/solarized . If you use Solarized without these
+" colors, Solarized will by default use an approximate set of 256 colors. It
+" isn't bad looking and has been extensively tweaked, but it's still not quite
+" the real thing.
+"
+" ------------------------------------------------
+" g:solarized_termtrans = 0 | 1
+" ------------------------------------------------
+" If you use a terminal emulator with a transparent background and Solarized
+" isn't displaying the background color transparently, set this to 1 and
+" Solarized will use the default (transparent) background of the terminal
+" emulator. *urxvt* required this in my testing; iTerm2 did not.
+"
+" Note that on Mac OS X Terminal.app, solarized_termtrans is set to 1 by
+" default as this is almost always the best option. The only exception to this
+" is if the working terminfo file supports 256 colors (xterm-256color).
+"
+" ------------------------------------------------
+" g:solarized_degrade = 0 | 1
+" ------------------------------------------------
+" For test purposes only; forces Solarized to use the 256 degraded color mode
+" to test the approximate color values for accuracy.
+"
+" ------------------------------------------------
+" g:solarized_bold = 1 | 0
+" ------------------------------------------------
+" ------------------------------------------------
+" g:solarized_underline = 1 | 0
+" ------------------------------------------------
+" ------------------------------------------------
+" g:solarized_italic = 1 | 0
+" ------------------------------------------------
+" If you wish to stop Solarized from displaying bold, underlined or
+" italicized typefaces, simply assign a zero value to the appropriate
+" variable, for example: `let g:solarized_italic=0`
+"
+" ------------------------------------------------
+" g:solarized_contrast = "normal"| "high" or "low"
+" ------------------------------------------------
+" Stick with normal! It's been carefully tested. Setting this option to high
+" or low does use the same Solarized palette but simply shifts some values up
+" or down in order to expand or compress the tonal range displayed.
+"
+" ------------------------------------------------
+" g:solarized_visibility = "normal"| "high" or "low"
+" ------------------------------------------------
+" Special characters such as trailing whitespace, tabs, newlines, when
+" displayed using ":set list" can be set to one of three levels depending on
+" your needs.
+"
+" ---------------------------------------------------------------------
+" COLOR VALUES
+" ---------------------------------------------------------------------
+" Download palettes and files from: http://ethanschoonover.com/solarized
+"
+" L\*a\*b values are canonical (White D65, Reference D50), other values are
+" matched in sRGB space.
+"
+" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
+" --------- ------- ---- ------- ----------- ---------- ----------- -----------
+" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
+" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
+" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
+" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
+" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
+" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
+" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
+" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
+" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
+" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
+" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
+" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
+" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
+" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
+" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
+" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
+"
+" ---------------------------------------------------------------------
+" COLORSCHEME HACKING
+" ---------------------------------------------------------------------
+"
+" Useful commands for testing colorschemes:
+" :source $VIMRUNTIME/syntax/hitest.vim
+" :help highlight-groups
+" :help cterm-colors
+" :help group-name
+"
+" Useful links for developing colorschemes:
+" http://www.vim.org/scripts/script.php?script_id=2937
+" http://vimcasts.org/episodes/creating-colorschemes-for-vim/
+" http://www.frexx.de/xterm-256-notes/"
+"
+"
+" }}}
+" Default option values"{{{
+" ---------------------------------------------------------------------
+if !exists("g:solarized_termtrans")
+ if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
+ let g:solarized_termtrans = 1
+ else
+ let g:solarized_termtrans = 0
+ endif
+endif
+if !exists("g:solarized_degrade")
+ let g:solarized_degrade = 0
+endif
+if !exists("g:solarized_bold")
+ let g:solarized_bold = 1
+endif
+if !exists("g:solarized_underline")
+ let g:solarized_underline = 1
+endif
+if !exists("g:solarized_italic")
+ let g:solarized_italic = 1
+endif
+if !exists("g:solarized_termcolors")
+ let g:solarized_termcolors = 16
+endif
+if !exists("g:solarized_contrast")
+ let g:solarized_contrast = "normal"
+endif
+if !exists("g:solarized_visibility")
+ let g:solarized_visibility = "normal"
+endif
+"}}}
+" Colorscheme initialization "{{{
+" ---------------------------------------------------------------------
+hi clear
+if exists("syntax_on")
+ syntax reset
+endif
+let colors_name = "solarized"
+
+"}}}
+" GUI & CSApprox hexadecimal palettes"{{{
+" ---------------------------------------------------------------------
+"
+" Set both gui and terminal color values in separate conditional statements
+" Due to possibility that CSApprox is running (though I suppose we could just
+" leave the hex values out entirely in that case and include only cterm colors)
+" We also check to see if user has set solarized (force use of the
+" neutral gray monotone palette component)
+if (has("gui_running") && g:solarized_degrade == 0)
+ let s:vmode = "gui"
+ let s:base03 = "#002b36"
+ let s:base02 = "#073642"
+ let s:base01 = "#586e75"
+ let s:base00 = "#657b83"
+ let s:base0 = "#839496"
+ let s:base1 = "#93a1a1"
+ let s:base2 = "#eee8d5"
+ let s:base3 = "#fdf6e3"
+ let s:yellow = "#b58900"
+ let s:orange = "#cb4b16"
+ let s:red = "#dc322f"
+ let s:magenta = "#d33682"
+ let s:violet = "#6c71c4"
+ let s:blue = "#268bd2"
+ let s:cyan = "#2aa198"
+ let s:green = "#859900"
+elseif (has("gui_running") && g:solarized_degrade == 1)
+ " These colors are identical to the 256 color mode. They may be viewed
+ " while in gui mode via "let g:solarized_degrade=1", though this is not
+ " recommened and is for testing only.
+ let s:vmode = "gui"
+ let s:base03 = "#1c1c1c"
+ let s:base02 = "#262626"
+ let s:base01 = "#4e4e4e"
+ let s:base00 = "#585858"
+ let s:base0 = "#808080"
+ let s:base1 = "#8a8a8a"
+ let s:base2 = "#d7d7af"
+ let s:base3 = "#ffffd7"
+ let s:yellow = "#af8700"
+ let s:orange = "#d75f00"
+ let s:red = "#af0000"
+ let s:magenta = "#af005f"
+ let s:violet = "#5f5faf"
+ let s:blue = "#0087ff"
+ let s:cyan = "#00afaf"
+ let s:green = "#5f8700"
+elseif g:solarized_termcolors != 256 && &t_Co >= 16
+ let s:vmode = "cterm"
+ let s:base03 = "8"
+ let s:base02 = "0"
+ let s:base01 = "10"
+ let s:base00 = "11"
+ let s:base0 = "12"
+ let s:base1 = "14"
+ let s:base2 = "7"
+ let s:base3 = "15"
+ let s:yellow = "3"
+ let s:orange = "9"
+ let s:red = "1"
+ let s:magenta = "5"
+ let s:violet = "13"
+ let s:blue = "4"
+ let s:cyan = "6"
+ let s:green = "2"
+elseif g:solarized_termcolors == 256
+ let s:vmode = "cterm"
+ let s:base03 = "234"
+ let s:base02 = "235"
+ let s:base01 = "239"
+ let s:base00 = "240"
+ let s:base0 = "244"
+ let s:base1 = "245"
+ let s:base2 = "187"
+ let s:base3 = "230"
+ let s:yellow = "136"
+ let s:orange = "166"
+ let s:red = "124"
+ let s:magenta = "125"
+ let s:violet = "61"
+ let s:blue = "33"
+ let s:cyan = "37"
+ let s:green = "64"
+else
+ let s:vmode = "cterm"
+ let s:bright = "* term=bold cterm=bold"
+ let s:base03 = "0".s:bright
+ let s:base02 = "0"
+ let s:base01 = "2".s:bright
+ let s:base00 = "3".s:bright
+ let s:base0 = "4".s:bright
+ let s:base1 = "6".s:bright
+ let s:base2 = "7"
+ let s:base3 = "7".s:bright
+ let s:yellow = "3"
+ let s:orange = "1".s:bright
+ let s:red = "1"
+ let s:magenta = "5"
+ let s:violet = "13"
+ let s:blue = "4"
+ let s:cyan = "6"
+ let s:green = "2"
+endif
+"}}}
+" Formatting options and null values for passthrough effect "{{{
+" ---------------------------------------------------------------------
+ let s:none = "NONE"
+ let s:none = "NONE"
+ let s:t_none = "NONE"
+ let s:n = "NONE"
+ let s:c = ",undercurl"
+ let s:r = ",reverse"
+ let s:s = ",standout"
+ let s:ou = ""
+ let s:ob = ""
+"}}}
+" Background value based on termtrans setting "{{{
+" ---------------------------------------------------------------------
+if (has("gui_running") || g:solarized_termtrans == 0)
+ let s:back = s:base03
+else
+ let s:back = "NONE"
+endif
+"}}}
+" Alternate light scheme "{{{
+" ---------------------------------------------------------------------
+if &background == "light"
+ let s:temp03 = s:base03
+ let s:temp02 = s:base02
+ let s:temp01 = s:base01
+ let s:temp00 = s:base00
+ let s:base03 = s:base3
+ let s:base02 = s:base2
+ let s:base01 = s:base1
+ let s:base00 = s:base0
+ let s:base0 = s:temp00
+ let s:base1 = s:temp01
+ let s:base2 = s:temp02
+ let s:base3 = s:temp03
+ if (s:back != "NONE")
+ let s:back = s:base03
+ endif
+endif
+"}}}
+" Optional contrast schemes "{{{
+" ---------------------------------------------------------------------
+if g:solarized_contrast == "high"
+ let s:base01 = s:base00
+ let s:base00 = s:base0
+ let s:base0 = s:base1
+ let s:base1 = s:base2
+ let s:base2 = s:base3
+ let s:back = s:back
+endif
+if g:solarized_contrast == "low"
+ let s:back = s:base02
+ let s:ou = ",underline"
+endif
+"}}}
+" Overrides dependent on user specified values"{{{
+" ---------------------------------------------------------------------
+if g:solarized_bold == 1
+ let s:b = ",bold"
+else
+ let s:b = ""
+endif
+
+if g:solarized_underline == 1
+ let s:u = ",underline"
+else
+ let s:u = ""
+endif
+
+if g:solarized_italic == 1
+ let s:i = ",italic"
+else
+ let s:i = ""
+endif
+"}}}
+" Highlighting primitives"{{{
+" ---------------------------------------------------------------------
+
+exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
+exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
+exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
+exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
+exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
+exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
+exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
+exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
+exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
+exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
+exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
+exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
+exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
+exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
+exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
+exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
+exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
+exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
+
+exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
+exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
+exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
+exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
+exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
+exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
+exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
+exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
+exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
+exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
+exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
+exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
+exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
+exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
+exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
+exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
+exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
+exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
+
+exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
+exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
+exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
+exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
+exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
+exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
+exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
+exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
+exe "let s:fmt_ital = ' ".s:vmode."=NONE". " term=NONE". "'"
+exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
+exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
+
+if has("gui_running")
+ exe "let s:sp_none = ' guisp=".s:none ."'"
+ exe "let s:sp_back = ' guisp=".s:back ."'"
+ exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
+ exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
+ exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
+ exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
+ exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
+ exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
+ exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
+ exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
+ exe "let s:sp_green = ' guisp=".s:green ."'"
+ exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
+ exe "let s:sp_orange = ' guisp=".s:orange ."'"
+ exe "let s:sp_red = ' guisp=".s:red ."'"
+ exe "let s:sp_magenta = ' guisp=".s:magenta."'"
+ exe "let s:sp_violet = ' guisp=".s:violet ."'"
+ exe "let s:sp_blue = ' guisp=".s:blue ."'"
+ exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
+else
+ let s:sp_none = ""
+ let s:sp_back = ""
+ let s:sp_base03 = ""
+ let s:sp_base02 = ""
+ let s:sp_base01 = ""
+ let s:sp_base00 = ""
+ let s:sp_base0 = ""
+ let s:sp_base1 = ""
+ let s:sp_base2 = ""
+ let s:sp_base3 = ""
+ let s:sp_green = ""
+ let s:sp_yellow = ""
+ let s:sp_orange = ""
+ let s:sp_red = ""
+ let s:sp_magenta = ""
+ let s:sp_violet = ""
+ let s:sp_blue = ""
+ let s:sp_cyan = ""
+endif
+
+"}}}
+" Basic highlighting"{{{
+" ---------------------------------------------------------------------
+" note that link syntax to avoid duplicate configuration doesn't work with the
+" exe compiled formats
+
+exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
+
+exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
+" *Comment any comment
+
+exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
+" *Constant any constant
+" String a string constant: "this is a string"
+" Character a character constant: 'c', '\n'
+" Number a number constant: 234, 0xff
+" Boolean a boolean constant: TRUE, false
+" Float a floating point constant: 2.3e10
+
+exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
+" *Identifier any variable name
+" Function function name (also: methods for classes)
+"
+exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
+" *Statement any statement
+" Conditional if, then, else, endif, switch, etc.
+" Repeat for, do, while, etc.
+" Label case, default, etc.
+" Operator "sizeof", "+", "*", etc.
+" Keyword any other keyword
+" Exception try, catch, throw
+
+exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
+" *PreProc generic Preprocessor
+" Include preprocessor #include
+" Define preprocessor #define
+" Macro same as Define
+" PreCondit preprocessor #if, #else, #endif, etc.
+
+exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
+" *Type int, long, char, etc.
+" StorageClass static, register, volatile, etc.
+" Structure struct, union, enum, etc.
+" Typedef A typedef
+
+exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
+" *Special any special symbol
+" SpecialChar special character in a constant
+" Tag you can use CTRL-] on this
+" Delimiter character that needs attention
+" SpecialComment special things inside a comment
+" Debug debugging statements
+
+exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
+" *Underlined text that stands out, HTML links
+
+exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
+" *Ignore left blank, hidden |hl-Ignore|
+
+exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
+" *Error any erroneous construct
+
+exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
+" *Todo anything that needs extra attention; mostly the
+" keywords TODO FIXME and XXX
+"
+"}}}
+" Extended highlighting "{{{
+" ---------------------------------------------------------------------
+if (g:solarized_visibility=="high")
+ exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
+ exe "hi! NonText" .s:fmt_bold .s:fg_base1 .s:bg_none
+elseif (g:solarized_visibility=="low")
+ exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
+ exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
+else
+ exe "hi! SpecialKey" .s:fmt_bold .s:fg_red .s:bg_none
+ exe "hi! NonText" .s:fmt_bold .s:fg_base01 .s:bg_none
+endif
+if (has("gui_running")) || &t_Co > 8
+ exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base1
+ exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base00
+ "exe "hi! Visual" .s:fmt_stnd .s:fg_none .s:bg_base02
+ exe "hi! Visual" .s:fmt_none .s:fg_base03 .s:bg_base01
+else
+ exe "hi! StatusLine" .s:fmt_none .s:fg_base02 .s:bg_base2
+ exe "hi! StatusLineNC" .s:fmt_none .s:fg_base02 .s:bg_base2
+ exe "hi! Visual" .s:fmt_none .s:fg_none .s:bg_base2
+endif
+exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
+exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
+exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
+exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02
+exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
+exe "hi! VertSplit" .s:fmt_bold .s:fg_base00 .s:bg_base00
+exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
+exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02
+exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
+exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02
+exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
+exe "hi! FoldColumn" .s:fmt_bold .s:fg_base0 .s:bg_base02
+exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
+exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
+exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
+exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
+exe "hi! SignColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
+exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
+exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
+exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
+exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
+exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
+exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02
+exe "hi! PmenuSel" .s:fmt_none .s:fg_base2 .s:bg_base01
+exe "hi! PmenuSbar" .s:fmt_none .s:fg_base0 .s:bg_base2
+exe "hi! PmenuThumb" .s:fmt_none .s:fg_base03 .s:bg_base0
+exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
+exe "hi! TabLineSel" .s:fmt_undr .s:fg_base2 .s:bg_base01 .s:sp_base0
+exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
+exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
+exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
+exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
+exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
+hi! link lCursor Cursor
+exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
+
+"}}}
+" vim syntax highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
+exe "hi! vimCommentString".s:fg_violet .s:bg_none .s:fmt_none
+hi! link vimVar Identifier
+hi! link vimFunc Function
+hi! link vimUserFunc Function
+exe "hi! vimCommand" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! vimCmdSep" . s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! helpExample" . s:fg_base1 .s:bg_none .s:fmt_none
+hi! link helpSpecial Special
+exe "hi! helpOption" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! helpNote" . s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! helpVim" . s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! helpHyperTextJump" .s:fg_blue .s:bg_none .s:fmt_undr
+exe "hi! helpHyperTextEntry".s:fg_green .s:bg_none .s:fmt_none
+exe "hi! vimIsCommand" . s:fg_base00 .s:bg_none .s:fmt_none
+exe "hi! vimSynMtchOpt" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! vimSynType" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! vimHiLink" . s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! vimHiGroup" . s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! vimGroup" . s:fg_blue .s:bg_none .s:fmt_undb
+"}}}
+" html highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! htmlTag" . s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! htmlEndTag" . s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! htmlTagN" . s:fg_base1 .s:bg_none .s:fmt_bold
+exe "hi! htmlTagName" . s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! htmlSpecialTagName". s:fg_blue .s:bg_none .s:fmt_ital
+exe "hi! htmlArg" . s:fg_base00 .s:bg_none .s:fmt_none
+exe "hi! javaScript" . s:fg_yellow .s:bg_none .s:fmt_none
+"}}}
+" perl highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
+exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
+
+"}}}
+" tex highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
+exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
+exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
+"}}}
+" ruby highlighting "{{{
+" ---------------------------------------------------------------------
+exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
+"rubyInclude
+"rubySharpBang
+"rubyAccess
+"rubyPredefinedVariable
+"rubyBoolean
+"rubyClassVariable
+"rubyBeginEnd
+"rubyRepeatModifier
+"hi! link rubyArrayDelimiter Special " [ , , ]
+"rubyCurlyBlock { , , }
+
+"hi! link rubyClass Keyword
+"hi! link rubyModule Keyword
+"hi! link rubyKeyword Keyword
+"hi! link rubyOperator Operator
+"hi! link rubyIdentifier Identifier
+"hi! link rubyInstanceVariable Identifier
+"hi! link rubyGlobalVariable Identifier
+"hi! link rubyClassVariable Identifier
+"hi! link rubyConstant Type
+"}}}
+" haskell syntax highlighting"{{{
+" ---------------------------------------------------------------------
+" For use with syntax/haskell.vim : Haskell Syntax File
+" http://www.vim.org/scripts/script.php?script_id=3034
+" See also Steffen Siering's github repository:
+" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
+" ---------------------------------------------------------------------
+"
+" Treat True and False specially, see the plugin referenced above
+let hs_highlight_boolean=1
+" highlight delims, see the plugin referenced above
+let hs_highlight_delimiters=1
+
+exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
+
+exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
+
+exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
+exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
+exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
+exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
+hi! link hsImportParams Delimiter
+hi! link hsDelimTypeExport Delimiter
+hi! link hsModuleStartLabel hsStructure
+hi! link hsModuleWhereLabel hsModuleStartLabel
+
+" following is for the haskell-conceal plugin
+" the first two items don't have an impact, but better safe
+exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
+
+"}}}
+" pandoc markdown syntax highlighting "{{{
+" ---------------------------------------------------------------------
+
+"PandocHiLink pandocNormalBlock
+exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
+exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
+hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
+hi! link pandocCodeBlock pandocVerbatimBlock
+hi! link pandocCodeBlockDelim pandocVerbatimBlock
+exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
+exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
+
+" Definitions
+" ---------------------------------------------------------------------
+let s:fg_pdef = s:fg_violet
+exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
+exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
+exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
+exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
+exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
+exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
+exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
+exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
+exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
+exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
+
+" Tables
+" ---------------------------------------------------------------------
+let s:fg_ptable = s:fg_blue
+exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
+exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
+hi! link pandocTableStructureTop pandocTableStructre
+hi! link pandocTableStructureEnd pandocTableStructre
+exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
+exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
+exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
+exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
+exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
+exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
+exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
+exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
+exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
+
+" Headings
+" ---------------------------------------------------------------------
+let s:fg_phead = s:fg_orange
+exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
+exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
+exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
+exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
+
+" Links
+" ---------------------------------------------------------------------
+exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
+exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
+exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
+exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
+exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
+exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
+exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
+exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
+exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
+exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
+exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
+exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
+exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
+
+" Main Styles
+" ---------------------------------------------------------------------
+exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
+exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
+exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
+exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
+exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
+exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
+exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
+
+exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
+exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
+exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
+exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
+hi! link pandocEscapedCharacter pandocEscapePair
+hi! link pandocLineBreak pandocEscapePair
+
+" Embedded Code
+" ---------------------------------------------------------------------
+exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
+exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
+exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
+hi! link pandocMetadataTitle pandocMetadata
+
+"}}}
+" Utility autocommand "{{{
+" ---------------------------------------------------------------------
+" In cases where Solarized is initialized inside a terminal vim session and
+" then transferred to a gui session via the command `:gui`, the gui vim process
+" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
+" related code that sets gui specific values isn't executed.
+"
+" Currently, Solarized sets only the cterm or gui values for the colorscheme
+" depending on gui or terminal mode. It's possible that, if the following
+" autocommand method is deemed excessively poor form, that approach will be
+" used again and the autocommand below will be dropped.
+"
+" However it seems relatively benign in this case to include the autocommand
+" here. It fires only in cases where vim is transferring from terminal to gui
+" mode (detected with the script scope s:vmode variable). It also allows for
+" other potential terminal customizations that might make gui mode suboptimal.
+"
+autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
+"}}}
+" License "{{{
+" ---------------------------------------------------------------------
+"
+" Copyright (c) 2011 Ethan Schoonover
+"
+" 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.
+"
+" vim:foldmethod=marker:foldlevel=0
+"}}}
diff --git a/.vimrc b/.vimrc
new file mode 100644
index 0000000..7850d4f
--- /dev/null
+++ b/.vimrc
@@ -0,0 +1,71 @@
+" Pathogen Plugin Manager
+execute pathogen#infect()
+
+" Syntax Hightlighting and Colors
+syntax on
+filetype on
+au BufNewFile,BufRead *.pyx set filetype=python
+set t_Co=256
+set background=dark
+set wildmenu
+
+" Base16 Color Sheme
+let base16colorspace=256 " Access colors present in 256 colorspace
+colorscheme base16-default-dark
+if filereadable(expand("~/.vimrc_background"))
+ source ~/.vimrc_background
+endif
+
+" Easier Navigation
+"nnoremap j
+"nnoremap k
+"nnoremap h
+"nnoremap l
+
+"nnoremap r
+"nnoremap R
+"nnoremap H
+"nnoremap L
+
+" i3 integration
+nnoremap :call Focus('right', 'l')
+nnoremap :call Focus('left', 'h')
+nnoremap :call Focus('up', 'k')
+nnoremap :call Focus('down', 'j')
+
+" Latex
+nmap l :w \| !pdflatex %:p
+
+set mouse=a
+
+" Splits
+set splitbelow
+set splitright
+
+" Tabs
+set expandtab
+set autoindent
+set shiftwidth=4
+set softtabstop=4
+set tabstop=8
+
+" Line endings
+set colorcolumn=80
+
+" Markdown for Note editor
+command Md ! chromium --new-window %
+
+" Relative Line Numbers
+:set number relativenumber
+:augroup numbertoggle
+: autocmd!
+: autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
+: autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
+:augroup END
+set cursorline
+
+" Yank, Paste
+:vmap y "+y
+:nmap p "+p
+:vmap p "+p
+
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..3d8fdb8
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1,147 @@
+#string Lines configured by zsh-newuser-install
+HISTFILE=~/.histfile
+HISTSIZE=3000
+SAVEHIST=1000
+bindkey -e
+# End of lines configured by zsh-newuser-install
+# The following lines were added by compinstall
+zstyle :compinstall filename '/home/michel/.zshrc'
+
+
+
+
+autoload -Uz compinit promptinit colors chpwd_recent_dirs cdr add-zsh-hook
+compinit
+promptinit
+colors
+add-zsh-hook chpwd chpwd_recent_dirs
+#promptinit
+# End of lines added by compinstall
+#
+#
+#prompt cloud
+#
+# %{, %} -> zaehlt nicht in prompt-laenge, sonst buggts.
+# %# -> prompt, in meinem Fall idr das "%" am ende
+# %~ -> pwd
+# PROMPT="%{$fg[cyan]%}[%~]%{$reset_color%}%# "
+# To include Hostname:
+PROMPT="%{$fg[cyan]%}[%m:%~]%{$reset_color%}%# "
+
+case $TERM in
+ (*xterm* | *rxvt*)
+
+strlen () {
+ FOO=$1
+ local zero='%([BSUbfksu]|([FB]|){*})'
+ LEN=${#${(S%%)FOO//$~zero/}}
+ echo $LEN
+}
+# Write some info to terminal title.
+# This is seen when the shell prompts for input.
+function precmd {
+ print -Pn "\e]0;zsh%L %(1j,%j job%(2j|s|); ,)%~\a"
+}
+# Write command and args to terminal title.
+# This is seen while the shell waits for a command to complete.
+function preexec {
+ printf "\033]0;%s\a" "$1"
+
+ DATE=$( date +"[%H:%M:%S]" )
+ local len_right=$( strlen "$DATE" )
+ len_right=$(( $len_right+1 ))
+ local right_start=$(($COLUMNS - $len_right))
+
+ local len_cmd=$( strlen "$@" )
+ local len_prompt=$(strlen "$PROMPT" )
+ local len_left=$(($len_cmd+$len_prompt))
+
+ RDATE="\033[${right_start}C $fg[cyan]${DATE}$reset_color"
+
+ if [ $len_left -lt $right_start ]; then
+ # command does not overwrite right prompt
+ # ok to move up one line
+ echo -e "\033[1A${RDATE}"
+ else
+ echo -e "${RDATE}"
+ fi
+}
+
+;;
+esac
+
+alias ls='ls --color=auto'
+
+# Standard Editor
+export EDITOR=vim
+
+alias la='ls -a'
+alias ll='ls -lh'
+alias pacman-autoremove='sudo pacman -R $(pacman -Qdtq)'
+alias du='du -h'
+alias df='df -h'
+alias ldu='du -h -d 1'
+alias randhex64='openssl rand 32 -hex'
+alias geth='geth --fast --cache=512'
+alias g='grep --color'
+alias tmux='[[ $TMUX ]] || tmux attach || tmux'
+alias pdflatex='pdflatex -interaction=errorstopmode -shell-escape'
+alias exiftool='exiftool -all='
+alias py=python3
+
+function cats() {
+pygmentize $1 | perl -e 'print "\e[90m".sprintf("%4d",++$i)."|\e[39m $_" for <>'
+}
+
+function ssh() {/usr/bin/ssh $@ -t "tmux attach || tmux || screen -r || screen -q";}
+TERM=xterm
+
+function logentry {
+
+ if [ -z "$1" ] ; then
+ project=beamfox
+ else
+ project=$1
+ fi
+ echo $project
+
+ logdir=~/Nextcloud/Logbook
+ if [ ! -d $project ] ; then
+ mkdir $logdir/$project
+ fi
+
+ today=`date +%Y-%m-%d`
+ logfile=$logdir/$project/$today.md
+ if [ ! -f $logfile ]; then
+ echo "# Log entry ${today}" > $logfile
+ fi
+ vim $logfile
+}
+
+# BASE16 Color Sheme Changer
+BASE16_SHELL=$HOME/.config/base16-shell/
+[ -n "$PS1" ] && [ -s $BASE16_SHELL/profile_helper.sh ] && eval "$($BASE16_SHELL/profile_helper.sh)"
+
+function _focus_left {
+i3-msg focus left >\dev\null
+}
+zle -N _focus_left
+function _focus_right {
+i3-msg focus right >\dev\null
+}
+zle -N _focus_right
+function _focus_up {
+i3-msg focus up >\dev\null
+}
+zle -N _focus_up
+function _focus_down {
+i3-msg focus down >\dev\null
+}
+zle -N _focus_down
+
+bindkey -v
+bindkey "\e[3~" delete-char
+bindkey "^h" _focus_left
+bindkey "^l" _focus_right
+bindkey "^k" _focus_up
+bindkey "^j" _focus_down