From: isaac@glaurung.physics.mcgill.ca (Martin-D. Lacasse)
Newsgroups: comp.sys.sgi.misc
Subject: Re: How can I rlogin with the DISPLAY envar propagated?
Date: 8 Jan 93 20:40:02 GMT
Organization: Center for the Physics of Materials, McGill University


	Here is the solution we had for our network. It works on both
	Xterminals and consoles. One has to use 4Dwm. It consists of
	choosing one of our host using the window manager so that this
	solution is easier for users. The names of the hosts appear
	in the window, and different window colors were selected to
	represent the different machine architectures.

	Here is our complete /usr/lib/X11/system.4Dwmrc:


----
 Martin-D. Lacasse                   internet: isaac@physics.mcgill.ca
 Physics Department                     voice: (514) 398-7027
 McGill University                        fax: (514) 398-8434
 Montreal
 Quebec, Canada
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&


################################################################################
#                                                                              #
#              LOCAL     4Dwm RESOURCE DESCRIPTION FILE                        #
#                        (system.4Dwmrc, $HOME/.4Dwmrc)                        #
#                                                                              #
# This file is less imposing than it seems at first glance.  It includes       #
# two clearly identified sets of values.                                       #
#                                                                              #
#	* OSF original values -- included so that anyone who wants to either   #
#	  use the original OSF values or see what changes SGI has made has     #
#	  an easy way to do so.                                                #
#                                                                              #
#	* 4Dwm values -- uses a superset of mwm functions, and takes	       #
#	  advantage of new features in 4Dwm.  Settings which establish SGI's   #
#	   default end user environment are included here.		       #
#                                                                              #
# We provide both versions to allow easy user switching and comparison         #
# between them.                                                                #
#                                                                              #
################################################################################



################################################################################
#                                                                              #
#                         BUTTON BINDING DESCRIPTIONS                          #
#                                                                              #
################################################################################

#
# OSF Button Binding Descriptions
#
Buttons DefaultButtonBindings
{
        <Btn1Down>      icon|frame      f.raise
        <Btn3Down>      icon            f.post_wmenu
        <Btn1Down>      root            f.menu  WinCntrl
        <Btn2Down>      root            f.menu  SessionCntrl
        <Btn3Down>      root            f.menu  HostCntrl
}
 
Buttons ExplicitButtonBindings
{
        <Btn1Down>      frame|icon      f.raise
        <Btn3Down>      frame|icon      f.post_wmenu
        <Btn1Down>      root            f.menu  WinCntrl
        <Btn2Down>      root            f.menu  SessionCntrl
        <Btn3Down>      root            f.menu  HostCntrl
        Meta<Btn1Down>  window|icon     f.lower
!        Meta<Btn2Down>  window|icon     f.resize
!        Meta<Btn3Down>  window|icon     f.move
}
 
Buttons PointerButtonBindings
{
        <Btn1Down>      frame|icon      f.raise
        <Btn3Down>      frame|icon      f.post_wmenu
        <Btn1Down>      root            f.menu  WinCntrl
        <Btn2Down>      root            f.menu  SessionCntrl
        <Btn3Down>      root            f.menu  HostCntrl
        <Btn1Down>      window          f.raise
        Meta<Btn1Down>  window|icon     f.lower
!       Meta<Btn2Down>  window|icon     f.resize
!       Meta<Btn3Down>  window|icon     f.move
}

#
# SGI 4Dwm Button Binding Descriptions
#
Buttons 4DwmButtonBindings
{
        <Btn1Down>	root		f.menu	WinCntrl
!       <Btn1Down>	window		f.raise
        <Btn1Click>	frame		f.raise
!    Click, so we don't disable the Btn1Down ability to move the icon.
!    Btn1Down doing an f.move is in the OSF manuals.
        <Btn1Click>	icon		f.normalize
    Ctrl<Btn1Down>	frame|icon	f.lower
   Shift<Btn1Down>	frame|icon	f.raise
Shift Ctrl<Btn1Down>    window          f.raise_resize

        <Btn2Down>	root		f.menu	SessionCntrl
        <Btn2Down>	frame|icon	f.move
    Ctrl<Btn2Down>	frame|icon	f.lower
   Shift<Btn2Down>	frame|icon	f.raise
Shift Ctrl<Btn2Down>    window          f.raise_move

        <Btn3Down>	root		f.menu	HostCntrl
        <Btn3Down>	frame|icon	f.post_wmenu
    Ctrl<Btn3Down>	frame|icon	f.post_wmenu
   Shift<Btn3Down>	frame|icon	f.post_wmenu
    Meta<Btn3Down>	window|icon	f.post_wmenu
Shift Ctrl<Btn3Down>    window          f.post_wmenu
}


################################################################################
#                                                                              #
#                          KEY BINDING DESCRIPTIONS                            #
#                                                                              #
################################################################################

#
# OSF key binding descriptions
#
Keys DefaultKeyBindings
{
        Shift<Key>Escape        window|icon             f.post_wmenu
        Meta<Key>space          window|icon             f.post_wmenu
        Meta<Key>Tab            root|icon|window        f.next_key
        Meta Shift<Key>Tab      root|icon|window        f.prev_key
        Meta<Key>Escape         root|icon|window        f.next_key
        Meta Shift<Key>Escape   root|icon|window        f.prev_key
        Meta Shift Ctrl<Key>exclam root|icon|window     f.set_behavior
        Meta<Key>F6             window                  f.next_key transient
        Meta Shift<Key>F6       window                  f.prev_key transient
            <Key>F4             icon                    f.post_wmenu
}


#
# SGI 4Dwm key binding descriptions
#
Keys 4DwmKeyBindings
{
    # Same as the standard OSF Key Bindings
        Shift<Key>Escape        window|icon             f.post_wmenu
        Meta<Key>space          window|icon             f.post_wmenu
        Meta<Key>Tab            root|icon|window        f.next_key
        Meta Shift<Key>Tab      root|icon|window        f.prev_key
        Meta<Key>Escape         root|icon|window        f.next_key
        Meta Shift<Key>Escape   root|icon|window        f.prev_key
        Meta Shift Ctrl<Key>exclam root|icon|window     f.set_behavior
        Meta<Key>F6             window                  f.next_key transient
        Meta Shift<Key>F6       window                  f.prev_key transient
        <Key>F4			icon			f.post_wmenu
		<Key>Caps_Lock      window                  f.nop

    # SGI added key bindings
	Shift<Key>Escape	root			f.menu SessionCntrl
	Meta<Key>space		root			f.menu HostCntrl
}

################################################################################
#                                                                              #
#                 LOCAL PANE DEFINITIONS                                       #
#                                                                              #
################################################################################


Menu WinCntrl
{
    "Window Control"        f.title
	"Tools"					_T  f.menu  Tools
	"Set Background"	  _B    f.menu  Roots
	no-label					f.separator
	"Shuffle Up"		  _U	f.circle_up
	"Shuffle Down"		  _D	f.circle_down
	"Tidy Icons"		  _T	f.pack_icons
	no-label					f.separator
	"Minimize All"		  _M	f.minimize_all
	"Restore All"		  _R	f.normalize_all
	"Refresh All"		  _f	f.refresh
}

Menu Roots
{
	"Gray"	   f.exec "/usr/bin/X11/xsetroot -solid grey"
    "X Cross Weave" f.exec "/usr/bin/X11/xsetroot -bitmap /usr/include/X11/bitmaps/root_weave"
    "Scales"        f.exec "/usr/bin/X11/xsetroot -bitmap /usr/include/X11/bitmaps/scales"
    "Texture"       f.exec "/usr/bin/X11/xsetroot -bitmap /usr/include/X11/bitmaps/grainy"
    "Granite"       f.exec "/usr/bin/X11/xsetroot -bitmap /usr/include/X11/bitmaps/granite" 
}

Menu Tools
{
	"Xtex"        f.exec        "/usr/bin/X11/xtex"
	"Xpsview"        f.exec        "/usr/sbin/xpsview"
    "Calculators"    f.menu Calcs
	"Clocks"      f.menu   	Clocks
    "Calendar"    f.exec "/usr/bin/X11/xcalendar"
}

Menu  Clocks
{
    "Round Clock"   f.exec "/usr/bin/X11/oclock"
    "Digital Clock" f.exec "/usr/bin/X11/xclock -update 1 -digital -fn '-adobe-helvetica-bold-o-normal--18-*'"
    "Analog Clock"  f.exec "/usr/bin/X11/xclock -update 1"
}

Menu  Calcs
{
    "Posix" f.exec 	"/usr/bin/X11/xcalc -stipple"
    "Reverse Polish"  f.exec "/usr/bin/X11/xcalc -stipple -rpn"
}



#
# Hosts Control
#
Menu HostCntrl
{
        "Host Control"             f.title
		"Local Host"		_L			f.exec "/usr/sbin/winterm -T 'Local:`hostname`' -n `hostname` -bg sgigrey24 -fg sgigrey88 < /dev/null &"
        no-label                f.separator
		"Sgi Cluster..."		_i			f.menu SgiMenu
        no-label                f.separator
		"Sun Cluster..."		_S			f.menu SunMenu
        no-label                f.separator
		"Ibm Cluster..."		_b			f.menu IbmMenu
        no-label                f.separator
		"VM1"		_V			f.exec "xterm -display $DISPLAY -T 'IBM:VM1' -n VM1 -e tn3270 vm1.cc.mcgill.ca &"
}


Menu SunMenu
{
	"aragorn"   f.exec "/usr/bsd/rsh aragorn /usr/local/X11/bin/xterm +ut -T 'Sun:aragorn' -n aragorn -display $DISPLAY  -ls -sb -sk -sl 128  -bg blue4 -fg ivory < /dev/null &"
	"bilbo" f.exec "/usr/bsd/rsh bilbo /usr/local/X11/bin/xterm +ut -T 'Sun:bilbo' -n bilbo -display $DISPLAY -rv -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"boromir" f.exec "/usr/bsd/rsh boromir /usr/local/X11/bin/xterm +ut -T 'Sun:boromir' -n boromir -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"frodo" f.exec "/usr/bsd/rsh frodo /usr/local/X11/bin/xterm +ut -T 'Sun:frodo' -n frodo -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"eowyn" f.exec "/usr/bsd/rsh eowyn /usr/local/X11/bin/xterm +ut -T 'Sun:eowyn' -n eowyn -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"gandalf" f.exec "/usr/bsd/rsh gandalf /usr/local/X11/bin/xterm +ut -T 'Sun:gandalf' -n gandalf -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"gimli" f.exec "/usr/bsd/rsh gimli /usr/local/X11/bin/xterm +ut -T 'Sun:gimli' -n gimli -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"gollum" f.exec "/usr/bsd/rsh gollum /usr/local/X11/bin/xterm +ut -T 'Sun:gollum' -n gollum -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"legolas"   f.exec "/usr/bsd/rsh legolas /usr/local/X11/bin/xterm +ut -T 'Sun:legolas' -n legolas -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
	"sauron"    f.exec "/usr/bsd/rsh sauron /usr/local/X11/bin/xterm +ut -T 'Sun:sauron' -n sauron -display $DISPLAY  -ls -sb -sk -sl 128 -bg blue4 -fg ivory < /dev/null &"
}

Menu SgiMenu
{
	"arwen"    f.exec "/usr/bsd/rsh arwen /usr/sbin/winterm -T 'Indigo:arwen' -n arwen -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"balrog"    f.exec "/usr/bsd/rsh balrog /usr/sbin/winterm -T 'Personal:balrog' -n balrog -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"celeborn"    f.exec "/usr/bsd/rsh celeborn /usr/sbin/winterm -T 'Indigo:celeborn' -n celeborn -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"cirdan"    f.exec "/usr/bsd/rsh cirdan /usr/sbin/winterm -T 'Indigo:cirdan' -n cirdan -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"elrond"    f.exec "/usr/bsd/rsh elrond /usr/sbin/winterm -T 'Indigo:elrond' -n elrond -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"gildor"    f.exec "/usr/bsd/rsh gildor /usr/sbin/winterm -T 'Indigo:gildor' -n gildor -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"glaurung"    f.exec "/usr/bsd/rsh glaurung /usr/sbin/winterm -T 'Personal:glaurung' -n glaurung -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"nazgul"    f.exec "/usr/bsd/rsh nazgul /usr/sbin/winterm -T 'Personal:nazgul' -n nazgul -display $DISPLAY -bg sgigrey24 -fg sgigrey88 < /dev/null &"
	"smaug" f.exec "/usr/bsd/rsh smaug /usr/bin/X11/xterm +ut -T 'Personal:smaug' -n smaug -display $DISPLAY -rv -ls -sb -sk -sl 128 -bg sgigrey24 -fg sgigrey88 < /dev/null &"
}


Menu IbmMenu
{
	"muzgash"    f.exec "/usr/bsd/rsh muzgash /usr/bin/X11/xterm +ut -T 'IBM:muzgash' -n muzgash -display $DISPLAY -ls -sb -sk -sl 128 -fg midnightblue -bg lightgrey < /dev/null &"
}


Menu SessionCntrl
{
	"Session Control"		f.title
	"Kill Application"  _K f.exec  "/usr/bin/X11/xkill"
	"Set Behavior"      _B  f.set_behavior
	"Restart"			_R	f.restart
	no-label				f.separator
	"Log Out"		  _L	f.exec "/usr/bin/X11/endsession"
}



################################################################################
#                                                                              #
#                          ROOT MENU PANE DEFINITIONS                          #
#                                                                              #
################################################################################

#
# OSF Root Menu Description
#
Menu RootMenu
{
        "Root Menu"             f.title
        "New Window"            f.exec "xterm &"
        "Shuffle Up"            f.circle_up
        "Shuffle Down"          f.circle_down
        "Refresh"               f.refresh
        no-label                f.separator
        "Restart..."            f.restart
}

#
# SGI 4Dwm Root Menu Descriptions.
#
Menu 4DwmRootMenu
{
        "4D Window Manager"             f.title
	"Log Out"		  _L	f.exec "/usr/bin/X11/endsession"
}

Menu 4DwmLongRootMenu
{
	"4D Window Manager"		f.title
!	"New Window"		  _N	f.exec "xterm &"
	"Shuffle Up"		  _U	f.circle_up
	"Shuffle Down"		  _D	f.circle_down
	"Tidy Icons"		  _T	f.pack_icons
	"Minimize All"		  _M	f.minimize_all
	"Restore All"		  _A	f.normalize_all
	"Refresh All"		  _f	f.refresh
	no-label			f.separator
	"Restart 4Dwm"		  _R	f.restart
	"Quit 4Dwm"		  _Q	f.quit_mwm
	no-label			f.separator
	"Log Out"		  _L	f.exec "/usr/bin/X11/endsession"
}

################################################################################
#                                                                              #
#                           WINDOW PANE DEFINITIONS                            #
#                                                                              #
################################################################################

#
# OSF Default Window Menu Description
#

Menu DefaultWindowMenu
{
        Restore         _R      Alt<Key>F5      f.normalize
        Move            _M      Alt<Key>F7      f.move
        Size            _S      Alt<Key>F8      f.resize
        Minimize        _n      Alt<Key>F9      f.minimize
        Maximize        _x      Alt<Key>F10     f.maximize
        Lower           _L      Alt<Key>F3      f.lower
        no-label                                f.separator
        Close           _C      Alt<Key>F4      f.kill
}


#
# SGI 4Dwm Window Menu Description.
#

Menu 4DwmWindowMenu
{
        Restore         _R      Alt<Key>F5      f.normalize
        Move            _M      Alt<Key>F7      f.move
        Size            _S      Alt<Key>F8      f.resize
        Minimize        _n      Alt<Key>F9      f.minimize
        Maximize        _x      Alt<Key>F10     f.maximize
	Raise		_a	Alt<key>F1	f.raise
        Lower           _L      Alt<Key>F3      f.lower
        no-label                                f.separator
        Close           _C          	        f.kill
        Quit	        _Q      	        f.quit_app
}
Newsgroups: comp.sys.sgi.misc