diff --git a/aliases/yank-paste b/aliases/yank-paste new file mode 100755 index 0000000..d2795e5 --- /dev/null +++ b/aliases/yank-paste @@ -0,0 +1,70 @@ +typeset -a __yank_buffer __cut_buffer +fyank() { + __yank_buffer=() + for i in "$@"; do + __yank_buffer+=("${i:a}") + done +} + +fcut() { + __cut_buffer=() + for i in "$@"; do + __cut_buffer+=("${i:a}") + done +} + +fyankadd() { + for i in "$@"; do + __yank_buffer+=("${i:a}") + done +} + +fcutadd() { + for i in "$@"; do + __cut_buffer+=("${i:a}") + done +} + +fpasteclear() { + __yank_buffer=() + __cut_buffer=() +} + +fpastelist() { + if [[ -n $__yank_buffer ]]; then + echo "Copying ${#__yank_buffer[@]} files:" + printf " %s\n" ${__yank_buffer[@]} + fi + if [[ -n $__cut_buffer ]]; then + echo "Moving ${#__cut_buffer[@]} files" + printf " %s\n" ${__cut_buffer[@]} + fi +} + +fpaste() { + if [[ -n $__yank_buffer ]]; then + echo "Copying ${#__yank_buffer[@]} files" + fi + if [[ -n $__cut_buffer ]]; then + echo "Moving ${#__cut_buffer[@]} files" + fi + if [[ -n $__cut_buffer || -n $__yank_buffer ]]; then + echo -n "Continue? [y/N] " + read -q || return + else + echo "Error: No files to paste. Use fyank or fcut first" + return 1 + fi + + local target=${1:-$PWD} + for file in "${__yank_buffer[@]}"; do + cp -r "$file" "$target" + done + for file in "${__cut_buffer[@]}"; do + mv "$file" "$target" + done + + fpasteclear +} + +# vim: set ft=zsh: diff --git a/compdef/_conf b/compdef/_conf index 7aba86b..7c769cf 100644 --- a/compdef/_conf +++ b/compdef/_conf @@ -1,3 +1,11 @@ #compdef conf -_arguments "1:Commands:(${(k)conf_locations})" + +_conf_locations() { + _alternative \ + "configs:Configs:(${(k)conf_locations})" \ + "dirs:XDG configs:_files -/ -W ${XDG_CONFIG_HOME:-$HOME/.config}/ -S '' -F '*/*'" +} + + +_conf_locations diff --git a/compdef/_scala-cli b/compdef/_scala-cli index 1f2efe0..85adfb4 100644 --- a/compdef/_scala-cli +++ b/compdef/_scala-cli @@ -1,5 +1,4 @@ #compdef _scala-cli scala-cli -typeset -A opt_args function _scala-cli { eval "$(scala-cli complete zsh-v1 $CURRENT $words[@])" diff --git a/env/00_xdg.zsh b/env/00_xdg.zsh new file mode 100644 index 0000000..38e3967 --- /dev/null +++ b/env/00_xdg.zsh @@ -0,0 +1,3 @@ +XDG_CACHE_HOME=${XDG_CACHE_HOME:-${HOME}/.cache} +XDG_CONFIG_HOME=${XDG_CONFIG_HOME:-${HOME}/.config} +XDG_DATA_HOME=${XDG_DATA_HOME:-${HOME}/.local/share} diff --git a/env/90_pass.zsh b/env/90_pass.zsh new file mode 100644 index 0000000..a1f77c2 --- /dev/null +++ b/env/90_pass.zsh @@ -0,0 +1 @@ +export PASSWORD_STORE_ENABLE_EXTENSIONS=true diff --git a/zshenv b/zshenv index 2242cd1..95bbe34 100755 --- a/zshenv +++ b/zshenv @@ -7,4 +7,3 @@ function(){ . $i done } -