summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2016-07-03 11:10:51 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2016-07-03 11:10:51 -0400
commit0f94d841cc2c1be57c16b08e3393820c99c09fe8 (patch)
tree02cd36ddf3f923f8adb674813ba06f7be221c4c1
parentc800c122a1405ad89ce874d03ea305438bc227e3 (diff)
parent26e338a9aed83229eb0e18cc597d51f09dd07cf3 (diff)
Merge branch 'master' of sabaki.kk.orbekk.com:/storage/projects/dotfiles
-rw-r--r--authorized_keys9
-rwxr-xr-xbin/askpass.sh2
-rwxr-xr-xbin/kj-publish.sh2
-rwxr-xr-xbin/kj-setup.sh12
-rwxr-xr-xbin/kj-sync-keys.sh7
-rwxr-xr-xbin/play-kj2
-rwxr-xr-xbin/play-yt6
-rwxr-xr-xbin/tag2
-rw-r--r--config/fish/config.fish6
-rw-r--r--config/fish/functions/__format_time.fish27
-rw-r--r--config/fish/functions/__parse_current_folder.fish3
-rw-r--r--config/fish/functions/__parse_git_branch.fish4
-rw-r--r--config/fish/functions/fish_prompt.fish110
-rw-r--r--config/fish/functions/insert_cmd.fish3
-rw-r--r--mbsyncrc65
-rw-r--r--spacemacs68
-rw-r--r--tmux.conf8
-rwxr-xr-xzshrc3
18 files changed, 312 insertions, 27 deletions
diff --git a/authorized_keys b/authorized_keys
index b730e38..017726d 100644
--- a/authorized_keys
+++ b/authorized_keys
@@ -1,15 +1,10 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3Y5o6Zm8j7QT2FGAewDCnbHVLR175u1Ze6VMgloH04UOcwBh8a+eXEy1kKpLLzso5ml/NwylrJkmgv4lqv3oRlfSUQHsHSqfg+RkXIy4ZOJGhvCNBYgww5jPvTnsVka2BQvQwvi4QqSi1mDvOaYohmVJRy7cCywuPSoSZcT3RR2XUJN14VEB+AbYFLM/BY9IJEnqLR3Sf2wcGET0z/PMyhGDv9y1f/FjW1+nXsPbfL3vOwLzNME4QS0ZDp0a+snStDSkRAt5Ovhnt/zdr4UbQF7Ejw1PInYYTupmC3xS4BIrq4A83VZuV8edTA1KMlvFZyxqySsQt+BJa6FkPLhlZw== orbekk@52f5e8c3-6815-cce3-9d6d-fffd8d7aa669
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCg94vmi4gnHPtRYiyEM66SddH5PHu2XFqob+bY/sD/Zoh7Lw7oWbm8DnztJ8gt8TZci4lgOuVyZxtikoXWlUF7SHUS+9WRs/PK09FOMURsq1d/eXN8Hg6vyOBgMxlWTrJusxG+eDu/52n4Baov47LVn2nkrAH0Z+VvuK4kvtIU0+4Q19Af4tYlQ3BYB8SxSUFgmpnFoomErK4aoiVrGLXBunOG1O2c31yhEfLaKjPdULEKDgjMIxpRRn1Rh6H1hYlCcye8vl0aRhdacX+o2JJ0Nm3WQtLGYUVyS67/1ou7CFqHLa08W9MHsg7HdkT5Vd2LEz03G59LBxlc8ZwBPWt3 orbekk@orbekk-macbookpro
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFQ98sWlZUXsseQeTA880TKXEQLjK5oxWtBManLGYE3TNhmYxWG+QBEBLLAU1Cl0jXBSavlsdyVEBKopIqr4vjJKvZEsML9YDLsdagGG6aMLM6TJ4Ue/xS4WlI+fSJ6A6gs05UbkGskZ/sdNDO4wGUNRX9FezIlHd0voQ48N/exTaVNBUbG7Q2GmnRHh8oTSJxUsewGYlxT6w6uJ/XmCjWbKUhCHzEc0JX30HQrAPNe+ZklxFHapHmDMUWjYKEwX6t0LGavnP85yQsD3vdoQuCWR3ZqA22+pQ2D7Nd1VIQIZBPqjxWCFeEq7wUDjZJe1acYFHE0nwUFmCoJAzKdxeF orbekk@moyo
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrmBrIzS85zP4M5se34J7NC4LoiEfoMV0IoglbzGFxEWM4HALx4jE3StC20Wa5MakVx8vgUoXR2rEDwQgpMT8X0j7TfZvmJ8yDBSq7Ft+NhOGlRT8i5Jrj7T3CN7Q/KWc5yF8s/+A5xPTaNtlmg5SRnSRV+IOadJY/ZjZP/4j2n1U7039O0/HYlkgka00msCxv0Zu+CkFC81Z/+rjmJL+PFkqnCdSFhxjTzjavHPojFpJlFAam06L7m12ruG0HY4cAdpk1drsiCqVoHBApqODy7kRcC7GCkwIlIV/+LRigfGnM57y1e1pFKvM655DemwphvzpPURLO50XNQyWiQ1O1 orbekk@orbekk-macbookpro.roam.corp.google.com
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzQkO3BVxISTjqYfks4+PAJ2xOyZUWqxzW5/yYSGYuaDKS6UvD6f029yhFgjVh6zszacDmT20OdpSuzLg7BVMWSR5gaR3azc3QRCJGWIRp0eWp0dnBGegGbkptogazDKdnL/Gjlb6QFHwxbOqeorg56kWGElRAdGrrtn67zkd91alqqRgXG8pDtqIVtApLrVD+f+C91ePJuTA7khDHVFyv+uf1BaP7wVb6eHPzI7IGpy68PXIA+KeRiJokDTyfxQPYahfF5ELU3D9SvAeaBFJEL4fX/ve8fPcaWBS50JTVObfatopt5aiACWAIyJlz0xWSpP+6trBZjAdq/Ml8aDgPw== orbekk@horisont
-ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuKJClOU52i5NLvGPMs1r4Z5hIqXYe33MGHtH+xenDtM9zL8qEgUF8FtyFSdWnanpUx2KRZUleNLDHz7twn05QJx3iWoTpaZOF9+//JeR7gzJBGVE1m9XjQmsbnKtPgGp1zUcGF9MFyVIo4iMomu6KxnhRWbH/8sh5gu/24WTJMqvYlKemkmOUTFti8on4NdZVB0YTXRK2FKMgtOBrSmZZhccunKRevwiJd3l41CbZGlTqEJocrJVfmeTp7T+LjbagmUxJI47KtBjkmF1zp6yhfeGneesfMHBlAO0iR3xD5nDoT6g1LpTcjmGjuBx/au0gul8AyvOeapSfLa3pUfSiw== orbekk@minecraft
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy8BTlFTQldQh/mibrVvJUHutDrOObqE5hIdDl79GqI1DDjr5kvAAdlyjpDrxyD55uWt/V3KJAlWdHV7tHMFHOjyRZWdQ6cDox4WYMghJZ1pJMi/1uGgQM4SMWJiEUUqdx/JqDOti4gNDA0giPP/ZWp7/zpzFJV7x1t7HeUr49cIVkAngEftEtzTexbCzeC8BOYWZ1Mln/z+oCVdRDdmhSqfTFD1YuIdZJ7RFNDKktuKBpXmhq7IrccO9L0+vOMVsmf1Se1xb4oDiDod4Ha9CHvRsAYksw6077A68tlFYwCN/EqAcWabSLza4+ynj45K9nDp/4HVtD0RlYLdl205ad orbekk@orbekk2.nyc.corp.google.com
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGJae0f0np2vCdo2zswrnlqnfOnx1JXvMBiovHXvsPaGxiBiWV3vyYi3bv7RiMmrQoNeMYwOaYF9Tqrd0xgNN31IDBQRXN4EVn/UPf1RAZauUOS349XdZOnJcfJ6RxyTC3QsPlNvfd1zgRG9mU74f8QNxzsmWcAKFlNkeqUITQr9wRC3BP1dmEZ1gCTfzV2R9/D6Hrmb5r8UgXkspTQk5MGc7Cj1uwmWGrEnEnRuaWG5XhmbdP7Mb4yaAuFptVW1X0cmcOBjFwFWt0RoSlsJRECPyhqs3MD+zd0YCgdtM2d8acGFbyj8dpFQ7YQzg5bsV+BEk1i9GoUdI9VvJwkZTX orbekk@thin
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLg4w97XpMyb0rFY4CKSF/i1eGmdLcH4lusqpz6C664b5ET/t6AR5LY/xBhOwJVMPtGtbGRsQqqac49NnwGa19ygNNVUhqqIwT1+KvAG76k2xbNz2KkQAuuDM1TUr9w8Vu8aFfHYC3epN5cksiBmGdJ2geTSg2ldl71suOkuFbcdwWAz7HrZsXCqMbB+2MBOA9E++4gOzS043r06OY8ompqvacEc2DTbtOnDUnL8m5qK5Ps2Uw8rXkG+Jrpp+pdMp9iCeMrnv0NfDiWy1NfuPjryW+Ur+aZ69z6ixavwZUsu/9HuYEVQJFMnJTbwGOnOEMgMwKX/MmR+DtyiECY0GT orbekk@tesuji
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAE4Fn2R4pQ4ufwoZQ3c0DsBKpMoxmcqKihnF7n69rk+rM4JwSKfX/prLb1hdYzoGfryTKyvIGlriZb0+7gQc+MLqNm2KDHY7oUYN/E8Hx3Bmpj3zPfr+t+rvz9gYukfnoQUOQVRK4K6roY/u7PzAYsFBpO/GNC9YC7RzYNHTczZW/1mNbawXir23VboBb83pKWiucoEij+J04m3WnAUbEUzDIHvPmWgsijER/J67krIBTuiELlnAyHhPfdlQ8leupon69Zi1U7BBV85vb1D6ef7R+PUGCeA5fnG+38l+NpFwcLK48uOn0vCFPRPUipFUFUIpI2awV2ctZ7ZwZibUB orbekk@google
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCpahdZ77BSZy1eE35V5TjxnOiSeL/YCjf0OawIj2nZTYieMRev0TMEjtX7QroAVUO48qPAjxRR1G1oHnOQHc3qujoQjiwm7wIn4lg5Z6j7OMzJBUjzKLIfXk49WDcBzSdxi0HGG1xsJ/rwHU9nhSv/0VmHYyqwwfP2R/0LDu0NtmPdBuQSrkPBiGUcOA5hAi/jmFibpVr14uRUbgMctTWS4ObChRq8xy65pt9twN4vJB/h+bWsMXqcZfLL/PyhPtwLiZrDe6GVn8Pre+OuOgQll6VJEcdZzjUdQtKq3XiD/rxAwQS3rHleIIc4PABgnjzF4k9hq6rJZdwMtBPjNOH1 orbekk@nexus5
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSUuOxOtrv60A/jRZhCdfgoB5A1qNy4awBFwNcLTmSrYAApuifj2OCLkWc/hthFKaVNPdfcWpJ/GogyMnyoI4CEeYcDJJTfQOqq1G8iUSr3/UNCrg3mpFobzGbxFmO+xUceWBjnz8+r4ggj/RFAexiV6ciZUOFlu9QDKcp3PHvaW0MAoS9bdZd9PuQ2K5QDvXVwAgOW8EOuQUxwsNXOIin0M702G1gsVCW0oRkVDPMsZBM4YgOnGvgZKyq5WK7JtSSvxRC0PlUF6uFR+SBkTl1v8ljXpKq3JGdK1NyRXezgCxjwA0xqdjalTEJUTQHSpnBTRrPPOAKwWff5qJGoT+D orbekk@pincer
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCve6ZJuqTqRXvqHnYkS6BAilc9Mmdcd8bXHLmI/5T0h59oHGbY35L+OmWLKLJwbkNkMLfsGz5ahCDmW04tf7yQdZ0LCfEpxoeLWHo24j866ZnlsJXnTzj0bjZZcbbr3NqtKPs8YeNAxX9lGB7MyH8j3njBKv+6rTcKJusnueIf/xTScTBLvFbaUPQjVYmQ8trdZtHqElfPAZW9H9MvSAOePCQFY6fP3S5+0enSPDb9Q4X4NhdLhBvOljH/Q9RhAvSReaeDBu1hEpOj3gwDpPpoC4amP4Geaq5S3bYlslV9HsOCdQHNmvLqLVruX+XhOhq7fUmqoir7jycuuM6UORhP orbekk@sabaki
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqifNkGvOBJcreOBBiwmjdS+ZEwA2P6/wQmhz8+r/7khsy9VtoWBYXCq2Z3fUDL2oqylubH49BlcGi/syE/S75jIg6ab+gGMaTu7Z+DzWestRhkNijFpFZF/NAgL1FvQpW1GdTWhjuWf+kLz8O7WqajwwdoHkktzIe54yrzM5e8B4xHTtcPs4+MsPDAwN3ROwU4Q8/HHUqlqugq7XQr95a5cg4HoGgtZHF9VxkmFLULL2AUvB+lH4SAVJf4dTCYney73eFEcO/PZKjhkAvwcRu3X3vxMMp6goF1rRw6H4EWrnoDwNk596NREtr2HEFxlidinNlSkJLBCodHO0Fz/Rl orbekk@dragon
-
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC++iDFF7M0kdOzkLpoxodQ/UOq6ez4lQ81jxbxMhRV8OEgqWoM6ONGmrdDXROvcQ0FwiNxTja/UTuxp/wutUOXDlIqi+SxnsyyHYBDBw1dO2IeNI1fVpkA1f5ctVWrgi7ek6MwHYFoAebBlzZpjPezX++i3kspSvtOrV/fDXP4YuIYl1c7rt/qWscNHks5bqbthSmqQZtyEXuy3uA/w4Ji7UZGyxfx2JCAT1tLwKWIuwtggM/aK800Sb2dGgorQpx/iFQXj48Cg3qaUhXaaajilEo4LpRZDuKZa7xlNZtTzuLjF4Rk6HP5T7BiXhhuCsI0Whern+F/kW3RseElHkGt orbekk@aji # Thinkpad X220T
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDaAR7FqzSGlbSjwlMuB3GToxl4G1MWPJThYbjm0rq1mbWsP4QNQclqjdJs4/T50L5pNO8O3r9DViJOy/yLnK3AIrx8FdVE14+gFzT5/Ct/Dp6sU1bZmNQ/GVVW0TXsCDyFRA0CMNwbXuFtnrtq9KWc8++Eu7KSfG8xNMNElBnN0kiGViV447dSooE6Pr+Ae+Iprj5E6YRdgzjtdC+/y0T4SmS7OTuoWp399zvVr7UiN4BUGnQGENRoIMREZ9lRnQ9wzHcHDWWUN5YQqlZn1e3aIAYG8KLboz0/GL2HmryhZ+9GGU2lulnG04xNbG1e8xJ6dRF2S7cjIj2iTzNunaAd orbekk@orbekk.fra.corp.google.com
diff --git a/bin/askpass.sh b/bin/askpass.sh
new file mode 100755
index 0000000..a6727b1
--- /dev/null
+++ b/bin/askpass.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+pass show machine/$(hostname)
diff --git a/bin/kj-publish.sh b/bin/kj-publish.sh
index c3e277b..867f5ba 100755
--- a/bin/kj-publish.sh
+++ b/bin/kj-publish.sh
@@ -1,3 +1,3 @@
-#!/bin/bash
+#!/usr/bin/env bash
ssh orbekk@tesuji.6.orbekk.com ./build/org-publisher/publish.sh
diff --git a/bin/kj-setup.sh b/bin/kj-setup.sh
index f3ddc6b..1bce528 100755
--- a/bin/kj-setup.sh
+++ b/bin/kj-setup.sh
@@ -56,11 +56,13 @@ for binary in dotfiles/bin/*; do
create_symlink "../dotfiles/bin/${binary}" "bin/${binary}"
done
-if [[ "${SHELL}" = *zsh* ]]; then
- create_symlink dotfiles/zshrc .zshrc
-else
- printf "${orange}[SKIPPED]${none} shell is not zsh :-(.\n"
-fi
+mkdir -p .config/fish/functions
+create_symlink ../../dotfiles/config/fish/config.fish .config/fish/config.fish
+for f in dotfiles/config/fish/functions/*.fish; do
+ create_symlink ../../../$f .config/fish/functions/$(basename $f)
+done
+
+create_symlink dotfiles/zshrc .zshrc
mkdir -p .ssh
create_symlink ../dotfiles/ssh/config .ssh/config
diff --git a/bin/kj-sync-keys.sh b/bin/kj-sync-keys.sh
index 1a3c455..64c3ca9 100755
--- a/bin/kj-sync-keys.sh
+++ b/bin/kj-sync-keys.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/usr/bin/env bash
#
# This script syncs authorized keys (found in the $authorized_keys_file below)
# to a list of remote hosts. It does not touch existing keys unless overwrite
@@ -12,9 +12,8 @@ declare -r tmpdir=$(mktemp -d /tmp/kj_sync_authorized_keys.XXXXX)
targets=(
root@orbekk.osl.trygveandre.net
- tesuji.6.orbekk.com
- sabaki.6.orbekk.com
- dragon.6.orbekk.com
+ sabaki.kk.orbekk.com
+ dragon.kk.orbekk.com
login.pvv.ntnu.no
gote.orbekk.com
)
diff --git a/bin/play-kj b/bin/play-kj
new file mode 100755
index 0000000..3d3e192
--- /dev/null
+++ b/bin/play-kj
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+livestreamer "$(xclip -selection clipboard -out)" best \ No newline at end of file
diff --git a/bin/play-yt b/bin/play-yt
new file mode 100755
index 0000000..2830354
--- /dev/null
+++ b/bin/play-yt
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+rm /tmp/youtube.*
+youtube-dl -o /tmp/youtube "$@" &
+sleep 5s && mpv /tmp/youtube.*
+rm /tmp/youtube.*
diff --git a/bin/tag b/bin/tag
new file mode 100755
index 0000000..a95d525
--- /dev/null
+++ b/bin/tag
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+awk '/TAG/ {tag++; sub("TAG", tag);} { print };'
diff --git a/config/fish/config.fish b/config/fish/config.fish
new file mode 100644
index 0000000..133c26a
--- /dev/null
+++ b/config/fish/config.fish
@@ -0,0 +1,6 @@
+bind \ec insert_cmd
+
+set -x EDITOR vim
+set -x TZ 'America/New_York'
+set -x PATH "$HOME/bin" $PATH
+
diff --git a/config/fish/functions/__format_time.fish b/config/fish/functions/__format_time.fish
new file mode 100644
index 0000000..298e4cb
--- /dev/null
+++ b/config/fish/functions/__format_time.fish
@@ -0,0 +1,27 @@
+function __format_time -d "Format milliseconds to a human readable format"
+ set -l milliseconds $argv[1]
+ set -l seconds (math "$milliseconds / 1000 % 60")
+ set -l minutes (math "$milliseconds / 60000 % 60")
+ set -l hours (math "$milliseconds / 3600000 % 24")
+ set -l days (math "$milliseconds / 86400000")
+ set -l time
+ set -l threshold 5
+
+ if test $days -gt 0
+ set time (command printf "$time%sd " $days)
+ end
+
+ if test $hours -gt 0
+ set time (command printf "$time%sh " $hours)
+ end
+
+ if test $minutes -gt 0
+ set time (command printf "$time%sm " $minutes)
+ end
+
+ if test $seconds -gt $threshold
+ set time (command printf "$time%ss " $seconds)
+ end
+
+ echo -e $time
+end
diff --git a/config/fish/functions/__parse_current_folder.fish b/config/fish/functions/__parse_current_folder.fish
new file mode 100644
index 0000000..031b53e
--- /dev/null
+++ b/config/fish/functions/__parse_current_folder.fish
@@ -0,0 +1,3 @@
+function __parse_current_folder -d "Replace '$HOME' with '~'"
+ pwd | sed "s|$HOME|~|"
+end
diff --git a/config/fish/functions/__parse_git_branch.fish b/config/fish/functions/__parse_git_branch.fish
new file mode 100644
index 0000000..42b46fb
--- /dev/null
+++ b/config/fish/functions/__parse_git_branch.fish
@@ -0,0 +1,4 @@
+function __parse_git_branch -d "Parse current Git branch name"
+ command git symbolic-ref --short HEAD ^/dev/null;
+ or command git show-ref --head -s --abbrev | head -n1 ^/dev/null
+end
diff --git a/config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish
new file mode 100644
index 0000000..c45066c
--- /dev/null
+++ b/config/fish/functions/fish_prompt.fish
@@ -0,0 +1,110 @@
+# vim: set ft=sh:
+
+# Pure
+# by Rafael Rinaldi
+# https://github.com/rafaelrinaldi/pure
+# MIT License
+
+# Whether or not is a fresh session
+set -g fresh_session 1
+
+# Symbols
+
+set -g symbol_prompt "❯"
+set -g symbol_git_down_arrow "⇣"
+set -g symbol_git_up_arrow "⇡"
+set -g symbol_git_dirty "*"
+set -g symbol_horizontal_bar "—"
+
+# Colors
+
+set -g color_red (set_color red)
+set -g color_green (set_color green)
+set -g color_blue (set_color blue)
+set -g color_yellow (set_color yellow)
+set -g color_cyan (set_color cyan)
+set -g color_gray (set_color 93A1A1)
+set -g color_normal (set_color normal)
+
+function fish_prompt
+ # Save previous exit code
+ set -l exit_code $status
+
+ # Set default color symbol to green meaning it's all good!
+ set -l color_symbol $color_green
+
+ # Template
+
+ set -l current_folder (__parse_current_folder)
+ set -l git_branch_name ""
+ set -l git_dirty ""
+ set -l git_arrows ""
+ set -l command_duration ""
+ set -l prompt ""
+
+ # Do not add a line break to a brand new session
+ if test $fresh_session -eq 0
+ set prompt $prompt "\n"
+ end
+
+ # Prompt failed command execution duration
+ set command_duration (__format_time $CMD_DURATION)
+
+ # Format current folder on prompt output
+ set prompt $prompt "$color_yellow$command_duration$color_blue$current_folder$color_normal "
+
+ # Handle previous failed command
+ if test $exit_code -ne 0
+ # Symbol color is red when previous command fails
+ set color_symbol $color_red
+
+ set prompt $prompt "$color_yellow$command_duration$color_normal"
+ end
+
+ # Exit with code 1 if git is not available
+ if not which git >/dev/null
+ return 1
+ end
+
+ # Check if is on a Git repository
+ set -l is_git_repository (command git rev-parse --is-inside-work-tree ^/dev/null)
+
+ if test -n "$is_git_repository"
+ set git_branch_name (__parse_git_branch)
+
+ # Check if there are files to commit
+ set -l is_git_dirty (command git status --porcelain --ignore-submodules ^/dev/null)
+
+ if test -n "$is_git_dirty"
+ set git_dirty $symbol_git_dirty
+ end
+
+ # Check if there is an upstream configured
+ command git rev-parse --abbrev-ref '@{upstream}' >/dev/null ^&1; and set -l has_upstream
+ if set -q has_upstream
+ set -l git_status (command git rev-list --left-right --count 'HEAD...@{upstream}' | sed "s/[[:blank:]]/ /" ^/dev/null)
+
+ # Resolve Git arrows by treating `git_status` as an array
+ set -l git_arrow_left (command echo $git_status | cut -c 1 ^/dev/null)
+ set -l git_arrow_right (command echo $git_status | cut -c 3 ^/dev/null)
+
+ # If arrow is not "0", it means it's dirty
+ if test $git_arrow_left -ne "0"
+ set git_arrows $symbol_git_up_arrow
+ end
+
+ if test $git_arrow_right -ne "0"
+ set git_arrows $git_arrows$symbol_git_down_arrow
+ end
+ end
+
+ # Format Git prompt output
+ set prompt $prompt "$color_gray$git_branch_name$git_dirty$color_normal\t$color_cyan$git_arrows$color_normal"
+ end
+
+ set prompt $prompt "\n$color_symbol$symbol_prompt$color_normal "
+
+ echo -e -s $prompt
+
+ set fresh_session 0
+end
diff --git a/config/fish/functions/insert_cmd.fish b/config/fish/functions/insert_cmd.fish
new file mode 100644
index 0000000..b167734
--- /dev/null
+++ b/config/fish/functions/insert_cmd.fish
@@ -0,0 +1,3 @@
+function insert_cmd
+ commandline -i (pwd)
+end
diff --git a/mbsyncrc b/mbsyncrc
new file mode 100644
index 0000000..0edefa8
--- /dev/null
+++ b/mbsyncrc
@@ -0,0 +1,65 @@
+IMAPAccount gmail
+PipelineDepth 200
+Host imap.gmail.com
+User kjetil.orbekk@gmail.com
+PassCmd "pass show sites/gmail-app-password"
+SSLType IMAPS
+CertificateFile /etc/ssl/certs/ca-certificates.crt
+
+IMAPStore gmail-remote
+Account gmail
+
+MaildirStore gmail-local
+Path ~/Maildir/
+Inbox ~/Maildir/Inbox
+
+# Channel sync-gmail-inbox
+# Master :gmail-remote:"Inbox"
+# Slave :gmail-local:inbox
+# Create Slave
+#
+# Channel sync-gmail-sent
+# Master :gmail-remote:"[Gmail]/Sent Mail"
+# Slave :gmail-local:sent
+# Create Slave
+#
+# Channel sync-gmail-drafts
+# Master :gmail-remote:"[Gmail]/Drafts"
+# Slave :gmail-local:drafts
+# Create Slave
+#
+# Channel sync-gmail-trash
+# Master :gmail-remote:"[Gmail]/Trash"
+# Slave :gmail-local:trash
+# Create Slave
+#
+# Channel sync-gmail-spam
+# Master :gmail-remote:"[Gmail]/Spam"
+# Slave :gmail-local:spam
+# Create Slave
+#
+# Channel sync-gmail-starred
+# Master :gmail-remote:"[Gmail]/Starred"
+# Slave :gmail-local:starred
+# Create Slave
+#
+# Channel sync-gmail-archive
+# Master :gmail-remote:"[Gmail]/All Mail"
+# Slave :gmail-local:archive
+# Create Slave
+#
+# Group gmail
+# Channel sync-gmail-inbox
+# Channel sync-gmail-sent
+# Channel sync-gmail-trash
+# Channel sync-gmail-spam
+# Channel sync-gmail-starred
+# Channel sync-gmail-archive
+
+Channel gmail
+Master :gmail-remote:
+Slave :gmail-local:
+Patterns INBOX ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/Starred" "[Gmail]/All Mail" "[Gmail]/Spam" "[Gmail]/Drafts" "[Gmail]/Sent"
+Create Both
+SyncState *
+
diff --git a/spacemacs b/spacemacs
index acb8467..f6493f1 100644
--- a/spacemacs
+++ b/spacemacs
@@ -41,21 +41,25 @@ values."
;; (shell :variables
;; shell-default-height 30
;; shell-default-position 'bottom)
- spell-checking
+ ;; spell-checking
;; syntax-checking
- ;; version-control
+ version-control
+ gnus
+ mu4e
+ (mu4e :variables
+ mu4e-installation-path "/usr/share/emacs/site-lisp")
)
;; List of additional packages that will be installed without being
;; wrapped in a layer. If you need some configuration for these
;; packages then consider to create a layer, you can also put the
;; configuration in `dotspacemacs/config'.
- dotspacemacs-additional-packages '(nyan-mode)
+ dotspacemacs-additional-packages '()
;; A list of packages and/or extensions that will not be install and loaded.
- dotspacemacs-excluded-packages '(smartparens)
+ dotspacemacs-excluded-packages '(smartparens flyspell evil-jumper)
;; If non-nil spacemacs will delete any orphan packages, i.e. packages that
;; are declared in a layer which is not a member of
;; the list `dotspacemacs-configuration-layers'. (default t)
- dotspacemacs-delete-orphan-packages t))
+ dotspacemacs-delete-orphan-packages nil))
(defun dotspacemacs/init ()
"Initialization function.
@@ -210,7 +214,8 @@ user code."
(if (region-active-p)
(kill-region (region-beginning) (region-end))
(backward-kill-word arg)))
- )
+ (setq-default git-magit-status-fullscreen t)
+)
(defun kj-bindings ()
"Set up my custom bindings."
@@ -221,22 +226,59 @@ user code."
(evil-leader/set-key "ora" #'org-agenda)
(evil-leader/set-key "ot"
(lambda () (interactive) (org-capture nil "t")))
-
- ;; (evil-leader/set-key-for-mode
- ;; 'org-mode "mh" 'org-up-element)
)
(defun kj-org-config ()
"Org configuration."
(setq-default
+ ;; nxml is unbearably slow :(
+ rng-nxml-auto-validate-flag nil
+
org-todo-keywords
'((sequence "TODO(t)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)"))
org-directory "~/org"
org-support-shift-select t
+ ;; org-capture-templates
+ ;; '(("t" "Todo" entry (file+headline "~/org/in.org" "Tasks")
+ ;; "* TODO %?\n %i\n %a")))
org-capture-templates
'(("t" "Todo" entry (file+headline "~/org/in.org" "Tasks")
- "* TODO %?\n %i\n %a")))
+ "* TODO %?")))
(eval-after-load "org" '(require 'ox-md nil t))
+ (global-git-commit-mode t)
+ )
+
+(defun mu4e-config ()
+ (setq mu4e-drafts-folder "/[Gmail]/.Drafts")
+ (setq mu4e-sent-folder "/[Gmail]/.Sent Mail")
+ (setq mu4e-trash-folder "/[Gmail]/.Trash")
+ (setq mu4e-sent-messages-behavior 'delete)
+
+ (setq mu4e-maildir-shortcuts
+ '( ("/Inbox" . ?i)
+ ("/[Gmail]/.Sent Mail" . ?s)
+ ("/[Gmail]/.Trash" . ?t)
+ ("/[Gmail]/.All Mail" . ?a)))
+
+ (setq mu4e-get-mail-command "mbsync gmail")
+
+ (setq
+ user-mail-address "kjetil.orbekk@gmail.com"
+ user-full-name "Kjetil Ørbekk"
+ mu4e-compose-signature
+ (concat "KJ\n"))
+
+ (require 'smtpmail)
+ (setq message-send-mail-function 'smtpmail-send-it
+ starttls-use-gnutls t
+ smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
+ smtpmail-auth-credentials
+ '(("smtp.gmail.com" 587 "kjetil.orbekk@gmail.com" nil))
+ smtpmail-default-smtp-server "smtp.gmail.com"
+ smtpmail-smtp-server "smtp.gmail.com"
+ smtpmail-smtp-service 587)
+
+ (setq message-kill-buffer-on-exit t)
)
(defun dotspacemacs/user-config ()
@@ -251,6 +293,12 @@ layers configuration. You are free to put any user code."
(kj-bindings)
(kj-org-config)
(load-file "~/.spacemacs.local")
+ ;; Show 80-column marker
+ (define-globalized-minor-mode global-fci-mode fci-mode (lambda () (fci-mode 1)))
+ (global-fci-mode 1)
+ ;; I have been warned about magit stealing my files:
+ (setq magit-last-seen-setup-instructions "1.4.0")
+ (mu4e-config)
)
(custom-set-variables
;; custom-set-variables was added by Custom.
diff --git a/tmux.conf b/tmux.conf
index 590def5..4ff85d4 100644
--- a/tmux.conf
+++ b/tmux.conf
@@ -2,9 +2,13 @@ unbind C-b
set -g prefix ^A
bind ^A send-prefix
set -g aggressive-resize on
+set-window-option -g mode-keys vi
set -g default-terminal "screen-256color"
+## supposed to help neovim
+set -g escape-time 10
+
## set status bar
set -g status-bg "#373b41"
set -g status-fg "#81a2be"
@@ -17,6 +21,10 @@ setw -g window-status-current-fg "#b294bb"
setw -g window-status-activity-fg "#c5c8c6"
setw -g window-status-activity-bg "#1d1f21"
+## scrolling
+## NOPE
+#set -g mode-mouse on
+
## pane border and colors
set -g pane-active-border-bg default
set -g pane-active-border-fg "#373b41"
diff --git a/zshrc b/zshrc
index cbf6bdc..e5de8f5 100755
--- a/zshrc
+++ b/zshrc
@@ -79,3 +79,6 @@ function get-parent-dir() {
}
zle -N get-parent-dir
bindkey "^[u" get-parent-dir
+
+alias sudo="sudo -A"
+export SUDO_ASKPASS="$HOME/bin/askpass.sh"