X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/d4bbc0c0e3c55dde57b1514c9646f4e42cd87ebe..ff55a023136afbfef33b8c2575d5409d77d13ea8:/dot/shell-rc diff --git a/dot/shell-rc b/dot/shell-rc index 2478edb..7313cee 100644 --- a/dot/shell-rc +++ b/dot/shell-rc @@ -67,6 +67,28 @@ __mdw_hqual=$__mdw_hqual${SCHROOT_CHROOT_NAME+/$SCHROOT_CHROOT_NAME} __mdw_hqual=$__mdw_hqual${CROSS_BUILDENV+/$CROSS_BUILDENV} __mdw_set_prompt_hacks () { host=$__mdw_host; dir=""; } +__mdw_system=$(uname -s) +: ${USER-${LOGNAME-$(id -un)}} +__mdw_user=$USER + +case $(id -u) in + 0) + __mdw_rootp=t + ;; + *) + case $__mdw_system in + CYGWIN_*) + case " $(id -G) " in + *" 544 "*) __mdw_rootp=t __mdw_user="$__mdw_user%admin" ;; + *) __mdw_rootp=nil ;; + esac + ;; + *) + __mdw_rootp=nil + ;; + esac +esac + __mdw_set_prompt_pieces () { ## Fancy highlighting in some terminals. @@ -78,17 +100,16 @@ __mdw_set_prompt_pieces () { ## Choose the right delimiters. Highlight root prompts specially; ## highlight when I'm running as some other user. Highlight when this ## isn't the outermost shell on the terminal. - local left right user u tty - user=${USER-${LOGNAME-$(id -un)}} - case $(id -u) in - 0) + local left right u tty + case $__mdw_rootp in + t) left=$(echo « | iconv -f UTF-8 -t //translit) right=$(echo » | iconv -f UTF-8 -t //translit) ;; - *) - case $user in + nil) + case $USER in mdw | mwooding | nemo) u="" left="[" right="]" ;; - *) u="$user@" left="{" right="}" ;; + *) u="$__mdw_user@" left="{" right="}" ;; esac tty=$(tty) case "$__mdw_tty" in @@ -145,11 +166,22 @@ __mdw_set_prompt () { esac } -__mdw_xterm_precmd () { printf >/dev/tty "]2;%s@%s:%s – %s\\" "$USER" "$__mdw_host" "$PWD" "$__mdw_shell"; } -__mdw_xterm_preexec () { printf >/dev/tty "]2;%s@%s:%s – %s\\" "$USER" "$__mdw_host" "$PWD" "$1"; } +__mdw_xterm_settitle () { + printf >/dev/tty \ + "]2;%s@%s:%s – %s\\" \ + "$__mdw_user" "$__mdw_host$__mdw_hqual" "$PWD" \ + "$1" +} +__mdw_xterm_precmd () { __mdw_xterm_settitle "$__mdw_shell"; } +__mdw_xterm_preexec () { __mdw_xterm_settitle "$1"; } -__mdw_screen_precmd () { printf >/dev/tty "k%s\\" "$__mdw_shell"; } -__mdw_screen_preexec () { printf >/dev/tty "k%s\\" "$1"; } +__mdw_screen_settitle () { + printf >/dev/tty \ + "k%s\\" \ + "$1" +} +__mdw_screen_precmd () { __mdw_screen_settitle "$__mdw_shell"; } +__mdw_screen_preexec () { __mdw_screen_settitle "$1"; } if [ -t 0 ]; then case ${STY+t},${__mdw_precmd_hook+t},${__mdw_preexec_hook+t},${TERM} in