Merge remote-tracking branch 'origin/github/pr/104'
authorMichael Prokop <mika@grml.org>
Fri, 22 Jan 2021 11:42:23 +0000 (12:42 +0100)
committerMichael Prokop <mika@grml.org>
Fri, 22 Jan 2021 11:42:23 +0000 (12:42 +0100)
README.md
debian/changelog
doc/grmlzshrc.t2t
etc/zsh/zshenv
etc/zsh/zshrc

index 2e83216..a72179b 100644 (file)
--- a/README.md
+++ b/README.md
@@ -10,19 +10,21 @@ To use the most important files for your user, use the following commands:
 
     # IMPORTANT: please note that you might override existing
     # configuration files in the current working directory!
-    wget -O .screenrc     http://git.grml.org/f/grml-etc-core/etc/grml/screenrc_generic
-    wget -O .vimrc        http://git.grml.org/f/grml-etc-core/etc/vim/vimrc
-    wget -O .zshrc        http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
+    wget -O .screenrc     https://git.grml.org/f/grml-etc-core/etc/grml/screenrc_generic
+    wget -O .tmux.conf    https://git.grml.org/f/grml-etc-core/etc/tmux.conf
+    wget -O .vimrc        https://git.grml.org/f/grml-etc-core/etc/vim/vimrc
+    wget -O .zshrc        https://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
 
 
 Or, on operating systems without wget:
 
     # IMPORTANT: please note that you might override existing
     # configuration files in the current working directory!
-    curl -Lo .screenrc    http://git.grml.org/f/grml-etc-core/etc/grml/screenrc_generic
-    curl -Lo .vimrc       http://git.grml.org/f/grml-etc-core/etc/vim/vimrc
-    curl -Lo .zshrc       http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
+    curl -Lo .screenrc    https://git.grml.org/f/grml-etc-core/etc/grml/screenrc_generic
+    curl -Lo .tmux.conf   https://git.grml.org/f/grml-etc-core/etc/tmux.conf
+    curl -Lo .vimrc       https://git.grml.org/f/grml-etc-core/etc/vim/vimrc
+    curl -Lo .zshrc       https://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
 
 
-Further information is available from http://grml.org/console/
+Further information is available from https://grml.org/console/
 
index 02d3491..3076f4f 100644 (file)
@@ -1,3 +1,36 @@
+grml-etc-core (0.17.4) grml-testing; urgency=medium
+
+  [ Michael Prokop ]
+  * [401702a] zshrc: enable transient_rprompt to fix sad-smiley situation
+    in rprompt. Thanks to Frank Terbeck
+
+  [ Simon Bruder ]
+  * [e1db4fe] zshrc: set title in alacritty
+
+ -- Michael Prokop <mika@grml.org>  Fri, 10 Jul 2020 10:53:48 +0200
+
+grml-etc-core (0.17.3) grml-testing; urgency=medium
+
+  [ Darshaka Pathirana ]
+  * [d336df8] zshrc: add function grml-remote-support
+
+ -- Michael Prokop <mika@grml.org>  Wed, 24 Jun 2020 12:33:37 +0200
+
+grml-etc-core (0.17.2) grml-testing; urgency=medium
+
+  [ Moviuro ]
+  * [4124996] zshenv, zshrc: add fallback to uname for HOSTNAME
+
+  [ Michael Prokop ]
+  * [94d6068] vimrc: support vim-tiny and older versions of vim
+  * [99ad5c1] zshrc: rely only on `uname -n` for $HOSTNAME handling.
+    Thanks to Darshaka Pathirana and Chris Hofstaedtler
+
+  [ ur4t ]
+  * [606e4c8] zshrc: add zstd support for simple-extract()
+
+ -- Michael Prokop <mika@grml.org>  Wed, 03 Jun 2020 16:50:12 +0200
+
 grml-etc-core (0.17.1) grml-testing; urgency=medium
 
   [ Garrett Holmstrom ]
index 3829c76..d6e6325 100644 (file)
@@ -719,6 +719,16 @@ Edit given shell function.
 : **freload()**
 Reloads an autoloadable shell function (See autoload in zshbuiltins(1)).
 
+: **grml_status_features()**
+Prints a summary of features the grml setup is trying to load. The result of
+loading a feature is recorded. This function lets you query the result. The
+function takes one argument: "-h" or "--help" to display this help text, "+" to
+display a list of all successfully loaded features, "-" for a list of all
+features that failed to load. "+-" to show a list of all features with their
+statuses. Any other word is considered to by a feature and prints its status.
+
+The default mode is "+-".
+
 : **grml_vcs_info_toggle_colour()**
 Toggles between coloured and uncoloured formats in vcs_info configuration.
 This is useful with prompts that break if colour codes are in vcs_info
index 8e4ae78..7397397 100644 (file)
 
 # set environment variables (important for autologin on tty)
 if [ -n "${HOSTNAME}" ] ; then
-  export HOSTNAME="${HOSTNAME}"
-elif [[ -x $(which hostname) ]] ; then
-  export HOSTNAME="$(hostname)"
-elif [[ -x $(which hostnamectl) ]] ; then
-  export HOSTNAME="$(hostnamectl --static)"
+    export HOSTNAME="${HOSTNAME}"
 else
-  export HOSTNAME="$(uname -n)"
+    export HOSTNAME="$(uname -n)"
 fi
 
 # make sure /usr/bin/id is available
index 5f8864e..5a74fee 100644 (file)
@@ -108,6 +108,65 @@ if [[ $ZSH_PROFILE_RC -gt 0 ]] ; then
     zmodload zsh/zprof
 fi
 
+typeset -A GRML_STATUS_FEATURES
+
+function grml_status_feature () {
+    emulate -L zsh
+    local f=$1
+    local -i success=$2
+    if (( success == 0 )); then
+        GRML_STATUS_FEATURES[$f]=success
+    else
+        GRML_STATUS_FEATURES[$f]=failure
+    fi
+    return 0
+}
+
+function grml_status_features () {
+    emulate -L zsh
+    local mode=${1:-+-}
+    local this
+    if [[ $mode == -h ]] || [[ $mode == --help ]]; then
+        cat <<EOF
+grml_status_features [-h|--help|-|+|+-|FEATURE]
+
+Prints a summary of features the grml setup is trying to load. The
+result of loading a feature is recorded. This function lets you query
+the result.
+
+The function takes one argument: "-h" or "--help" to display this help
+text, "+" to display a list of all successfully loaded features, "-" for
+a list of all features that failed to load. "+-" to show a list of all
+features with their statuses.
+
+Any other word is considered to by a feature and prints its status.
+
+The default mode is "+-".
+EOF
+        return 0
+    fi
+    if [[ $mode != - ]] && [[ $mode != + ]] && [[ $mode != +- ]]; then
+        this="${GRML_STATUS_FEATURES[$mode]}"
+        if [[ -z $this ]]; then
+            printf 'unknown\n'
+            return 1
+        else
+            printf '%s\n' $this
+        fi
+        return 0
+    fi
+    for key in ${(ok)GRML_STATUS_FEATURES}; do
+        this="${GRML_STATUS_FEATURES[$key]}"
+        if [[ $this == success ]] && [[ $mode == *+* ]]; then
+            printf '%-16s %s\n' $key $this
+        fi
+        if [[ $this == failure ]] && [[ $mode == *-* ]]; then
+            printf '%-16s %s\n' $key $this
+        fi
+    done
+    return 0
+}
+
 # load .zshrc.pre to give the user the chance to overwrite the defaults
 [[ -r ${ZDOTDIR:-${HOME}}/.zshrc.pre ]] && source ${ZDOTDIR:-${HOME}}/.zshrc.pre
 
@@ -662,7 +721,8 @@ typeset -U path PATH cdpath CDPATH fpath FPATH manpath MANPATH
 # Load a few modules
 is4 && \
 for mod in parameter complist deltochar mathfunc ; do
-    zmodload -i zsh/${mod} 2>/dev/null || print "Notice: no ${mod} available :("
+    zmodload -i zsh/${mod} 2>/dev/null
+    grml_status_feature mod:$mod $?
 done && builtin unset -v mod
 
 # autoload zsh modules when they are referenced
@@ -677,10 +737,11 @@ COMPDUMPFILE=${COMPDUMPFILE:-${ZDOTDIR:-${HOME}}/.zcompdump}
 if zrcautoload compinit ; then
     typeset -a tmp
     zstyle -a ':grml:completion:compinit' arguments tmp
-    compinit -d ${COMPDUMPFILE} "${tmp[@]}" || print 'Notice: no compinit available :('
+    compinit -d ${COMPDUMPFILE} "${tmp[@]}"
+    grml_status_feature compinit $?
     unset tmp
 else
-    print 'Notice: no compinit available :('
+    grml_status_feature compinit 1
     function compdef { }
 fi
 
@@ -2444,6 +2505,7 @@ function grml_prompt_fallback () {
 }
 
 if zrcautoload promptinit && promptinit 2>/dev/null ; then
+    grml_status_feature promptinit 0
     # Since we define the required functions in here and not in files in
     # $fpath, we need to stick the theme's name into `$prompt_themes'
     # ourselves, since promptinit does not pick them up otherwise.
@@ -2451,7 +2513,7 @@ if zrcautoload promptinit && promptinit 2>/dev/null ; then
     # Also, keep the array sorted...
     prompt_themes=( "${(@on)prompt_themes}" )
 else
-    print 'Notice: no promptinit available :('
+    grml_status_feature promptinit 1
     grml_prompt_fallback
     function precmd () { (( ${+functions[vcs_info]} )) && vcs_info; }
 fi
@@ -2489,6 +2551,9 @@ else
     function precmd () { (( ${+functions[vcs_info]} )) && vcs_info; }
 fi
 
+# make sure to use right prompt only when not running a command
+is41 && setopt transient_rprompt
+
 # Terminal-title wizardry
 
 function ESC_print () {
@@ -2513,7 +2578,7 @@ function grml_reset_screen_title () {
     # see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
     [[ ${NOTITLE:-} -gt 0 ]] && return 0
     case $TERM in
-        (xterm*|rxvt*)
+        (xterm*|rxvt*|alacritty)
             set_title ${(%):-"%n@%m: %~"}
             ;;
     esac
@@ -2531,13 +2596,7 @@ function grml_vcs_to_screen_title () {
 
 function grml_maintain_name () {
     local localname
-    if check_com hostname ; then
-      localname=$(hostname)
-    elif check_com hostnamectl ; then
-      localname=$(hostnamectl --static)
-    else
-      localname="$(uname -n)"
-    fi
+    localname="$(uname -n)"
 
     # set hostname if not running on local machine
     if [[ -n "$HOSTNAME" ]] && [[ "$HOSTNAME" != "${localname}" ]] ; then
@@ -2556,7 +2615,7 @@ function grml_cmd_to_screen_title () {
 
 function grml_control_xterm_title () {
     case $TERM in
-        (xterm*|rxvt*)
+        (xterm*|rxvt*|alacritty)
             set_title "${(%):-"%n@%m:"}" "$2"
             ;;
     esac
@@ -2834,6 +2893,17 @@ graphic chipset."
             return 1
         }
     fi
+
+    if check_com -c tmate && check_com -c qrencode ; then
+        function grml-remote-support() {
+            tmate -L grml-remote-support new -s grml-remote-support -d
+            tmate -L grml-remote-support wait tmate-ready
+            tmate -L grml-remote-support display -p '#{tmate_ssh}' | qrencode -t ANSI
+            echo "tmate session: $(tmate -L grml-remote-support display -p '#{tmate_ssh}')"
+            echo
+            echo "Scan this QR code and send it to your support team."
+        }
+    fi
 }
 
 # now run the functions
@@ -3510,6 +3580,11 @@ function simple-extract () {
                 USES_STDIN=true
                 USES_STDOUT=false
                 ;;
+            *tar.lrz)
+                DECOMP_CMD="lrzuntar"
+                USES_STDIN=false
+                USES_STDOUT=false
+                ;;
             *tar)
                 DECOMP_CMD="tar -xvf -"
                 USES_STDIN=true
@@ -3560,6 +3635,11 @@ function simple-extract () {
                 USES_STDIN=true
                 USES_STDOUT=true
                 ;;
+            *lrz)
+                DECOMP_CMD="lrunzip -"
+                USES_STDIN=true
+                USES_STDOUT=true
+                ;;
             *)
                 print "ERROR: '$ARCHIVE' has unrecognized archive type." >&2
                 RC=$((RC+1))
@@ -3846,6 +3926,8 @@ fi
 
 zrclocal
 
+unfunction grml_status_feature
+
 ## genrefcard.pl settings
 
 ### doc strings for external functions from files