From 3ac8e0f994839f3c972033bcb12421081ebeb683 Mon Sep 17 00:00:00 2001 From: David Runge Date: Tue, 28 Sep 2021 22:50:56 +0200 Subject: zsh: move includes to XDG compliant locations .config/zsh/{functions,includes}/*: Move functions and includes to XDG compliant locations. .zshrc: Include functions and other includes from XDG compliant locations. Remove use of prepend-sudo function. --- .zsh.functions/01_editor.zsh | 124 --------------------------------------- .zsh.functions/02_utility.zsh | 75 ------------------------ .zsh.functions/0_terminal.zsh | 74 ----------------------- .zsh.functions/overrides.zsh | 4 -- .zsh.functions/packaging.zsh | 133 ------------------------------------------ 5 files changed, 410 deletions(-) delete mode 100644 .zsh.functions/01_editor.zsh delete mode 100644 .zsh.functions/02_utility.zsh delete mode 100644 .zsh.functions/0_terminal.zsh delete mode 100644 .zsh.functions/overrides.zsh delete mode 100644 .zsh.functions/packaging.zsh (limited to '.zsh.functions') diff --git a/.zsh.functions/01_editor.zsh b/.zsh.functions/01_editor.zsh deleted file mode 100644 index 1484a92..0000000 --- a/.zsh.functions/01_editor.zsh +++ /dev/null @@ -1,124 +0,0 @@ -# Exposes information about the Zsh Line Editor via the $editor_info associative -# array. -function editor-info { - # Clean up previous $editor_info. - unset editor_info - typeset -gA editor_info - - if [[ "$KEYMAP" == 'vicmd' ]]; then - zstyle -s ':editor:info:keymap:alternate' format 'REPLY' - editor_info[keymap]="$REPLY" - else - zstyle -s ':editor:info:keymap:primary' format 'REPLY' - editor_info[keymap]="$REPLY" - - if [[ "$ZLE_STATE" == *overwrite* ]]; then - zstyle -s ':editor:info:keymap:primary:overwrite' format 'REPLY' - editor_info[overwrite]="$REPLY" - else - zstyle -s ':editor:info:keymap:primary:insert' format 'REPLY' - editor_info[overwrite]="$REPLY" - fi - fi - - unset REPLY - - zle reset-prompt - zle -R -} -zle -N editor-info - -# Updates editor information when the keymap changes. -function zle-keymap-select { - zle editor-info -} -zle -N zle-keymap-select - -# Enables terminal application mode and updates editor information. -function zle-line-init { - # The terminal must be in application mode when ZLE is active for $terminfo - # values to be valid. - if (( $+terminfo[smkx] )); then - # Enable terminal application mode. - echoti smkx - fi - - # Update editor information. - zle editor-info -} -zle -N zle-line-init - -# Disables terminal application mode and updates editor information. -function zle-line-finish { - # The terminal must be in application mode when ZLE is active for $terminfo - # values to be valid. - if (( $+terminfo[rmkx] )); then - # Disable terminal application mode. - echoti rmkx - fi - - # Update editor information. - zle editor-info -} -zle -N zle-line-finish - -# Toggles emacs overwrite mode and updates editor information. -function overwrite-mode { - zle .overwrite-mode - zle editor-info -} -zle -N overwrite-mode - -# Enters vi insert mode and updates editor information. -function vi-insert { - zle .vi-insert - zle editor-info -} -zle -N vi-insert - -# Moves to the first non-blank character then enters vi insert mode and updates -# editor information. -function vi-insert-bol { - zle .vi-insert-bol - zle editor-info -} -zle -N vi-insert-bol - -# Enters vi replace mode and updates editor information. -function vi-replace { - zle .vi-replace - zle editor-info -} -zle -N vi-replace - -# Expands .... to ../.. -function expand-dot-to-parent-directory-path { - if [[ $LBUFFER = *.. ]]; then - LBUFFER+='/..' - else - LBUFFER+='.' - fi -} -zle -N expand-dot-to-parent-directory-path - -# Displays an indicator when completing. -function expand-or-complete-with-indicator { - local indicator - zstyle -s ':editor:info:completing' format 'indicator' - print -Pn "$indicator" - zle expand-or-complete - zle redisplay -} -zle -N expand-or-complete-with-indicator - -# Inserts 'sudo ' at the beginning of the line. -function prepend-sudo { - if [[ "$BUFFER" != su(do|)\ * ]]; then - BUFFER="sudo $BUFFER" - (( CURSOR += 5 )) - fi -} -zle -N prepend-sudo - -# Reset to default key bindings. -bindkey -d diff --git a/.zsh.functions/02_utility.zsh b/.zsh.functions/02_utility.zsh deleted file mode 100644 index 05b77bc..0000000 --- a/.zsh.functions/02_utility.zsh +++ /dev/null @@ -1,75 +0,0 @@ -# Makes a directory and changes to it. -function mkdcd { - [[ -n "$1" ]] && mkdir -p "$1" && builtin cd "$1" -} - -# Changes to a directory and lists its contents. -function cdls { - builtin cd "$argv[-1]" && ls "${(@)argv[1,-2]}" -} - -# Pushes an entry onto the directory stack and lists its contents. -function pushdls { - builtin pushd "$argv[-1]" && ls "${(@)argv[1,-2]}" -} - -# Pops an entry off the directory stack and lists its contents. -function popdls { - builtin popd "$argv[-1]" && ls "${(@)argv[1,-2]}" -} - -# Prints columns 1 2 3 ... n. -function slit { - awk "{ print ${(j:,:):-\$${^@}} }" -} - -# Finds files and executes a command on them. -function find-exec { - find . -type f -iname "*${1:-}*" -exec "${2:-file}" '{}' \; -} - -# Displays user owned processes status. -function psu { - ps -U "${1:-$LOGNAME}" -o 'pid,%cpu,%mem,command' "${(@)argv[2,-1]}" -} - -# Highlights make output. -function make { - if (( $+commands[colormake] )); then - colormake "$@" - else - command make "$@" - fi -} - -# Lists the contents of archives. -function lsarchive { - while (( $# > 0 )); do - if [[ ! -s "$1" ]]; then - print "$0: file not valid: $1" >&2 - shift - continue - fi - case "$1:l" in - (*.tar.gz|*.tgz) tar t${verbose:+v}vzf "$1" ;; - (*.tar.bz2|*.tbz|*.tbz2) tar t${verbose:+v}jf "$1" ;; - (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ - && tar --xz -t${verbose:+v}f "$1" \ - || xzcat "$1" | tar t${verbose:+v}f - ;; - (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ - && tar --lzma -t${verbose:+v}f "$1" \ - || lzcat "$1" | tar x${verbose:+v}f - ;; - (*.tar) tar t${verbose:+v}f "$1" ;; - (*.zip) unzip -l${verbose:+v} "$1" ;; - (*.rar) unrar &> /dev/null \ - && unrar ${${verbose:+v}:-l} "$1" \ - || rar ${${verbose:+v}:-l} "$1" ;; - (*.7z) 7za l "$1" ;; - (*) - print "$0: cannot list: $1" >&2 - success=1 - ;; - esac - shift - done -} diff --git a/.zsh.functions/0_terminal.zsh b/.zsh.functions/0_terminal.zsh deleted file mode 100644 index 85be89a..0000000 --- a/.zsh.functions/0_terminal.zsh +++ /dev/null @@ -1,74 +0,0 @@ -# Terminal functions -# - -# Sets the terminal or terminal multiplexer window title. -function set-window-title { - local title_format{,ted} - title_format='%s' - zformat -f title_formatted "$title_format" "s:$argv" - - if [[ "$TERM" == screen* ]]; then - title_format="\ek%s\e\\" - else - title_format="\e]2;%s\a" - fi - - printf "$title_format" "${(V%)title_formatted}" -} - -# Sets the terminal tab title. -function set-tab-title { - local title_format{,ted} - title_format='%s' - zformat -f title_formatted "$title_format" "s:$argv" - - printf "\e]1;%s\a" ${(V%)title_formatted} -} - - -# Sets the tab and window titles with a given command. -function _terminal-set-titles-with-command { - emulate -L zsh - setopt EXTENDED_GLOB - - # Get the command name that is under job control. - if [[ "${2[(w)1]}" == (fg|%*)(\;|) ]]; then - # Get the job name, and, if missing, set it to the default %+. - local job_name="${${2[(wr)%*(\;|)]}:-%+}" - - # Make a local copy for use in the subshell. - local -A jobtexts_from_parent_shell - jobtexts_from_parent_shell=(${(kv)jobtexts}) - - jobs "$job_name" 2>/dev/null > >( - read index discarded - # The index is already surrounded by brackets: [1]. - _terminal-set-titles-with-command "${(e):-\$jobtexts_from_parent_shell$index}" - ) - else - # Set the command name, or in the case of sudo or ssh, the next command. - local cmd="${${2[(wr)^(*=*|sudo|ssh|-*)]}:t}" - local truncated_cmd="${cmd/(#m)?(#c15,)/${MATCH[1,12]}...}" - unset MATCH - - set-window-title "$cmd" - set-tab-title "$truncated_cmd" - fi -} - - -# Sets the tab and window titles with a given path. -function _terminal-set-titles-with-path { - emulate -L zsh - setopt EXTENDED_GLOB - - local absolute_path="${${1:a}:-$PWD}" - local abbreviated_path="${absolute_path/#$HOME/~}" - local truncated_path="${abbreviated_path/(#m)?(#c15,)/...${MATCH[-12,-1]}}" - unset MATCH - - set-window-title "$abbreviated_path" - set-tab-title "$truncated_path" -} - - diff --git a/.zsh.functions/overrides.zsh b/.zsh.functions/overrides.zsh deleted file mode 100644 index b320671..0000000 --- a/.zsh.functions/overrides.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# make git auto completion faster by favoring local files -__git_files () { - _wanted files expl 'local files' _files -} diff --git a/.zsh.functions/packaging.zsh b/.zsh.functions/packaging.zsh deleted file mode 100644 index 69d6df4..0000000 --- a/.zsh.functions/packaging.zsh +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env zsh - -pkg_sign() { - # sign one or more packages with the key setup in makepkg.conf - local _pkg_list=() - local _arg _pkg - - # get GPGKEY from makepkg.conf - if [[ -f /etc/makepkg.conf ]]; then - source /etc/makepkg.conf 2>/dev/null 1>&2 - fi - if [[ -f "${HOME}/.makepkg.conf" ]]; then - source "${HOME}/.makepkg.conf" 2>/dev/null 1>&2 - fi - if [[ -z "${GPGKEY}" ]]; then - 1>&2 printf "No GPGKEY is setup in makepkg.conf!\n" - return 1 - fi - - # check whether file(s) exists or globs exist - for _arg in "$@"; do - if [[ -f "${_arg}" ]] && [[ "${_arg}" == *.pkg.tar.zst ]]; then - _pkg_list+=( "${_arg}" ) - fi - if [[ -n *"${_arg}"*.pkg.tar.zst(#qN) ]]; then - _pkg_list+=( *"${_arg}"*.pkg.tar.zst ) - fi - done - - # sign package(s) - if (( ${#_pkg_list} > 0 )); then - for _pkg in "${_pkg_list[@]}"; do - gpg --detach-sign --local-user "${GPGKEY}" "$_pkg" - done - return 0 - else - 1>&2 printf "No package can be found for signing!\n" - return 1 - fi -} - -pkg_add() { - # sign one or more packages with the key setup in makepkg.conf - local _pkg_list=() - local _arg - - # get GPGKEY from makepkg.conf - if [[ -f /etc/makepkg.conf ]]; then - source /etc/makepkg.conf 2>/dev/null 1>&2 - fi - if [[ -f "${HOME}/.makepkg.conf" ]]; then - source "${HOME}/.makepkg.conf" 2>/dev/null 1>&2 - fi - if [[ -z "${GPGKEY}" ]]; then - 1>&2 printf "No GPGKEY is setup in makepkg.conf!\n" - return 1 - fi - - # check whether file(s) exists or globs exist - for _arg in "$@"; do - if [[ -f "${_arg}" ]] && [[ "$_arg" == *.pkg.tar.zst ]]; then - _pkg_list+=( "${_arg}" ) - fi - if [[ -n *"${_arg}"*.pkg.tar.zst(#qN) ]]; then - _pkg_list+=( *"${_arg}"*.pkg.tar.zst ) - fi - done - - # add package(s) to repo database - if (( ${#_pkg_list} > 0 )); then - repo-add -R -s -k "${GPGKEY}" "$(dirname "${_pkg_list[1]}")"/*.db.tar.gz "${_pkg_list[@]}" - return 0 - else - 1>&2 printf "No packages to add can be found!\n" - return 1 - fi -} - -sshfs_mount() { - mkdir -p "${HOME}/mounts/$1" - sshfs -C -F "${HOME}/.ssh/config" "$1": "${HOME}/mounts/$1" -} - -sshfs_umount() { - fusermount3 -u "${HOME}/mounts/$1" -} - -nvc() { - local config - if [[ -z "$1" ]]; then - 1>&2 printf "A repository name needs to be specified as the first argument.\n" - return 1 - fi - config="${HOME}/.config/nvchecker/$1.toml" - if [[ ! -f "${config}" ]]; then - 1>&2 printf "The configuration does not exist: %s\n" "${config}" - return 1 - fi - if ! command -v nvchecker > /dev/null; then - 1>&2 printf "The required application 'nvchecker' can not be found.\n" - return 1 - fi - nvchecker -c "${config}" -} - -nvt() { - local config package - if [[ -z "$1" ]]; then - 1>&2 printf "A repository name needs to be specified as the first argument.\n" - return 1 - fi - config="${HOME}/.config/nvchecker/$1.toml" - if [[ ! -f "${config}" ]]; then - 1>&2 printf "The configuration does not exist: %s\n" "${config}" - return 1 - fi - - if [[ -z "$2" ]]; then - 1>&2 printf "A package name needs to be specified as the second argument.\n" - return 1 - fi - package="${2}" - if ! grep "${package}" "${config}" > /dev/null; then - 1>&2 printf "The package %s can not be found in the configuration: %s\n" "${package}" "${config}" - return 1 - fi - - if ! command -v nvtake > /dev/null; then - 1>&2 printf "The required application 'nvtake' can not be found.\n" - return 1 - fi - nvtake -c "${config}" "${package}" -} -- cgit v1.2.3-54-g00ecf