Steven.Ayscue@bbs.acs.unc.edu (Steven Ayscue) (04/17/91)
/* Layersh /*
/* Rexx program to layer newwsh shells */
/* by Steven.Ayscue@bbs.acs.unc.edu */
/* */
/* It can be modified to work with other shells besides */
/* Wshell quite easily if they use environment variables */
/* to get the shell window position. Use this with Popcli or*/
/* MachIII as a launcher for new shell windows. */
/* */
/* The coordinates and titlename of the shellwindow env var */
/* are to suit my own taste (towards bottom half of a hi-res*/
/* screen) and can be modified at will to suit. */
/* This program is in response to the usenet post about */
/* some such machine layering new command line (shell) */
/* windows in a nice fashion. */
/* */
/* Notice that this file modifies the environment variable */
/* shellwindow. I have my env: directory copied to and */
/* assigned to ram: so the original shellwindow on disk is */
/* not altered. The effect is that on a cold boot, the */
/* shellwindow env variable is always loaded from the upper */
/* left layer position. */
/* */
/* Will somebody please streamline this for me? I am a */
/* beginner at this rexx stuff...it just seems redundent */
/* in a few places here and there; but it works! */
/* */
/* Read in existing shellwindow env variable and assign to */
/* an rexx script varible to work on. */
OPEN('Shellpos','ENV:Shellwindow',Read)
line = READLN('Shellpos')
CLOSE('Shellpos')
/* get existing coordinates of top left corner of shellwindow */
coord1 = substr(line,5,3)
coord2 = substr(line,9,3)
/* Fixup new coordinates */
/* X-step is ten, Y-step is 12 for a nice layer effect */
coord1 = (coord1+10)
coord2 = (coord2+12)
/* These IFS pad the first coordinates with Zeros so */
/* the program can deal with the low numbers in the x coordinate */
/* position of my shell window.
if coord1 <=99
then coord1 = "0"||coord1
endif
if coord1 <= 9
then coord1 = "0"||coord1
endif
/* My original Env variable for my shellwindow */
/* is CON:003/280/595/143/Wshell/c/5 which comes up near */
/* the bottom of my hi-res WorkBench screen. */
/* These IFS that follow reset the shellwindow ENV variable */
/* to the original position after 5 new Wshells opened. */
/* been layerd. ( I have the X coordinate steps set to */
/* ten in above code) */
if coord1 >60
then coord2 = "280"
endif
if coord1 >60
then coord1 = "003"
endif
/* Put new coordinates into shellwindow env variable format */
line = ('CON:'||coord1||'/'||coord2||'/595/143/Wshell/c/5')
/* Write out new shellwindow env variable to ENV:shellwindow */
OPEN('Shellpos','ENV:Shellwindow',Write)
Writech('Shellpos',line)
Close('Shellpos')
/* execute newwsh program to launch new Wshell */
Newwsh
/* End of program Layersh */
No fancy sig yet....
Steven.Ayscue@bbs.acs.unc.edu
--
=============================================================================
Extended Bulletin Board Service, Research & Development
Office of Information Technology, University of North Carolina at Chapel Hill
internet: bbs.acs.unc.edu or 128.109.157.30