[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

918.0. "Way to tailor login environment?" by NEXUS::R_WILLIAMS () Fri Jun 09 1989 18:07

    Is there a supported way for customers to, at login time 
    (via DECW$LOGIN.COM, maybe?) have various applications come up on
    their screen?  I.e.  To startup up the clock and the calendar
    applications and have them placed on the screen?
    
    A customer is looking for a script type setup where he does not
    have to type the same commands each time he logs in to set up his
    environment.
    
    Thanks for any help here.
    
    -Rick

T.RTitleUserPersonal
Name
DateLines
918.1Try $SPAWN/NOWAITIOSG::MARCHANTI'm ready for freddyFri Jun 09 1989 18:2610
    Run the applications in subprocesses. These should be spawned
    from DECW$LOGIN.COM. E.g.

	$SPAWN/NOWAIT/PROCESS="Clock" MCR DECW$CLOCK

    would start the clock.

    Paul.

918.2PSW::WINALSKICareful with that VAX, EugeneFri Jun 09 1989 18:308
It's usually a good idea to say SPAWN/NOWAIT/INPUT=NL: command
(where "command" is the command to start the application).  The /INPUT=NL:
prevents the spawned subprocess from accidentally being terminated by a ^Y
to the parent process.  This isn't an issue with DECW$LOGIN.COM, since that
doesn't run in the context of a terminal, but in general it's a good idea.

--PSW

918.3Thanks for the quick response.....CSC32::R_WILLIAMSFri Jun 09 1989 19:252
    

918.4run/det superior to spawnLESLIE::LESLIESnip'n'SewSat Jun 10 1989 05:0130
    Even better, in SYS$LOGIN:DECW$LOGIN.COM
    
    $ run/detach/auth/inp=comfile/out=nl: sys$system:dcl 
    
    where the comfile is something like that I'm putting below. When you
    SPAWN, certain quotas are shared between all jobs owned by the parent
    process and this can lead to several problems.
    
    This is the comfile I use for decwindows notes. I use variants for VTX
    and about a half-dozen other decwindows applications.
    
    - Andy
    
$loop:
$ pid = F$PID (context)
$ IF pid .EQS. "" THEN GOTO a_ok
$ IF F$GETJPI ("''pid'", "PRCNAM") .EQS. "DECW$Notes" 
$ THEN  
$  stop/id='pid'     ! Already running, as we don't know why, kill it
$ Endif
$ goto loop
$a_ok:
$ set proc/name="DECW$Notes"
$
$ set display/node=0/create/transport=local
$! define notes$notebook here if it isn't in sys$login
$! define decw$user_defaults here if it isn't sys$login
$ notes/decwin
$! This dies when you log out because the server is no longer running

918.5PSW::WINALSKICareful with that VAX, EugeneSat Jun 10 1989 16:554
Don't you want to run LOGINOUT.EXE, not DCL.EXE?

--PSW

918.6LESLIE::LESLIESnip'n'SewSat Jun 10 1989 18:225
    Nope, dcl runs fine...this line from my DECW$LOGIN works okay.
    
$ run/det/prio=3/auth -
	/inp=disk$spex:[leslie.utils_lib]decw$notes.com/out=nl: sys$system:dcl

918.7How much can I save ?YIPPEE::BUXTONSteve Buxton - EAITG ValbonneMon Sep 04 1989 12:4823
    Maybe I can revive this note instead of starting another one ...
    
    Each time I login, I
    
    1. start up the clock
    
    2. move the clock to the top righthand corner, and shrink it slightly
    
    3. modify each of my 5 windows to be large font, record lines off top
    of screen, vertical bar, cursor no-blink, lock user features
    
    4. set host from 2 of the windows
    
    5. move the icons from the top to the bottom of the screen
    
    This is not so bad if I do it just once per week, but if the
    DECTerm controller gives out 3 or 4 times a week (see 1314, 1204) it
    can be quite painful. Can I save any more of these settings ? (1. has
    been covered).
    
    - Steve B.
    

918.8Can do all or most, depending on version.STAR::BECKThe question is - 2B or D4?Mon Sep 04 1989 14:0929
Yup, you can have all that done automatically (#4 by a slightly different means
with DECwindows V2 if you're in the cluster involved or have proxy access).

1. - Spawn from DECW$LOGIN.COM

2. - Clone the DECW$CLOCK.DAT file from SYS$SHARE into your default directory
     and include the geometry resource, as in
		Clock.geometry: 125x100-1+1
     (the -1 part means "right justified" - so the position here is upper right)

3. - Modify your DECterm window, then save as default from the Customize pulldown

4. - (Requiring V2): I submit a job to the target node's queue (it's a good idea
      to reserve a queue for DECwindows jobs) consisting of the following
      procedure:

	$ set display /create /node=MYWORKSTATION ! or locate existing WS device
	$ create/terminal/detach/window_attributes=(rows=32,initial_state=icon,-
	  title="Remote DECterm",icon_name="Remote DECterm")

	(The above procedure is an exerpt; I haven't tried it exactly like this.)
	Note that this creates separate DECterms for these jobs; it doesn't
	SET HOST from your local DECterms. Do the SUBMIT/REMOTE or SUBMIT/QUEUE
	(if you're on the same cluster as the target) from your DECW$LOGIN.COM

5. - Include something like the following in your DECW$XDEFAULTS.DAT file

		wm*geometry: = 1030x85+1-1

918.9Voil� quelque chose ....VISA::BIJAOUIBest before November 1989Mon Sep 04 1989 16:37267
    Hi Steve.
    
    I used to have the same problems, now, my environment is all setup in a
    few minutes with _reduced_ action from myself.
    
    I have a command procedure that submit itself on the boot node (I am
    running part of a LAVc), and starts off 5 processes, each with a
    different terminal setup file (3 49x110, 2 49x80), different icon,
    different title, and, because each process has been started with a
    specific name, this same command procedure, called from within your
    login will be able to take different actions, depending of the process
    name (e.g. Process name = 'Notes' <=> Start Notes).
    
    This same command procedure is run too from my decw$login.com command
    file, in 'LOCAL_MODE', and it starts two other windows on the
    VAXstation.
    
    Because we are running in a hidden area, because our boot node is an
    end node (tough luck for the cluster alias), because the boot node is
    in an established area, I have the clock running on the boot node, with
    the seconds hand (so at least every second, something goes on between
    my VAXstation and the boot node, and there is something about this
    cache that doesn't get purge, and the boot node remembers that the
    VAXstation is on the same ethernet, and thus doesn't use the two L2
    routers --ask Ian Cowburn for precise info).
    My clock is in the upper right corner, and is actually the banner
    utility written by Jim Saunders, reduced to its simplest expression, a
    borderless clock. It has the advantage of always being in front of any
    window.
    
    Follows my command file, have a look, I never got around to document
    it, it ain't good DCL (is there any good DCL ?), but it does the job.
    Replace any references of VISA to your boot node's name. Replace the
    directory spec of the setup files, if you want the one I use, just ask.
    Locally, in your DECW$LOGIN.COM, do a '$ @START_DT LOCAL'.
    To start the remote stuff, do a '$ @START_DT'
    In your login, do a '$ @START_DT SETUP_APPS'
    
    
    Don't hesit to pass by my place to have a closer look, if needed. 
    
    
    Pierre.
    ----------------------------CUT HERE--------------------------------
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Go and do the required action
$!-----------------------------------------------------------------------------
$ if P1.eqs."" then $ P1 = "DO_SUBMIT"
$ set proc/priv=(altpri,sysnam)
$ set proc/prio=4
$ goto 'P1'
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Submit the startup of the DECterm controller
$!-----------------------------------------------------------------------------
$ DO_SUBMIT:
$       node = f$getsyi("NODENAME")
$       submit-
          /queue=visa$batch-
          /log=sys$scratch-
          /notify-
          /noprint-
          /param=("CREATE_PROCESSES", "''node'") -
          start_dt
$       exit
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create the processes
$!-----------------------------------------------------------------------------
$ CREATE_PROCESSES:
$ set ver
$ set display/create/perm/node='P2'
$!
$! Create a dummy one.
$!
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=3-
  /y=95-
  /ix=600-
  /iy=0-
  /ititle="dum"-
  /title="dum on Visa"-
  /setup=bij:[decw]decw$terminal_tpu.dat-
  /process="dum"
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create a TPU window
$!-----------------------------------------------------------------------------
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=3-
  /y=95-
  /ix=230-
  /iy=0-
  /ititle="Tpu"-
  /title="Tpu on Visa"-
  /setup=bij:[decw]decw$terminal_tpu.dat-
  /process="Tpu"
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create a Mail window
$!-----------------------------------------------------------------------------
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=200-
  /y=95-
  /ix=230-
  /iy=23-
  /ititle="Mail"-
  /title="Mail on Visa"-
  /setup=bij:[decw]decw$terminal_mail.dat-
  /process="Mail"
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create a Notes window
$!-----------------------------------------------------------------------------
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=250-
  /y=95-
  /ix=286-
  /iy=0-
  /ititle="Notes"-
  /title="Notes on Visa"-
  /setup=bij:[decw]decw$terminal_mail.dat-
  /process="Notes"
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create a DCL window
$!-----------------------------------------------------------------------------
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=3-
  /y=95-
  /ix=286-
  /iy=23-
  /ititle="Visa�"-
  /title="Visa�"-
  /setup=bij:[decw]decw$terminal_big.dat-
  /process="Visa�"
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create a DCL window
$!-----------------------------------------------------------------------------
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=50-
  /y=95-
  /ix=351-
  /iy=0-
  /ititle="Visa�"-
  /title="Visa�"-
  /setup=bij:[decw]decw$terminal_big.dat-
  /process="Visa�"
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Create a DCL window
$!-----------------------------------------------------------------------------
$  child/image=sys$system:loginout.exe-
    /uaf-
    /nopass-
    /detach-
    /shrink-
    /x=100-
    /y=95-
    /ix=351-
    /iy=23-
    /ititle="Visa�"-
    /title="Visa�"-
    /setup=bij:[decw]decw$terminal_big.dat-
    /process="Visa�"/pause=5
$ exit
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Set up the applications inside the windows
$!-----------------------------------------------------------------------------
$ SETUP_APPS:
$!Set the basic terminal attributes
$ Set Term/Insert/Application/Line/Eight/Escape
$ prcnam = "''f$process()'"
$ if prcnam.eqs."Visa�"
$ then
$       set broad=(none,phone,dcl)
$       goto fin
$ endif
$ if prcnam.eqs."Visa�"
$ then
$       set broad=(none,phone,dcl)
$       goto fin
$ endif
$ if prcnam.eqs."Visa�"
$ then
$       set broad=(none,phone,dcl)
$       goto fin
$ endif
$ if prcnam.eqs."Mail"
$ then
$       set broad=none
$       define sys$input sys$command
$       mail
$       goto fin
$ endif
$ if prcnam.eqs."Notes"
$ then
$       set broad=none
$	set proc/priv=sysnam
$	deass/job/exec decw$display
$       define sys$input sys$command
$       notes
$       goto fin
$ endif
$ if prcnam.eqs."Tpu"
$ then
$       set broad=none
$       define sys$input sys$command
$       ed
$       goto fin
$ endif
$fin:
$ exit
$!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$! Start up the local windows
$!-----------------------------------------------------------------------------
$LOCAL:
$! Get the name of the local CPU
$ node = f$getsyi("SCSNODE")
$ node = node - "     " - "    " - "   " - "  " - " "
$! Capitalize this node name
$ node = f$edit(f$extract(0,1,node),"UPCASE") + f$edit(f$extract(1,10,node),"LOWERCASE")
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=3-
  /y=95-
  /ix=150-
  /iy=0-
  /ititle="''node'�"-
  /title="''node'�"-
  /setup=bij:[decw]decw$terminal_wanda.dat-
  /process="''node'�"
$ child/image=sys$system:loginout.exe-
  /uaf-
  /nopass-
  /detach-
  /shrink-
  /x=348-
  /y=95-
  /ix=150-
  /iy=23-
  /ititle="''node'�"-
  /title="''node'�"-
  /setup=bij:[decw]decw$terminal_wanda.dat-
  /process="''node'�"
$exit

918.10Am I asking too much ??YIPPEE::BUXTONSteve Buxton - EAITG ValbonneTue Sep 05 1989 08:2614
    Thanks for all the help !
    
    What I really wanted was some way of just setting everything up once,
    then saying "save", and have the system do the rest for me, instead of
    having to become a DECWindows expert.
    
    Surely there's something like this in the pipeline ? Or do we envisage
    our customers employing a "windows manager" to set up everybody's
    workstation for them ? Or maybe we see each customer having just one
    "standard" set-up ?
    
    - Steve B.
    

918.11Mostly thereSTAR::BECKThe question is - 2B or D4?Tue Sep 05 1989 09:0911
    With DECwindows V2, you can do your #1, #2, #3, and #5 once with SAVE
    operations. You can do #3 with a SAVE operation with V1, as I
    indicated.

    #4 (auto set host) isn't something feasible with a SAVE operation for a
    variety of reasons (security, changing passwords, other things done in
    the session, etc.). With a relatively small amount of DECwindows
    expertise (learning about CREATE/TERM and SUBMIT/REMOTE and creating a
    batch procedure to match) this can also be done in DECwindows V2 with a
    SAVE from the Session Manager Customize menu.

918.12STAR::BECKThe question is - 2B or D4?Tue Sep 05 1989 09:1310
    What I don't think is reasonable is to expect to get all that with one
    single "save" operation (rather than one save per desired effect).
    Think about how much context exists in an established DECwindows
    session. There's a prodigious amount. It would be impossible for a
    program to accurately guess in most cases which parts of that context
    you really want to save and which you don't. That's why it's more
    reasonable to "save" each item - e.g. move the icon box where you want
    it, size it how you like it, then use MB2 to save current state. Same
    againt with the clock, etc.

918.13Userguide ??YIPPEE::BUXTONSteve Buxton - EAITG ValbonneTue Sep 05 1989 13:028
    RE : .-1
    
    Yes, I agree. I guess this is really a problem of education - is there
    an "idiot's" userguide available on the net anywhere ?
    
    - Steve B.
    

918.14PSW::WINALSKICareful with that VAX, EugeneTue Sep 05 1989 18:4210
RE: .12

It should be possible to define by convention a "save your state" client
message.  When an application sees that message, it saves its state information,
whatever that may be.  The window manager could then send that client message to
all of the shell windows it's currently managing, upon user command.  There
could also be a "restore your state" message done in a similar way.

--PSW