X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/05f8a57d0f1b8950cebc5c87fb8b2fc0e02a7835..4e7092a3248d55e4af0b45c38a67e3a7998b59a7:/dot/shell-rc diff --git a/dot/shell-rc b/dot/shell-rc index 0b6e94b..ea4f575 100644 --- a/dot/shell-rc +++ b/dot/shell-rc @@ -62,11 +62,34 @@ __mdw_runhook () { ### Prompt machinery. __mdw_host=$(hostname) +__mdw_hqual= +__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 () { - local hqual - hqual="" ## Fancy highlighting in some terminals. local bold unbold nl gitcolour rccolour uncolour @@ -77,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 @@ -108,11 +130,9 @@ __mdw_set_prompt_pieces () { ## If this is an schroot environment or some other interesting augmented ## environment then point this out. - hqual="$hqual${SCHROOT_CHROOT_NAME+/$SCHROOT_CHROOT_NAME}" - hqual="$hqual${CROSS_BUILDENV+/$CROSS_BUILDENV}" ## Put together the main pieces. - __mdw_prompt_left="$nl$bold$left$sec_l$u$host$hqual$sec_r$dir" + __mdw_prompt_left="$nl$bold$left$sec_l$u$host$__mdw_hqual$sec_r$dir" __mdw_prompt_git_left="$unbold$gitcolour" __mdw_prompt_git_right="$uncolour$bold" __mdw_prompt_rc_left="$unbold$rccolour" @@ -146,11 +166,22 @@ __mdw_set_prompt () { esac } -__mdw_xterm_precmd () { printf "]2;%s@%s:%s – %s\\" "$USER" "$__mdw_host" "$PWD" "$__mdw_shell"; } -__mdw_xterm_preexec () { printf "]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 "k%s\\" "$__mdw_shell"; } -__mdw_screen_preexec () { printf "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 @@ -187,8 +218,15 @@ alias e="$EDITOR" alias svn="svnwrap svn" alias @="ssh" alias make="nice make" +alias cross-run="nice cross-run" alias gdb="gdb -q" +## Shut up Lisp interpreters. +alias clisp="clisp -q -q" +alias cmucl="rlwrap cmucl -quiet" +alias ecl="rlwrap ecl" +alias sbcl="rlwrap sbcl --noinform" + ###-------------------------------------------------------------------------- ### Colour output.