M .config/kitty/kitty.conf => .config/kitty/kitty.conf +17 -14
@@ 234,22 234,25 @@ selection_foreground #000000
# The background for selections
selection_background #FFFACD
-background #282828
+background #1d2021
background_opacity 1.0
-color0 #282c34
-color1 #cc6666
-color2 #87bd68
-color3 #dfaf8f
-color4 #81a2be
-color5 #dc8cc3
-color6 #72a0a8
-color7 #dcdccc
-color8 #709080
-color9 #dca3a3
-color10 #c3bf9f
-color11 #f0dfaf
-color12 #94bff3
+color0 #282828
+color1 #cc241d
+color2 #98971a
+color3 #d79921
+color4 #458588
+color5 #b16286
+color6 #689d6a
+color7 #a89984
+color8 #928374
+color9 #fb4934
+color10 #b8bb26
+color11 #fabd2f
+color12 #83a598
+color13 #d3869b
+color14 #8ec07c
+color15 #ebdbb2
# Advanced {{{
M .oh-my-zsh/themes/zah.zsh-theme => .oh-my-zsh/themes/zah.zsh-theme +29 -53
@@ 65,7 65,7 @@
[[ $D > 0 ]] && printf '%dd ' $D
[[ $H > 0 ]] && printf '%dh ' $H
[[ $M > 0 ]] && printf '%dm ' $M
- [[ $D > 0 || $H > 0 || $M > 0 ]] && printf 'and '
+ [[ $D > 0 || $H > 0 || $M > 0 ]] && printf ''
printf '%ds\n' $S
}
@@ 95,70 95,46 @@
# Prompt Functions
# ================
- # Set color of lambda based on exit code
- exit_code_status() {
- if [[ "$?" == "0" ]]; then
- echo -e '\e[1;32m'
- else
- echo -e '\e[1;32m'
- fi
- }
-
- function prompt_ruby() {
- if [[ ! -f Gemfile || ! -f Rakefile || ! -n *.rb(#qN^/) ]]; then
- return
- fi
+ function insert-mode () { echo "%{$fg_bold[yellow]%}[INSERT]%{$reset_color%}" }
+ function normal-mode () { echo "%{$fg_bold[magenta]%}[NORMAL]%{$reset_color%}" }
- local ruby_version
+ function user_host_status () { echo "%{$fg[magenta]%}%n%{$fg[cyan]%}@%{$fg[yellow]%}%m%{$fg_bold[red]%}:%{$reset_color%}" }
- if _exists rbenv; then
- ruby_version=$(rbenv version-name)
+ # Set color of lambda based on exit code
+ function exit_code_status() {
+ if [[ "$?" != "0" ]]; then
+ echo -e "%{$fg_bold[red]%}"
else
- return
+ echo -e "%{$fg_bold[green]%}"
fi
+ }
- [[ "${ruby_version}" == "system" ]] && return
-
- # Add 'v' before ruby version that starts with a number
- [[ "${ruby_version}" =~ ^[0-9].+$ ]] && ruby_version="v${ruby_version}"
-
- _prompt_section \
- "" \
- "" \
- "Ruby ${ruby_version}" \
- ""
+ function dir_status() {
+ echo "%{$fg_bold[cyan]%}%0~%{$reset_color%}"
}
- function prompt_crystal() {
- if [[ ! -f shard.yml || ! -n *.cr(#qN^/) ]]; then
- return
- fi
+ # Wrap up in set_prompt so it can be
+ # refreshed by time functions, etc
+ function set_prompt() {
+ case ${KEYMAP} in
+ (vicmd) VI_MODE="$(normal-mode)" ;;
+ (main|viins) VI_MODE="$(insert-mode)" ;;
+ (*) VI_MODE="$(insert-mode)" ;;
+ esac
- local crystal_version
+ PROMPT='$(exit_code_status)λ ($(_convertsecs $(get_time))) $(user_host_status)$(dir_status) $(exit_code_status)\$ %{$reset_color%} '
- if _exists crystal; then
- crystal_version=$(crystal -v | awk '{print $2;exit}')
+ if [[ -n $(git_prompt_info) ]]; then
+ RPROMPT='${VI_MODE} {$(git_prompt_info)}%{$reset_color%} $(git_prompt_status)%{$reset_color%}'
else
- return
+ RPROMPT='${VI_MODE}'
fi
-
- # Add 'v' before crystal version that starts with a number
- [[ "${crystal_version}" =~ ^[0-9].+$ ]] && crystal_version="v${crystal_version}"
-
- _prompt_section \
- "" \
- "" \
- "Crystal ${crystal_version}" \
- ""
}
- set_prompt_plugins() {
+ function zle-line-init zle-keymap-select {
+ set_prompt
+ zle reset-prompt
}
- # Wrap up in set_prompt so it can be
- # refreshed by time functions, etc
- set_prompt() {
- PROMPT='%{$(exit_code_status)%}λ $(_convertsecs $(get_time)) %{${PR_BOLD_GREEN}%}[%c] ⇒ %{$reset_color%} '
- RPROMPT='{$(git_prompt_info)}%{$reset_color%} $(git_prompt_status)%{$reset_color%}'
- }
- set_prompt # init
+ zle -N zle-line-init
+ zle -N zle-keymap-select
M scripts/lock => scripts/lock +87 -3
@@ 1,4 1,88 @@
#!/bin/bash
-scrot /tmp/screenshot.png
-convert /tmp/screenshot.png -blur 0x5 /tmp/screenshotblur.png
-/home/andrei/.config/i3/i3lock-fancy-multimonitor/lock -n -p -b=0x5
+
+# Defaults
+# Taken from https://github.com/guimeira/i3lock-fancy-multimonitor
+#
+# Modified to remove TEXT option & logic,
+# and use /home/<user>/.config/i3lock
+# dir for images.
+
+DISPLAY_RE="([0-9]+)x([0-9]+)\\+([0-9]+)\\+([0-9]+)"
+IMAGE_RE="([0-9]+)x([0-9]+)"
+FOLDER="/home/$(whoami)/.config/i3lock"
+LOCK="$FOLDER/lock.png"
+PARAMS=""
+OUTPUT_IMAGE="/tmp/i3lock.png"
+PIXELATE=false
+BLURTYPE="1x1"
+
+# Read user input
+POSITIONAL=()
+for i in "$@"
+do
+ case $i in
+ -h|--help)
+ echo "lock: Syntax: lock [-n|--no-text] [-p|--pixelate] [-b=VAL|--blur=VAL]"
+ echo "for correct blur values, read: http://www.imagemagick.org/Usage/blur/#blur_args"
+ exit
+ shift
+ ;;
+ -b=*|--blur=*)
+ VAL="${i#*=}"
+ BLURTYPE=(${VAL//=/ })
+ shift
+ ;;
+ -p|--pixelate)
+ PIXELATE=true
+ shift # past argument
+ ;;
+ *) # unknown option
+ echo "unknown option: $i"
+ exit
+ POSITIONAL+=("$1") # save it in an array for later
+ shift # past argument
+ ;;
+ esac
+done
+set -- "${POSITIONAL[@]}" # restore positional parameters
+
+#Take screenshot:
+scrot -z $OUTPUT_IMAGE
+
+#Get dimensions of the lock image:
+LOCK_IMAGE_INFO=`identify $LOCK`
+[[ $LOCK_IMAGE_INFO =~ $IMAGE_RE ]]
+IMAGE_WIDTH=${BASH_REMATCH[1]}
+IMAGE_HEIGHT=${BASH_REMATCH[2]}
+
+#Execute xrandr to get information about the monitors:
+while read LINE
+do
+ #If we are reading the line that contains the position information:
+ if [[ $LINE =~ $DISPLAY_RE ]]; then
+ #Extract information and append some parameters to the ones that will be given to ImageMagick:
+ WIDTH=${BASH_REMATCH[1]}
+ HEIGHT=${BASH_REMATCH[2]}
+ X=${BASH_REMATCH[3]}
+ Y=${BASH_REMATCH[4]}
+ POS_X=$(($X+$WIDTH/2-$IMAGE_WIDTH/2))
+ POS_Y=$(($Y+$HEIGHT/2-$IMAGE_HEIGHT/2))
+
+ PARAMS="$PARAMS '$LOCK' '-geometry' '+$POS_X+$POS_Y' '-composite'"
+ fi
+done <<<"`xrandr`"
+
+#Execute ImageMagick:
+if $PIXELATE ; then
+ PARAMS="'$OUTPUT_IMAGE' '-scale' '10%' '-scale' '1000%' $PARAMS '$OUTPUT_IMAGE'"
+else
+ PARAMS="'$OUTPUT_IMAGE' '-level' '0%,100%,0.6' '-blur' '$BLURTYPE' $PARAMS '$OUTPUT_IMAGE'"
+fi
+
+eval convert $PARAMS
+
+#Lock the screen:
+i3lock -i $OUTPUT_IMAGE -t
+
+#Remove the generated image:
+rm $OUTPUT_IMAGE
M zsh/exports.zsh => zsh/exports.zsh +12 -9
@@ 1,14 1,17 @@
#!/usr/bin/env bash
-# ZSH
+###
+### ZSH
+###
+
export UPDATE_ZSH_DAYS=1
-# MPW
-MPW_FULLNAME="Andrew Zah"
-MPW_FORMAT='none'
+# Set vi mode timeout to 0.1
+export KEYTIMEOUT=1
-# Custom
-########
+###
+### Custom
+###
export TERM=xterm-kitty
@@ 22,9 25,9 @@ export EDITOR='nvim'
export LANG='en_US.UTF-8';
export LC_ALL='en_US.UTF-8';
-#########
-# Apps
-#########
+###
+### Apps
+###
# Vim FZF
export FZF_DEFAULT_COMMAND='rg --files --no-ignore --hidden --follow --glob "!.git/*"'
A zsh/zah.zsh-theme => zsh/zah.zsh-theme +140 -0
@@ 0,0 1,140 @@
+# This is based on theunraveler and spaceship themes
+
+# Variables
+# =========
+
+ ZSH_THEME_GIT_PROMPT_PREFIX=""
+ ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ ZSH_THEME_GIT_PROMPT_DIRTY=""
+ ZSH_THEME_GIT_PROMPT_CLEAN=""
+ #https://www.utf8icons.com/character/67587/cypriot-syllable-o
+ ZSH_THEME_GIT_PROMPT_ADDED="%{$PR_BOLD_GREEN%} 𐠃"
+
+ #https://www.utf8icons.com/character/5819/runic-letter-haegl-h
+ ZSH_THEME_GIT_PROMPT_MODIFIED="%{$PR_BOLD_YELLOW%} ᚻ"
+
+ # https://www.utf8icons.com/character/5815/runic-letter-gebo-gyfu-g
+ ZSH_THEME_GIT_PROMPT_DELETED="%{$PR_BOLD_RED%} ᚷ"
+
+ # https://www.utf8icons.com/character/10499/rightwards-double-arrow-with-vertical-stroke
+ ZSH_THEME_GIT_PROMPT_RENAMED="%{$PR_BOLD_BLUE%} ⤃"
+
+ # https://www.utf8icons.com/character/1986/nko-digit-two
+ ZSH_THEME_GIT_PROMPT_UNMERGED="%{$PR_BOLD_MAGENTA%} ߂"
+
+ # https://www.utf8icons.com/character/67620/cypriot-syllable-re
+ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$PR_BOLD_CYAN%} 𐠤"
+
+# Helper Functions
+# ================
+ _prompt_section() {
+ local color prefix content suffix
+ [[ -n $1 ]] && color="%F{$1}" || color="%f"
+ [[ -n $2 ]] && prefix="$2" || prefix=""
+ [[ -n $3 ]] && content="$3" || content=""
+ [[ -n $4 ]] && suffix="$4" || suffix=""
+
+ [[ -z $3 && -z $4 ]] && content=$2 prefix=''
+
+ echo -n "%{%B%}" # set bold
+ if [[ $PROMPT_PREFIXES_SHOW == true ]]; then
+ echo -n "$prefix"
+ fi
+ echo -n "%{%b%}" # unset bold
+
+ echo -n "%{%B$color%}" # set color
+ echo -n "$content" # section content
+ echo -n "%{%b%f%}" # unset color
+
+ echo -n "%{%B%}" # reset bold, if it was diabled before
+ if [[ $PROMPT_SUFFIXES_SHOW == true ]]; then
+ echo -n "$suffix"
+ fi
+ echo -n "%{%b%}" # unset bold
+}
+ _exists() {
+ command -v $1 > /dev/null 2>&1
+ }
+
+ _convertsecs() {
+ local T=$1
+ local D=$((T/60/60/24))
+ local H=$((T/60/60%24))
+ local M=$((T/60%60))
+ local S=$((T%60))
+ [[ $D > 0 ]] && printf '%dd ' $D
+ [[ $H > 0 ]] && printf '%dh ' $H
+ [[ $M > 0 ]] && printf '%dm ' $M
+ [[ $D > 0 || $H > 0 || $M > 0 ]] && printf ''
+ printf '%ds\n' $S
+ }
+
+# ZSH Hooks
+# =========
+
+# TIME
+# track elapsed time
+ function preexec() {
+ timer=${timer:-$SECONDS}
+ }
+
+ function precmd() {
+ if [ $timer ]; then
+ timer_show=$(($SECONDS - $timer))
+ set_prompt
+ unset timer
+ fi
+ }
+
+ get_time() {
+ if [[ -n "${timer_show}" ]]; then
+ echo -e "${timer_show}"
+ fi
+ }
+
+# Prompt Functions
+# ================
+
+ function insert-mode () { echo "%{$fg_bold[yellow]%}[INSERT]%{$reset_color%}" }
+ function normal-mode () { echo "%{$fg_bold[magenta]%}[NORMAL]%{$reset_color%}" }
+
+ function user_host_status () { echo "%{$fg[magenta]%}%n%{$fg[cyan]%}@%{$fg[yellow]%}%m%{$fg_bold[red]%}:%{$reset_color%}" }
+
+ # Set color of lambda based on exit code
+ function exit_code_status() {
+ if [[ "$?" != "0" ]]; then
+ echo -e "%{$fg_bold[red]%}"
+ else
+ echo -e "%{$fg_bold[green]%}"
+ fi
+ }
+
+ function dir_status() {
+ echo "%{$fg_bold[cyan]%}%0~%{$reset_color%}"
+ }
+
+ # Wrap up in set_prompt so it can be
+ # refreshed by time functions, etc
+ function set_prompt() {
+ case ${KEYMAP} in
+ (vicmd) VI_MODE="$(normal-mode)" ;;
+ (main|viins) VI_MODE="$(insert-mode)" ;;
+ (*) VI_MODE="$(insert-mode)" ;;
+ esac
+
+ PROMPT='$(exit_code_status)λ ($(_convertsecs $(get_time))) $(user_host_status)$(dir_status) $(exit_code_status)\$ %{$reset_color%} '
+
+ if [[ -n $(git_prompt_info) ]]; then
+ RPROMPT='${VI_MODE} {$(git_prompt_info)}%{$reset_color%} $(git_prompt_status)%{$reset_color%}'
+ else
+ RPROMPT='${VI_MODE}'
+ fi
+ }
+
+ function zle-line-init zle-keymap-select {
+ set_prompt
+ zle reset-prompt
+ }
+
+ zle -N zle-line-init
+ zle -N zle-keymap-select
M zsh/zsh-path.zsh => zsh/zsh-path.zsh +1 -1
@@ 5,4 5,4 @@ export PATH="$HOME/.cargo/bin:$PATH"
eval "$(rbenv init -)"
# nvm
-source /usr/share/nvm/init-nvm.sh
+# source /usr/share/nvm/init-nvm.sh