Title bar flicker fix for XTerm [setting title only on "cd"]
Christopher North-Keys
harp at Pkg.Mcc.COM
Wed Oct 3 14:27:40 AEST 1990
In article <1990Oct3.011511.2263 at mlb.semi.harris.com>,
geg at beep.mlb.semi.harris.com (Greg Garland) writes:
| In article <28434 at pasteur.Berkeley.EDU>, stolcke at ICSI.Berkeley.EDU
(Andreas Stolcke) writes:
| |> In article <6459 at vanuata.cs.glasgow.ac.uk>,
sinclair at cs.glasgow.ac.uk (Duncan Sinclair) writes:
| |> |> Using tcsh, I set re-set the title of xterm before each shell
prompt,
| |> May I suggest a different approach to the same end. Instead of
| |> having the tcsh prompt string set the title bar on every command,
| |> alias the `cd ' command so as to set it only when actually changing
the
| |> current directory. (This should work for any shell with something
equivalent
| |> to an aliasing mechanism).
| |>
|
| Better call it something besides 'cd', though, like 'xcd'. I called
it 'cd'
| originally, but I noticed that when I ran sunview (to use some non-X
stuff)
| the escape sequences seem to cause the SunView 'shelltool's to hang.
|
| Greg G.
DISCLAIMER: If there's an obviously better way in the Csh, just *tell*
me, eh?
Try making the alias "c", and then, in your .cshrc startup scripts, set
the
directory-echo alias (here, ".") appropriately for the window system.
Possible approaches:
X windows: DISPLAY should exist, and TERM will be "xterm"
Sunview: WINDOW_PARENT should exist, and TERM will be "sun" or
"sun-cmd"
An example (condensed from the elfshell, version 29) using $term:
---------
setenv esc '^[' # an escape char
setenv bel '^G' # a bell char
setenv HOSTNAME `hostname`
setenv HOSTNICK `expr $HOSTNAME : '\([A-Za-z0-9-]*\)\..*' \| $HOSTNAME`
if ($?tcsh) then
alias c 'cd \!*' # Don't alias this to "cd"---bad.
alias cwdcmd . # This arranges for "cd" to update the title
as well.
else
alias c 'cd \!* ; .' # Don't alias this to "cd"---bad.
endif
if (! $?term) set term = '' # fall through to default.
switch ("$term")
case "sun*":
alias . 'header [-${HOSTNICK}- `dirs` ]'
alias header 'echo -n "$esc]l\!*$esc\"'
alias iheader 'echo -n "$esc]L\!*$esc\"'
alias icon 'echo -n "$esc]I\!*$esc\"'
breaksw
case "xterm":
alias . 'header [-${HOSTNICK}- `dirs` ];iheader ${HOSTNICK}:
$cwd:t'
alias header 'echo -n "$esc]2;\!*$bel"'
alias iheader 'echo -n "$esc]1;\!*$bel"'
alias icon 'echo -n "$esc]I;\!*$bel"'
breaksw
default:
alias . 'dirs'
set term = `tset - -I -Q -r -m :\?vt100`
breaksw
endsw
---------
Other aliases, some using environment variables. Note that EDITOR gets
reset by sunview and X startup scripts to be emacsclient instead of vi.
alias .. 'cd ..; .'
alias ... 'cd $cwd:h ; .' # A neat trick to move to the *logical*
parent.
alias / 'clear ; .' # Root of screen (?)
alias ~ 'cd ~\!* ; .'
alias j 'jobs -l'
alias p '$PAGER'
alias h 'history -r | p'
alias f 'fg %\!:1'
alias y '$EDITOR' # "yank" (was "warp") for emacsclient
program
alias ]d 'pushd \!* ; .'
alias [d 'popd ; .'
# Be verra careful not t'hide the system rm --- should NOT be a
script.
alias rm 'ls -Fsd \!*; echo -n "remove? "; if ("$<" == "y") /bin/rm
\!*'
--
________________________________________________________________________
_______
Christopher Alex.North-Keys Associate Systems
Analyst
Group Talisman
Harp[@Mcc.Com]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
More information about the Comp.unix.questions
mailing list