From 67a3c6d4264802cb0c506234b24d4c80fa52a76c Mon Sep 17 00:00:00 2001 From: 0scar Date: Sun, 9 Aug 2020 18:55:14 +0200 Subject: Initial --- .config/dunst/dunstrc | 58 ++++ .config/git/config | 26 ++ .config/git/gitignore | 199 +++++++++++ .config/i3/config | 281 ++++++++++++++++ .config/i3status/config | 83 +++++ .config/mimeapps.list | 34 ++ .config/texts/setsail | 26 ++ .config/texts/todo.md | 4 + .config/user-dirs.dirs | 15 + .config/user-dirs.locale | 1 + .config/vim/autoload/pathogen.vim | 264 +++++++++++++++ .config/vim/colors/cyberpunk.vim | 136 ++++++++ .config/vim/colors/jellybeans.vim | 673 ++++++++++++++++++++++++++++++++++++++ .config/vim/compiler/futhark.vim | 17 + .config/vim/ftdetect/cpp.vim | 2 + .config/vim/ftdetect/cu.vim | 1 + .config/vim/ftdetect/fut.vim | 2 + .config/vim/ftdetect/tex.vim | 9 + .config/vim/ftplugin/fut.vim | 8 + .config/vim/indent/fsharp.vim | 249 ++++++++++++++ .config/vim/indent/fut.vim | 90 +++++ .config/vim/syntax/fut.vim | 53 +++ .config/vim/vimrc | 117 +++++++ .config/vimrc | 129 ++++++++ .config/x/defaults | 60 ++++ .config/xinitrc | 7 + .config/zathura/zathurarc | 4 + .config/zsh/.zshrc | 233 +++++++++++++ .xinitrc | 7 + .zprofile | 47 +++ 30 files changed, 2835 insertions(+) create mode 100644 .config/dunst/dunstrc create mode 100644 .config/git/config create mode 100644 .config/git/gitignore create mode 100644 .config/i3/config create mode 100644 .config/i3status/config create mode 100644 .config/mimeapps.list create mode 100644 .config/texts/setsail create mode 100644 .config/texts/todo.md create mode 100644 .config/user-dirs.dirs create mode 100644 .config/user-dirs.locale create mode 100644 .config/vim/autoload/pathogen.vim create mode 100644 .config/vim/colors/cyberpunk.vim create mode 100644 .config/vim/colors/jellybeans.vim create mode 100644 .config/vim/compiler/futhark.vim create mode 100644 .config/vim/ftdetect/cpp.vim create mode 100644 .config/vim/ftdetect/cu.vim create mode 100644 .config/vim/ftdetect/fut.vim create mode 100644 .config/vim/ftdetect/tex.vim create mode 100644 .config/vim/ftplugin/fut.vim create mode 100644 .config/vim/indent/fsharp.vim create mode 100644 .config/vim/indent/fut.vim create mode 100644 .config/vim/syntax/fut.vim create mode 100644 .config/vim/vimrc create mode 100644 .config/vimrc create mode 100644 .config/x/defaults create mode 100644 .config/xinitrc create mode 100644 .config/zathura/zathurarc create mode 100644 .config/zsh/.zshrc create mode 100644 .xinitrc create mode 100644 .zprofile diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 100644 index 0000000..2fda75d --- /dev/null +++ b/.config/dunst/dunstrc @@ -0,0 +1,58 @@ +[global] +alignment = left +bounce_freq = 0 +browser = /usr/bin/firefox-developer-edition -new-tab +dmenu = /usr/bin/dmenu -p dunst: +follow = none +font = DejaVuSansMono Nerd Font Mono 11 +#font = Iosevka Term 11 +format = "%s\n%b" +frame_color = "#8EC07C" +frame_width = 3 +geometry = "300x50-15+49" +hide_duplicates_count = yes +history_length = 15 +horizontal_padding = 6 +icon_path = /usr/share/icons/Arc/mimetypes/16:/usr/share/icons/Arc/status/48:/usr/share/icons/Arc/devices/16:/usr/share/icons/Arc/emblems/48 +#icon_path = /usr/share/icons/Paper/16x16/mimetypes/:/usr/share/icons/Paper/48x48/status/:/usr/share/icons/Paper/16x16/devices/:/usr/share/icons/Paper/48x48/notifications/:/usr/share/icons/Paper/48x48/emblems/ +icon_position = off +idle_threshold = 0 +ignore_newline = no +indicate_hidden = yes +line_height = 3 +markup = yes +max_icon_size = 80 +monitor = 0 +padding = 6 +plain_text = no +separator_color = frame +separator_height = 2 +show_age_threshold = -1 +show_indicators = no +shrink = no +sort = no +stack_duplicates = yes +startup_notification = false +sticky_history = yes +transparency = 5 +word_wrap = yes +[shortcuts] +close = ctrl+space +close_all = ctrl+shift+space +history = ctrl+grave +context = ctrl+shift+period +[urgency_low] +frame_color = "#3B7C87" +foreground = "#3B7C87" +background = "#191311" +timeout = 4 +[urgency_normal] +frame_color = "#5B8234" +foreground = "#5B8234" +background = "#191311" +timeout = 6 +[urgency_critical] +frame_color = "#B7472A" +foreground = "#B7472A" +background = "#191311" +timeout = 8 diff --git a/.config/git/config b/.config/git/config new file mode 100644 index 0000000..f54ac6c --- /dev/null +++ b/.config/git/config @@ -0,0 +1,26 @@ +[user] + email = example@example.org + name = whoami + signingkey = example@example.org +[core] + editor = vim + excludesfile = ~/.config/git/gitignore + pager = less -F -X +[commit] + gpgsign = true +[gpg] + program = gpg +[diff] + tool = vimdiff +[pull] + rebase = true +[difftool] + prompt = false +[mergetool] + vimdiff = true + prompt = false +[alias] + d = difftool +[merge] + tool = vimdiff + conflictstyle = diff3 diff --git a/.config/git/gitignore b/.config/git/gitignore new file mode 100644 index 0000000..5c22bf0 --- /dev/null +++ b/.config/git/gitignore @@ -0,0 +1,199 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +*.tmp +*.pdf + +__pychache__/ + +# Some binaries +*.png +*.jpg + +## Intermediate documents: +*.dvi +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.brf +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.snm +*.vrb + +# cprotect +*.cpt + +# fixme +*.lox + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs + +# gnuplottex +*-gnuplottex-* + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Comment the next line if you want to keep your tikz graphics files +*.tikz +*-tikzDictionary + +# listings +*.lol + +# makeidx +*.idx +*.ilg +*.ind +*.ist + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc +*.mtc[0-9] +*.mtc[1-9][0-9] + +# minted +_minted* +*.pyg +*.pyc +# *.ipynb + +# morewrites +*.mw + +# mylatexformat +*.fmt + +# nomencl +*.nlo + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# xindy +*.xdy + +# xypic precompiled matrices +*.xyc + +# endfloat +*.ttt +*.fff + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# Kile +*.backup + +# KBibTeX +*~[0-9]* + +*.exe +*.o +*.out + +# Vim +*.swp +*.swo +*.zip + +tags +.tags diff --git a/.config/i3/config b/.config/i3/config new file mode 100644 index 0000000..37383e5 --- /dev/null +++ b/.config/i3/config @@ -0,0 +1,281 @@ +# i3 config file (v4) +# Please see http://i3wm.org/docs/userguide.html for a complete reference! +set $mod Mod4 + +### Variables +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Your preferred #terminal emulator +set $term st +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l + +font pango: DejaVuSans Mono Nerd Font Mono 12 + + +### Output configuration + +# Default wallpaper (more resolutions are available in /usr/share/sway/) +exec_always feh --bg-scale $HOME/pictures/bg2.png + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +### Key bindings + # start a terminal + #bindsym $mod+Return exec $term -f "DejaVuSansMono Nerd Font Mono:pixelsize=16" + bindsym $mod+Return exec $term + bindsym $mod+e exec urxvt -bg '[50]#000000' -g 220x40 -t float -e nnn + bindsym $mod+Shift+Return exec $term -t float + bindsym $mod+Shift+p exec $term -f ":pixelsize=24" + bindsym $mod+Shift+o exec $term -f ":pixelsize=18" + bindsym $mod+p exec feh -^ float_sticky -R 15 https://www.cafeen.org/test.php + bindsym Print exec import -window root -display :0 ~/scr.png && xclip -selection clip -t image/png ~/scr.png + bindsym $mod+c exec exec $term -title float -e fsharpi --consolecolors+ --nologo --use:.scripts/fsharpinit.fsx + bindsym $mod+Shift+v exec exec $term -t float -e vim + + # kill focused window + bindsym $mod+Shift+q kill + + # start your launcher + # bindsym $mod+d exec $menu + + bindsym $mod+Shift+d exec setxkbmap dk + bindsym $mod+Shift+s exec setxkbmap us + + # Brightness control + bindsym XF86MonBrightnessDown exec brightnessctl s 10%- + bindsym XF86MonBrightnessUp exec brightnessctl s 10%+ + + # Volume control + + bindsym XF86AudioLowerVolume exec pactl set-sink-volume $(pactl info | grep 'Default Sink' | sed -Ee 's/^.*: (.*)$/\1/g') -5% + bindsym XF86AudioRaiseVolume exec pactl set-sink-volume $(pactl info | grep 'Default Sink' | sed -Ee 's/^.*: (.*)$/\1/g') +5% + bindsym XF86AudioMute exec pactl set-sink-mute $(pactl info | grep 'Default Sink' | sed -Ee 's/^.*: (.*)$/\1/g') toggle + + +# Your preferred application launcher +bindsym $mod+d exec dmenu_run -i -q -fn 'DejaVuSansMono Nerd Font Mono' +#bindsym $mod+d exec rofi -show run -theme Pop-Dark +# Lock your computer +bindsym $mod+x exec i3lock -i $HOME/pictures/lock.png -t -f -e + +# Drag floating windows by holding down $mod and left mouse button. +# Resize them with right mouse button + $mod. +# Despite the name, also works for non-floating windows. +# Change normal to inverse to use left mouse button for resizing and right +# mouse button for dragging. +#floating_modifier $mod normal + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# split in horizontal orientation +bindsym $mod+b split h + +# split in vertical orientation +bindsym $mod+v split v + +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # _move_ the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # ditto, with arrow 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 +# +# Workspaces: +# + set $ws0 "0: " + set $ws1 "1: " + set $ws2 "2: " + set $ws3 "3: " + set $ws4 "4: " + set $ws5 "5:5" + set $ws6 "6:6" + set $ws7 "7:7" + set $ws8 "8:8" + set $ws9 "9: " + set $ws10 "10: " + # F1-12 + set $wsf01 "11:f1" + set $wsf02 "12:f2" + set $wsf03 "13:f3" + set $wsf04 "14:f4" + set $wsf05 "15:f5" + set $wsf06 "16:f6" + set $wsf07 "17:f7" + set $wsf08 "18:f8" + set $wsf09 "19:f9" + set $wsf10 "20:f10" + set $wsf11 "21:f11" + set $wsf12 "22:f12" + # switch to workspace + bindsym $mod+grave workspace $ws0 + bindsym $mod+onehalf workspace $ws0 + bindsym $mod+1 workspace $ws1 + bindsym $mod+2 workspace $ws2 + bindsym $mod+3 workspace $ws3 + bindsym $mod+4 workspace $ws4 + bindsym $mod+5 workspace $ws5 + bindsym $mod+6 workspace $ws6 + bindsym $mod+7 workspace $ws7 + bindsym $mod+8 workspace $ws8 + bindsym $mod+9 workspace $ws9 + bindsym $mod+0 workspace $ws10 + + bindsym $mod+F1 workspace $wsf01 + bindsym $mod+F2 workspace $wsf02 + bindsym $mod+F3 workspace $wsf03 + bindsym $mod+F4 workspace $wsf04 + bindsym $mod+F5 workspace $wsf05 + bindsym $mod+F6 workspace $wsf06 + bindsym $mod+F7 workspace $wsf07 + bindsym $mod+F8 workspace $wsf08 + bindsym $mod+F9 workspace $wsf09 + bindsym $mod+F10 workspace $wsf10 + bindsym $mod+F11 workspace $wsf11 + bindsym $mod+F12 workspace $wsf12 + + # move focused container to workspace + bindsym $mod+Shift+grave move container to workspace $ws0 + bindsym $mod+Shift+1 move container to workspace $ws1 + bindsym $mod+Shift+2 move container to workspace $ws2 + bindsym $mod+Shift+3 move container to workspace $ws3 + bindsym $mod+Shift+4 move container to workspace $ws4 + bindsym $mod+Shift+5 move container to workspace $ws5 + bindsym $mod+Shift+6 move container to workspace $ws6 + bindsym $mod+Shift+7 move container to workspace $ws7 + bindsym $mod+Shift+8 move container to workspace $ws8 + bindsym $mod+Shift+9 move container to workspace $ws9 + bindsym $mod+Shift+0 move container to workspace $ws10 + + bindsym $mod+Shift+F1 move container to workspace $wsf01 + bindsym $mod+Shift+F2 move container to workspace $wsf02 + bindsym $mod+Shift+F3 move container to workspace $wsf03 + bindsym $mod+Shift+F4 move container to workspace $wsf04 + bindsym $mod+Shift+F5 move container to workspace $wsf05 + bindsym $mod+Shift+F6 move container to workspace $wsf06 + bindsym $mod+Shift+F7 move container to workspace $wsf07 + bindsym $mod+Shift+F8 move container to workspace $wsf08 + bindsym $mod+Shift+F9 move container to workspace $wsf09 + bindsym $mod+Shift+F10 move container to workspace $wsf10 + bindsym $mod+Shift+F11 move container to workspace $wsf11 + bindsym $mod+Shift+F12 move container to workspace $wsf12 + +# change container layout (stacked, tabbed, toggle split) +#bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+s layout toggle split + + # Make the current focus fullscreen +bindsym $mod+f fullscreen toggle + +# 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 + +# Take webcam picture +bindsym $mod+z exec python ~/.scripts/cam_capture + +# focus the child container +#bindsym $mod+d focus child + + +new_window pixel 1 +floating_maximum_size 1600 x 800 + +hide_edge_borders both + +assign [class="firefox*"] workspace $ws2 +for_window [title="^test$"] floating enable +for_window [title="Steam Guard*"] floating enable +for_window [title="float"] floating enable +for_window [title="sticky"] sticky enable +for_window [title="(P|p)review"] floating enable +for_window [class="firefox*"] floating disabled +for_window [title="Opening*"] floating enabled + +# 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 $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 + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 2 px or 2 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 2 px or 2 ppt + bindsym Right resize grow width 10 px or 10 ppt + # Bigger resize + bindsym Shift+Left resize shrink width 20 px or 20 ppt + bindsym Shift+Down resize grow height 40 px or 40 ppt + bindsym Shift+Up resize shrink height 20 px or 20 ppt + bindsym Shift+Right resize grow width 20 px or 20 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status + position top + strip_workspace_numbers yes + font pango: DejaVu Sans, DejaVuSansMono Nerd Font 12 + bindsym button4 nop + bindsym button5 nop + colors { + background #1a1a1a + statusline #bbbbbb + } +} + +# class border backgr. text indicator child_border +client.focused #444444 #444444 #ffffff #2e9ef4 #222222 +client.focused_inactive #444444 #444444 #ffffff #2e9ef4 #222222 +client.unfocused #222222 #222222 #aaaaaa #2e9ef4 #111111 +client.urgent #444444 #444444 #dd0000 #2e9ef4 #111111 +client.placeholder #444444 #444444 #ffffff #2e9ef4 #111111 +client.background #444444 diff --git a/.config/i3status/config b/.config/i3status/config new file mode 100644 index 0000000..4990d5e --- /dev/null +++ b/.config/i3status/config @@ -0,0 +1,83 @@ +# i3status configuration file. +# see "man i3status" for documentation. + +# It is important that this file is edited as UTF-8. +# The following line should contain a sharp s: +# ß +# If the above line is not correctly displayed, fix your editor first! + +general { + output_format = i3bar + colors = true + interval = 5 + separator = " / " + color_good = "#68fc5a" + color_bad = "#fc785a" + color_degraded = "#fcf45a" +} + +order += "volume master" +order += "disk /" +order += "disk /home" +order += "wireless _first_" +order += "ethernet enp0s31f6" +order += "battery all" +order += "cpu_usage" +order += "cpu_temperature all" +order += "time" + +volume master { + format = "墳 %volume" + format_muted = "奄 %volume" + device = "default" + mixer = "Master" + mixer_idx = 0 +} + +wireless _first_ { + # if you use %speed, i3status requires root privileges + format_up = " " # %ip (%speed)" + format_down = "" # "E: down" +} + +ethernet enp0s31f6 { + # if you use %speed, i3status requires root privileges + format_up = " %ip" # %ip (%speed)" + format_down = "" # "E: down" +} + +battery all { + format = "%status %percentage" # %remaining" + hide_seconds = true + integer_battery_capacity = true + status_unk = "" + status_chr = "" # "[]" + status_bat = "" # "[]" + status_full = "" # "" + format_down = "" + last_full_capacity = true + low_threshold = 35 + threshold_type = percent +} + +time { + format = "%Y-%m-%d %H:%M" +} + +cpu_temperature all { + format = " %degrees°" + max_threshold = 50 +} + +cpu_usage { + format = " %usage" + max_threshold = 50 +} + +disk "/" { + format = " [%avail]" +} + +disk "/home" { + format = " [%avail]" +} diff --git a/.config/mimeapps.list b/.config/mimeapps.list new file mode 100644 index 0000000..d428e42 --- /dev/null +++ b/.config/mimeapps.list @@ -0,0 +1,34 @@ +[Added Associations] +application/pdf=com.github.xournalpp.xournalpp.desktop;org.pwmt.zathura-pdf-mupdf.desktop;org.gnome.Evince.desktop;firefox-developer-edition.desktop; +text/plain=vim.desktop; +application/postscript=org.gnome.Evince.desktop;firefox-developer-edition.desktop; +unknown/unknown=vim.desktop; +image/jpeg=vim.desktop; +text/x-chdr=vim.desktop; +text/markdown=firefox-developer-edition.desktop; +application/zip=vim.desktop; +x-scheme-handler/http=firefox-developer-edition.desktop; +x-scheme-handler/https=firefox-developer-edition.desktop; +x-scheme-handler/ftp=firefox-developer-edition.desktop; +x-scheme-handler/chrome=firefox-developer-edition.desktop; +text/html=firefox-developer-edition.desktop; +application/x-extension-htm=firefox-developer-edition.desktop; +application/x-extension-html=firefox-developer-edition.desktop; +application/x-extension-shtml=firefox-developer-edition.desktop; +application/xhtml+xml=firefox-developer-edition.desktop; +application/x-extension-xhtml=firefox-developer-edition.desktop; +application/x-extension-xht=firefox-developer-edition.desktop; +application/gzip=vim.desktop; + +[Default Applications] +x-scheme-handler/http=firefox-developer-edition.desktop +x-scheme-handler/https=firefox-developer-edition.desktop +x-scheme-handler/ftp=firefox-developer-edition.desktop +x-scheme-handler/chrome=firefox-developer-edition.desktop +text/html=firefox-developer-edition.desktop +application/x-extension-htm=firefox-developer-edition.desktop +application/x-extension-html=firefox-developer-edition.desktop +application/x-extension-shtml=firefox-developer-edition.desktop +application/xhtml+xml=firefox-developer-edition.desktop +application/x-extension-xhtml=firefox-developer-edition.desktop +application/x-extension-xht=firefox-developer-edition.desktop diff --git a/.config/texts/setsail b/.config/texts/setsail new file mode 100644 index 0000000..19ae457 --- /dev/null +++ b/.config/texts/setsail @@ -0,0 +1,26 @@ +-- .-""-. + ) ( ) + ( ) ( + / ) + (_ _) 0_,-.__ + (_ )_ |_.-._/ + ( ) |lulz..\ + (__) |__--_/ + |'' ``\ | + | [Lulz] \ | /b/ + | \ ,,,---===?A`\ | ,==y' + ___,,,,,---==""\ |M] \ | ;|\ |> + _ _ \ ___,|H,,---==""""bno, + o O (_) (_) \ / _ AWAW/ + / _(+)_ dMM/ + \@_,,,,,,---==" \ \\|// MW/ +--''''" === d/ + // SET SAIL FOR FAIL! + ,'_________________________ + \ \ \ \ ,/~~~~~~~~~~~~~~~~~~~~~~~~~~~ + _____ ,' ~~~ .-""-.~~~~~~ .-""-. + .-""-. ///==--- /`-._ ..-' -.__..-' + `-.__..-' =====\\\\\\ V/ .---\. + ~~~~~~~~~~~~, _',--/_.\ .-""-. + .-""-.___` -- \| -.__..- + diff --git a/.config/texts/todo.md b/.config/texts/todo.md new file mode 100644 index 0000000..62cdc37 --- /dev/null +++ b/.config/texts/todo.md @@ -0,0 +1,4 @@ +# Todo + +* ... +* ... diff --git a/.config/user-dirs.dirs b/.config/user-dirs.dirs new file mode 100644 index 0000000..fe1bd70 --- /dev/null +++ b/.config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME" +XDG_DOWNLOAD_DIR="$HOME/downloads" +XDG_TEMPLATES_DIR="$HOME" +XDG_PUBLICSHARE_DIR="$HOME" +XDG_DOCUMENTS_DIR="$HOME" +XDG_MUSIC_DIR="$HOME" +XDG_PICTURES_DIR="$HOME/pictures" +XDG_VIDEOS_DIR="$HOME" diff --git a/.config/user-dirs.locale b/.config/user-dirs.locale new file mode 100644 index 0000000..4889c8e --- /dev/null +++ b/.config/user-dirs.locale @@ -0,0 +1 @@ +en_GB \ No newline at end of file diff --git a/.config/vim/autoload/pathogen.vim b/.config/vim/autoload/pathogen.vim new file mode 100644 index 0000000..3582fbf --- /dev/null +++ b/.config/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/.config/vim/colors/cyberpunk.vim b/.config/vim/colors/cyberpunk.vim new file mode 100644 index 0000000..87ab9ac --- /dev/null +++ b/.config/vim/colors/cyberpunk.vim @@ -0,0 +1,136 @@ +""" =========================================================================== +" File: cyberpunk.vim +" Description: A port of Emacs' Cyberpunk colorscheme for vim. +""" =========================================================================== + +set background=dark + +if version > 580 + hi clear + if exists("syntax_on") + syntax reset + endif +endif + +let colors_name = "cyberpunk" + +" Cyberpunk theme colors {{{ +let s:colors = { + \ "cyberpunk-fg": "#dcdccc", + \ "cyberpunk-bg-1": "#2b2b2b", + \ "cyberpunk-bg-05": "#383838", + \ "cyberpunk-bg": "#000000", + \ "cyberpunk-bg+1": "#4f4f4f", + \ "cyberpunk-bg+2": "#5f5f5f", + \ "cyberpunk-bg+3": "#6f6f6f", + \ "cyberpunk-red+1": "#dca3a3", + \ "cyberpunk-red": "#ff0000", + \ "cyberpunk-red-1": "#8b0000", + \ "cyberpunk-red-2": "#8b0000", + \ "cyberpunk-red-3": "#9c6363", + \ "cyberpunk-red-4": "#8c5353", + \ "cyberpunk-red-5": "#7F073F", + \ "cyberpunk-pink": "#ff69b4", + \ "cyberpunk-pink-1": "#ff1493", + \ "cyberpunk-pink-2": "#cd1076", + \ "cyberpunk-orange-2": "#FF6400", + \ "cyberpunk-orange-1": "#ff8c00", + \ "cyberpunk-orange": "#ffa500", + \ "cyberpunk-yellow": "#ffff00", + \ "cyberpunk-yellow-1": "#FBDE2D", + \ "cyberpunk-yellow-2": "#d0bf8f", + \ "cyberpunk-yellow-3": "#D8FA3C", + \ "cyberpunk-yellow-4": "#E9C062", + \ "cyberpunk-yellow-5": "#ffd700", + \ "cyberpunk-green-2": "#006400", + \ "cyberpunk-green-1": "#2e8b57", + \ "cyberpunk-green": "#00ff00", + \ "cyberpunk-green+1": "#61CE3C", + \ "cyberpunk-green+2": "#9fc59f", + \ "cyberpunk-green+3": "#afd8af", + \ "cyberpunk-green+4": "#bfebbf", + \ "cyberpunk-cyan": "#93e0e3", + \ "cyberpunk-blue+1": "#94bff3", + \ "cyberpunk-blue": "#0000ff", + \ "cyberpunk-blue-1": "#7b68ee", + \ "cyberpunk-blue-2": "#6a5acd", + \ "cyberpunk-blue-3": "#add8e6", + \ "cyberpunk-blue-4": "#b2dfee", + \ "cyberpunk-blue-5": "#4c83ff", + \ "cyberpunk-blue-6": "#96CBFE", + \ "cyberpunk-blue-7": "#00ffff", + \ "cyberpunk-blue-8": "#4F94CD", + \ "cyberpunk-magenta": "#dc8cc3", + \ "cyberpunk-black": "#000000", + \ "cyberpunk-black-2": "#0C1021", + \ "cyberpunk-black-3": "#0A0A0A", + \ "cyberpunk-gray": "#d3d3d3", + \ "cyberpunk-gray-2": "#8B8989", + \ "cyberpunk-gray-3": "#919191", + \ "cyberpunk-gray-4": "#999999", + \ "cyberpunk-gray-5": "#333333", + \ "cyberpunk-gray-6": "#1A1A1A", + \ "cyberpunk-gray-7": "#4D4D4D", + \ "cyberpunk-gray-8": "#262626", + \ "cyberpunk-white": "#ffffff", + \ "cyberpunk-white-2": "#F8F8F8", + \ "cyberpunk-white-3": "#fffafa" +\ } + + +function! Hi(name, guifg, guibg) + let l:cmd = "hi " . a:name . " guifg=" . a:guifg . " guibg=" . a:guibg + exe l:cmd +endfunc + +call Hi("Normal", s:colors["cyberpunk-fg"], s:colors["cyberpunk-black"]) +call Hi("Cursor", s:colors["cyberpunk-fg"], s:colors["cyberpunk-yellow-1"]) +call Hi("Visual", s:colors["cyberpunk-fg"], s:colors["cyberpunk-red-5"]) +call Hi("Visual", s:colors["cyberpunk-fg"], s:colors["cyberpunk-red-5"]) +call Hi("LineNr", s:colors["cyberpunk-green+2"], s:colors["cyberpunk-bg"]) + +call Hi("DiffAdd", s:colors["cyberpunk-green"], s:colors["cyberpunk-black"]) +call Hi("DiffChange", s:colors["cyberpunk-yellow"], s:colors["cyberpunk-black"]) +call Hi("DiffDelete", s:colors["cyberpunk-red"], s:colors["cyberpunk-black"]) + +call Hi("StatusLine", s:colors["cyberpunk-gray-5"], s:colors["cyberpunk-blue-5"]) +call Hi("StatusLineNC", s:colors["cyberpunk-gray-6"], s:colors["cyberpunk-gray-7"]) + + +exe "hi Warning guifg=" . s:colors["cyberpunk-pink"] +call Hi("VertSplit", s:colors["cyberpunk-gray-5"], s:colors["cyberpunk-gray-5"]) + +if version >= 700 + exe "hi CursorLine guibg=" . s:colors["cyberpunk-gray-5"] +endif + +" Syntax highlighting {{{ +exe "hi String guifg=" . s:colors["cyberpunk-green+1"] +exe "hi Type guifg=" . s:colors["cyberpunk-yellow-3"] +exe "hi Function guifg=" . s:colors["cyberpunk-pink-1"] +exe "hi Comment guifg=" . s:colors["cyberpunk-gray-2"] . " cterm=italic" +exe "hi Keyword guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Identifier guifg=" . s:colors["cyberpunk-yellow-3"] +exe "hi Conditional guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Repeat guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Operator guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Label guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Structure guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi StorageClass guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Typedef guifg=" . s:colors["cyberpunk-yellow-1"] +exe "hi Constant guifg=" . s:colors["cyberpunk-blue-5"] +exe "hi PreProc guifg=" . s:colors["cyberpunk-gray-3"] + +exe "hi Delimiter guifg=" . s:colors["cyberpunk-fg"] +" Numbers +exe "hi Number guifg=" . s:colors["cyberpunk-fg"] +exe "hi Float guifg=" . s:colors["cyberpunk-fg"] +" }}} + +if has("gui_running") + set guicursor+=n-v-i:blinkwait750-blinkon750-blinkoff750 +endif + +exe "hi Directory guifg=" . s:colors["cyberpunk-pink-1"] + +exe "hi ExtraWhitespace guibg=" . s:colors["cyberpunk-red"] \ No newline at end of file diff --git a/.config/vim/colors/jellybeans.vim b/.config/vim/colors/jellybeans.vim new file mode 100644 index 0000000..40509a4 --- /dev/null +++ b/.config/vim/colors/jellybeans.vim @@ -0,0 +1,673 @@ +" Vim color file +" +" " __ _ _ _ " +" " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " +" " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " +" " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " +" " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " +" " \___/ " +" +" "A colorful, dark color scheme for Vim." +" +" File: jellybeans.vim +" URL: github.com/nanotech/jellybeans.vim +" Scripts URL: vim.org/scripts/script.php?script_id=2555 +" Maintainer: NanoTech (nanotech.nanotechcorp.net) +" Version: 1.6 +" Last Change: October 18th, 2016 +" License: MIT +" Contributors: Andrew Wong (w0ng) +" Brian Marshall (bmars) +" Daniel Herbert (pocketninja) +" David Liang +" Henry So, Jr. +" Joe Doherty (docapotamus) +" Karl Litterfeldt (Litterfeldt) +" Keith Pitt (keithpitt) +" Philipp Rustemeier (12foo) +" Rafael Bicalho (rbika) +" Rich Healey (richo) +" Siwen Yu (yusiwen) +" Tim Willis (willist) +" +" Copyright (c) 2009-2016 NanoTech +" +" Permission is hereby granted, free of charge, to any per‐ +" son obtaining a copy of this software and associated doc‐ +" umentation files (the “Software”), to deal in the Soft‐ +" ware without restriction, including without limitation +" the rights to use, copy, modify, merge, publish, distrib‐ +" ute, 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 PARTICU‐ +" LAR 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 CON‐ +" TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐ +" NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +" THE SOFTWARE. + +set background=dark + +hi clear + +if exists("syntax_on") + syntax reset +endif + +let colors_name = "jellybeans" + +if has("gui_running") || &t_Co == 88 || &t_Co == 256 + let s:low_color = 0 +else + let s:low_color = 1 +endif + +" Configuration Variables: +" - g:jellybeans_overrides (default = {}) +" - g:jellybeans_use_lowcolor_black (default = 1) +" - g:jellybeans_use_gui_italics (default = 1) +" - g:jellybeans_use_term_italics (default = 0) + +" let s:background_color = "151515" +let s:background_color = "none" + +if exists("g:jellybeans_overrides") + let s:overrides = g:jellybeans_overrides +else + let s:overrides = {} +endif + +" Backwards compatibility +if exists("g:jellybeans_background_color") + \ || exists("g:jellybeans_background_color_256") + \ || exists("g:jellybeans_use_term_background_color") + + let s:overrides = deepcopy(s:overrides) + + if !has_key(s:overrides, "background") + let s:overrides["background"] = {} + endif + + if exists("g:jellybeans_background_color") + let s:overrides["background"]["guibg"] = g:jellybeans_background_color + endif + + if exists("g:jellybeans_background_color_256") + let s:overrides["background"]["256ctermbg"] = g:jellybeans_background_color_256 + endif + + if exists("g:jellybeans_use_term_background_color") + \ && g:jellybeans_use_term_background_color + let s:overrides["background"]["ctermbg"] = "NONE" + let s:overrides["background"]["256ctermbg"] = "NONE" + endif +endif + +if !exists("g:jellybeans_use_lowcolor_black") || g:jellybeans_use_lowcolor_black + let s:termBlack = "Black" +else + let s:termBlack = "Grey" +endif + +" Color approximation functions by Henry So, Jr. and David Liang {{{ +" Added to jellybeans.vim by Daniel Herbert + +" returns an approximate grey index for the given grey level +fun! s:grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual grey level represented by the grey index +fun! s:grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" returns the palette index for the given grey index +fun! s:grey_color(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" returns an approximate color index for the given color level +fun! s:rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" returns the actual color level for the given color index +fun! s:rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" returns the palette index for the given R/G/B color indices +fun! s:rgb_color(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" returns the palette index to approximate the given R/G/B color levels +fun! s:color(r, g, b) + " map greys directly (see xterm's 256colres.pl) + if &t_Co == 256 && a:r == a:g && a:g == a:b && a:r > 3 && a:r < 243 + return float2nr(round(a:r - 8) / 10.0) + 232 + endif + + " get the closest grey + let l:gx = s:grey_number(a:r) + let l:gy = s:grey_number(a:g) + let l:gz = s:grey_number(a:b) + + " get the closest color + let l:x = s:rgb_number(a:r) + let l:y = s:rgb_number(a:g) + let l:z = s:rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " there are two possibilities + let l:dgr = s:grey_level(l:gx) - a:r + let l:dgg = s:grey_level(l:gy) - a:g + let l:dgb = s:grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = s:rgb_level(l:gx) - a:r + let l:dg = s:rgb_level(l:gy) - a:g + let l:db = s:rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " use the grey + return s:grey_color(l:gx) + else + " use the color + return s:rgb_color(l:x, l:y, l:z) + endif + else + " only one possibility + return s:rgb_color(l:x, l:y, l:z) + endif +endfun + +fun! s:is_empty_or_none(str) + return empty(a:str) || a:str ==? "NONE" +endfun + +" returns the palette index to approximate the 'rrggbb' hex string +fun! s:rgb(rgb) + if s:is_empty_or_none(a:rgb) + return "NONE" + endif + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return s:color(l:r, l:g, l:b) +endfun + +fun! s:prefix_highlight_value_with(prefix, color) + if s:is_empty_or_none(a:color) + return "NONE" + else + return a:prefix . a:color + endif +endfun + +fun! s:remove_italic_attr(attr) + let l:attr = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",") + if empty(l:attr) + let l:attr = "NONE" + endif + return l:attr +endfun + +" sets the highlighting for the given group +fun! s:X(group, fg, bg, attr, lcfg, lcbg) + if s:low_color + exec "hi ".a:group. + \ " ctermfg=".s:prefix_highlight_value_with("", a:lcfg). + \ " ctermbg=".s:prefix_highlight_value_with("", a:lcbg) + else + exec "hi ".a:group. + \ " guifg=".s:prefix_highlight_value_with("#", a:fg). + \ " guibg=".s:prefix_highlight_value_with("#", a:bg). + \ " ctermfg=".s:rgb(a:fg). + \ " ctermbg=".s:rgb(a:bg) + endif + + let l:attr = s:prefix_highlight_value_with("", a:attr) + + if exists("g:jellybeans_use_term_italics") && g:jellybeans_use_term_italics + let l:cterm_attr = l:attr + else + let l:cterm_attr = s:remove_italic_attr(l:attr) + endif + + if !exists("g:jellybeans_use_gui_italics") || g:jellybeans_use_gui_italics + let l:gui_attr = l:attr + else + let l:gui_attr = s:remove_italic_attr(l:attr) + endif + + exec "hi ".a:group." gui=".l:gui_attr." cterm=".l:cterm_attr +endfun +" }}} + +call s:X("Normal","e8e8d3",s:background_color,"","White","") +set background=dark + +if version >= 700 + call s:X("CursorLine","","1c1c1c","","",s:termBlack) + call s:X("CursorColumn","","1c1c1c","","",s:termBlack) + call s:X("MatchParen","ffffff","556779","bold","","DarkCyan") + + call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack) + call s:X("TabLineFill","9098a0","","","",s:termBlack) + call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White") + + " Auto-completion + call s:X("Pmenu","ffffff","606060","","White",s:termBlack) + call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White") +endif + +call s:X("Visual","","404040","","",s:termBlack) +call s:X("Cursor",s:background_color,"b0d0f0","","","") + +call s:X("LineNr","605958",s:background_color,"NONE",s:termBlack,"") +call s:X("CursorLineNr","ccc5c4","","NONE","White","") +call s:X("Comment","888888","","italic","Grey","") +call s:X("Todo","c7c7c7","","bold","White",s:termBlack) + +call s:X("StatusLine","000000","dddddd","italic","","White") +call s:X("StatusLineNC","ffffff","403c41","italic","White","Black") +call s:X("VertSplit","777777","403c41","",s:termBlack,s:termBlack) +call s:X("WildMenu","f0a0c0","302028","","Magenta","") + +call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"") +call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack) +call s:X("SignColumn","777777","333333","","",s:termBlack) +call s:X("ColorColumn","","000000","","",s:termBlack) + +call s:X("Title","70b950","","bold","Green","") + +call s:X("Constant","cf6a4c","","","Red","") +call s:X("Special","799d6a","","","Green","") +call s:X("Delimiter","668799","","","Grey","") + +call s:X("String","99ad6a","","","Green","") +call s:X("StringDelimiter","556633","","","DarkGreen","") + +call s:X("Identifier","c6b6ee","","","LightCyan","") +call s:X("Structure","8fbfdc","","","LightCyan","") +call s:X("Function","fad07a","","","Yellow","") +call s:X("Statement","8197bf","","","DarkBlue","") +call s:X("PreProc","8fbfdc","","","LightBlue","") + +hi! link Operator Structure +hi! link Conceal Operator + +call s:X("Type","ffb964","","","Yellow","") +call s:X("NonText","101010",s:background_color,"",s:termBlack,"") + +call s:X("SpecialKey","141414","","",s:termBlack,"") + +call s:X("Search","f0a0c0","302028","underline","Magenta","") + +call s:X("Directory","dad085","","","Yellow","") +call s:X("ErrorMsg","","902020","","","DarkRed") +hi! link Error ErrorMsg +hi! link MoreMsg Special +call s:X("Question","65C254","","","Green","") + + +" Spell Checking + +call s:X("SpellBad","","902020","underline","","DarkRed") +call s:X("SpellCap","","0000df","underline","","Blue") +call s:X("SpellRare","","540063","underline","","DarkMagenta") +call s:X("SpellLocal","","2D7067","underline","","Green") + +" Diff + +hi! link diffRemoved Constant +hi! link diffAdded String + +" VimDiff + +call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen") +call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed") +call s:X("DiffChange","","2B5B77","","White","DarkBlue") +call s:X("DiffText","8fbfdc","000000","reverse","Yellow","") + +" PHP + +hi! link phpFunctions Function +call s:X("StorageClass","c59f6f","","","Red","") +hi! link phpSuperglobal Identifier +hi! link phpQuoteSingle StringDelimiter +hi! link phpQuoteDouble StringDelimiter +hi! link phpBoolean Constant +hi! link phpNull Constant +hi! link phpArrayPair Operator +hi! link phpOperator Normal +hi! link phpRelation Normal +hi! link phpVarSelector Identifier + +" Python + +hi! link pythonOperator Statement + +" Ruby + +hi! link rubySharpBang Comment +call s:X("rubyClass","447799","","","DarkBlue","") +call s:X("rubyIdentifier","c6b6fe","","","Cyan","") +hi! link rubyConstant Type +hi! link rubyFunction Function + +call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","") +call s:X("rubySymbol","7697d6","","","Blue","") +hi! link rubyGlobalVariable rubyInstanceVariable +hi! link rubyModule rubyClass +call s:X("rubyControl","7597c6","","","Blue","") + +hi! link rubyString String +hi! link rubyStringDelimiter StringDelimiter +hi! link rubyInterpolationDelimiter Identifier + +call s:X("rubyRegexpDelimiter","540063","","","Magenta","") +call s:X("rubyRegexp","dd0093","","","DarkMagenta","") +call s:X("rubyRegexpSpecial","a40073","","","Magenta","") + +call s:X("rubyPredefinedIdentifier","de5577","","","Red","") + +" Erlang + +hi! link erlangAtom rubySymbol +hi! link erlangBIF rubyPredefinedIdentifier +hi! link erlangFunction rubyPredefinedIdentifier +hi! link erlangDirective Statement +hi! link erlangNode Identifier + +" Elixir + +hi! link elixirAtom rubySymbol + + +" JavaScript + +hi! link javaScriptValue Constant +hi! link javaScriptRegexpString rubyRegexp +hi! link javaScriptTemplateVar StringDelim +hi! link javaScriptTemplateDelim Identifier +hi! link javaScriptTemplateString String + +" CoffeeScript + +hi! link coffeeRegExp javaScriptRegexpString + +" Lua + +hi! link luaOperator Conditional + +" C + +hi! link cFormat Identifier +hi! link cOperator Constant + +" Objective-C/Cocoa + +hi! link objcClass Type +hi! link cocoaClass objcClass +hi! link objcSubclass objcClass +hi! link objcSuperclass objcClass +hi! link objcDirective rubyClass +hi! link objcStatement Constant +hi! link cocoaFunction Function +hi! link objcMethodName Identifier +hi! link objcMethodArg Normal +hi! link objcMessageName Identifier + +" Vimscript + +hi! link vimOper Normal + +" HTML + +hi! link htmlTag Statement +hi! link htmlEndTag htmlTag +hi! link htmlTagName htmlTag + +" XML + +hi! link xmlTag Statement +hi! link xmlEndTag xmlTag +hi! link xmlTagName xmlTag +hi! link xmlEqual xmlTag +hi! link xmlEntity Special +hi! link xmlEntityPunct xmlEntity +hi! link xmlDocTypeDecl PreProc +hi! link xmlDocTypeKeyword PreProc +hi! link xmlProcessingDelim xmlAttrib + +" Debugger.vim + +call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue") +call s:X("DbgBreakPt","","4F0037","","","DarkMagenta") + +" vim-indent-guides + +if !exists("g:indent_guides_auto_colors") + let g:indent_guides_auto_colors = 0 +endif +call s:X("IndentGuidesOdd","","232323","","","") +call s:X("IndentGuidesEven","","1b1b1b","","","") + +" Plugins, etc. + +hi! link TagListFileName Directory +call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green") + +" Manual overrides for 256-color terminals. Dark colors auto-map badly. +if !s:low_color + hi StatusLineNC ctermbg=235 + hi Folded ctermbg=236 + hi DiffText ctermfg=81 + hi DbgBreakPt ctermbg=53 + hi IndentGuidesOdd ctermbg=235 + hi IndentGuidesEven ctermbg=234 +endif + +if !empty("s:overrides") + fun! s:current_attr(group) + let l:synid = synIDtrans(hlID(a:group)) + let l:attrs = [] + for l:attr in ["bold", "italic", "reverse", "standout", "underline", "undercurl"] + if synIDattr(l:synid, l:attr, "gui") == 1 + call add(l:attrs, l:attr) + endif + endfor + return join(l:attrs, ",") + endfun + fun! s:current_color(group, what, mode) + let l:color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode) + if l:color == -1 + return "" + else + return substitute(l:color, "^#", "", "") + endif + endfun + fun! s:load_color_def(group, def) + call s:X(a:group, get(a:def, "guifg", s:current_color(a:group, "fg", "gui")), + \ get(a:def, "guibg", s:current_color(a:group, "bg", "gui")), + \ get(a:def, "attr", s:current_attr(a:group)), + \ get(a:def, "ctermfg", s:current_color(a:group, "fg", "cterm")), + \ get(a:def, "ctermbg", s:current_color(a:group, "bg", "cterm"))) + if !s:low_color + for l:prop in ["ctermfg", "ctermbg"] + let l:override_key = "256".l:prop + if has_key(a:def, l:override_key) + exec "hi ".a:group." ".l:prop."=".a:def[l:override_key] + endif + endfor + endif + endfun + fun! s:load_colors(defs) + for [l:group, l:def] in items(a:defs) + if l:group == "background" + call s:load_color_def("LineNr", l:def) + call s:load_color_def("NonText", l:def) + call s:load_color_def("Normal", l:def) + else + call s:load_color_def(l:group, l:def) + endif + unlet l:group + unlet l:def + endfor + endfun + call s:load_colors(s:overrides) + delf s:load_colors + delf s:load_color_def + delf s:current_color + delf s:current_attr +endif + +call s:X("ExtraWhitespace","902020","902020","","red",s:termBlack) +match ExtraWhitespace /^\t*\zs \+/ +match ExtraWhitespace /\s\+$/ + +" delete functions {{{ +delf s:X +delf s:remove_italic_attr +delf s:prefix_highlight_value_with +delf s:rgb +delf s:is_empty_or_none +delf s:color +delf s:rgb_color +delf s:rgb_level +delf s:rgb_number +delf s:grey_color +delf s:grey_level +delf s:grey_number +" }}} diff --git a/.config/vim/compiler/futhark.vim b/.config/vim/compiler/futhark.vim new file mode 100644 index 0000000..132ccfe --- /dev/null +++ b/.config/vim/compiler/futhark.vim @@ -0,0 +1,17 @@ +" Vim compiler file +" Compiler: Futhark Compiler +" Latest Revision: 2020/05/24 + +if exists("current_compiler") || &cp + finish +endif +let current_compiler = "futhark" + +let s:cpo_save = "futhark" +set cpo&vim + +"CompilerSet errorformat=Error at %f:%l:%c-%v:\r%m + + +let &cpo = s:cpo_save +unlet s:cpo_save diff --git a/.config/vim/ftdetect/cpp.vim b/.config/vim/ftdetect/cpp.vim new file mode 100644 index 0000000..3166fda --- /dev/null +++ b/.config/vim/ftdetect/cpp.vim @@ -0,0 +1,2 @@ +autocmd BufRead *.cpp setlocal tabstop=4 +autocmd BufRead *.cpp setlocal shiftwidth=4 diff --git a/.config/vim/ftdetect/cu.vim b/.config/vim/ftdetect/cu.vim new file mode 100644 index 0000000..d7e8516 --- /dev/null +++ b/.config/vim/ftdetect/cu.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile *.cu,*.cuh,*.cu.h set filetype=cuda diff --git a/.config/vim/ftdetect/fut.vim b/.config/vim/ftdetect/fut.vim new file mode 100644 index 0000000..2c281c7 --- /dev/null +++ b/.config/vim/ftdetect/fut.vim @@ -0,0 +1,2 @@ +au BufRead,BufNewFile *.fut set filetype=fut +au BufRead,BufNewFile *.fut set includeexpr=v:fname.'.fut' diff --git a/.config/vim/ftdetect/tex.vim b/.config/vim/ftdetect/tex.vim new file mode 100644 index 0000000..43f5fde --- /dev/null +++ b/.config/vim/ftdetect/tex.vim @@ -0,0 +1,9 @@ +" put \begin{} \end{} tags tags around the current word +autocmd BufRead *.tex map YpkI\begin{A}jI\end{A}kA +autocmd BufRead *.tex map! YpkI\begin{A}jI\end{A}kA +autocmd BufRead *.tex map :call Synctex() + +"autocmd BufRead *.tex imap /\ \land +"autocmd BufRead *.tex imap \/ \lor +"autocmd BufRead *.tex imap -> \rightarrow +"autocmd BufRead *.tex imap ~~ \neg diff --git a/.config/vim/ftplugin/fut.vim b/.config/vim/ftplugin/fut.vim new file mode 100644 index 0000000..29410d5 --- /dev/null +++ b/.config/vim/ftplugin/fut.vim @@ -0,0 +1,8 @@ +" ftplugin/fut.vim +setlocal commentstring=--%s +setlocal comments=:-- +setlocal iskeyword+=',_ +setlocal tabstop=2 +setlocal softtabstop=2 +setlocal shiftwidth=2 +setlocal expandtab diff --git a/.config/vim/indent/fsharp.vim b/.config/vim/indent/fsharp.vim new file mode 100644 index 0000000..6227bdd --- /dev/null +++ b/.config/vim/indent/fsharp.vim @@ -0,0 +1,249 @@ +" Vim indent file +" Language: FSharp +" Maintainers: Jean-Francois Yuen +" Mike Leary +" Markus Mottl +" Rudi Grinberg +" Gregor Uhlenheuer +" Last Change: 2013 Jun 29 +" 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working +" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM) +" 2013 June - commented textwidth (Marc Weber) +" 2014 August - Ported to F# +" 2014 August - F# specific cleanup +" +" Marc Weber's comment: This file may contain a lot of (very custom) stuff +" which eventually should be moved somewhere else .. + +" Only load this indent file when no other was loaded. + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetFsharpIndent() +setlocal indentkeys+=0=and,0=class,0=constraint,0=done,0=else,0=end,0=exception,0=external,0=if,0=in,0=include,0=inherit,0=let,0=method,0=open,0=then,0=type,0=val,0=with,0;;,0>\],0\|\],0>},0\|,0},0\],0) + +" Only define the function once. +if exists("*GetFsharpIndent") + finish +endif + +" Skipping pattern, for comments +function! s:GetLineWithoutFullComment(lnum) + let lnum = prevnonblank(a:lnum - 1) + let lline = substitute(getline(lnum), '(\*.*\*)\s*$', '', '') + while lline =~ '^\s*$' && lnum > 0 + let lnum = prevnonblank(lnum - 1) + let lline = substitute(getline(lnum), '(\*.*\*)\s*$', '', '') + endwhile + return lnum +endfunction + +" Indent for ';;' to match multiple 'let' +function! s:GetInd(lnum, pat, lim) + let llet = search(a:pat, 'bW') + let old = indent(a:lnum) + while llet > 0 + let old = indent(llet) + let nb = s:GetLineWithoutFullComment(llet) + if getline(nb) =~ a:lim + return old + endif + let llet = search(a:pat, 'bW') + endwhile + return old +endfunction + +" Indent pairs +function! s:FindPair(pstart, pmid, pend) + call search(a:pend, 'bW') + return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment"')) +endfunction + +" Indent 'let' +function! s:FindLet(pstart, pmid, pend) + call search(a:pend, 'bW') + return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\\s*$' + " return ind + &sw + " endif + + let line = getline(v:lnum) + + " Indent if current line begins with 'end': + if line =~ '^\s*end\>' + return s:FindPair(s:module, '','\') + + " Indent if current line begins with 'done' for 'do': + elseif line =~ '^\s*done\>' + return s:FindPair('\', '','\') + + " Indent if current line begins with '}' or '>}': + elseif line =~ '^\s*\(\|>\)}' + return s:FindPair('{', '','}') + + " Indent if current line begins with ']', '|]' or '>]': + elseif line =~ '^\s*\(\||\|>\)\]' + return s:FindPair('\[', '','\]') + + " Indent if current line begins with ')': + elseif line =~ '^\s*)' + return s:FindPair('(', '',')') + + " Indent if current line begins with 'let': + elseif line =~ '^\s*let\>' + if lline !~ s:lim . '\|' . s:letlim . '\|' . s:beflet + return s:FindLet(s:type, '','\' + if lline !~ s:lim . '\|\\)\|\<\(function\|private\|with\)\s*$' + call search('|', 'bW') + return indent(searchpair('^\s*\(match\|type\)\>\|\<\(function\|private\|with\)\s*$', '', '^\s*|', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") !~ "^\\s*|.*->"')) + endif + + " Indent if current line begins with ';;': + elseif line =~ '^\s*;;' + if lline !~ ';;\s*$' + return s:GetInd(v:lnum, s:letpat, s:letlim) + endif + + " Indent if current line begins with 'in': + elseif line =~ '^\s*in\>' + if lline !~ '^\s*\(let\|and\)\>' + return s:FindPair('\', '', '\') + endif + + " Indent if current line begins with 'else': + elseif line =~ '^\s*else\>' + if lline !~ '^\s*\(if\|then\)\>' + return s:FindPair('\', '', '\') + endif + + " Indent if current line begins with 'then': + elseif line =~ '^\s*then\>' + if lline !~ '^\s*\(if\|else\)\>' + return s:FindPair('\', '', '\') + endif + + " Indent if current line begins with 'and': + elseif line =~ '^\s*and\>' + if lline !~ '^\s*\(and\|let\|type\)\>\|\' + if lline !~ '^\s*\(match\|try\)\>' + return s:FindPair('\<\%(match\|try\)\>', '','\') + endif + + " Indent if current line begins with 'exception', 'external', 'include' or + " 'open': + elseif line =~ '^\s*\(exception\|external\|include\|open\)\>' + if lline !~ s:lim . '\|' . s:letlim + call search(line) + return indent(search('^\s*\(\(exception\|external\|include\|open\|type\)\>\|val\>.*:\)', 'bW')) + endif + + " Indent if current line begins with 'val': + elseif line =~ '^\s*val\>' + if lline !~ '^\s*\(exception\|external\|include\|open\)\>\|' . s:obj . '\|' . s:letlim + return indent(search('^\s*\(\(exception\|include\|initializer\|method\|open\|type\|val\)\>\|external\>.*:\)', 'bW')) + endif + + " Indent if current line begins with 'constraint', 'inherit', 'initializer' + " or 'method': + elseif line =~ '^\s*\(constraint\|inherit\|initializer\|method\)\>' + if lline !~ s:obj + return indent(search('\<\(object\|object\s*(.*)\)\s*$', 'bW')) + &sw + endif + + endif + + " Add a 'shiftwidth' after lines ending with: + if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|private\|sig\|struct\|then\|try\)\|\') + + " Back to normal indent after lines ending with 'in': + elseif lline =~ '\' + let ind = s:FindPair('\', '', '\') + + " Back to normal indent after lines ending with 'done': + elseif lline =~ '\', '','\') + + " Back to normal indent after lines ending with '}' or '>}': + elseif lline =~ '\(\|>\)}\s*$' + let ind = s:FindPair('{', '','}') + + " Back to normal indent after lines ending with ']', '|]' or '>]': + elseif lline =~ '\(\||\|>\)\]\s*$' + let ind = s:FindPair('\[', '','\]') + + " Back to normal indent after comments: + elseif lline =~ '\*)\s*$' + call search('\*)', 'bW') + let ind = indent(searchpair('(\*', '', '\*)', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')) + + " Back to normal indent after lines ending with ')': + elseif lline =~ ')\s*$' + let ind = s:FindPair('(', '',')') + + " If this is a multiline comment then align '*': + elseif lline =~ '^\s*(\*' && line =~ '^\s*\*' + let ind = ind + 1 + + else + " Don't change indentation of this line + " for new lines (indent==0) use indentation of previous line + + " This is for preventing removing indentation of these args: + " let f x = + " let y = x + 1 in + " Printf.printf + " "o" << here + " "oeuth" << don't touch indentation + + let i = indent(v:lnum) + return i == 0 ? ind : i + + endif + + return ind + +endfunction + +" vim: sw=4 et sts=4 diff --git a/.config/vim/indent/fut.vim b/.config/vim/indent/fut.vim new file mode 100644 index 0000000..fb0df69 --- /dev/null +++ b/.config/vim/indent/fut.vim @@ -0,0 +1,90 @@ +" Vim indent file +" Language: Futhark +" Authors: Bene Collyridam, 0undefined +" Last Change: 2020/01/11 + +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +setlocal nolisp +setlocal autoindent + +setlocal indentkeys=0{,0},0),0],!^F,e,o,O +setlocal indentexpr=FutharkIndent(v:lnum) + +if exists("*FutharkIndent") + finish +endif + +let s:save_cpo = &cpo +set cpo&vim + +function! s:get_line_trimmed(lnum) + " Get the line and remove a trailing comment. + " Use syntax highlighting attributes when possible. + " NOTE: this is not accurate; /* */ or a line continuation could trick it + let line = getline(a:lnum) + let line_len = strlen(line) + if has('syntax_items') + " If the last character in the line is a comment, do a binary search for + " the start of the comment. synID() is slow, a linear search would take + " too long on a long line. + if synIDattr(synID(a:lnum, line_len, 1), "name") =~ 'Comment\|Todo' + let min = 1 + let max = line_len + while min < max + let col = (min + max) / 2 + if synIDattr(synID(a:lnum, col, 1), "name") =~ 'Comment\|Todo' + let max = col + else + let min = col + 1 + endif + endwhile + let line = strpart(line, 0, min - 1) + endif + return substitute(line, "\s*$", "", "") + else + " Sorry, this is not complete, nor fully correct (e.g. string "--"). + " Such is life. + return substitute(line, "\s*--.*$", "", "") + endif +endfunction + +function! FutharkIndent(lnum) + let line = getline(a:lnum) + let prevNum = prevnonblank(a:lnum - 1) + let prev = s:get_line_trimmed(prevNum) + while prevNum > 1 && prevline !~ '[^[:blank:]]' + let prevNum = prevnonblank(prevNum - 1) + let prev = s:get_line_trimmed(prevNum) + endwhile + + if prev[len(prevline) - 1] == "," + \ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]' + \ && prevline !~ '^\s*let\s' + \ && prevline !~ '([^()]\+,$' + \ && s:get_line_trimmed(a:lnum) !~ '^\s*\S\+\s*=>' + return indent(prevNum) + endif + + " Indent extra if matching these patterns + if prev =~ "=$" + \ || prev =~ "->$" + \ || prev =~ "do$" + \ || prev =~ "($" + \ || prev =~ "in$" + \ || prev =~ "then$" + \ || prev =~ "else$" + return indent(prevNum) + &shiftwidth + + " Else keep same level of indentation + else + return indent(prevNum) + + endif +endfunction + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/.config/vim/syntax/fut.vim b/.config/vim/syntax/fut.vim new file mode 100644 index 0000000..d3d7b78 --- /dev/null +++ b/.config/vim/syntax/fut.vim @@ -0,0 +1,53 @@ +syntax case match + +syn match FutharkAssigment "\v\=" +syn match FutharkOperator "\(+\|-\|*\|/\|>\|<\|%\|!\|&\||\|\^\)" +syn match FutharkOperator "\(++\|==\|!=\|>->\|<-<\||>\|<|\)" containedin=FutharkLambdaOperator + +" Literally the same, just with parenthesis +syn match FutharkLambdaOperator "(\ *\(++\|==\|!=\|>->\|<-<\||>\|<|\)\ *)" +syn match FutharkLambdaOperator "(\ *\(+\|-\|*\|/\|>\|<\|%\|!\|&\||\|^\)\ *)" +" Except for these two +syn match FutharkLambdaOperator "(\ *\(\.[1-9][0-9]*\)\ *)" +syn match FutharkLambdaOperator /).[1-9][0-9]*/ms=s+1 + +syn match Number "\v[+-]?<((\d+|0[xX]\x+|0[bB][01]+)([ui](8|16|32|64))?)>" + +syn match float "\v[+-]?<((\d+(\.\d+)?)(f(32|64))?)>" + +" Exponent +syn match float "\v-?(\d(\d|_)*|(\d(\d|_)*)?\.(\d(\d|_)*))[eE][+\-]?\d+" + +syn keyword boolean true false + +syn match FutIdentifier "\v\h(\w|')*" skipwhite contained contains=NONE + +syn keyword type i8 i16 i32 i64 u8 u16 u32 u64 int real bool char f32 f64 + +syn keyword conditional if then else +syn keyword Statement loop with entry for while do in local val +syn keyword keyword concat zip unzip unsafe +syn keyword typedef type +syn keyword FutharkBinding let entry nextgroup=FutIdentifier skipwhite skipempty +syn keyword PreProc module open import nextgroup=FutIdentifier skipwhite skipempty + +syn keyword function map map1 map2 map3 map4 map5 stream_map stream_map_per +syn keyword function reduce reduce_comm scan filter partition +syn keyword function stream_red stream_red_per stream_seq iota +syn keyword function replicate scatter drop +syn keyword function rotate split flatten unflatten +syn keyword function curry uncurry +syn keyword function id const + +syn match constant /'.'/ + +syn region string start=/"/ skip=/\\"/ end=/"/ keepend excludenl + +syn match comment "--.*$" + +hi def link FutIdentifier Function + +hi def link FutharkBinding Statement +hi def link number constant +hi def link FutharkOperator operator +hi def link FutharkLambdaOperator operator diff --git a/.config/vim/vimrc b/.config/vim/vimrc new file mode 100644 index 0000000..d590f53 --- /dev/null +++ b/.config/vim/vimrc @@ -0,0 +1,117 @@ +set directory=$XDG_CACHE_HOME/vim,~/,/tmp +set backupdir=$XDG_CACHE_HOME/vim,~/,/tmp +set viminfo+=n$XDG_CACHE_HOME/vim/viminfo +let $MYVIMRC="$XDG_CONFIG_HOME/vim/vimrc" +set runtimepath=$XDG_CONFIG_HOME/vim,$XDG_CONFIG_HOME/vim/after,$VIM,$VIMRUNTIME +runtime! archlinux.vim +scriptencoding utf-8 + +" behaviour +set history=200 +set wildmenu +set ruler +set cursorline +set showmatch +set hlsearch +set nocompatible +set backspace=2 +set incsearch +set formatoptions+=tcroqn2bmj +"set formatoptions+=1cjmnoqrw +"set formatoptions+=2acjnoqrtw +set relativenumber +set number + +" Enable mouse support +set mouse=a + +" tabs +set expandtab +set tabstop=2 +set softtabstop=2 +set shiftwidth=2 +set smartindent +set textwidth=80 +set wrap + +" theme +syntax enable + +" thematics +set background=dark +colorscheme jellybeans +"set listchars=space:·\,eol:¬ +set listchars= +set list + + +" adding pathogen +execute pathogen#infect('bundle/{}') +filetype plugin indent on + +" encodings +set fileencoding=utf-8 +set encoding=utf-8 +set fileformats=unix + +set viminfofile=${XDG_DATA_HOME:-$HOME/.local/share}/viminfo + +set grepprg=grep\ -nH\ $* + +"set statusline+=%#warningmsg# +"set statusline+=%{SyntasticStatuslineFlag()} +"set statusline+=%* + +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_check_on_wq = 0 + +" filetypes +let g:syntastic_disabled_filetypes=['asm', 's', 'latex', 'tex'] + +let g:tex_flavor='latex' +let g:vimtex_view_method='zathura' +let g:vimtex_quickfix_mode=0 +set conceallevel=2 +let g:tex_conceal='abdmg' +"let g:syntastic_tex_checkers=['lacheck'] +let g:vimtex_compiler_method = 'latexrun' +let g:vimtex_compiler_latexrun = { + \ 'backend' : 'jobs', + \ 'background' : 1, + \ 'build_dir' : 'latex.out', + \ 'options' : [ + \ '-verbose-cmds', + \ '--latex-args="-synctex=1"', + \ ], + \} + +let g:latex_view_general_viewer = 'zathura' +let g:vimtex_view_method = 'zathura' + +function! Synctex() + " remove 'silent' for debugging + execute "silent !mv -u latex.out/" . bufname('%')[:-5] . ".synctex.gz ." + execute "silent !zathura --synctex-forward " . line('.') . ":" . col('.') . ":" . bufname('%') . " " . bufname('%')[:-5] . ".pdf" + redraw! +endfunction + +map :make +au BufNewFile,BufRead *.fo setlocal ft=fasto +au BufNewFile,BufRead /tmp/[a-zA-Z0-9]\+/ setlocal ft=sh + +" Remove trailing cancer on write +autocmd BufWritePre * %s/\s\+$//e +autocmd BufWritePost *.tex !latexrun --bibtex-cmd="biber" --latex-args="-synctex=1" % + +set makeprg=GCC_COLORS=\ make + +vnoremap // y/\V" + +map! [1;5A +map! [1;5B +map! [1;5C +map! [1;5D + +autocmd VimEnter * silent !echo -ne "\e[1 q" diff --git a/.config/vimrc b/.config/vimrc new file mode 100644 index 0000000..63f8fe1 --- /dev/null +++ b/.config/vimrc @@ -0,0 +1,129 @@ +runtime! archlinux.vim +scriptencoding utf-8 + +" behaviour +set history=200 +set wildmenu +set ruler +set cursorline +set showmatch +set hlsearch +set nocompatible +set backspace=2 +set incsearch +set formatoptions+=tcroqn2bmj +"set formatoptions+=1cjmnoqrw +"set formatoptions+=2acjnoqrtw +set relativenumber +set number + +" Enable mouse support +set mouse=a + +" tabs +set expandtab +set tabstop=2 +set softtabstop=2 +set shiftwidth=2 +set smartindent +set textwidth=80 +set wrap + +" theme +syntax enable + +set background=dark +colorscheme jellybeans + +" Need to set runtimepath before calling pathogen +set runtimepath=~/.vim,$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after,~/.vim/after + +" adding pathogen +execute pathogen#infect('bundle/{}') +filetype plugin indent on + +" encodings +set fileencoding=utf-8 +set encoding=utf-8 +set ffs=unix + +set viminfofile=${XDG_DATA_HOME:-$HOME/.local/share}/viminfo + +" some syntastics +"set listchars=space:·\,eol:¬ +set listchars= +set list + +set grepprg=grep\ -nH\ $* + +"set statusline+=%#warningmsg# +"set statusline+=%{SyntasticStatuslineFlag()} +"set statusline+=%* + +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_check_on_wq = 0 + +" filetypes +let g:syntastic_disabled_filetypes=['asm', 's', 'latex', 'tex'] + +let g:tex_flavor='latex' +let g:vimtex_view_method='zathura' +let g:vimtex_quickfix_mode=0 +set conceallevel=2 +let g:tex_conceal='abdmg' +"let g:syntastic_tex_checkers=['lacheck'] +let g:vimtex_compiler_method = 'latexrun' +let g:vimtex_compiler_latexrun = { + \ 'backend' : 'jobs', + \ 'background' : 1, + \ 'build_dir' : 'latex.out', + \ 'options' : [ + \ '-verbose-cmds', + \ '--latex-args="-synctex=1"', + \ ], + \} + +let g:latex_view_general_viewer = 'zathura' +let g:vimtex_view_method = 'zathura' + +function! Synctex() + " remove 'silent' for debugging + execute "silent !mv -u latex.out/" . bufname('%')[:-5] . ".synctex.gz ." + execute "silent !zathura --synctex-forward " . line('.') . ":" . col('.') . ":" . bufname('%') . " " . bufname('%')[:-5] . ".pdf" + redraw! +endfunction + +map :make +au BufNewFile,BufRead *.fo setlocal ft=fasto +au BufNewFile,BufRead /tmp/[a-zA-Z0-9]\+/ setlocal ft=sh + + +match ErrorMsg '\%>80v.\+' +match ErrorMsg ' \+$' +match ErrorMsg ' \+$' + +" Remove trailing cancer on write +autocmd BufWritePre * %s/\s\+$//e +autocmd BufWritePost *.tex !latexrun --bibtex-cmd="biber" --latex-args="-synctex=1" % +"autocmd BufWritePost *.tex !latexrun --latex-cmd xelatex % +"autocmd BufWritePost *.tex !latexrun --latex-cmd xelatex --bibtex-cmd biber % + +set makeprg=GCC_COLORS=\ make + +vnoremap // y/\V" + +map [1;5A +map [1;5B +map [1;5C +map [1;5D +map! [1;5A +map! [1;5B +map! [1;5C +map! [1;5D + +map [1;3C :tabnext +map [1;3D :tabprevious + +autocmd VimEnter * silent !echo -ne "\e[1 q" diff --git a/.config/x/defaults b/.config/x/defaults new file mode 100644 index 0000000..2fa5930 --- /dev/null +++ b/.config/x/defaults @@ -0,0 +1,60 @@ +URxvt.font: xft:DejaVuSansMono Nerd Font Mono:pixelsize=14 +URxvt.boldFont: xft:DejaVuSansMono Nerd Font Mono:style=bold +URxvt.italicFont: xft:DejaVuSansMono Nerd Font Mono:style=oblique +URxvt.boldItalicfont: xft:DejaVuSansMono Nerd Font Mono:style=bold oblique + +URxvt.reverseVideo: false +URxvt.saveLines: 1024 +URxvt.scrollBar: false + +! True transparency +URxvt.depth: 32 +URxvt.background: [0]#000000 +URxvt.foreground: [100]#ffffff +! Native (fake) transparency +!URxvt.shading: 20 +!URxvt.transparent: true + +URxvt.keysym.Control-Up: \033[1;5A +URxvt.keysym.Control-Down: \033[1;5B +URxvt.keysym.Control-Left: \033[1;5D +URxvt.keysym.Control-Right: \033[1;5C + +st.alpha: 0.80 + +! IR_Black +*.foreground: #f1f1f1 +*.background: #000000 +*.cursorColor: #f0f080 + +! Black +*.color0: #4f4f4f +*.color8: #7b7b7b + +! Red +*.color1: #fa6c60 +*.color9: #fcb6b0 + +! Green +*.color2: #a8ff60 +*.color10: #cfffab + +! Yellow +*.color3: #fffeb7 +*.color11: #ffffcc + +! Blue +*.color4: #96cafe +*.color12: #b5dcff + +! Magenta +*.color5: #fa73fd +*.color13: #fb9cfe + +! Cyan +*.color6: #c6c5fe +*.color14: #e0e0fe + +! White +*.color7: #efedef +*.color15: #ffffff diff --git a/.config/xinitrc b/.config/xinitrc new file mode 100644 index 0000000..e1c9c8a --- /dev/null +++ b/.config/xinitrc @@ -0,0 +1,7 @@ +systemctl --user import-environment DISPLAY +feh --no-fehbg --bg-scale ~/pictures/bg2.png +# xrdb -m $XDEFAULTS +dunst & +xcompmgr & +# exec i3 +exec dwm diff --git a/.config/zathura/zathurarc b/.config/zathura/zathurarc new file mode 100644 index 0000000..7c6146c --- /dev/null +++ b/.config/zathura/zathurarc @@ -0,0 +1,4 @@ +set recolor true +set recolor-darkcolor \#BBDDEE +set recolor-lightcolor \#020100 +set selection-clipboard clipboard diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc new file mode 100644 index 0000000..a720792 --- /dev/null +++ b/.config/zsh/.zshrc @@ -0,0 +1,233 @@ +# ~/.zshrc + +export GPG_TTY=$(tty) + +# If not running interactively, don't do anything +[[ $- != *i* ]] && return + +if [ "$TERM" = "linux" ]; then + PROMPT='%(?..(%?%) )' + [ -n "$SSH_CLIENT" ] && PROMPT+="[%n@%M] " + PROMPT+='%c %(!.#.$) ' + return +fi + +# Path to your oh-my-zsh installation. +export ZSH="${XDG_CONFIG_HOME:-$HOME/.config}/oh-my-zsh" + +ZSH_THEME="0undefined" + +# Uncomment the following line to use case-sensitive completion. +CASE_SENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to automatically update without prompting. +DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +export UPDATE_ZSH_DAYS=31 + +# Uncomment the following line if pasting URLs and other text is messed up. +DISABLE_MAGIC_FUNCTIONS=true + +# Uncomment the following line to disable auto-setting terminal title. +DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +#COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in ~/.oh-my-zsh/plugins/* +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +#plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +export MANWIDTH=${MANWIDTH:-80} +man() { + LESS_TERMCAP_md=$'\e[01;38;5;147m' \ + LESS_TERMCAP_me=$'\e[0m' \ + LESS_TERMCAP_se=$'\e[0m' \ + LESS_TERMCAP_so=$'\e[48;5;235;01;38;5;250m' \ + LESS_TERMCAP_ue=$'\e[0m' \ + LESS_TERMCAP_us=$'\e[38;5;104m' \ + command man "$@" +} + +setopt nonomatch +setopt interactivecomments + +HISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/histfile" +HISTSIZE=32768 +SAVEHIST=32768 +setopt hist_ignore_all_dups +setopt hist_reduce_blanks +setopt no_share_history +setopt no_histverify + +autoload -Uz compinit +compinit -d ~/.cache/zcompdump-$ZSH_VERSION + +autoload -Uz promptinit +promptinit + +export KEYTIMEOUT=1 +set -o vi + +function zle-keymap-select { + if [[ ${KEYMAP} == vicmd ]] || [[ $1 = 'block' ]]; then + echo -ne '\e[1 q' + elif [[ ${KEYMAP} == main ]] || [[ ${KEYMAP} == viins ]] || [[ ${KEYMAP} = '' ]] || [[ $1 = 'beam' ]]; then + echo -ne '\e[5 q' + fi +} +zle -N zle-keymap-select + +# zle-line-init() { +# # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere) +# zle -K viins +# echo -ne "\e[5 q" +# } +#zle -N zle-line-init +echo -ne '\e[5 q' # Use beam shape cursor on startup. +# preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. + +autoload -Uz edit-command-line +zle -N edit-command-line +bindkey -M vicmd ' ' edit-command-line + +bindkey "^e" end-of-line +bindkey "^a" beginning-of-line +bindkey -M vicmd "^e" end-of-line +bindkey -M vicmd "^a" beginning-of-line + +bindkey "${terminfo[khome]}" beginning-of-line +bindkey "${terminfo[kend]}" end-of-line +bindkey "^[[3~" delete-char +bindkey "^[3;5~" delete-char +bindkey "^[[1;5C" forward-word +bindkey "^[[1;5D" backward-word + +autoload -U up-line-or-beginning-search +autoload -U down-line-or-beginning-search +zle -N up-line-or-beginning-search +zle -N down-line-or-beginning-search +bindkey "^[A" up-line-or-beginning-search +bindkey "^[OA" up-line-or-beginning-search +bindkey "^[B" down-line-or-beginning-search +bindkey "^[OB" down-line-or-beginning-search + + +## Handy functions +upload () { + curl -F file=@${1} http://0x0.st +} + +activate () { + if [[ $1 == "" ]]; then + ls --color=no -A ~/.env + else + source ~/.env/$1/bin/activate + fi +} + +goto() { + cd ~/gits/personal/Documents/$1 +} + +stopwatch() { + clear + date1=`date +%s`; + while true; do + echo -ne "\r$(date -u --date @$((`date +%s` - $date1)) +%H:%M:%S)"; + sleep 0.1 + done +} + +fs () { + if [[ $1 == "" ]]; then + printf ']710;%s' "xft:DejaVuSansMono Nerd Font Mono:pixelsize=14" + else + printf ']710;%s' "xft:DejaVuSansMono Nerd Font Mono:pixelsize=${1}" + fi +} + +calcgrade () { + if [ -z $1 ]; then + echo "Please submit an argument" + fi + D=$(find . -maxdepth 3 -name $1\* -type d) + if [ -z $D ]; then + echo $1 "not found" + else + ls $D/guidelines.mrk + echo $( \ + grep -oE "([0-9]+(\.[0-9]+)?)/[0-9]+" $D/guidelines.mrk \ + | sed -Ee 's/^([0-9]+(\.[0-9]+)?)\/.*/\1/g' \ + | tr '\n' '+' \ + | sed -Ee 's/^(.*)\+$/\1/g' -e 's/\+/ + /g') \ + | bc + fi +} + +fr () { + which futhark > /dev/null + if [ ! -z $? ]; then + activate futhark + fi + futhark repl +} + +## Aliases +alias :q='exit' +alias cgpu='sshpass -e ssh -l qgt268 ku-gpu' +alias fsharpi='fsharpi --nologo' +alias fsharpc='fsharpc --nologo --standalone' +alias gdb='gdb -q' +alias glog2="git log --graph --abbrev-commit --decorate --format=format:'%Cgreen%h%C(reset) [%G?] %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%Cred%d%C(reset)' --all" +alias glog='git log --pretty="%Cgreen%H%Creset [%G?] %cn: %s %Cred%d%Creset"' +alias ls='ls --color=auto' +alias mutt='neomutt' +alias pbcopy='xclip -selection clipboard -i' +alias pbpaste='xclip -selection clipboard -o' +alias push='git push && mpg123 ~/Downloads/Mario-coin-sound.mp3' +alias s='vim $(fzf)' +alias scan='sudo iwlist wlp3s0 scan > /dev/null' +alias v='echo -ne "\e[1 q" && vim --servername vim' +alias less='less -R' + +## Do before dropping into shell +source ~/.secrets/sshpass + +BANNERFILE=~/.config/texts/todo.md + +if [[ $(tput cols) -gt 140 ]]; then + pr -mtW 140 $BANNERFILE ~/.config/texts/setsail +else + cat $BANNERFILE +fi diff --git a/.xinitrc b/.xinitrc new file mode 100644 index 0000000..e1c9c8a --- /dev/null +++ b/.xinitrc @@ -0,0 +1,7 @@ +systemctl --user import-environment DISPLAY +feh --no-fehbg --bg-scale ~/pictures/bg2.png +# xrdb -m $XDEFAULTS +dunst & +xcompmgr & +# exec i3 +exec dwm diff --git a/.zprofile b/.zprofile new file mode 100644 index 0000000..3e68485 --- /dev/null +++ b/.zprofile @@ -0,0 +1,47 @@ +#!/usr/bin/env zsh + +# Configuration +export PATH=$PATH:$HOME/.scripts + +export EDITOR="vim" +export TERMINAL="st" +export BROWSER="firefox-developer-edition" +export READER="zathura" +export PAGER="less" + +# XDG~ +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" + +export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" +export XDEFAULTS="$HOME/.config/x/defaults" +export XRESOURCES="$HOME/.config/x/resources" +export XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/xinitrc" + +export IPYTHONDIR="${XDG_CACHE_HOME:-$HOME/.cache}/ipython" +export LESSHISTFILE="${XDG_DATA_HOME:-$HOME/.local/share}/lesshist" +export INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/inputrc" +export ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh" +export ZSH_COMPDUMP=$XDG_CACHE_HOME/zcompdump-$ZSH_VERSION +export ANDROID_SDK_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/android" +export CARGO_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/cargo" +export GOPATH="${XDG_DATA_HOME:-$HOME/.local/share}/go" +export AWS_CONFIG_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/aws/config" +export AWS_SHARED_CREDENTIALS_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/aws/credentials" +export GNUPGHOME="${XDG_CONFIG_HOME:-$HOME/.config}/gnupg" + +export GEM_PATH="${XDG_CACHE_HOME:-$HOME/.cache}/gem" +export RUSTUP_HOME="${XDG_CACHE_HOME:-$HOME/.cache}/rustup" +export CARGO_HOME="${XDG_CACHE_HOME:-$HOME/.cache}/cargo" +export KUBECONFIG="${XDG_CACHE_HOME:-$HOME/.cache}/kube/config" + +export VIMINIT="source ${XDG_CONFIG_HOME:-$HOME/.config}/vimrc" + +# Preferences +export LESS=-R +export MANWIDTH=${MANWIDTH:-80} + +alias irssi="irssi --home=${XDG_DATA_HOME:-$HOME/.config/irssi}" + +[ "$(tty)" = "/dev/tty1" ] && ! pidof Xorg >/dev/null 2>&1 && exec startx -- cgit v1.3