122 lines
2.9 KiB
Bash
122 lines
2.9 KiB
Bash
autoload -U +X colors && colors
|
|
autoload -U +X compinit && compinit
|
|
autoload -U +X bashcompinit && bashcompinit
|
|
autoload -Uz vcs_info
|
|
|
|
setopt completeinword
|
|
setopt extended_glob
|
|
setopt noflowcontrol
|
|
setopt prompt_subst
|
|
unsetopt nomatch
|
|
|
|
setopt share_history
|
|
setopt append_history
|
|
setopt extended_history
|
|
setopt histignorealldups
|
|
setopt histignorespace
|
|
|
|
bindkey -e
|
|
bindkey "^r" history-incremental-search-backward
|
|
|
|
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
|
|
function zle-line-init() {
|
|
echoti smkx
|
|
}
|
|
|
|
function zle-line-finish() {
|
|
echoti rmkx
|
|
}
|
|
|
|
zle -N zle-line-init
|
|
zle -N zle-line-finish
|
|
fi
|
|
|
|
if [[ "${terminfo[khome]}" != "" ]]; then
|
|
bindkey "${terminfo[khome]}" beginning-of-line
|
|
fi
|
|
|
|
if [[ "${terminfo[kend]}" != "" ]]; then
|
|
bindkey "${terminfo[kend]}" end-of-line
|
|
fi
|
|
|
|
if [[ "${terminfo[kcbt]}" != "" ]]; then
|
|
bindkey "${terminfo[kcbt]}" reverse-menu-complete
|
|
fi
|
|
|
|
if [[ "${terminfo[kdch1]}" != "" ]]; then
|
|
bindkey "${terminfo[kdch1]}" delete-char
|
|
else
|
|
# fallbacks
|
|
bindkey "^[[3~" delete-char
|
|
bindkey "^[3;5~" delete-char
|
|
bindkey "\e[3~" delete-char
|
|
fi
|
|
|
|
zstyle ':completion:*:commands' rehash 1
|
|
zstyle ':completion:*' completer _oldlist _expand _complete _files _ignored
|
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
|
zstyle ':completion:*' use-cache yes
|
|
zstyle ':completion:*' menu select=2
|
|
|
|
zstyle ':vcs_info:*' enable git
|
|
zstyle ':vcs_info:*' formats "[%{$fg_bold[cyan]%}%b%{$reset_color%}]"
|
|
zstyle ':vcs_info:*' actionformats "[%{$fg_bold[cyan]%}%b%{$reset_color%}|%a]"
|
|
|
|
if [[ -f /run/.containerenv && -f /run/.toolboxenv ]]; then
|
|
TOOLBOX="%F{13}⬢%f "
|
|
else
|
|
TOOLBOX=""
|
|
fi
|
|
|
|
PROMPT="${TOOLBOX}(%M) %~ %{$fg[red]%}%(#~#~$)%{$reset_color%} "
|
|
RPROMPT="\$vcs_info_msg_0_"
|
|
|
|
precmd () {
|
|
print -Pn "\e]0;(%M) %~\a"
|
|
vcs_info
|
|
}
|
|
|
|
preexec () {
|
|
print -Pn "\e]0;(%M) $1\a"
|
|
}
|
|
|
|
alias :q="exit"
|
|
alias ..="cd .."
|
|
[[ -x /usr/bin/xdg-open ]] && alias open="xdg-open"
|
|
|
|
sshl() {
|
|
ssh -N -L ${1}:localhost:${2} $3
|
|
}
|
|
|
|
#toolbox() {
|
|
# if [[ $@ =~ (enter) && ! $@ =~ (-r|--release|-d|--distro) ]]; then
|
|
#
|
|
# CONTAINER=$(sed -E -e 's/enter|--container|-c|toolbox|\t|\n|\s//g' <<< $@)
|
|
#
|
|
# if [[ ! -z ${CONTAINER} && ${CONTAINER} =~ "^[a-zA-Z0-9-]{1,15}$" ]]; then
|
|
# command toolbox --container ${CONTAINER} run sudo hostname ${CONTAINER}
|
|
# command toolbox enter ${CONTAINER}
|
|
# else
|
|
# command toolbox enter
|
|
# fi
|
|
# else
|
|
# command toolbox $@
|
|
# fi
|
|
#}
|
|
|
|
dupfind() {
|
|
if [ $# -lt 1 ]; then
|
|
echo "Usage: $0 THREAD_COUNT [directory] ..." > /dev/stderr
|
|
fi
|
|
|
|
if ! [[ "$1" =~ ^[0-9]+$ ]]; then
|
|
echo "THREAD_COUNT needs to be an integer." > /dev/stderr
|
|
else
|
|
if [ $# -lt 2 ]; then
|
|
find . ! -empty -type f -print0 | xargs -0 -n1 -P${1} md5sum | sort | uniq -w32 -dD
|
|
else
|
|
find ${@:2:128} ! -empty -type f -print0 | xargs -0 -n1 -P${1} md5sum | sort | uniq -w32 -dD
|
|
fi
|
|
fi
|
|
}
|