diff options
author | Kjetil Orbekk <kjetil.orbekk@gmail.com> | 2016-07-03 11:10:51 -0400 |
---|---|---|
committer | Kjetil Orbekk <kjetil.orbekk@gmail.com> | 2016-07-03 11:10:51 -0400 |
commit | 0f94d841cc2c1be57c16b08e3393820c99c09fe8 (patch) | |
tree | 02cd36ddf3f923f8adb674813ba06f7be221c4c1 | |
parent | c800c122a1405ad89ce874d03ea305438bc227e3 (diff) | |
parent | 26e338a9aed83229eb0e18cc597d51f09dd07cf3 (diff) |
Merge branch 'master' of sabaki.kk.orbekk.com:/storage/projects/dotfiles
-rw-r--r-- | authorized_keys | 9 | ||||
-rwxr-xr-x | bin/askpass.sh | 2 | ||||
-rwxr-xr-x | bin/kj-publish.sh | 2 | ||||
-rwxr-xr-x | bin/kj-setup.sh | 12 | ||||
-rwxr-xr-x | bin/kj-sync-keys.sh | 7 | ||||
-rwxr-xr-x | bin/play-kj | 2 | ||||
-rwxr-xr-x | bin/play-yt | 6 | ||||
-rwxr-xr-x | bin/tag | 2 | ||||
-rw-r--r-- | config/fish/config.fish | 6 | ||||
-rw-r--r-- | config/fish/functions/__format_time.fish | 27 | ||||
-rw-r--r-- | config/fish/functions/__parse_current_folder.fish | 3 | ||||
-rw-r--r-- | config/fish/functions/__parse_git_branch.fish | 4 | ||||
-rw-r--r-- | config/fish/functions/fish_prompt.fish | 110 | ||||
-rw-r--r-- | config/fish/functions/insert_cmd.fish | 3 | ||||
-rw-r--r-- | mbsyncrc | 65 | ||||
-rw-r--r-- | spacemacs | 68 | ||||
-rw-r--r-- | tmux.conf | 8 | ||||
-rwxr-xr-x | zshrc | 3 |
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.* @@ -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 * + @@ -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. @@ -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" @@ -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" |