# save each command's beginning timestamp and the duration to the history file
setopt extended_history
-# If a new command line being added to the history list duplicates an older
-# one, the older command is removed from the list
-is4 && setopt histignorealldups
-
# remove command lines from the history list when the first character on the
# line is a space
setopt histignorespace
# setting some default values
NOCOR=${NOCOR:-0}
+NOETCHOSTS=${NOETCHOSTS:-0}
NOMENU=${NOMENU:-0}
NOPRECMD=${NOPRECMD:-0}
COMMAND_NOT_FOUND=${COMMAND_NOT_FOUND:-0}
fi
# host completion
+ _etc_hosts=()
+ _ssh_config_hosts=()
+ _ssh_hosts=()
if is42 ; then
- [[ -r ~/.ssh/config ]] && _ssh_config_hosts=(${${(s: :)${(ps:\t:)${${(@M)${(f)"$(<$HOME/.ssh/config)"}:#Host *}#Host }}}:#*[*?]*}) || _ssh_config_hosts=()
- [[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
- [[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
- else
- _ssh_config_hosts=()
- _ssh_hosts=()
- _etc_hosts=()
- fi
+ if [[ -r ~/.ssh/config ]] ; then
+ _ssh_config_hosts=(${${(s: :)${(ps:\t:)${${(@M)${(f)"$(<$HOME/.ssh/config)"}:#Host *}#Host }}}:#*[*?]*})
+ fi
- local localname
- if check_com hostname ; then
- localname=$(hostname)
- elif check_com hostnamectl ; then
- localname=$(hostnamectl --static)
- else
- localname="$(uname -n)"
+ if [[ -r ~/.ssh/known_hosts ]] ; then
+ _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*})
+ fi
+
+ if [[ -r /etc/hosts ]] && [[ "$NOETCHOSTS" -eq 0 ]] ; then
+ : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(grep -v '^0\.0\.0\.0\|^127\.0\.0\.1\|^::1 ' /etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}}
+ fi
fi
+ local localname
+ localname="$(uname -n)"
hosts=(
"${localname}"
"$_ssh_config_hosts[@]"
function sudo-command-line () {
[[ -z $BUFFER ]] && zle up-history
local cmd="sudo "
- if [[ ${BUFFER:0:${#cmd}} == ${cmd} ]]; then
+ if [[ ${BUFFER} == ${cmd}* ]]; then
CURSOR=$(( CURSOR-${#cmd} ))
- BUFFER="${BUFFER:${#cmd}}"
+ BUFFER="${BUFFER#$cmd}"
else
BUFFER="${cmd}${BUFFER}"
CURSOR=$(( CURSOR+${#cmd} ))
# see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
[[ ${NOTITLE:-} -gt 0 ]] && return 0
case $TERM in
- (xterm*|rxvt*|alacritty)
+ (xterm*|rxvt*|alacritty|foot)
set_title ${(%):-"%n@%m: %~"}
;;
esac
function grml_control_xterm_title () {
case $TERM in
- (xterm*|rxvt*|alacritty)
+ (xterm*|rxvt*|alacritty|foot)
set_title "${(%):-"%n@%m:"}" "$2"
;;
esac
alias l='command ls -l'
fi
+# use ip from iproute2 with color support
+if ip -color=auto addr show dev lo >/dev/null 2>&1; then
+ alias ip='command ip -color=auto'
+fi
+
if [[ -r /proc/mdstat ]]; then
alias mdstat='cat /proc/mdstat'
fi
#a1# Take a look at the syslog: \kbd{\$PAGER /var/log/syslog || journalctl}
salias llog="$PAGER /var/log/syslog" # take a look at the syslog
#a1# Take a look at the syslog: \kbd{tail -f /var/log/syslog || journalctl}
- salias tlog="tail -f /var/log/syslog" # follow the syslog
+ salias tlog="tail --follow=name /var/log/syslog" # follow the syslog
elif check_com -c journalctl ; then
salias llog="journalctl"
salias tlog="journalctl -f"
# variables
# set terminal property (used e.g. by msgid-chooser)
-export COLORTERM="yes"
+case "${COLORTERM}" in
+ truecolor)
+ # do not overwrite
+ ;;
+ *)
+ export COLORTERM="yes"
+ ;;
+esac
# aliases