SunSolve Internal |
![]() |
Infodoc ID | Synopsis | Date | ||
16466 | 1920x1200@70 resolution on FFB framebuffers | 31 Jan 1998 |
Description | Top |
1920x1200@70 is the highest resolution a Creator FFB frame buffer can support. However, it is not supported by all FFB frame buffers and monitors. It is currently supported only by the Creator3D series 2 (FFB2) frame buffer, and then only with Sun's 24-inch HDTV monitor. As described in the ffbconfig manpage, you can determine which resolutions your FFB framebuffer supports with your monitor by using the command "ffbconfig -res ?": Some video-modes are supported only on certain revisions of FFB. Also, some video-modes, supported by FFB, may not be supported by the monitor. The list of video-modes supported by the FFB device and the monitor can be obtained by running ffbconfig with the -res ? option. All of the video modes supported by various FFB frame buffers are: ______________________________ | 1024x768x60 | | 1024x768x70 | | 1024x768x75 | | 1024x768x77 | | 1024x800x84 | | 1152x900x66 | | 1152x900x76 | | 1280x800x76 | | 1280x1024x60 | | 1280x1024x67 | | 1280x1024x76 | | 960x680x112s (stereo) | | 960x680x108s (stereo) | | 640x480x60 | | 640x480x60i (interlaced)| | 768x575x50i (interlaced)| | 1440x900x76 (hi-res) | | 1600x1000x66 (hi-res) | | 1600x1000x76i (hi-res) | | 1600x1280x76 (hi-res) | | 1920x1080x72 (hi-res) | | 1920x1200x70 (hi-res) | |_____________________________| Note that, as described above, not all FFB frame buffers support all of these resolutions. With Sun's 24-inch HDTV monitor the FFB2 supports these additional resolutions: 1920 x 1200 single-buffered 1600 x 1000 single-buffered 1440 x 900 single-buffered 1280 x 800 single-buffered or double-buffered This frame buffer has 15 MB RAM, which is normally used to provide 96 bits per pixel. That's roughly 32 bits each for each of the double buffers plus 32 for the Z buffer (it's actually more complex than that). The two display buffers can be combined to give 10 MB to use as a single display buffer. However, the Z buffer memory cannot be combined in this way, which is why you can't have double buffering at higher resolutions.
Infodoc ID | Synopsis | Date | ||
18072 | CDE Workspace configuration files for Solaris 2.6 | 13 Mar 2000 |
Description | Top |
In order to customize the CDE Workspace, make a copy of the system's default file: #cp /usr/dt/config/C/sys.dtwmrc /etc/dt/config/sys.dtwmrc Edit the copied sys.dtwmrc file to make the Workspace customizations. For all users to have one main Workspace Menu, the customized /etc/dt/config/C/sys.dtwmrc must be copied to each user's $HOME/.dt/dtwmrc. Or make a custom $HOME/.dt/dtwmrc file for each user. The Workspace Manager must be restarted in order for changes made to the configuration file to take effect. To restart the Workspace Manager: Move the pointer to the Backdrop, hold down mouse button 3, then select Restart the Workspace Manager. For information on CDE Workspace configuration files for Solaris 2.6 3/98 and above, reference InfoDoc 20835. ***Sun Does Not support Customization of CDE***
Applies To | Operating Systems/Solaris/Solaris 2.6 |
Attachments | (none) |
Infodoc ID | Synopsis | Date | ||
13458 | Running CDE in 24 bit mode | 31 Jan 1998 |
Description | Top |
Running CDE in 24 bit Mode Follow these steps: 1. cp /usr/dt/config/Xservers /etc/dt/config/Xservers (NOTE: /etc/dt/config directory does not exist by default, you must create it.) 2. change the following line of the Xserver file you just copied: :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner to this: :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner -dev /dev/fb0 defdepth 24 After the modifications have been saved, you will need to reboot the system for the changes to take effect. Xservers is read by dtlogin so you can restart dtlogin to re-read this file, but it is suggested that you reboot the system instead.
Product Area | Windows |
Product | CDE |
OS | Solaris 2.5 |
Hardware | any |
Infodoc ID | Synopsis | Date | ||
18370 | How do I enable CDE/Xwindow through a Firewall? | 23 Jan 1999 |
Description | Top |
This question could be put in another way: "What TCP and UDP ports does CDE/Xwindow use?" This is a very hard question. Your best bets are the following: enable ports 6000 to 6004, they are used by X. enable port 177, this is the XDMCP port enable port 32798 (dtlogin uses it) try to connect from hostA to hostB using CDE. gather and analyze the output of: snoop -V hostA hostB on the machine you want to log into check the following for *.1234 like port numbers: netstat -an /usr/proc/bin/ptree # you can get lsof from www.sunfreeware.com, it is a public domain package # not supported by Sun. lsof |grep Xsun|grep inet lsof |grep dtlogin|grep inet If you are using 3rd party applications, please check them with lsof |grep app3rdparty |grep inet /etc/services and ypcat -k services (if using NIS) or the NIS+ services table. Unfortunately, enabling port 6000 by itself may not solve the problem since Xsun uses other ports once the X connection is already established. *** Warning *** In general, running CDE through a firewall is not a good idea, because of security considerations. See the Nutshell book, "Internet Firewalls" for more information. This information is not supported by Sun and is provided without warranty.
Infodoc ID | Synopsis | Date | ||
13177 | FFB screen resolution setup | 31 Jan 1998 |
Description | Top |
FFB, the fast frame buffer on ultra machines, can be a primary console device or a secondary device. The Fcode device driver can: -Configure hardware for the selected resolution. -Clear the screen to white. -Turn on the video. If you need to configure cgsix as your console device when you have ffb on board, you can do so with: ok setenv output-device /sbus@1f,0/cgsix@1,0 How Do you select the screen resolution for ffb? 1) The screen resolution is selected by monitor ID. 2) The nvaram parameter "output-device" selects the screen resolution. Ex: ok setenv output-device screen:r960x680x112s Supported Monitor Resolutions: Monitor ID Resolution 0 r1024x768x77 1,3,5,7 r1152x900x66 6 r1152x1024x76 r1280x1024x67 2,4 r1280x1024x76 svga r1024x768x60 vesa std r1024x768x70 xerox r1024x800xx84 stereo r960x680x112s old stereo r960x680x108s NTSC r640x480x60i PAL r768x575x50i Hitachi r1600x1280x76 HRV (Sony) r1920x1080x72 How do I check the Fcode PROM version. 1. setenv fcode-debug? true 2. reset 3. dev /SUNW,ffb 4. prt_sccsid @(#)ffb.1.33 95/05/26Copyright (c) 1994 Sun Microsystems, Inc. 5. device-end FFB self test ok test /SUNW,ffb If the diag-switch?true You will see the following messages: Verifying Console Mode for frame buffer board This will take a few minutes Verifying frame Buffer Memory used for console mode This will take about two minutes FFB Frame Bufferfuncrional test paased ok How do I know whether I have a frame buffer or not? ok show-devs SUNW, ffb@1e,0 If the system is up and you want know about the ffb type the following command prtconf | grep ffb ffb, instance #0 If you want to configure various ffb properties use /usr/sbin/ffbconfig
Infodoc ID | Synopsis | Date | ||
21137 | Chanding the message of the day in /etc/motd | 14 Jul 2000 |
Description | Top |
1. Once you login CDE begins to initialize itself through a series of ksh programs located in /usr/dt/config/Xsession.d. Creating a new script in this directory can allow you to execute a CDE built in error reporting program which you can use to display your message. The error messaging program will open a window during the dtlogin session and require the user to click on OK. Look at the naming convention used for the CDE initialization scripts. # ls -l /usr/dt/config/Xsession.d 2. Create the following script called 0003.message in the Xsession.d directory. #!/bin/sh # # This shell script invokes a dialog # giving the user time to read the message of the day # message=`cat /etc/motd | sed 's/$/\\\n/'` /usr/dt/bin/dterror.ds "$message" "A Message" "Click here when finished" 3. Change the mode of the new script to make it executable # chmod a+x 0003.message 4. Create a message of the day file in /etc/motd Note: Any message (i.e. a security message) can be displayed using this method. Just replace the /etc/motd with the path to the file to be displayed.
Infodoc ID | Synopsis | Date | ||
17432 | How to add or remove an icon to or from the CDE Front Panel | 16 Jul 1998 |
Description | Top |
How can I add an icon to the CDE Front Panel or remove an icon from the Front Panel? The CDE Front Panel is defined by a database of configuration files. The default Front Panel configuration is defined in: /usr/dt/appconfig/types/C/dtwm.fp Front Panel configuration files end with the extension ".fp". By default, Front Panel configuration files are found in the following directories: $HOME/.dt/types/ /etc/dt/appconfig/types/C/ /usr/dt/appconfig/types/C/ Where there is a conflict between components of a definition, the following rules apply: + If the components have the same name, the first component read is used + If two components specify the same position, the are placed in the order in which they are read To remove a control from the Default CDE's Front Panel: 1. Copy its definition from /usr/dt/appconfig/types/C/dtwm.fp into a file with the ".fp" extension residing in the directory: $HOME/.dt/types 2. Add the following text to the control definition: DELETE True 3. Choose "Restart WorkspaceManager ..." from the root menu. For example, to remove the Text Edit application from the Front Panel copy its text from: /usr/dt/appconfig/types/C/dtwm.fp into $HOME/.dt/types/textedit.fp then add the line: DELETE True The control definition should look like: CONTROL TextEditor { TYPE icon CONTAINER_NAME Top CONTAINER_TYPE BOX POSITION_HINTS 4 ICON Fppenpd LABEL Text Editor PUSH_ACTION Dtpad DROP_ACTION Dtpad HELP_TOPIC FPOnItemTextEditor HELP_VOLUME FPanel DELETE True } Finally, choose "Restart Workspace Manager..." , from the root menu. The Text Editor will be removed from the Front Panel. To add a system-wide Control to the Front Panel: 1. Create and edit a file with the extension ".fp" in: /etc/dt/appconfig/types/C/ Alternatively, to add a personal Control to the Front Panel, create and edit a file with the extension ".fp" in: $HOME/.dt/types/ 2. Define a control in that file using the following syntax: COMPONENT {name} { {keyword} {value} {keyword} {value} ... } Refer to the /usr/dt/appconfig/types/C/dtwm.fp for examples of {name}, {keyword} and {value} 3. Choose "Restart Workspace Manager ..." from the root menu. For example, to add a Load Meter to the Front Panel as the third item from the left, follow these steps: A. Create and edit the file: $HOME/.dt/types/load.fp B. Define the following control: CONTROL LoadMeter { TYPE client POSITION_HINTS 3 CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 88x64 } C. Choose "Restart Workspace Manager..." , from the root menu. The Load Meter will be displayed in the Front Panel. How to add a newly created CDE action to a subpanel on dtwm's front panel on system-wide level. 1. Create a system-wide front panel configuration file (as root) using this naming convention: /etc/dt/appconfig/types/language/name.fp where "name" is the name of the file. Please retain the ".fp" extension. 2. Define the system-wide control in the file. Use the CONTAINER_NAME and CONTAINER_TYPE fields to specify the container for the control: CONTROL control_name { CONTANINER_NAME subpanel_name CONTANINER_TYPE SUBPANEL ... } where "..." is the actual CONTROL specifications. Note: To find subpanel_name, examine these files: + $HOME/dt/appconfig/*.fp + /etc/dt/appconfig/types/C/*.fp + /usr/dt/appconfig/types/C/*.fp 3. Save the configuration. 4. Exit CDE and login as any user. EXAMPLE: Allows for a cmdtool to start from the Personal Applications subpanel for all users on one system. 1. Create /etc/appconfig/types/C/cmd.fp 2. cmd.fp file has the following CONTROL definition: CONTROL cmdtool { TYPE icon CONTAINER_NAME PersAppsSubpanel CONTAINER_TYPE SUBPANEL ICON Dtactn PUSH_ACTION cmdAct PUSH_RECALL True } Since this control is associated with a PUSH_ACTION, the ACTION cmdACT must be created. It is best placed in same directory, with a file extension of ".dt" (/etc/appconfig/types/C/name.dt. In this example name.dt = cmd.dt). The cmd.dt file has the following ACTION definition: ACTION cmdAct { EXEC_STRING /usr/openwin/bin/cmdtool WINDOW_TYPE NO_STDIO } 3. When finished with step two one should have both a cmd.fp and a cmd.dt in the "system-wide" directory /etc/appconfig/types/C 4. Exit CDE and login as any user. The Personal Applications subpanel will have a Dtactn icon. When this icon is selected, an OpenWindows cmdtool will appear.
Infodoc ID | Synopsis | Date | ||
21571 | Adding a Kernel Patch to a JumpStart Installation Boot Image | 14 Jul 2000 |
Description | Top |
When is this useful?
1) This will work when the "Operating Environment CDROM" and therefore the modify_install_server script is not available (See SRDB 20576). Also note that the modify_install_server script adds packages and patches for the PGX32 frame buffer, which may not be necessary in your particular instance.
2) This is also useful if you are JumpStarting Solaris 2.6 5/98 to an Enterprise Server with 400MHZ cpus with 8mb cache (See SRDB 20149).
Following are instructions with an example of this on a Solaris 2.6 5/98 install image at /export/Install/2.6_598/Solaris_2.6/Tools/Boot::
1) Copy the kernel patch to the /tmp directory then patch the boot portion of the Install Image.
Example:
#patchadd -C /export/Install/2.6_598/Solaris_2.6/Tools/Boot -M /tmp 105181-17
/export/Install/2.6_598 = Install Image Path (yours may differ)
Solaris_2.6 = Product Name Directory
105181-17 = 2.6 Kernel Patch
This will update the boot image patch directory as follows:
/export/Install/2.6_598/Solaris_2.6/Tools/Boot/tmp/root/var/sadm/patch
The default patches in this directory are:
105633-05 105654-03 105874-01 105924-03
After "patchadd -C" completes, the contents are:
105181-17 105633-05 105654-03 105874-01 105924-03
2) Copy the kernel patch to the Patches directory of the install image:
Patches directory example:
/export/Install/2.6_598/Solaris_2.6/Patches/105181-17
The default patches in this directory are:
105570-01 105633-05 105654-03 105924-03 106040-03Notes:
These patches will install in sequential order, so the kernel patch (105181-17) will install first.
This can be confirmed in the installation finish log in the /var/sadm/system/logs/finish.log_'date' file.
The patch_finish script is located in the
./Solaris_2.6/Tools/Boot/usr/sbin/install.d/install_config
directory of the install image.
Applies To | OS Install/Boot, OS Install/Boot/Network Install, AFO Vertical Team Docs, AFO Vertical Team Docs/Install/Boot |
Attachments | (none) |
Infodoc ID | Synopsis | Date | ||
13598 | Adding alternate window managers from CDE's dtlogin | 7 Jan 1997 |
Description | Top |
Adding Alternate Window Managers to the dtlogin options/sessions Menu. This example uses mwm to add window managers to the list, and assumes that mwm is installed in its standard location from the Software Developers Kit (SDK), which is /opt/SUNWmfwm/bin/mwm Three files need to be added: - /usr/dt/config/C/Xresources.d/Xresources.mwm - /usr/dt/config/Xsession.mwm - /usr/dt/config/Xsession.mwm2 1. The easiest way to do this is to enter the following: csh setenv CONFIG /usr/dt/config setenv RESOURCE /usr/dt/config/C/Xresources.d cp $RESOURCE/Xresources.ow $RESOURCE/Xresources.mwm cp $CONFIG/Xsession.ow $CONFIG/Xsession.mwm cp $CONFIG/Xsession.ow2 $CONFIG/Xsession.mwm2 2. Modify the $RESOURCE/Xresources.mwm FROM: Dtlogin*altDtName: OpenWindows Desktop Dtlogin*altDtKey: /usr/openwin/bin/olwm Dtlogin*altDtStart: /usr/dt/config/Xsession.ow Dtlogin*altDtLogo: OWlogo TO: Dtlogin*altDtName: Mwm Desktop Dtlogin*altDtKey: /opt/SUNWmfwm/bin/mwm Dtlogin*altDtStart: /usr/dt/config/Xsession.mwm Dtlogin*altDtLogo: <What ever .pm file you like> 3. Put the .pm file in /etc/dt/appconfig/icons/C. To see what you have by default, go to /usr/dt/appconfig/icons/C 4. Modify the $CONFIG/Xsession.mwm FROM: export SDT_ALT_SESSION="/usr/dt/config/Xsession.ow2" TO: export SDT_ALT_SESSION="/usr/dt/config/Xsession.mwm2" and FROM: if [ -z "$SDT_ALT_HELLO" ] then if [ -x $DTDSPMSG ]; then export SDT_ALT_HELLO="/usr/dt/bin/dthello -string '`$DTDSPMSG -s 37 /usr/dt/ lib/nls/msg/$LANG/dthello.cat 1 'Starting the OpenWindows Desktop'`' &" else export SDT_ALT_HELLO="/usr/dt/bin/dthello -string 'Starting the OpenWindows Desktop' &" fi fi TO: if [ -z "$SDT_ALT_HELLO" ] then if [ -x $DTDSPMSG ]; then export SDT_ALT_HELLO="/usr/dt/bin/dthello -string 'Starting the Motif Deskto p' &" else export SDT_ALT_HELLO="/usr/dt/bin/dthello -string 'Starting the Motif Deskto p' &" fi fi 5. Modify the $CONFIG/Xsession.mwm2: Add the following two lines to the beginning of the file: OW_WINDOW_MANAGER=/opt/SUNWmfwm/bin/mwm export OW_WINDOW_MANAGER
Infodoc ID | Synopsis | Date | ||
11730 | Adding an application to CDE's Front Panel | 20 Dec 1996 |
Description | Top |
The Front Panel is relatively easy to customize manually. It is defined by a database of configuration files. The default Front Panel configuration is defined in: /usr/dt/appconfig/types/C/dtwm.fp Front Panel configuration files end with the extension ".fp". By default, Front Panel configuration files are in the following directories: $HOME/.dt/types/ /etc/dt/appconfig/types/C/ /usr/dt/appconfig/types/C/ Where there is a conflict between components of a definition, the following rules apply: + If the components have the same name, the first component read is used. + If two components specify the same position, they are placed in the order in which they are read. To add a system-wide Control to the Front Panel: 1. Create and edit a file with the extension ".fp" in: /etc/dt/appconfig/types/C/ Alternatively, to add a personal Control to the Front Panel, create and edit a file with the extension ".fp" in: $HOME/.dt/types/ 2. Define a control in that file using the following syntax: COMPONENT {name} { {keyword} {value} {keyword} {value} ... } Refer to the /usr/dt/appconfig/types/C/dtwm.fp for examples of {name}, {keyword} and {value} 3. Choose "Restart Workspace Manager ..." from the root menu. For example, to add a Load Meter to the Front Panel as the third item from the left, follow these steps: A. Create and edit the file: $HOME/.dt/types/load.fp B. Define the following control: CONTROL LoadMeter { TYPE client POSITION_HINTS 3 CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 88x64 } C. Choose "Restart Workspace Manager..." , from the root menu. The Load Meter will be displayed in the Front Panel. Please note that if the Load Meter isn't displayed, type xload at the command prompt. The Load Meter displays on the Front Panel. This only needs to be done once.
Infodoc ID | Synopsis | Date | ||
11719 | Starting Applications from a menu under CDE | 17 Nov 1995 |
Description | Top |
Although CDE encourages the use of the front panel for starting regularly used applications, it is still possible to start CDE tools, or indeed the OpenWindows deskset tools from a WorkSpace menu. The Open Look Window Manager (olwm) uses $HOME/.openwin-menu The equivalent of the .openwin-menu* files is $HOME/.dt/dtwmrc . The syntax of this file is a superset of the .mwmrc file used by the Motif Window Manager (mwm). Note CDE will *NOT* look for a .mwmrc file, only $HOME/.dt/dtwmrc This file can bemodified to include lines of the form "File Manager..." f.exec "$OPENWINHOME/bin/filemgr &" to have a File Manager button on the Workspace Menu for example. The easiest way to start is to copy /usr/dt/config/C/sys.dtwmrc to $HOME/.dt/dtwmrc and edit it. dtwmrc can also be edited through : CDE Application Manager->Desktop_Tools Folder->Edit Dtwmrc The ApplicationManager can be located on the CDE Front Panel
Infodoc ID | Synopsis | Date | ||
13383 | Changing the dtlogin screen (fonts, bitmap, welcome text message) | 11 Apr 2000 |
Description | Top |
To Customize the login screen appearance, you can change the logo or graphics, the welcome message, and the fonts. Here is how you can do it. *** The following steps constitute customization of CDE, which is unsupported by Sun. *** This example assumes you are using the C locale. 1. cp /usr/dt/config/C/Xresources /etc/dt/config/C/Xresources 2. vi /etc/dt/config/C/Xresources Changing the dtlogin Screen <1> Change the logo. Change the line: !! Dtlogin*logo*bitmapFile: < bitmap or pixmap file > to Dtloginn*logo*bitmapFile: /usr/dt/lib/bitmaps/MyLogo.bmp <2> Change the welcome message. Change the line: Dtlogin*greeting.labelString: Welcome to %LocalHost% to Dtlogin*greeting.labelString: This is my greeting at %LocalHost% %LocalHost% and %DisplayName% can be used in this line. <3> Change the welcome message text font Add the line: Dtlogin*greeting.fontList: fixed For information about modifying other resources, see the dtlogin man page.
Infodoc ID | Synopsis | Date | ||
17630 | How do I change the dtlogin logos? |
Description | Top |
I would like to change the initial logo that comes up when dtlogin (the grey screen with the login dialog) comes up (Q1). Furthermore, I would also like to change the CDE session logo (Q2), and the OpenWindows logo (Q3). How do I do this? Q1: How do I change the dtlogin default logo? A1: General dtlogin bitmap (welcome screen bitmap after dtlogin comes up) --------------------------------------------------------------------- as root type mkdir -p /etc/dt/config/C cp /usr/dt/config/C/Xresources /etc/dt/config/C echo "Dtlogin*logo*bitmapFile: /usr/dt/appconfig/icons/C/SDtlogo.pm" >> /etc/dt/config/C/Xresources ps -ef|grep dtlogin | grep -v grep | awk '{print $2}'|xargs kill; /usr/dt/bin/dtlogin -daemon & You can change SDtlogo.pm to any bitmap file you would like to see as the default bitmap. Q2: How do I change the CDE session logo bitmap? A: CDE session bitmap ------------------ When you change the session to CDE, dtlogin shows /usr/dt/appconfig/icons/C/Dtlogo.pm mkdir -p /etc/dt/config/ cp /usr/dt/config/C/Xresources /etc/dt/config/C/ edit /etc/dt/config/C/Xresources using you favorite text editor, and change the line: Dtlogin*altDtLogo1: <full-pathname-of-the-bitmap-file> ps -ef|grep dtlogin | grep -v grep | awk '{print $2}'|xargs kill; /usr/dt/bin/dtlogin -daemon & Q3: How do I change the OpenWindows session logo bitmap? A3: OpenWin session bitmap ---------------------- When you change the session to OpenWindows, dtlogin shows /usr/dt/appconfig/icons/C/OWlogo.pm mkdir -p /etc/dt/config/C/Xresources.d cp /usr/dt/config/C/Xresources.d/Xresources.ow /etc/dt/config/C/Xresources.d edit /etc/dt/config/C/Xresources.d/Xresources.ow using you favorite text editor, and change the line: Dtlogin*altDtLogo: <full-pathname-of-the-bitmap-file> ps -ef|grep dtlogin | grep -v grep | awk '{print $2}'|xargs kill; /usr/dt/bin/dtlogin -daemon & ------------------------------------------------------------------ The above steps are customizations of CDE and are supported by Sun Microsystems, Inc. on a best effort-basis only. ------------------------------------------------------------------
Infodoc ID | Synopsis | Date | ||
17826 | how to change dtwm's look and feel from CDE to mwm at runtime | 3 Oct 1998 |
Description | Top |
In dtwm, CDE's desktop window manager, you can change the look and feel of the window manager from CDE to Motif window manager using the following key sequence: Control-Alt-Shift-1 Pressing these four keys at the same time will display a dialog box which asks: Switch to Default Behavior? If you select the OK button, the window manager restarts with a Motif window manager look and feel. You can change the look and feel back to CDE using the same key sequence. Pressing the four keys at the same time will display a dialog box which asks: Switch to Custom Behavior? If you select the OK button, the window manager restarts with a CDE look and feel. This key sequence is defined by default in /usr/dt/config/<locale>/sys.dtwmrc. The dtwmrc man page describes the function: f.set_behavior This function causes the workspace manager to restart with the default behavior (if a custom behavior is configured) or a custom behavior (if a default behavior is config- ured). By default this is bound to Shift Ctrl Alt <Key>!.
Infodoc ID | Synopsis | Date | ||
17789 | changing the mouse cursor image in CDE | 3 Oct 1998 |
Description | Top |
To change the default mouse cursor image in CDE -- and every other window manager -- use the command "/usr/openwin/bin/xsetroot -cursor", and provide a path to the cursor bitmap and the cursor mask bitmap you want to use. From the xsetroot man page: -cursor cursorfile maskfile This lets you change the pointer cursor to whatever you want when the pointer cursor is outside of any window. Cursor and mask files are bitmaps (little pictures), and can be made with the bitmap(1) program. You prob- ably want the mask file to be all black until you get used to the way masks work. Note that in CDE and other window managers, individual applications can override the default mouse cursor image with their own images. You can use the /usr/openwin/bin/bitmap application to draw your own cursor and cursor mask bitmaps. See the bitmap man page for more information about this application. For example: xsetroot -cursor /usr/openwin/share/src/xview/examples/dnd/arrow.bm /usr/openwin /share/src/xview/examples/dnd/arrow_mask.bm
Infodoc ID | Synopsis | Date | ||
20790 | How do you change monitor resolution at the OBP level when using a PGX32 frame buffer? | 6 Jun 2000 |
Description | Top |
Reasons for Changing the Console Resolution Normally, the default console resolution is sufficient for most users. However, you may need to change the default resolution if: You change the X Windows depth from the default listed in the table, then you should configure the console depth to match the X Windows depth. The monitor does not "sync up" at the default console resolution, then you need to choose a different console resolution. ------------------------------------------------------------------------------- Note - The monitor must be turned on prior to booting the system in order for the PGX32 to communicate with it. ------------------------------------------------------------------------------- The methods described in this appendix will override any information obtained via EDID. output-device Method It is possible to specify the console resolution of PGX32 card via the output-device environment variable by using the format screen:rAxBxC, where: A is the desired horizontal resolution, B is the desired vertical resolution, and C is the desired refresh rate. The system will check these values against an internal list of resolutions (see Table 5 ), and use the corresponding entry as the console resolution. For example, to use VESA1024x768x75 as the console resolution, type the following at the ok prompt: ok setenv output-device screen:r1024x768x75 ok reset ------------------------------------------------------------------------------- Note - The new console resolution will take effect following the reset, and will hold the resolution information until the output-device variable is changed manually. ------------------------------------------------------------------------------- Reference PGX 32 installation guide Appendix A part number 805-7770
Infodoc ID | Synopsis | Date | ||
14686 | Changing TGX/TGX+ resolution when it's the 2nd framebuffer | 21 Jun 2000 |
Description | Top |
How do you set the resolution for TGX and TGX+ framebuffers when they are used as the second framebuffer on a system? You have to set the resolution at boot time in the nvramrc. Here is a script that will set up the nvramrc so that it initialises the resolution to 1280x1024 @ 76Hz. Note: This script is modified from one in Sun document No: 802-5011-10 Platform Notes: SMCC Frame Buffers, available in the Answerbook volume 'Solaris 2.5 on Sun Hardware' - search for the string "TurboGXplus Frame Buffer". #!/bin/sh # Configure the entries for "cgsix@0" and "cgsix@1" # to refer to each of your frame buffers. # NOTE: # The actual full device path/names should be determined using 'show-devs' # which will vary from hw platform to hw platform. # If you are NOT using the correct path to the device, this script will # not work. eeprom fcode-debug\?=true eeprom nvramrc='probe-all " /iommu/sbus/cgsix@0" select-dev r1280x1024x76 " /iommu/sbus/cgsix@1" " set-resolution" execute-device-method drop device-end install-console banner ' eeprom use-nvramrc\?=true The script presumes sun4m architecture; for sun4c change /iommu/sbus to /sbus The other information you will need to run the script is which sbus slot the second frame buffer card resides in - ie the one that will be used as the second head. In this instance, it assumes a cgsix frame buffer in sbus slot 3. The script has the disadvantage that it makes the second TGX+ the console frame buffer. You may not want this; for example if you have a SS20SX or Ultra Creator with an additional TGX+, you may wish to set the resolution of the TGX+ while maintaining the SX or FFB as the console. In which case, try this script instead. It should set the resolution of the TGX+ to 1280x1024@76 while maintaining the default console. #!/bin/sh eeprom fcode-debug\?=true eeprom nvramrc='probe-all install-console banner : vsetup " 135000000,81128,76,32,64,288,1280,2,8,32,1024,COLOR,0OFFSET" ; vsetup 4 " /sbus/cgsix@2" " override" execute-device-method drop ' eeprom use-nvramrc\?=true This is another alternate script that can be used to set up the resolution of a second TGX+/cgsix framebuffer. #!/bin/sh # # This is a script to set a TGX+ graphics card supporting # the second monitor in a two-monitor configuration to # a resolution of 1280x1024x67. Run the script in the # Bourne shell and then reboot. # eeprom fcode-debug\?=true eeprom nvramrc='probe-all : vsetup1 " 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET" ; vsetup1 4 " /sbus@1f,0/cgsix@2,0" " override" execute-device-method drop device-end install-console banner ' eeprom use-nvramrc\?=true touch /reconfigure Note: The number 4 in vsetup 4 refers to the sense code of the monitor. For an incomplete list of sense codes, see below. Again, please make sure that /sbus@1f,0/cgsix@2,0 is the correct full pathname of the second framebuffer that comes up in show-devs or probe-all from the <ok> prompt. Here is the appropriate voodoo for several supported resolutions. Note also that this will only work for the TGX or TGX+. 1024 x 768 at 60 Hz: 64125000,48286,60,16,128,160,1024,2,6,29,768,COLOR 1024 x 768 at 70 Hz: 74250000,56593,70,16,136,136,1024,2,6,32,768,COLOR 1024 x 768 at 77 Hz: 84375000,62040,77,32,128,176,1024,2,4,31,768,COLOR 1152 x 900 at 66 Hz: 94500000,61845,66,40,128,208,1152,2,4,31,900,COLOR 1152 x 900 at 76 Hz: 108000000,71808,76,32,128,192,1152,2,4,31,900,COLOR,0OFFSET 1280 x 1024 at 67 Hz: 117000000,71691,67,16,112,224,1280,2,8,33,1024,COLOR,0OFFSET 1280 x 1024 at 76 Hz: 135000000,81128,76,32,64,288,1280,2,8,32,1024,COLOR,0OFFSET 1600 x 1280 at 76 Hz: 216000000,101890,76,24,216,280,1600,2,8,50,1280,COLOR,0OFFSET And this is what the numbers actually mean, taking 1280x1024@67 as an example: 117000000 Pixel frequency or dot clock (in Hz) 71691 Horizontal frequency (in Hz) 67 Vertical frequency (in Hz) 16 Horizontal Front Porch (in pixels) 112 Horizontal Sync Width (in pixels) 224 Horizontal Back Porch (in pixels ) 1280 Horizontal Displayed pixels (in pixels) 2 Vertical Front Porch (in lines) 8 Vertical Sync Width (in lines) 33 Vertical Back Porch (in lines) 1024 Vertical Displayed lines (in lines) COLOR Color monitor flag 0OFFSET No sync pedestal flag Monitor sense codes (incomplete list), check FE Handbook for more information: 0 is denoted by a link (a 100 ohm resistor) to pin 4 (Ground, or Sense Return). 1 is denoted by the absence of a link - the pin is unconnected. 3 8 9 (pins) 2 1 0 (bits) 1 1 1 7 - No monitor connected 1 1 0 6 - Low cost 17" 1 0 1 5 - Sony 16" 1 0 0 4 - Sony GDM20 series (with built-in lead) 0 1 1 3 - BNC Adaptor, Hitachi 19", old Sony 16" 0 1 0 2 - 0 0 1 1 - 0 0 0 0
Infodoc ID | Synopsis | Date | ||
14641 | Anatomy of a COMMAND Action in CDE | 21 Dec 1996 |
Description | Top |
An Action Definition has the following syntax : ACTION <action_name> { TYPE <action_type> <action_field>+ } where: <action_name> is the name used to invoke the action <action_type> is one of three types of Actions: 1) Command actions. A command action executes a command that starts an application, utility, shell script, or operating system command. 2) Map actions, which is primarily used to specify alternative names for actions. A map action is "mapped" to another action. 3) TT_MSG actions, which send Tooltalk messages. <action_field>+ is one or more fields that describe an action's behavior or look and feel. Here is an overview of some of the {action_fields} used in the popular Action Type COMMAND: WINDOW_TYPE: specifies the type of windowing support required by the action: - NO_STDIO: No type of windowing support. The action has its own window or has no output. - PERM_TERMINAL: a permanent terminal emulator window, which remains open until the user closes it. - TERMINAL: a temporary terminal emulator window, which closes as soon as the command is completed. EXEC_STRING: the application, shell script or operating system command that this action is to invoke. There is special syntax that can be used in case arguments are needed: - %(File)Arg_{n}% lets a user drop a data file on the action where {n} is an integer starting at 1 - %Args% accepts multiple files, that a user drops on the action - %(File)"{prompt}"% displays a prompt for a file name, when the user invokes the action where {prompt} is a text string that prompts the user for a file name -%(File)Arg_{n}"prompt" combines the two above. It accepts a dropped file as an argument. Otherwise, it displays a prompt for a file name -%(String)"prompt"% prompts for a non-file argument LABEL: the Action Label seen in CDE's File Manager and Application Manager ICON: used to specify the icons seen in CDE's File Manager and Application Manager For example, an Action that runs a single Unix C shell command is: ACTION csh_command { TYPE COMMAND WINDOW_TYPE PERM_TERMINAL EXEC_STRING /usr/bin/csh -c '%(String)"Csh Command: "%' LABEL One-time C Shell ICON /usr/dt/appconfig/icons/C/Dtterm.m.pm } To make this work from CDE's dtfile, create an empty executable file called csh_command, and make it executable: $ touch csh_command $ chmod 755 csh_command Then, create a file called $HOME/.dt/types/csh_command, that has the above action. Run this command: $ dtaction ReloadActions To invoke the action, bring up dtfile, and double-click the csh_command empty file, previously created.
Infodoc ID | Synopsis | Date | ||
20889 | How to control what systems can have a remote display to your machine | 22 Dec 1999 |
Description | Top |
HOW TO CONTROL WHAT SYSTEMS CAN HAVE A REMOTE DISPLAY TO YOUR MACHINE (Controlling which machines sees your machine in their chooser list) At the dtlogin screen, by using the dtchooser screen, a user can have a remote Xserver display to another machine. To limit only certain machines to have access for a remote Xserver display: First, copy /usr/dt/config/Xaccess to /etc/dt/config/Xaccess. If necessary, create the /etc/dt/config directory and mimic the permissions, owner and group of the /usr/dt/config directory. Then, modify the file /etc/dt/config/Xaccess as follows: This is what it currently looks like by default: # Entries... * # grant service to all remote displays Change it to the following: # Entries... # * # grant service to all remote displays host_a host_b # grant service to these displays NOTE: You should not list the local name of the machine. Only the machines that you want access for remote displays should be added. The list of hostnames should be separated by spaces. When finished, you can restart the Xserver or reboot the machine for the changes to take effect To restart the Xserver, telnet or rlogin to the server to stop and restart dtlogin: # /etc/rc2.d/S99dtlogin stop # /etc/rc2.d/S99dtlogin start
Infodoc ID | Synopsis | Date | ||
20686 | Customizing CDE Front Panel Workspace names for multiple users | 7 Jan 2000 |
Description | Top |
Internally, the workspaces are numbered by the numbering convention wsn, where n is 0, 1, 2 and so on. For example, the default four workspaces are numbered internally ws0 through ws3. The system-wide resource file to add/edit resources is: /etc/dt/config/lang/sys.resources (You may have to create this file.) Use the "title" resource to change the name of a specified workspace: Dtwm*wsn: <name_of_workspace> where n is 0, 1, 2, 3 and so on. For example, the following resources set the default four workspaces to the specified names: Dtwm*ws0*title: Anna Dtwm*ws1*title: Don Dtwm*ws2*title: Julia Dtwm*ws3*title: Patti For individual users, the above resources can be added in the $HOME/.Xdefaults file.
Infodoc ID | Synopsis | Date | ||
18436 | How to define or change a default printer for CDE | 10 Feb 1999 |
Description | Top |
CDE uses a default printer if you have defined one, but it does not provide a way to specify or change your default printer. To define a default printer, in your $HOME/.login or $HOME/.profile file define the environment variable LPDEST and set it to the name of the printer you want to be the default printer: For .login: setenv LPDEST myprinter For .profile: LPDEST=myprinter export LPDEST If you have not specified that CDE read your .profile or .login on startup, uncomment the last line of your $HOME/.dtprofile so that the command DTSOURCEPROFILE=true will be run by CDE on startup. This will cause CDE to source your .login or .profile as CDE starts. If you do this, be aware that CDE cannot handle some commands in a .login or .profile like tset and may not start your desktop if it encounters those commands. Please review the comments in $HOME/.dtprofile to see how to encapsulate those commands. Bear also in mind, that .dtprofile is NOT a shell script. To change a default printer, modify your LPDEST environment variable in your .login or .profile and restart CDE.
Infodoc ID | Synopsis | Date | ||
13444 | CDE: Setting up CDE to have different home session depending on machine | 11 May 1999 |
Description | Top |
Setting up CDE to Have Different Home Sessions Depending on Machine? Create subdirectories for each machine in ${HOME}/.dt. You need to include a display number as well. For example, to create separate config directories for machine1 and machine2, do: mkdir ~/.dt/machine1:0 mkdir ~/.dt/machine1:1 mkdir ~/.dt/machine2:0 mkdir ~/.dt/machine2:1 Log out and log back in to your desktop. When you log in, if the directory exists for the current display (i.e., machine:displaynum), that directory will be used to restore and save sessions. All other machines will use the default directory (~/.dt/sessions). It is also very important that you install the lates dtlogin and dtwm patches.
Infodoc ID | Synopsis | Date | ||
15774 | Dtaction PSD | 26 Sep 1997 |
Description | Top |
---------------------------------------------------------------------------- Dtaction PSD ---------------------------------------------------------------------------- General Information: 1. What are Actions 2. Dtsession's environment and the Command Line environment 3. Action/Data Types Search Paths and Environment Variables in CDE 4. Files are associated with an Action in CDE 5. Anatomy of a COMMAND Action in CDE 6. CDE: What is dtspcd? How is it set-up? How To's: 7. Invoking actions from the command line 8. CDE: How is an Action selected? 9. Adding xload to the Front Panel in CDE 10. CDE: Using xlock from the dtwm front panel 11. CDE: Locking the Screen Without Using xlock or the Front Panel 12. CDE: how to change the editor default action 13. Adding and Removing Actions to and from the CDE desktop Related Topics: 14. CDE: ttsession client limit causes failed actions, defunct processes 1. What are Actions Tech Note id:001.data Last Updated:04/18/97 Actions are instructions written to automate tasks such as running applications. Actions used with Data Types are powerful components for integrating applications into the desktop. The desktop provides the ability to attach user interface components such as icons to actions. Conversely, Actions can be easily attached to the desktop's Front panel. If you are familiar with object oriented technology, an analogy between that paradigm, and Actions and Data Types can be made. A Data Type can be thought of as a CDE class. Actions can be thought of as the methods available for instances of these CDE class. Actions act on these instances. Actions can be created using the Create Action application, or created manually. Create Action is launched from the Desktop_Apps folder in Application Manager. There are several Actions in the Desktop_Tools in Application Manager, as well. 2. Dtsession's environment and the Command Line environment infodoc id: 14638 Last Updated:12/21/96 DETAIL DESCRIPTION: When a CDE application, such as dtterm is started via actions (e.g. Front Panel, Appmanager, Workspace Menu), a different environment can be inherited than that which is established in the the command line environment. When CDE applications are launched via actions, the action inherits its environment from its parent, which is very likely to be the session manager, dtsession. By default, a user's account shell start-up files ($HOME/.login, $HOME/.profile etc) are *not* sourced when the user logs in via dtlogin and dtsession. (This is controlled by a setting in $HOME/.dtprofile). Therefore by default, environment variables set in these start-up files are *not* available from dtsession and to actions. When CDE applications are launched from the command line, the action inherits from that command line's shell. The start-up files are sourced by the time the command line interface is established; therefore, the start-up files's environment variables are available to actions. 3. Action/Data Types Search Paths and Environment Variables in CDE infodoc id: 14637 Last Updated:12/20/96 DETAIL DESCRIPTION: CDE uses search paths to locate applications and associated desktop files. There are four search paths: Application, Database, Icons and Help data. Of interest to Actions and Data Types is the Database search path. The Database search path is used to specify locations for action and data type definition files (as well as Front Panel files). To obtain the search paths' value for the current user, execute this command: dtsearchpath -v dtsearchpath uses a combination of environment variables and built-in values to create search paths. The environment variables dtsearchpath reads are called input variables. For the Database search path, the input variables are: DTSPSYSDATABASEHOSTS - System Wide Input Variable, set in /etc/dt/config/Xsession.d/0010.dtpaths. For example, if this file doesn't exist, copy it from /usr/dt/config/Xsession.d/0010.dtpaths. Then, add the following line: export DTSPSYSDATABASEHOSTS=/var/applications/db By default, this value is set to /etc/dt/appconfig/types/{language} where {language} by default is C. DTSPUSERDATABASEHOSTS - Personal (User) Input Variable, set in the $HOME/.dtprofile. For example: export DTSPUSERDATABASEHOSTS=/home/user/mydb By default, this value is set to $HOME/.dt/types For changes to the input variables to take effect, one must exit, then re-enter the CDE window manager. The Database search path built-in value is /usr/dt/appconfig/types/{language} where {language} by default is C. When dtsearchpath assembles these values, it assigns these values to an output variable. For the Database search path, the output variable is DTDATABASESEARCHPATH. DTDATABASESEARCHPATH by default will be something like: /home/user/.dt/types /etc/dt/appconfig/types/%L /etc/dt/appconfig/types/C /usr/dt/appconfig/types/%L /usr/dt/appconfig/types/C DATABASESEARCHPATH is created by incorporating the following environment variables or locations: + DTSPUSERDATABASEHOSTS + $HOME/.dt/types + /etc/dt/appconfig/types/{language} + DTSPSYSDATABASEHOSTS + DTSPSYSAPPHOSTS + /usr/dt/appconfig/types/{language} 4. Files are associated with an Action in CDE infodoc id: 14640 Last Updated:12/21/96 DETAIL DESCRIPTION: There are three items associated with Actions: - An action file - an executable file with the same name as an action, but it is only used to "view" the action via desktop tools, for example File Manager or Application Manager. For example, the action file for the "Reload Action" action is: /usr/dt/appconfig/appmanager/C/Desktop_Tools/ReloadActions - An action definition file - a file named with the ".dt" extension, containing the definition of the action. For example, the action definition file for the "Reload Action" action is: /usr/dt/appconfig/types/C/dt.dt Established action files containing one or more action definitions can be found in /usr/dt/appconfig/types/C - An action icon - the pixmap or bitmap that represents the action file. The default icon (a jogger) is: /usr/dt/appconfig/icons/C/Dtactn.* Established CDE Action icons are found in: /usr/dt/appconfig/icons/C When an action is selected through desktop tools, the action file is "selected". When an action is double-clicked, the action is invoked. The actions database is searched to see if there are any actions whose name matches the action file's name. If a match is found, the underlying action definition is used to determine the action's behavior. 5. Anatomy of a COMMAND Action in CDE infodoc id: 14641 Last Updated:12/21/96 DETAIL DESCRIPTION: An Action Definition has the following syntax : ACTION { TYPE + } where: is the name used to invoke the action is one of three types of Actions: 1) Command actions. A command action executes a command that starts an application, utility, shell script, or operating system command. 2) Map actions, which is primarily used to specify alternative names for actions. A map action is "mapped" to another action. 3) TT_MSG actions, which send Tooltalk messages. + is one or more fields that describe an action's behavior or look and feel. Here is an overview of some of the {action_fields} used in the popular Action Type COMMAND: WINDOW_TYPE: specifies the type of windowing support required by the action: - NO_STDIO: No type of windowing support. The action has its own window or has no output. - PERM_TERMINAL: a permanent terminal emulator window, which remains open until the user closes it. - TERMINAL: a temporary terminal emulator window, which closes as soon as the command is completed. EXEC_STRING: the application, shell script or operating system command that this action is to invoke. There is special syntax that can be used in case arguments are needed: - %(File)Arg_{n}% lets a user drop a data file on the action where {n} is an integer starting at 1 - %Args% accepts multiple files, that a user drops on the action - %(File)"{prompt}"% displays a prompt for a file name, when the user invokes the action where {prompt} is a text string that prompts the user for a file name -%(File)Arg_{n}"prompt" combines the two above. It accepts a dropped file as an argument. Otherwise, it displays a prompt for a file name -%(String)"prompt"% prompts for a non-file argument LABEL: the Action Label seen in CDE's File Manager and Application Manager ICON: used to specify the icons seen in CDE's File Manager and Application Manager For example, an Action that runs a single Unix C shell command is: ACTION csh_command { TYPE COMMAND WINDOW_TYPE PERM_TERMINAL EXEC_STRING /usr/bin/csh -c '%(String)"Csh Command: "%' LABEL One-time C Shell ICON /usr/dt/appconfig/icons/C/Dtterm.m.pm } To make this work from CDE's dtfile, create an empty executable file called csh_command, and make it executable: $ touch csh_command $ chmod 755 csh_command Then, create a file called $HOME/.dt/types/csh_command, that has the above action. Run this command: $ dtaction ReloadActions To invoke the action, bring up dtfile, and double-click the csh_command empty file, previously created. 6. CDE: What is dtspcd? How is it set-up? infodoc id: 14644 Last Updated:12/18/96 DETAIL DESCRIPTION: Dtspcd, or more formally the desktop subprocess control service daemon, is used by the desktop to launch remote applications and actions. It is an inetd daemon that accepts requests from remote clients to execute commands. As far as configuration goes, dtspcd must have access to the authentication directory that is also mounted by other subprocess control client systems. By default, this is the user's home directory. Also, dtspcd must be properly registered in two files: 1) /etc/services: dtspc 6112/tcp 2) /etc/inetd.conf: dtspc stream tcp nowait root /usr/dt/bin/dtspcd/usr/dt/bin/dtspcd The CDE installation scripts automatically place these entries in their proper files. 7. Invoking actions from the command line infodoc id: 14642 Last Updated:12/19/96 DETAIL DESCRIPTION: CDE provides the dtaction command for running actions from the command line. For example, to run the ReloadActions action, use: dtaction ReloadActions To run an action on a remote host running CDE, use the "-execHost" argument: dtaction -execHost remote ReloadActions For more information, see the dtaction(1) man page. 8. CDE: How is an Action selected? infodoc id: 14643 Last Updated:12/18/96 DETAIL DESCRIPTION: Two steps are taken to determine which action is executed when an action is invoked: 1) The action database is searched for a matching pattern name. The action database is created initially when a user logs into CDE. However, it is recreated when the Workspace Manager is Restarted, when the user chooses save from the Create Action application, or when the ReloadActions action is invoked: dtaction ReloadActions This database is created by collecting all the action and data type definitions located in the DTDATABASESEARCHPATH path. By default, DTDATABASESEARCHPATH has these paths: $HOME/.dt/types /etc/dt/appconfig/types/%L /etc/dt/appconfig/types/C /usr/dt/appconfig/types/%L /usr/dt/appconfig/types/C 2) When one or more actions exist with that name, precedence rules are used to decide which one to use. a) If no other precedence rules apply, the precedence is based on the definition location. The location precedence, from higher to lower precedence is: - personal actions - those located in $HOME/.dt/types - system wide local actions - those located in /etc/dt/appconfig/types/C - system wide remote actions - those located in {hostname}:/etc/dt/appconfig/types/C where {hostname} is the name of a remote host and are listed in the application search path DTSPUSERAPPHOSTS - built-in actions - those located in /usr/dt/appconfig/types/C For example, if an action called My_Action exists in both /etc/dt/appconfig/types/C and /usr/dt/appconfig/types/C, then the definition in /etc/... is the action that would be invoked b) Actions that have action fields: ARG_CLASS, ARG_TYPE, ARG_MODE or ARG_COUNT have precedence over less restrictive actions. Precedence among these fields, from higher to lower precedence is: - ARG_CLASS - ARG_TYPE - ARG_MODE - ARG_COUNT Since ARG_COUNT can take values or "*", values have precedence over "*". For example, if these three actions are loaded into the actions database: ACTION My_Action { ARG_TYPE TEXTFILE } ACTION My_Action { ARG_COUNT 0 } ACTION My_Action { ARG_TYPE * } and no argument is provided, then the second ACTION is invoked because none of the other actions apply. However, if an argument is provided, then the first ACTION is invoked. ARG_TYPE takes precedence over ARG_COUNT. 9. Adding xload to the Front Panel in CDE infodoc id: 14639 Last Updated:12/21/96 DETAIL DESCRIPTION: 1. Create a file in $HOME/.dt/types called load.fp, containing this control: CONTROL LoadMeter { TYPE client POSITION_HINTS 3 CONTAINER_NAME Top CONTAINER_TYPE BOX CLIENT_NAME xload CLIENT_GEOMETRY 88x64 } 2. Restart the Workspace Manager. 3. Type "xload &" at a command line. 4. If the Home Session is used (rather than the Current Session), remember to re-save the Home Session to include the xload process. 10. CDE: Using xlock from the dtwm front panel infodoc id: 13527 Last Updated:07/10/96 DETAIL DESCRIPTION: Using xlock in the dtwm Front Panel First the easy way (This is to overwrite the default CDE action) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Run dtcreate 2. Create an action called LockDisplay 3. Set the "Command when action is opened" field to: /usr/openwin/bin/xlock 4. Set the "Window Type" field to No Output. 5. Save the file ==> this creates a LockDisplay.dt in ~/.dt/types 6. Reload the action. This will help you to bring up xlock when you are using lock in the front panel. Second way (another way to use action) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Create a new action for your desktop. We'll call it Xlock. 2. Tell the desktop about the new action and then test it. 3. Modify the front panel so that it will call your new action, Xlock, instead of the old action, LockDisplay. 1. CREATING A NEW ACTION: - cd to ~/.dt/types and create a file called Xlock.dt. - Add the following action definition to this file. ACTION Xlock { LABEL Xlock ARG_COUNT 0 TYPE COMMAND WINDOW_TYPE NO_STDIO EXEC_STRING /usr/openwin/bin/xlock DESCRIPTION xlock } - This action definition defines an action called "Xlock". When the action is called, it will execute xlock by calling /usr/openwin/bin/xlock. 2. TELLING THE DESKTOP ABOUT THE NEW ACTION AND TESTING IT: - Now that we have defined the new Xlock action, we need to first tell the desktop about it and then test it. - To tell the desktop about the new action bring up the "Application Manager". You can do this by selecting it from the front panel. - From the Application Manager, select "Desktop_Tools" - Now, select "Reload Actions". - At this point, the desktop knows about the new Xlock action. To test it, type "dtaction Xlock". Xlock should start up. 3. ADDING THE NEW ACTION TO THE FRONT PANEL: - copy the dtwm front panel configuration file, dtwm.fp, from /opt/CDE/appconfig/types/C directory to your personal dt directory "~/.dt/types" directory. - cd to ~/.dt/types - From here, edit the dtwm.fp - Search for Lock. You should see something like: CONTROL Lock { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 1 ICON Fplock LABEL Lock PUSH_ACTION LockDisplay HELP_TOPIC FPOnItemLock HELP_VOLUME FPanel } - When you press the lock icon on the front panel, it calls the action LockDisplay. The above paragraph is the definition for that front panel lock icon. - To get the front panel lock icon to call the action we just defined, Xlock, instead of the LockDisplay action, all you need do is change the PUSH_ACTION line from "LockDisplay" to "Xlock". CONTROL Lock { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 1 ICON Fplock LABEL Lock PUSH_ACTION Xlock HELP_TOPIC FPOnItemLock HELP_VOLUME FPanel } - Note: You might change the Label field to Xlock and you might remove the HELP_TOPIC and HELP_VOLUME fields, but this modification is not necessary. - Now tell the window manger to reread the configuration files. You do this by selecting "Restart Workspace Manager..." from your workspace menu. - Press the lock icon on the front panel...xlock should be called. If not, make sure your DTDATABASESEARCHPATH environment variable contains $HOME/.dt/types. 11. CDE: Locking the Screen Without Using xlock or the Front Panel srdb id: 13436 Last Updated:07/10/96 DETAIL DESCRIPTION: Locking the Screen in CDE Without Using xlock or the Front Panel There are three ways to do this: 1. From the command line: /usr/dt/bin/dtaction LockDisplay 2. From the menu: Put the following line in your $HOME/dtwmrc file: "LOCK" Alt Shiftl f.action LockDisplay 3. Using an accerator key: Use method 2, but specify a key of your choice for locking the screen. SOLUTION SUMMARY: There are 2 solutions to this problem: 1. from command line: /usr/dt/bin/dtaction LockDisplay 2. from menu Please put this in your $HOME/dtwmrc "LOCK" Alt Shiftl f.action LockDisplay 3. Using accerator key: Using the previous methods 2 but using the key you define to invoke the CDE lock screen. 12. CDE: how to change the editor default action infodoc id: 13356 Last Updated:07/10/96 DETAIL DESCRIPTION: CDE: Changing the Editor Default Action a) cp /usr/dt/appconfig/types/C/user-prefs.dt $HOME/.dt/types/user-prefs.dt b) Change the MAP_ACTION to the appropriate editor action. Many actions already exist in other *.dt files in /usr/dt/appconfig/types/C for commonly used editors, such as vi and textedit, so it is easy to map this to another action. To change the action to use OpenWindows textedit: ACTION TextEditor { LABEL Text Editor ICON OWtextedit TYPE MAP MAP_ACTION OWtextedit DESCRIPTION Use OW textedit } To change the action to use vi: ACTION TextEditor { LABEL Text Editor ICON Dtpenpd TYPE MAP MAP_ACTION Vi DESCRIPTION Use standard unix vi editor } 13. Adding and Removing Actions to and from the CDE desktop infodoc id: 14636 Last Updated:12/20/96 DETAIL DESCRIPTION: Actions can be placed on the CDE desktop simply by dragging the action from dtfile and placing it on the desktop. Actions remain on the desktop, much like any other window. When a user logs out of CDE, but returns to the current session, the actions remain on the desktop. This information is stored in $HOME/.dt/Desktop/.!dtdesktop. However, do not edit this file. To remove actions, select them on the desktop, press the right mouse button and select "Remove from Workspace" from the resulting menu. Multiple actions can be selected by dragging a select box around the icons. 14. CDE: ttsession client limit causes failed actions, defunct processes infodoc id: 13380 Last Updated:07/10/96 DETAIL DESCRIPTION: If you have a lot of tools running and new tools mysteriously start failing to come up, you may have reached the default limit of ToolTalk clients. To raise the limit, set the -N option on the ToolTalk message daemon, ttsession. This can be done by setting dtstart_ttsession='/usr/dt/bin/ttsession -sN' in the user's ~/.dtprofile. See "Starting the ToolTalk messaging daemon" in the CDE Advanced User's and System Administrator's Guide. As described in the book, the change can be made for all users on a system by adding a script to /etc/dt/config/Xsession.d; before doing this for all users, consider that setting the -N option on ttsession will increase ttsession's working set. This effect is most noticeable on small-memory systems running Solaris 2.4; systems with lots of memory and systems running Solaris 2.5 or later are much less affected. This is a known bug, bugID 1222870. It has been fixed in 1.2.1. By default, the desktop's ToolTalk session is limited to about 30 ToolTalk clients. This includes dtsession, dtwm, dtfile, dtpad, dtmail, dtterm, and any long-running command actions launched from e.g. the front panel, dtfile, or dtmail. When the limit is reached, ToolTalk client applications (and indeed any command action) can fail, sometimes without any error message.
Infodoc ID | Synopsis | Date | ||
16267 | How to make the dtterm title bar dynamic | 13 Jan 1998 |
Description | Top |
How to make the dtterm title bar dynamic. This is not controlled by the terminal window itself. It's controlled by the escape sequences sent to the terminal window. The exact use of the escape sequences can be found in the man page for dtterm(5). There are several examples listed below to do this: Example 1: (Simple escape sequence to dynamically generate title for dtterm or xterm) Place the following line in your $HOME/.cshrc file: alias cd 'cd \!*;echo $cwd;echo ^[]0\;\(`uname -n`\):$cwd^G' Now source you .cshrc file. Example 2: (Expert Level: The below example will work for any window not just dtterm and will work across telnets) 1. Place the following in your $HOME/.cshrc: # Set banner for cmdtool if ( $TERM == "sun-cmd" || $TERM == "sun" || $TERM == "dtterm") then source $HOME/.xbanners endif 2. Make sure to REMOVE the following from your $HOME/.cshrc file: a.) If you have a "set prompt = ..." b.) Any aliases for cd, back, push, pop, or rlogin 3. Add the follow file to your home directory and name it .xbanners: # .xbanners -- a file to be sourced if you want to have banners that # tell you what machine and where you are for a window. # # the header string displays the host and user names, very helpful # if you log on multiple machines or as different users setenv HOSTNAME `hostname` #set headerstring = " $USER @ $HOSTNAME -- " set headerstring = " $HOSTNAME ($USER) -- " alias setprompt set prompt = "$HOSTNAME'% '" setprompt set oldcd = `pwd` alias cd 'set oldcd = `pwd`;chdir \!*;set x = `dirs`;echo -n "]l $headerstring $x[1] \";unset x' #;setprompt' alias back 'set x = $oldcd;set oldcd = `pwd`;chdir $x;set x = `dirs`;echo -n "]l $headerstring $x[1] \";unset x;setprompt' alias push 'set oldcd = `pwd`;pushd \!*;set x = `dirs`;echo -n "]l $headerstring $x[1] \";unset x;setprompt' alias pop 'set oldcd = `pwd`;popd;set x = `dirs`;echo -n "]l $headerstring $x[1] \";unset x;setprompt' alias rlogin '/usr/ucb/rlogin \!*;set x = `dirs`;echo -n "]l $headerstring $x[1] \";unset x;setprompt' setenv BANNERS cd .
Infodoc ID | Synopsis | Date | ||
17940 | How to determine if the frame buffer is running in 8 bit or 24 bit mode | 4 Jan 2000 |
Description | Top |
How to determine if a frame buffer is running in 8-bit or 24-bit mode. - Run: #xdpyinfo | more - Page down to area of output that says "depth of root window:" - The "# planes" listed is equal to the # bit mode the frame buffer is running in. For example, depth of root window: 24 planes means that the frame buffer is running in 24 bit mode.
Infodoc ID | Synopsis | Date | ||
21423 | How ffbconfig and other graphic card configuration tools determine the monitor resolution capability | 24 Dec 1999 |
Description | Top |
The below description relates to ffbconfig, but is also true of other xxxconfig utilities that support DDC. The monitor is interrogated by the OBP (Fcode PROM) at reset (init) time (e.g. when you do reboot) via two (serial) lines (called DDC sense and clock lines) connected to the monitor. Then the OBP (Fcode) puts the returned data on the PROM device tree node for the device (e.g ..../ffb0) as a property called edid_data, so that the kernel driver can later retreive this data (called edid) and use it when a GETEDIDDATA or SETMODE ioctl is sent to it. This edid data contains data pertaining to display monitor particulars, such as supported resolutions/modes, etc. ffbconfig in turn issues the GETEDIDDATA ioctl to the Kernel Driver to obtain this data. What is DDC?: DDC (Display Identification Standard) is a VESA standard for obtaining information from the monitor. DDC allows the frame buffer to read the monitor's information EDID. This information entails resolutions supported, max width, max refresh, sync type and so forth. DDC uses the protocol known as I2C (I squared C). For more information on I2C, look in Phillips I2c handbook of Phillips Desktop Video Data Handbook. I2C Bus: I2C is a bidirectional two line bus. It uses external pull up resistors and allows either the slave (monitor) or master (host) to pull down the signal. The maximum clock rate is specified to be 100Khz. What is DDC1/2/2B/2B+/2AB ? DDC1 Uses vsync instead of SCL to transfer EDID data, unidirectional, point to point. DDC2 Standard never implemented DDC2B Uses I2C bus to read EDID, unidirectional, point to point. What Sun uses! DDC2B+ Modification to DDC2B to allow bidirection interface, point to point. DDC2AB Same as DDC2B+ but multi point. Other devices can be on bus. * Bidirectional implementation allows monitor settings control from the host. EDID 1.0/1.1: The EDID information consists of 128 bytes of monitor data. Refer to the included list for a summary. Both EDID versions 1.0 and 1.1 are supported in pineapple (PGX/PGX8 8-bit only) and FFB2. The difference in these versions lies in the detailed timings information section. Since we do not use the detailed timings, both versions appear the same. Additional blocks of 128 bytes can be stored in EDID extension blocks (aka VDIF) after the initial EDID block. These blocks contain addtional detailed timing information. There is a flag within the EDID to indicate the existence of these blocks. VDIF is not currently used in our systems. Procedure for monitor initialization: 1) Read Sense Codes and set initial resolution to appropriate value 1a) If no sense code, use 1152x900x66 2) Read EDID 1.5 seconds after applying sync 2a) Use first standard timing id that matches a supported resolution on the frame buffer (Look at list for matches) 2b) If no standard timings match, or no EDID present, use resolution as determined in step 1 3) Look at NVRAM settings. If output_display = resolution, set resolution to that value, else use results from EDID. FRAME BUFFERS: PGX: Full DDC support FFB: FFB does not officially support DDC. FFB2: FFB2 does officially support DDC. Clock stretching is not supported. The current FFB2 fcode does not support ack as either. FFB2+: Has full DDC support. AFB: Supports DDC based on RAMDAC. If it is a 49(7 or 8)+, it will have full DDC.
Infodoc ID | Synopsis | Date | ||
23476 | Hardware Diagnostics for Sun Systems: A Toolkit for System Administrators | 10 Aug 2000 |
Description | Top |
Hardware Diagnostics for Sun TM Systems: A Toolkit for System Administrators |
Have you ever stared at the ok prompt on your Sun system, and wondered how to continue? Or have you ever wondered why all the LEDs on the system board sometimes appear to flash madly like a broken street light?
Look no further -- read on to find the answer to these questions.
By using OpenBootTM commands, the Power On Self Test (POST) program, and the status LEDs on system boards, you can diagnose hardware related problems on Sun Microsystems TM server and desktop products. With these low-level diagnostics, you can establish the state of the system and attached devices. For example, you can determine if a device is recognized by the system and working properly, or you can also obtain useful system configuration information.
Use this table to locate subjects in this article:
|
OBP DIAGNOSTIC COMMANDS AND TOOLS
OBP is a powerful, low-level interface to the system and devices attached to the system (OBP is also known as the ok prompt). By entering simple OBP commands, you can learn system configuration details such as the ethernet address, the CPU and bus speeds, installed memory, and so on. Using OBP, you can also query and set system parameter values such as the default boot device, run tests on devices such as the network interface, and display the SCSI and SBUS devices attached to the system.
The following table describes commands available in OpenBoot version 3. x. To use a command, simply type the command at the OBP ok prompt and press Return.
|
OBDiag enables you to interactively run tests and diagnostics at the OBP level on these Sun systems:
OBDiag displays its test results using the LEDs on the front system panel and on the keyboard. Use the system board and power supply LED status tables table to interpret the results.
OBDiag also displays diagnostic and error messages on the system console. To learn more about OBDiag, visit docs.sun.com.
On the main logic board, OBDiag tests not only the main logic board, but also its interfaces:
To run OBDiag, simply type obdiag at the Open Boot ok prompt.
You can also set up OBDiag to run automatically when the system is powered on using the following methods:
ok setenv diag-switch? true
POST is a program that resides in the firmware of each board in a system, and it is used to initialize, configure, and test the system boards. POST output is sent to serial port A (on an Ultra Enterprise server, POST output is sent only to serial port A on the system and clock board). The status LEDs of each system board on Ultra Enterprise servers indicate the POST completion status. For example, if a system board fails the POST test, the amber LED stays lit.
You can watch POST ouput in real-time by attaching a terminal device to serial port A. If none is available, you can use the OBP command show-post-results to view the results after POST completes.
How To Run POST
ok setenv diag-switch? true
Two different levels of POST can be run, and you can choose to run all tests or some of the tests. Set the OBP variable diag-level to the desired level of testing (max or min), for example:ok setenv diag-level max
ok setenv diag-device disk
The system default for this variable is net.
ok setenv auto-boot? false
ok reset-all
SYSTEM BOARD AND POWER SUPPLY LED STATUS TABLESPOST runs while the system is powered on, and the output is displayed on the device attached to serial port A. After POST is completed, you can also run the OBP command show-post-results to view the results.
This section contains reference information to help you understand the LED status on system boards and power supplies installed on Ultra Enterprise Server products.
Ultra Enterprise Server Front Panel and Clock Board LED Status
|
Notes:
|
Ultra Enterprise CPU/Memory, I/O, and Disk Board LED Status
|
LEDs are used on the power supply to report an error condition such as power supply or fan failure. Power supplies are hot-pluggable, but the Solaris Operating Environment halts the system if insufficient power is detected. Generally, a system is configured with a power supply for each system board.
|
The following table describes OS commands you can use to display
the system configuration, such as failed Field Replaceable Units
(FRU), hardware revision information, installed patches, and so
on.
RELATED LINKS Using Device Path Names to Identify System Devices: Eliminate the GuessworkEstablish the hardware configuration of your system using the OpenBootTM device tree. |
Infodoc ID | Synopsis | Date | ||
17131 | How do I add an additional head (framebuffer) to my system? | 20 Jan 2000 |
Description | Top |
How do I add an additional head (framebuffer) to my system? =========================================================== Adding an additional head to a system is quite easy. Before OpenWindows v3.2 (Solaris 2.2) there was a limit of 4 heads supported by the xnews server. With v3.2 this was raised to 16. However, the effective limit is dependent upon the physical limitations of a particular system. In order to add an additional framebuffer, follow these steps. 1) touch /reconfigure 2) halt the system 3) power off the system 4) Install the framebuffer 5) reboot the system. It should perform a re-configuration boot (due to the existence of /reconfigure). How do I start OpenWindows in a dual-headed configuration? ========================================================== You will need a machine that has two frame buffers correctly installed, together with matching monitors. The frame buffers do not need to be identical; there are several advantages in having each screen running on entirely different framebuffers. The component that controls the screen is the X server, Xsun. This is started automatically when you invoke openwin. Openwin will pass flags and options down to Xsun to tell it how to configure the displays. The flags needed are detailed in the Xsun manual page. Take as an example a machine which has two GX's installed. Looking in /dev you should see the following: /dev/fb is a symbolic link to the frame buffer entry in the devices directory: /devices/sbus@1,f8000000/cgsix@1,0:cgsix0. /dev/fb0 and /dev/fb1 are links to entries in the directory /dev/fbs, in this case /dev/fbs/cgsix0 and /dev/fbs/cgsix1. To start up a multi headed configuration you must specify each device you wish to use using the option -dev, thus: openwin -dev /dev/fb0 -dev /dev/fb1 For a 3 headed system, this would be openwin -dev /dev/fb0 -dev /dev/fb1 -dev /dev/fb2 The order that you give them is important for two reasons; display zero machinename:0.0 comes first, then display one machinename:0.1 and so on. By default they are ordered left to right; to change the order you can use the keywords left, right, top or bottom. Thus the commands: openwin -dev /dev/fb0 -dev /dev/fb1 left openwin -dev /dev/fb1 -dev /dev/fb0 will start up OpenWindows with fb1 on the left and fb0 on the right, but in the first instance fb0 will be logical screen 0, and in the second it will be screen 1. The keyword tells the server where to position the current display relative to the previous one, so any keyword placed after the first device is ignored. If no keyword is given, the default is right. Thus the command: openwin -dev /dev/fb0 top -dev /dev/fb1 will not have the desired effect; you would need to use: openwin -dev /dev/fb0 -dev /dev/fb1 bottom Other keywords can be used after the device name to control such things as default depth or visual; these are discussed in the manual pages and are beyond the scope of this document.
Infodoc ID | Synopsis | Date | ||
15890 | Keyboard Mapping PSD/FAQ | 2 Mar 2000 |
Description | Top |
Keyboard Frequently Asked Questions Last updated: October 9, 1997 1. What is a keyboard modifier? 2. How do I set the Function Key escape sequence in shelltool? 3. How do I set the Function Key escape sequence in cmdtool & textedit? 4. How do I set the Function Key escape sequence in xterm? 5. How do I set keyboard translations for dtterm? 6. In Solaris 2.6, how do I setup keyboard translations for the dtterm? 7. How do I use the F11 and F12 Function Keys? 8. How do I use the F11 and F12 Function Keys for Solaris 2.6? 9. How do I prevent the F1 Function Key from bringing up Help? 10. What is the recommended way to emulate a VT100 keyboard? 11. What are the commands to manipulate the keyboard in OpenWindows? 12. How do I customize the keyboard layout for all X applications? 13. What keyboard resources can be set in .Xdefaults? 14. How do I turn on keyboard Accelerators for CDE? 15. How do I turn on keyboard Accelerators for Openwindows? 16. How do I turn on Menu Accelerator keys for CDE? 17. How do I make the Back Space and Delete keys both send delete? 18. How do I change the Key rate in openwindows? 19. How do I change the delete/backspace key functionality in Dtmail? 20. How do I get my Xlib application to receive Keyboard input? 21. When I exit openwindows, my keyboard only prints garbage to the screen 22. How do I disable the L1-A key on my keyboard? 23. How do keysyms and keycodes work? 24. How do I get the Print Screen Key to work in Openwindows or CDE? 25. How do I map the Front and Open keys in CDE? 26. Where can xmodmap changes be added permanently? 27. Are there any public domain utilities that have a GUI front-end to xmodmap? --------------------------------------------------------------------------- 1. What is a keyboard modifier? Shift(CapsLock) and AltGraph (Mode_switch) are the 2 modifers supported by Xlib. Client applications are in charge of the other modifiers. Suppose you type xmodmap -e 'keysym q = a b c d' q will give a shift+q b AltGraph+q c Shift+AltGraph+q d OR type xmodmap -e 'keycode 16 = 0x0c9 b c d' F11 will give É ( Which is E with an accent ) Shift+F11 b AltGraph+F11 c Shift+AltGraph+F11 d 2. How do I set the Function Key escape sequence in shelltool? Openwindows 3.X: This is done by modifying the .ttyswrc file in your home directory. This file allows you to attach text, including escape codes to Function Keys. The format of the .ttyswrc file is: # Starts a comment line mapi [Key] [text] Inputs [text] when [key] is pressed mapo [Key] [text] Outputs [text] when [key] is pressed The [key] may be F2 -F10, R1-R7, R9, R11, R13, R15, L2 (Again), L3 (Props), and L4(Undo) as the [key]. There are no provisions for shifted and unshifted function keys. The shift state is ignored. The [text] may contain escape strings such as \E for escape, \n for newline, ^X for Control-X. mapi will send the [text] out to the application as if the text were sent via the keyboard. This is what you would want to use if you wanted to map an escape sequence to a Function Key. mapo will send the [text] to the tty as if it were sent out from the application. This is useful when you want to set things on the tty line such as the cursor position. It is not as common as mapi. A sample .ttyswrc file is in $OPENWINHOME/lib/.ttyswrc. Example: To map F5 key to send out <ESC>[228z the following line would be in .ttyswrc mapi F5 \E[228z 3. How do I set the Function Key escape sequence in cmdtool & textedit? This is done by modifying the .textswrc file in your home directory. The file allows you to attach filters to Function Keys. Filters are really just programs that are run, so you can use /usr/bin/echo to send out the escape code. The format of the .textswrc file is: [key-name] FILTER [command-line] The [key-name] is a string signifying the area on the keyboard where the Function Key resides. It is either KEY_TOP(xx) for the Fxx keys, KEY_LEFT(xx) for the Lxx keys, or KEY_RIGHT(xx) for the Rxx keys. The F2-F10, R1-R7, R9, R11, R13, R15, L2, L3, L4 may be used in the .textswrc file. There are no provisions for shifted and unshifted function keys. The shift state is ignored. The [command-line] is the command you would type to send out the escape code. /usr/bin/echo would be good for this purpose. For openwindows 3.0, a sample .textswrc file is located in /usr/lib/textswrc. For openwindows 3.4 and above the .textswrc file is located in /usr/openwin/share/src/xview/examples/textsw/textswrc. Example1 To map the F5 key to send out <ESC>[228z, you would put the following two lines in .textswrc KEY_TOP(5) FILTER /usr/bin/echo "\033[228z\c" Example2 To map F10 Key to print the date and your name, you would put the following two lines in .textswrc KEY_TOP(10) FILTER /usr/bin/echo "[ `date +%e.%b.%y` KLEIN ]\n" which outputs : [ 23.Sep.97 KLEIN ] 4. How do I set the Function Key escape sequence in xterm? Openwindows 3.X ONLY: This is done by adding some lines to the $HOME/.Xdefaults file in your home directory and then running xrdb -l $HOME/.Xdefaults to reload the X resources. The lines should have the following format for Openwindows 3.0: XTerm.VT100.Translations: #override [ShiftStates]<key>[KeySym]: string([text]) \n ... [ShiftStates]<key>[KeySym]: string([text]) The format for Openwindows 3.4 and above: XTerm.VT100.Translations: #override [ShiftStates]<key>[KeySym]: string([text]) \n ... [ShiftStates]<key>[KeySym]: string([text])\n The [ShiftStates] are the states of key keyboard modifiers that need to be in effect when they key is pressed. The values can be any combination of Shift, Ctrl, Meta, mod1, mod2, mod3, mod4 & mod5. Placing a tilde (~) in front of a modifier specifies that the modifier is Up or Not Pressed rather than Down or Pressed. Being able to specifies shift states allows the Shifted and Unshifted keys to be unique. The [KeySym] is the symbol that the key generates when it is pressed. This value can be retrieved by running $OPENWINHOME/demo/xev, moving the pointer into the window that xev creates, and pressing the desired keys. This will generate text in the window you started xev from. If you look at the text that is displayed, you will see in the some text like (keysym nnnn, kkkk). It is the kkkk field that is the [KeySym]. The [text] field is the string that you actually want to be sent. it had been typed. Quotation is necessary if the string contains whitespace or non-alphanumeric characters. If the string argument begins with the characters ``0x'', it is interpreted as a hex character constant. To see example Xterm translations for any Openwindows see the file $OPENWINHOME/lib/app-defaults/XTerm ********************************************************************* Openwindows 3.0: Note that every line except the first and the last lines must have the "\n\" string appended to it. The first line needs only a "\", and the last line should have nothing. Openwindows 3.4 and above: Note that every line except the first and the last lines must have the "\n\" string appended to it. The first line needs only a "\", and the last line should have "\n". ********************************************************************* Example for Openwindows 3.0: To map the F5 key to send out <ESC>[228z, you would put the following two lines in $HOME/.Xdefaults XTerm.VT100.Translations: #override <Key>F5: string(0x1b) string("[228z") Example for Openwindows 3.4 and above: To map the F5 key to send out <ESC>[228z, you would put the following two lines in $HOME/.Xdefaults XTerm.VT100.Translations: #override <Key>F5: string(0x1b) string("[228z")\n 5. How do I setup key translations for dtterms? Openwindows 3.4, 3.5 and 3.5.1 ONLY: dtterm uses the osf keysyms for actions/translations instead of the Sun-defined ones like xterm uses. The order in which the key translations are done is important. If you are trying to get a Shift-F2 key to print "Hello" and the non-shifted F2 key to print "Good bye", then you *must* have the shifted key listed before the non-shifted key. How to map the PageUp, PageDown, Home, End, Delete, and Insert keys to escape sequences ? When attempting to change any key mappings for a dtterm, you can not use the "#override" option for the action/translations. You must use the "#replace". So, the below line will not work: *DtTerm*Translations: #override But this one will: *DtTerm*Translations: #replace Please refer to bug id 1232154. So, one must supply *ALL* key mappings even if you want to replace/modify one key. The entire list of action/translation mappings can be found in the man page for DtTerm(3). It seems that using Sun's Keysyms, Prior, Next, Home, End, Delete, and Insert, will not work for a dtterm. You must use the osf equivalents listed below: Sun: osf: ~~~~~ ~~~~~~~~~ Prior osfPageUp Next osfPageDown End osfEndLine Home osfBeginLine Delete osfDelete Insert osfInsert The order in which your new key mappings are listed is important. If you put a non-shifted key ( <Key>osfPageUp ) before a shifted key ( Shift<Key>osfPageUp ), only the non-shifted key mapping will be used. So, please put any multi-key mappings before the non-shifted key mapping. Below are the translations keys used with the action, "string()". Shift<Key>osfPageUp: string(" Shift osfPageUp ") \n Shift<Key>osfPageDown: string(" Shift osfPageDown ") \n Shift<Key>osfEndLine: string(" Shift osfEndLine ") \n Shift<Key>osfBeginLine: string(" Shift osfBeginLine ") \n Shift<Key>osfDelete: string(" Shift osfDelete ")\n Shift<Key>osfInsert: string(" Shift osfInsert ")\n Shift<Key>SunF36: string(" Shift SunF36 ") \n Shift<Key>SunF37: string(" Shift SunF37 ") \n <Key>osfPageUp: string(" osfPageUp ") \n <Key>osfPageDown: string(" osfPageDown ") \n <Key>osfEndLine: string(" osfEndLine ") \n <Key>osfBeginLine: string(" osfBeginLine ") \n <Key>osfDelete: string(" osfDelete ") \n <Key>osfInsert: string(" osfInsert ") \n <Key>SunF36: string(" SunF36 ") \n <Key>SunF37: string(" SunF37 ") \n The translations can be put in either the $HOME/.Xdefaults file or in /usr/dt/app-config/C/DtTerm file. The Insert key could not be mapped to anything. If you have used the above mappings and have gotten them to work, then you are ready to change the mappings to be something more useful. Once you've added the key translations for the dtterms into your .Xdefaults, run xrdb -l $HOME/.Xdefaults to reload X resouces. Sample entries can be extracted from the DtTerm man page. 6. In Solaris 2.6, how do I setup keyboard translations for the dtterm? Openwindows 3.6 ONLY: 1. If the individual wishes to make a system wide changes,: cp /usr/dt/app-defaults/C/Dtterm /etc/dt/app-defaults/C/Dtterm edit /etc/dt/app-defaults/C/Dtterm 2. Otherwise, if the change is user-specific, edit $HOME/.Xdefaults If, for example, the user wishes to have the function keys F11 and F12 echo their escape sequences to the screen as the other function keys do, they can do the following in either of the above files: DtTerm*Translations: #override\n<Key>F11: vt-function-key-execute(11, UDK)\n<Key>F12: vt-function-key-execute(12, UDK) After doing this, starting a new dtterm from the command line will pick up these changes. A Terminal started from the front panel or the menu will not pick up these changes as an action is being executed. A man on DtTerm will tell most of the functions and keys that can be defined and what the actions are that can be used, i.e, vt-function-key-execute(). 7. How do I use the F11 and F12 Function Keys? For Openwindows 3.0 ONLY: The F11 and F12 keys are mapped to keysyms SunXK_F36 and SunXK_F37 respectively, which are Sun defined keysyms. This was done for a couple of reasons. First, Standard MIT X11 only defines 35 Function Key keysyms. Since Sun's Type-4 keyboard contains 37 Function Keys, it was necessary for Sun to define 2 keysyms. The reason F11 and F12 were selected to use the new keysyms is for compatibility with Sun's older Type-3 keyboards which have Function Keys F1-F10, L1-L10 and R1-R15. The L keys were defined as F11-F20 and the R keys were defined as F21-F35. Modifying this layout for Type-4 keyboards would have meant conditional programming for Type-3 and Type-4 keyboards. For Openwindows 3.4 and above: The F11 and F12 keys are mapped to keysyms SunF36 and SunF37 respectively, which are Sun defined keysyms. 8. How do I use the F11 and F12 Function Keys for Solaris 2.6? For Xterm: If a customer wishes to make changes to the translation tables for Xterms for the F11 and/or F12 keys, changes need to be made to the VT100 Translation table. If this is on a system wide basis: cp /usr/openwin/lib/app-defaults/XTerm /usr/openwin/lib/app-defaults/XTerm.bak edit /usr/openwin/lib/app-defaults/XTerm However, if this is just user-specific, he/she can edit $HOME/.Xdefaults In /usr/openwin/lib/app-defaults/XTerm, search for the string *VT100.Translations: #override Under there, before the end of the definition for the translations, place the following: <Key>SunF36: string(\^[[23~)\n <Key>SunF37: string(\^[[24~)\n This will actually mimic the actions of the other Fkeys when the escape sequences are being printed to the screen. After this, start another xterm to see the changes that have been made. For Dtterm: ( ONLY if the user is using a shell other than csh or tcsh ) 1. If the individual wishes to make a system wide changes,: cp /usr/dt/app-defaults/C/Dtterm /etc/dt/app-defaults/C/Dtterm edit /etc/dt/app-defaults/C/Dtterm 2. Otherwise, if the change is user-specific, edit $HOME/.Xdefaults If, for example, the user wishes to have the function keys F11 and F12 echo their escape sequences to the screen as the other function keys do, they can do the following in either of the above files: DtTerm*Translations: #override\n <Key>F11: vt-function-key-execute(11, UDK)\n <Key>F12: vt-function-key-execute(12, UDK) After doing this, starting a new dtterm from the command line will pick up these changes. A Terminal started from the front panel or the menu will not pick up these changes as an action is being executed. A man on DtTerm will tell most of the functions and keys that can be defined and what the actions are that can be used, i.e, vt-function-key-execute(). 9. How do I prevent the F1 Function Key from bringing up Help? Openwindows 3.0 and above ONLY: By default the F1 key is mapped to bring up the Help menu. If you were to view the syntax for it it would look like this: xmodmap -e 'keysym F1 = Help' To modify the F1 key so it isn't mapped to Help, Create a file in your home directory called .xmodmaprc and place the following line in there: xmodmap -e 'keysym F1 = ' <=== This disables to Help function from F1 but is sets the F1 key to print out ^@ The best thing is to have in mind a keysym that you'd like to map the F1 key to so that way you aren't getting ^@ by disabling the Help portion. Then when you run xmodmap .xmodmaprc, the file will be read and your modifications will take effect. 10. What is the recommended way to emulate a VT100 keyboard? xterm emulates vt100 terminal emulation. Here is a method to make the keypad behave like a vt100 keypad. Modifying xterm* stuff in .Xdefaults Method: Edit the .Xdefaults in your home directory to include anything from /usr/openwin/lib/app-defaults/XTerm that has "VT" in it. ********************************************************************* Openwindows 3.0: Note that every line except the first and the last lines must have the "\n\" string appended to it. The first line needs only a "\", and the last line should have nothing. Openwindows 3.4 and above: Note that every line except the first and the last lines must have the "\n\" string appended to it. The first line needs only a "\", and the last line should have "\n". ********************************************************************* For example: 1. *VT100.Translations: #override .... <Key>End: scroll-forw(100,page) \n 2. *vtMenu.* 3. *VT100*font* 11. What are the commands to manipulate the keyboard in OpenWindows? /usr/openwin/bin/xmodmap - Utility for modifying keymaps in X /usr/openwin/bin/xset - User preference utility for X. Option to look for is "r". Example: "xset r 84" should change the 'a' key so it does repeat. "xset -r 84" should change the 'a' key so it does not repeat. /usr/openwin/bin/kbd_mode - Change the keyboard translation mode Another useful command is: /usr/openwin/demo/xev - print contents of X events 12. How do I customize the keyboard layout for all X applications? You use the same commands published above under question 11. 13. What keyboard resources can be set in .Xdefaults? Resource: OpenWindows.KeyboardCommand.* Resource: OpenWindows.KeyboardCommands For details on these resources please read the man page for xview and look in the XView Programming Manual. For Openwindows 3.0, the rest of the Keyboard resources can be found in the Xview reference manual. See page#216-229. 14. How do I turn on keyboard Accelerators for CDE? In CDE the keyboard Accelerators are provided. See question 16 for the default accelerator settings. 15. How do I turn on keyboard Accelerators for Openwindows? Place the following resource in .Xdefaults file: OpenWindows.KeyboardCommands: Full 16. How do I turn on Menu Accelerator keys for CDE? The window menu used by default by the window manager, dtwm, is built-in and looks like the following: "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 "Occupy Workspace..." _O f.workspace_presence "Occupy All Workspaces" _A f.occupy_all "Unoccupy Workspace" _U f.remove no-label f.separator "Close" _C Alt<Key>F4 f.kill If you wish to use the default window menu, but change the accelerator keys used to activate the menu items using key sequences as opposed to using the mouse, create a menu in $HOME/.dt/dtwmrc by a name of your choice, replacing the accelerator keys with your desired key mappings. Then, set the following resource: Dtwm*windowMenu: Your_Menu_name For example, to change the "Alt" accelerator key to the "Meta" accelerator key, place the following entry in $HOME/.dt/dtwmrc: Menu AcceleratorWindowMenu { "Restore" _R Meta<Key>R f.normalize "Move" _M Meta<Key>M f.move "Size" _S Meta<Key>S f.resize "Minimize" _n Meta<Key>n f.minimize "Maximize" _x Meta<Key>x f.maximize "Lower" _L Meta<Key>L f.lower no-label f.separator "Occupy Workspace..." _O f.workspace_presence "Occupy All Workspaces" _A f.occupy_all "Unoccupy Workspace" _U f.remove no-label f.separator "Close" _C Meta<Key>C f.kill } Then, set the following resource in $HOME/.Xdefaults: Dtwm*windowMenu: AcceleratorWindowMenu The new AcceleratorWindowMenu will take effect after dtwm is restarted. 17. How do I make the Back Space and Delete keys both send delete? xmodmap -e "keysym BackSpace = Delete" The above command should be placed into your .xmodmaprc and the command xmodmap .xmodmaprc should be placed in another start up file like .xinitrc. Suppose you have the Delete key set ^? instead of actual erase. After typing in the xmodmap command above you know have Delete and BackSpace printing out ^? characters. How do you get rid of those? place in your .login/.profile the following line: stty erase '^?' Now both Delete and BackSpace erase a character. 18. How do I change the Key rate in openwindows? The command `xset r' is used to turn autorepeat ON or OFF (this is from the xset manpage): The r option controls the autorepeat. If a preced- ing dash or the 'off' flag is used, autorepeat will be disabled. If no parameters or the 'on' flag is used, autorepeat will be enabled. Below are some repeat key parameters for Xsun ONLY: -ar1 milliseconds Specify amount of time in milliseconds before a pressed key begins to autorepeating. The default is 500 milliseconds. This option is not available on Solaris x86 or PowerPC. -ar2 milliseconds specify the interval in milliseconds between autorepeats of pressed keys. The default is 50 mil- liseconds. This option is not available on Solaris x86 or PowerPC. Openwindows 3.0 ONLY: Here is what users can add/modify in their .user.ps file in their home directory under OpenWindows to change the repeat key parameters: UserProfile begin %% cause the server to wait 1/2 second before repeating keys /KeyRepeatThresh 1 60 div 2 div storetimeval def %% cause keys to repeat 10 times per second /KeyRepeatTime 1 60 div 10 div storetimeval def 19. How do I change the delete/backspace key functionality in Dtmail? In a dtmail compose window, when you hit the delete key anywhere in that text field the next line is concatenating onto the end rather than a character being deleted. In dtmail and in all text windows, the delete key deletes the character to the right of the cursor and backspace deletes the character to the left of the cursor. When you are on the end of a line and press Delete, it deletes the carriage return character, thus concatenating the lines. The same thing will happen if you are at the beginning of a line and press Backspace. The behavior can be modified via resources. The resource is DtEditor*textTranslations and is documented in manual page DtEditor(3). Take a look at /usr/dt/app-defaults/C/UNIXbindings. It redefines this resource. Use it as a guideline, or use it as described in the comments in this file. 20. How do I get my Xlib application to receive Keyboard input? Keyboard input is set to a window with XSetInputFocus. The focus window must be viewable. For window to be viewable , it must be mapped and all its ancestors must be mapped, but it may be obscured. 21. When I exit openwindows, my keyboard only prints garbage to the screen After logging out of openwindows, typing on the console only gives me control characters or "garbage". Nothing legible. How can this be fixed? This generally happens when Xserver dies unexpectedly or is not quit gracefully. The system should still be available over the network, so issue the following commands to fix the problem: $ telnet hostname login: root passwd: # /usr/openwin/bin/kbd_mode -a >/dev/console # exit This resets the keyboard maps to translate simple ascii characters. From the man page: kbd_mode sets the translation mode of the console's keyboard (/dev/kbd) to one of the four values defined for KIOCTRANS in kb(7). This is useful when a program that resets the translation mode terminates abnormally and fails to restore the original translation mode. Note that SunView desires translated events (kbd_mode -e), while Xsun(1) desires untranslated events (kbd_mode -u). See man page for an explanation of the -e and -u options. 22. How do I disable the L1-A key on my keyboard? Openwindows 3.0 to Openwindows 3.5.1 does not have this ability. There is no supported way to disable the L1-A key. Solaris 2.6 offers users two ways to disable the L1-A key. 1. Edit /etc/default/kbd and place the following resource in there: KBD_ABORT=enable|disable 2. From command line: kbd -a enable|disable 23. How do keysyms and keycodes work? Keycodes -------- Each keycode represents a physical (or logical) key. They lie in the range of [8,255]. If the physical hardware generates keycodes outside of this range, the X server must map them with in the allowable range. They cannot be modified by any means. Keysyms ------- A keysym is a code which has implied meaning. Keysyms usually come in sets that correspond to character sets. The defined sets include Latin-1, Latin-2, Latin-3, Latin-4, Lana, Arabic, Cryllic, Greek, Technical, Special, Publish, Apl, Hebrew as well as a set of common Keyboard symbols. Keysyms with the most-significant bit set (of 29 bits) are vendor-specific. Defining Mappings ----------------- Mappings are defined by quintuplets, one keycode and four keysyms (see Note). Mappings can be defined with fewer than five fields, and in these cases certain translations occur. Using "xmodmap" mappings are defined in one of three ways: xmodmap <filename> xmodmap -e "keycode <keycode> = <keysym-list>" xmodmap -e "keysym <keysym> = <keysym-list>" If the <keysym-list> contains fewer that four fields, the list translates as follows: 1. If List is a Singleton, for example "K1" then the list is translated as "K1 NoSymbol K1 NoSymbol" 2. If List is a Pair, for example "K1 K2" then the list is translated as "K1 K2 K1 K2" 3. If List is a Triple, for example "K1 K2 K3" then the list is translated as "K1 K2 K3 NoSymbol" If a "Null" or "Void" element is desired, the value VoidSymbol should be used in the list. Note: Apparently it is possible to define mappings with more than four keysyms associated with a keycode, but it is not clear how to generate the fifth or higher keysym from the keyboard. Keysym Generation ----------------- KeyCode KeySym(s) +-------+ +-------------------------------+ | X | | A | B | A | B | +-------+ +-------------------------------+ |<---GROUP 1--->|<---GROUP 2--->| The list of keysyms is broken up into two groups of two as pictured above. When a key has been pressed, the keysym that is generated depends on the three shift states Shift, Lock, and GroupModifier. Before the keysym is generated, a couple of substitutions take place, these are: 1. if B is NoSymbol, and A is Alphabetic then A = Lowercase A and B = Uppercase A 2. if B is NoSymbol, and A is NOT Alphabetic then B = A After the substitutions are made, the following rules are applied to determine which keysym to use: 1. if GroupModifier is Pressed then use Group 2 else use Group 1 2. if Shift is NOT Pressed and Lock is NOT Pressed then use A 3. if Shift is Pressed then use B 4. if Lock is On and B is Uppercase Alphabetic then use B 5. if Lock is interpreted as Shift and Lock is On then use B 6. if Rules 2 through 5 have not found a keysym then use A Notes ----- The GroupModifier's keysym is Mode_switch. To use the GroupModifier, Mode_switch must be bound to a keycode, then to a modifier (mod1 through mod5). The good resource to determine the keycodes generated by each key is the files in the directory $OPENWINHOME/etc/keytables. For a US Type 4 keyboard, the file would be US4.kt Examples -------- These examples all assume the following modifier environment: shift Shift_L (0x6a), Shift_R (0x75) lock Caps_Lock (0x7e) mod2 Mode_switch (0x14) And the following mappings for the keysyms: 20 0xff7e (Mode_switch) ! Type 4 AltGraph Key 106 0xffe1 (Shift_L) ! Type 4 LeftShift Key 117 0xffe2 (Shift_R) ! Type 4 RightShift Key 126 0xffe5 (Caps_Lock) ! Type 4 CapsLock Key 1. After running the command (Note: keycode 84 = A key): xmodmap -e "keycode 84 = A" The Keysym Matrix is: Shift (shift) up down +------+------+ Group up | a | A | Modifier +------+------+ (AltGraph) down | a | A | +------+------+ 2. After running the command: xmodmap -e "keycode 84 = A NoSymbol J plus" The Keysym Matrix is: Shift (shift) up down +------+------+ Group up | a | A | Modifier +------+------+ (AltGraph) down | J | plus | +------+------+ References and Files -------------------- "X Protocol Reference Manual", Appendix E: Keyboards and Pointers "X11/NeWS Version 2 Server Guide", XMODMAP Manual Page ( Openwindows 3.0 ) $OPENWINHOME/etc/keytables/*.kt or $OPENWINHOME/etc/keytables/*.kt.Z for Solaris $OPENWINHOME/include/X11/keysymdef.h $OPENWINHOME/include/X11/keysym.h $OPENWINHOME/include/X11/Sunkeysym.h man on keytable.map srdb 3841 infodoc 15663 24. How do I get the Print Screen Key to work in Openwindows or CDE? The Print Screen key is on both the type 4 and type 5 Sun keyboards. This key serves no purpose under Openwindows and CDE. This key was added to Sun keyboards so they are compatible with PC software. For example, the Print Screen key works under Wabi. Wabi is a PC emmulator that allows a Sun workstation to run PC software like MicroSoft Word, etc... Most PC applications have built in actions for the Print Screen key which makes it function in a certain way within an application. To make the Print Screen key work under Openwindows and CDE, you need to define an action for the key itself. Below are some examples of how to sign an action to the Print Key within various applications. 1. Determine what the keycode is for the Print Screen key. xmodmap -pk | grep Print 29 0xffd3 (F22) 0xffd3 (F22) 0xff61 (Print) 0x1005ff60 (SunSys_Req) You can verify that above information is true by running the xev gui and hitting the Print Screen key to obtain it's values. KeyRelease event, serial 23, synthetic NO, window 0x9800002, root 0x33, subw 0x0, time 3334056025, (113,117), root:(229,204), state 0x0, keycode 29 (keysym 0xffd3, F22), same_screen YES, XLookupString gives 0 characters: "" The above two pieces of information verify that the keycode for Print Screen is 29 2. Now map the Print Screen key to another key. Currently keysym 29 is mapped to the following: F22 F22 Print SunSys_Req Let's change that order so that we map keycode 29 to another function. xmodmap -e 'keycode 29 = F5 F22 Print SunSys_Req' Now if we hit the Print Screen key it will output the value of the function 5 key. 3. Now we need to give an action to F5 so that when we hit the Print Screen key it executes the action. There are a few ways to do this depending on the type of application you need to execute the command in. Text Fields and cmdtool: vi $HOME/.textswrc TOP_KEY(5) FILTER echo hello Also see question 3. shelltool window: vi $HOME/.ttyswrc mapo F5 hello Also see question 2. dtterm window: In the resource file put the following: *DtTerm.Translations: #overrideCtrl <Key>F5: string("ls -l")\nCtrl <Key>F8: string("foo") For more information look into: man DtTerm (the widget class, not dtterm the executable) for more information. SRDB ID: 12619 25. How do I map the Front and Open keys in CDE? The Front and Open keys are actually controlled by the window manager and require special instructions to map them. CDE instructions: 1. You need to edit the window manager resources file. Depending on how you're environment is setup, edit $HOME/.dt/dtwmrc or /etc/dt/config/C/sys.dtwmrc. 2. If you look at this file then you'll notice the preexisting settings: <Key>SunFront ifkey|icon|window f.raise_lower <Key>SunOpen ifkey|window f.minimize <Key>SunOpen ifkey|icon f.normalize 3. You can remap these by changing them to the following: Example: Let's say you want to map F11 to the Front key. <Key>SunF36 ifkey|icon|window f.raise_lower Now restart the workspace manager and the changes will take effect. NOTE: One big draw back it that the actual Front key on Sun Keyboards is no longer mapped to anything. This srdb will probably only be used by people who have a third party keyboard and want to have a key on the keyboard actually have the Front capability. Also there are keyboard independent sequences you can use to generate the Front and Open functionality. window keyboard keyboard function independent specific -------- ----------- -------- raise/lower Alt+F3 SunFront minimize/restore Alt+F5 SunOpen Please see srdb 12240 for more details. 26. Where can xmodmap changes be added permanently? Where can xmodmap changes be added for a permanent solution? SOLUTION SUMMARY: On a workstation, or X Terminal running: - Openwin: make a back-up copy of the /usr/openwin/etc/keytables/US5.kt file. Then, modify this file to reflect changes to keysyms/keycodes - XDM: make a back-up copy of the /usr/openwin/lib/xdm/Xsetup_0 file. Then modify this file to add the desired xmodmap commands. Also ensure that in /usr/openwin/lib/xdm-config that this line is in place: DisplayManager._0.setup: /usr/openwin/lib/xdm/Xsetup_0 - Openwin or XDM: modify $HOME/.xinitrc to include the desired xmodmap commands - CDE: copy /usr/dt/config/Xsetup to /etc/dt/config/Xsetup (the directories under /etc may need to be created, first). Then modify /etc/dt/config/Xsetup to add the desired xmodmap commands On a Xterminal not running Openwin, XDM or CDE: - If the command "openxt" was used to bring up the window manager, modify $HOME/.xinitrc to include the desired xmodmap commands - Otherwise, run the xmodmap commands manually 27. Are there any public domain GUI front-ends to xmodmap? Try xkeycaps, available from http://www.jwz.org/xkeycaps/ *** Sun does not support customization of X11/Openwindows/CDE. ***
Infodoc ID | Synopsis | Date | ||
13065 | How to kill CDE screen lock | 16 Mar 1999 |
Description | Top |
This infodoc relates to CDE 1.0.1, which is supported on Solaris 2.4 and Solaris 2.5, CDE 1.0.2, which is supported on Solaris 2.5.1, CDE 1.2, which is supported on Solaris 2.6, and CDE 1.3, which is supported on Solaris 7. CDE provides a facility for an end-user to lock their screen by clicking on a padlock icon on the CDE front panel. This causes a screen lock to be enabled so that the user's screen is protected from other users. A similar capability existed in OpenWindows, but this is different because OpenWindows used the "xlock" client, whereas the CDE screen lock is integrated into the window manager (dtwm) and session manager (dtsession). So when a CDE user invokes a screen lock via tooltalk messaging, the CDE dtsession is requested to lock the screen. dtsession locks the screen by calling dtexec to execute dtscreen, which is the program which displays the screen saver patterns on the screen. From the dtscreen(1X) man page: Note that the Session Manager, dtsession, is responsible for locking the session and prompting for a password to unlock. The session manager may launch the dtscreen client to pro- vide screen saver animations during session lock. Refer to the session manager specification for resources controlling the launching of screen savers by the session manager. However you *cannot* unlock the screen simply by killing dtscreen. This is because CDE notices its death and starts a new one. This is part of the normal scheme where dtsession invokes multiple instances of the screen saver, in succession, to put up different patterns. Also, the password dialog is part of the window manager, not the dtscreen process. The only way to kill the screen lock is to kill the user's dtsession, which ends their login session very abruptly! They will be logged out of CDE and work-in-progress may be lost. This design was necessary to provide a secure screen-lock to the user.
Infodoc ID | Synopsis | Date | ||
16634 | how to make dtwm look like mwm in Solaris 2.6 | 3 Mar 1998 |
Description | Top |
How do you make the CDE window manager, dtwm, look like the Motif Window manager, mwm? This functionality is only for Solaris 2.6/CDE 1.2. Do the following: 1. Add the following resources to ~/.Xdefaults: Dtwm*useFrontPanel: False Dtwm*configFile: $HOME/.mwmrc There may be other resources that need to be set differently as well. See the dtwm man page for more information. The configFile resource assumes you are using a customized .mwmrc file. If you are not, you do not need to set this resource. The resource is documented in the dtwm man page. The root menus for dtwm and mwm are not the same. The dtwm root menu is fully configurable, so you can make changes in the root menu if you need to. See the man pages for dtwm and dtwmrc for more information. If you want these resource changes to be system-wide for all users, copy /usr/dt/app-defaults/C/Dtwm to /etc/dt/app-defaults/C and make the changes in there. Note: if you are using a locale other than the standard English locale, replace C with the name of your locale. 2. Set the OW_WINDOW_MANAGER environment variable to /usr/dt/bin/dtwm -name Mwm: csh: setenv OW_WINDOW_MANAGER /usr/dt/bin/dtwm -name Mwm ksh: OW_WINDOW_MANAGER=/usr/dt/bin/dtwm -name Mwm; export OW_WINDOW_MANAGER Note: this assumes that you are using the standard .xinitrc, which is copied from /usr/openwin/lib/Xinitrc. If you have a modified one, please move .xinitrc to another location for the test. The option -name Mwm lets dtwm behave as if it were mwm. It actually reads all the resources starting with Mwm*. This option is documented in the dtwm man page. 3. Set the LD_LIBRARY_PATH environment variable to /usr/dt/lib:/usr/openwin/lib: csh: setenv LD_LIBRARY_PATH /usr/dt/lib:/usr/openwin/lib ksh: LD_LIBRARY_PATH=/usr/dt/lib:/usr/openwin/lib; export LD_LIBRARY_PATH Note: Sun does not endorse or support this functionality of dtwm.
Infodoc ID | Synopsis | Date | ||
10374 | how to set up multiple TurboGX framebuffers with nonstandard resolutions | 2 Mar 2000 |
Description | Top |
Here are the steps to set up several (TurboGX) tgx cards. (This may make assumptions about the openboot prom rev level and the resolutions the frame buffer supports.) 1) The console monitor is set up using output-device User can find which device is the console monitor with: L1-A (Stop-a) ok devalias screen It should say something like /sbus@1,f8000000/cgsix@3,0 this is the console screen. This string will differ on other types of hardware. For instance, it may be /obio/cgfourteen@2,0 on a sparc-20. Next, look at all the frame buffers on the system: ok show-devs ... /cgsix@0,0 ... /cgsix@2,0 ... /cgsix@3,0 It has already been seen which device was the console frame buffer. The other two frame buffers are cgsix@2 and cgsix@3. This output will widely vary depending on the system architecture. Now, set up a shell script: #!/bin/sh eeprom output-device='screen:r1280x1024x76' eeprom fcode-debug\?=true eeprom nvramrc='probe-sbus " /iommu/sbus/cgsix@2" select-d ev r1280x1024x76 " /iommu/sbus/cgsix@2" " set-resolution" execute-device-method drop device-end " /iommu/sbus/cgsix@3" select-dev r1280x1024x76 " /iommu/sbus/cgsix@3" " set-resolution" execute-device-method drop device-end install-console banner ' eepr om use-nvramrc\?=true Pay attention to the spaces within the double-quotes. The output-device line sets the resolution for the console, which is the primary frame buffer. The nvramrc line sets up code that executes each time the system boots. This program sets up the resolution on the second and third tgx devices. The last line says to use the script in nvramrc when booting. Notes: To find built-in resolutions available for some of the newer frame buffers (this doesn't work for all devices), type: L1-A ok show-devices ... /sbus@1,f8000000/cgsix@3,0 <-- this is the frame buffer ... ok cd /sbus/cgsix@3,0 ok words The resolutions supported show up like r1280x1024x76 (or hdtv). Other references: Open Boot Command Reference Writing Fcode Programs
Infodoc ID | Synopsis | Date | ||
2221 | Setting the resolution of secondary frame buffer | 12 Apr 2000 |
Description | Top |
A machine can have more than one frame buffer installed, sometimes known as being "multi-headed." The resolution of the PRIMARY frame buffer can be set in the NVRAM. For example: to change the resolution to 1280x1024x76, user would use the command: # eeprom output-device=screen:r1280x1024x76 or from the system monitor prompt: ok setenv output-device screen:r1280x1024x76 ok reset To change the secondary frame buffer it is a little more complex. The following script assumes sun4m architecture. For sun4c/sun4u architecture change /iommu/sbus to /sbus It also assumes that the frame buffer is in sbus slot #3 - to change this to (say) 2, change cgsix@3 to cgsix@2 Finally it assumes a resolution of r1280x1024x76 - substitute whatever value is appropriate. ############################################################################# #!/bin/sh eeprom fcode-debug\?=true eeprom nvramrc='probe-sbus " /iommu/sbus/cgsix@3" select-dev r1280x1024x76 " /iommu/sbus/cgsix@3" " set-resolution" execute-device-method drop device-end install-console banner ' eeprom use-nvramrc\?=true ############################################################################## Here is the procedure to use: 1. Boot the system up 2. Determine which sbus slot the frame buffer board resides in for the second head. Do this with the command # dmesg | grep cgsix cgsix1 at sbus0: SBus slot 3 0x0 pri 7 ^^^^^^^^ 3. Determine the system architecture. Do this with the command # uname -m sun4m 4. Modify the script accordingly. Make sure that it is executable. # chmod 755 scriptname 5. Execute the script, there should be no error messages. If an error message such as "not found" is displayed, check to make sure that the closed single quotes in the above script are being used properly. 6. Once the script has been executed error free, reboot the system. 7. To determine whether or not the 2nd head has been reconfigured to the proper resolution, use the command: # dmesg | grep cgsix cgsix0 at SBus slot 1 0x0 pri 7 cgsix0: screen 1280x1024, double buffered, 4M mappable, rev 11 cgsix1 at SBus slot 3 0x0 pri 7 cgsix1: screen 1280x1024, double buffered, 4M mappable, rev 11 The script will only need to be run once, since the configuration will be stored in the NVRAM.
Infodoc ID | Synopsis | Date | ||
17918 | How to reinstall CDE on Solaris 2.6? | 4 Nov 1998 |
Description | Top |
Q: How do I reinstall CDE on Solaris 2.6? How do I uninstall it? Solaris 2.5.1 used to have the "install-cde" command on the CD-ROM. I cannot find it any more. A: Removing CDE from Solaris 2.6 is not supported unless you are using the "Core installation" option of Solaris, in which case you do not have CDE and OpenWindows and X11 installed at all. Changing installation levels (Core, Enduser, Developer, Full, Full OEM) after the system is installed is NOT supported. Having said that, you can pkgrm and pkgadd the following packages from the distribution CDROM: CDE Runtime: SUNWdtbas SUNWdtdmn SUNWdtdte SUNWdtlog CDE Developer Software: SUNWdtinc SUNWdtab SUNWdthed SUNWdtdem SUNWdtma SUNWdtmad SUNWmfman CDE End User Software SUNWdticn SUNWdtwm SUNWdtdst SUNWdthe SUNWdthev SUNWdthj SUNWdtim SUNWdtrme Solaris Desktop Extensions (if installed at all) SUNWdtezt SUNWdthez SUNWdtmaz
Infodoc ID | Synopsis | Date | ||
21424 | Removing the padlock button from the CDE front panel | 20 Jan 2000 |
Description | Top |
How do I remove the padlock button from the front panel? The way to do this is described in the Solaris 7 AnswerBook2 User Collection. Reference the: Solaris Common Desktop Environment: Advanced User's and System Administrator's Guide. Navigate through the following sections: Advanced Front Panel Customization Modifying the Main Panel To Remove a Control To make a system wide change, copy /usr/dt/appconfig/types/C/dtwm.fp to /etc/dt/appconfig/types/C and edit the CONTROL Lock section by adding the line DELETE True before the final closing brace. Example: CONTROL Lock { TYPE icon CONTAINER_NAME Switch CONTAINER_TYPE SWITCH POSITION_HINTS 1 ICON Fplock LABEL Lock PUSH_ACTION LockDisplay HELP_TOPIC FPOnItemLock HELP_VOLUME FPanel DELETE True } *** Sun does not support customization of CDE. ***
Infodoc ID | Synopsis | Date | ||
14636 | Adding and Removing Actions to and from the CDE desktop | 20 Dec 1996 |
Description | Top |
Actions can be placed on the CDE desktop simply by dragging the action from dtfile and placing it on the desktop. Actions remain on the desktop, much like any other window. When a user logs out of CDE, but returns to the current session, the actions remain on the desktop. This information is stored in $HOME/.dt/Desktop/.!dtdesktop. However, do not edit this file. To remove actions, select them on the desktop, press the right mouse button and select "Remove from Workspace" from the resulting menu. Multiple actions can be selected by dragging a select box around the icons.
Infodoc ID | Synopsis | Date | ||
11669 | How to run CDE on a second framebuffer OR with a dual-head display | 20 Jan 2000 |
Description | Top |
Create a double-headed (one X display, 2 screens) CDE configuration as follows: 1. As root, copy /usr/dt/config/Xservers to /etc/dt/config/Xservers. * You may need to make the directories under /etc first. 2. In the copy of /etc/dt/config/Xservers, change the last line (which is uncommented) that reads: :0 Local local@console /usr/openwin/bin/Xsun :0 to :0 Local local@console /usr/openwin/bin/Xsun :0 -dev /dev/fb0 -dev /dev/fb1 * Refer to the "Xsun" manual page for more information on the options to Xsun. * Make sure that the devices in this line match your system's configuration. 3. Either reboot your system, or exit CDE, login at the command line, and kill and restart dtlogin (Note: In Solaris 2.6 or earlier, the front panel does not show up on both screens. For Solaris 2.7 (CDE 1.3), a separate front panel is displayed on each screen.)
Infodoc ID | Synopsis | Date | ||
11732 | To run CDE and OpenLook on two screens of same X display | 17 Nov 1995 |
Description | Top |
It is possible to run OpenWindows - meaning the Open Look Window Manager (olwm) - on one head of a two-headed system, and the CDE window manager on the other. This is possible because they are just window managers and have options to say which screens of a display they will manage. steps: (You may need to vary this if your setup is unusual but this gives the basic idea). 1) Ensure that CDE works fine on one or both heads 2) Run the command "xrdb -q | grep multiScreen". If the line: Dtwm*multiScreen: True Or Dtwm.multiScreen: True appears, determine which of the user's resource files (e.g., $HOME/.Xdefaults, $HOME/.dt/sessions/home/dt.resources, etc.) that line is located in, and remove all such lines. 3) Add the following line to the $HOME/.Xdefaults or $HOME/.dt/sessions/home/dt.resources file Dtwm*multiScreen: False 4) Add the following line to the $HOME/.dt/sessions/sessionetc file: /usr/openwin/bin/olwm -single -display :0.1 & where :0.1 is the number of the screen the user wants Openwindows to appear. This will make CDE run on screen 0, and olwm on screen 1. If $HOME/.dt/sessions/sessionetc didn't exist before, make sure that the file executable by doing a "chmod a+x $HOME/.dt/sessions/sessionetc". The next time the user logs in from the CDE login screen, Openwindows should come up on the specified head, and CDE on the other. Applications started on the CDE screen will start there, and applications started fromthe olwm menu on its screen. This is just normal behaviour. You can still start up openlook or CDE applications on the other headby setting the display arguments to the commands, but this allows you to use your OpenLook menu and CDE front panel simultaneously.
Infodoc ID | Synopsis | Date | ||
19284 | how to run the Xserver on a headless system | 3 Apr 2000 |
Description | Top |
To run the Xsun X-server on a headless system (a system without a frame buffer), copy /usr/dt/config/Xservers to /etc/dt/config/Xservers, then edit /etc/dt/config/Xservers and comment out the last line by inserting the # character into the beginning of the line: # :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner This will prevent the console from starting any X-windows display manager but will allow X-windows applications to be run on the system and remotely displayed to other systems. If you are using the XDM login manager on your system, comment out the last line of /usr/openwin/lib/xdm/Xservers: # :0 Local local /usr/openwin/lib/xdm/StartOW :0 This will prevent the console from starting OpenWindows.
Infodoc ID | Synopsis | Date | ||
15531 | CDE: How to change the screen power management | 8 Jan 1998 |
Description | Top |
The screensaver timeout is a function of the Xserver, ie. Xsun. The default value is 10 minutes with a cycle time of 10 minutes. From the Xserver man page: -s minutes Set screen-saver timeout time in minutes. The default is 10 minutes. -p minutes Set screen-saver pattern cycle time in minutes. The default is 10 minutes. v sets video-off screen-saver preference. This is the default. -v sets video-on screen-saver preference. Beginning with Solaris 2.6, this feature of the Xserver also controls power management of the monitor. In order for power management of the monitor to occur, the video-off preference must be set. These Xserver values can be modified by the logged-in user via the xset command or CDE style manager. The values for these settings may be modified by the CDE environment once a user logs in. The following procedure only guarantees how the Xserver will behave when at the CDE login screen: As superuser, 1. Add the following to the Xsun line in /etc/dt/config/Xservers (copy this file from /usr/dt/config if it doesn't exist): -s <timeout-in-minutes> -p <cycletime-in-minutes> Add -v if you wish to disable power management. For example, the line might look like: :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner -s 5 -p 5 2. Make sure the following line is in /etc/dt/config/Xconfig (copy from /usr/dt/config if it doesn't exist): Dtlogin*terminateServer: True This will cause the Xserver to restart after the user logs out, thus restoring the default values as described in the Xservers file from step 1. 3. Force the X Display Manager, dtlogin, to reread its configuration files: /usr/dt/bin/dtconfig -reset 4. Log out. Remember, the Xserver values can be modified by the logged-in user via the xset command or CDE style manager. The values for these settings may be modified by the CDE environment once a user logs in, either by default CDE configuration or by user customization.
Infodoc ID | Synopsis | Date | ||
2221 | Setting the resolution of secondary frame buffer | 12 Apr 2000 |
Description | Top |
A machine can have more than one frame buffer installed, sometimes known as being "multi-headed." The resolution of the PRIMARY frame buffer can be set in the NVRAM. For example: to change the resolution to 1280x1024x76, user would use the command: # eeprom output-device=screen:r1280x1024x76 or from the system monitor prompt: ok setenv output-device screen:r1280x1024x76 ok reset To change the secondary frame buffer it is a little more complex. The following script assumes sun4m architecture. For sun4c/sun4u architecture change /iommu/sbus to /sbus It also assumes that the frame buffer is in sbus slot #3 - to change this to (say) 2, change cgsix@3 to cgsix@2 Finally it assumes a resolution of r1280x1024x76 - substitute whatever value is appropriate. ############################################################################# #!/bin/sh eeprom fcode-debug\?=true eeprom nvramrc='probe-sbus " /iommu/sbus/cgsix@3" select-dev r1280x1024x76 " /iommu/sbus/cgsix@3" " set-resolution" execute-device-method drop device-end install-console banner ' eeprom use-nvramrc\?=true ############################################################################## Here is the procedure to use: 1. Boot the system up 2. Determine which sbus slot the frame buffer board resides in for the second head. Do this with the command # dmesg | grep cgsix cgsix1 at sbus0: SBus slot 3 0x0 pri 7 ^^^^^^^^ 3. Determine the system architecture. Do this with the command # uname -m sun4m 4. Modify the script accordingly. Make sure that it is executable. # chmod 755 scriptname 5. Execute the script, there should be no error messages. If an error message such as "not found" is displayed, check to make sure that the closed single quotes in the above script are being used properly. 6. Once the script has been executed error free, reboot the system. 7. To determine whether or not the 2nd head has been reconfigured to the proper resolution, use the command: # dmesg | grep cgsix cgsix0 at SBus slot 1 0x0 pri 7 cgsix0: screen 1280x1024, double buffered, 4M mappable, rev 11 cgsix1 at SBus slot 3 0x0 pri 7 cgsix1: screen 1280x1024, double buffered, 4M mappable, rev 11 The script will only need to be run once, since the configuration will be stored in the NVRAM.
Infodoc ID | Synopsis | Date | ||
18215 | How to start CDE from the command line | 11 Dec 1998 |
Description | Top |
To start CDE from the command line: - Make sure your OPENWINHOME environment variable is set to /usr/openwin To see if it is set, type: echo $OPENWINHOME. If it returns /usr/openwin, it is set correctly. If it returns nothing, you will need to set it. To set it in C-Shell, type: setenv OPENWINHOME /usr/openwin To set it in Bourne Shell or K-Shell, type: OPENWINHOME=/usr/openwin;export OPENWINHOME - Make sure your PATH environment variable has /usr/dt/bin and /usr/openwin/bin at the front of it To see if it is set, type: echo $PATH. If PATH is set correctly, /usr/dt/bin and /usr/openwin/bin will be at the front of it. To add these paths to PATH in C-Shell, type: setenv PATH /usr/dt/bin:/usr/openwin/bin:${PATH} To add these paths to PATH in Bourne shell or K-shell, type: PATH=/usr/dt/bin:/usr/openwin/bin:${PATH};export PATH - Type the command: /usr/openwin/bin/xinit /usr/dt/bin/Xsession
Infodoc ID | Synopsis | Date | ||
17656 | how to start CDE without the front panel | 28 Aug 1998 |
Description | Top |
How do I start CDE without the front panel? The following resource setting turns off the dtwm front panel (dtwm is the window manager for CDE): Dtwm*useFrontPanel: False This resource can be set in $HOME/.Xdefaults, or you can change the existing global resource in the file /usr/dt/app-defaults/C/Dtwm from "True" to "False". To do this, copy /usr/dt/app-defaults/C/Dtwm to /etc/dt/app-defaults/C and edit the copy.
Infodoc ID | Synopsis | Date | ||
10596 | How to bring up Openwindow at boot time | 8 Dec 1994 |
Description | Top |
Use following procedure to being OpenWindows up at boot time: 1. Create a file similar to the one shown below and name it S90Openwindows. #! /bin/sh HOME=/ export HOME chmod 666 /dev/console /usr/openwin/bin/openwin 2. Copy the file to /etc/rc3.d. 3. chmod +x S90Openwindows. 4. Modify the file /etc/logindevperm as shown below: /dev/console 0666 /dev/mouse:/dev/kbd /dev/console 0666 /dev/sound/* # audio devices /dev/console 0666 /dev/fbs/* # frame buffers 5. Reboot two times. <== This is very important.
Infodoc ID | Synopsis | Date | ||
12649 | CDE: Xemacs as CDE text editor server instead of dtpad | 13 Jan 1998 |
Description | Top |
If you're not a gung-ho Emacs user, you need read no further. Even if you are a gung-ho Emacs user, if you're not using Xemacs 19.10 or later (Xemacs is the new name for what used to be called Lucid Emacs) this won't apply. The enclosed bit of Xemacs elisp will make Xemacs respond to the standard Media Exchange ToolTalk messages; this makes Xemacs substitute for dtpad when displaying and editing objects like files and mail attachments. To use it, save this attachment somewhere, load the attachment into your Xemacs (you might want to edit your ~/.emacs to do this all the time) and make sure you don't have a dtpad server running (ps -elf > grep dtpad and kill any "dtpad -server" processes.) Then try double-clicking on text files in dtfile, or on text attachments in dtmail. The file/attachment should be loaded into your running Xemacs. ;;; @(#)cde-media-exchange.el 1.1 95/08/24 ;;; Make Xemacs a CDE/Media Exchange ToolTalk client. ;;; ;;; Bugs: ;;; - For buffer editing, need to do Deposits on saving. ;;; does write-file-hooks help? ;;; I bet ange-ftp has example of what to do ;;; - does not yet send the dt housekeeping notices like ;;; Started and Stopped, or Saved notices when saving files. (defvar ttmx-use-new-screen t "t if media exchange opens should create a new screen if one isn't showing the file. nil if the current screen should be re-used.") ;; ToolTalk will always prefer a running process to one that would ;; have to be started. We also have Xemacs, like dtpad, register ;; for ANY media type. This ends up meaning that if dtmail isn't running ;; but Xemacs is, Display requests for mail folders get sent to Xemacs ;; instead of starting dtmail. We work around this by having a Xemacs ;; reject anything that doesn't have a handler-ptype of DTPAD. ;; dtpad gets that behavior by default because it registers its patterns ;; via tt_ptype_declare, and the patterns so generated have handler-ptype ;; set. If Xemacs's ToolTalk support had tt_ptype_declare we could ;; do the same thing. (defun ttmx-reject-invalid-types (msg) " If the message is not for the generic editor (ptype DTPAD) reject it and return t else return nil" (cond ((string= (get-tooltalk-message-attribute msg 'handler_ptype) "DTPAD") nil) (t (return-tooltalk-message msg 'reject) t) ) ) (defun ttmx-switch-to-buffer (buf) "Switch to a buffer either in current screen or a new screen, under control of ttmx-use-new-screen" (if ttmx-use-new-screen (switch-to-buffer-other-screen buf) (switch-to-buffer buf) ) ) ;; register a session-scoped handle pattern (defun ttmx-register-handle-pat(op args callback) "Register a session-scoped ToolTalk pattern to handle a Media Exchange message." (let ((pat (create-tooltalk-pattern))) (add-tooltalk-pattern-attribute 'TT_HANDLE pat 'category) (add-tooltalk-pattern-attribute 'TT_SESSION pat 'scope) (add-tooltalk-pattern-attribute op pat 'op) (add-tooltalk-pattern-attribute callback pat 'callback) (while args (let* ((arg (car args)) (mode (car arg)) (vtype (car (cdr arg)))) (add-tooltalk-pattern-arg pat mode vtype nil) ) (setq args (cdr args)) ) (register-tooltalk-pattern pat) ) ) ;; Helper function to tag current buffer so request will be responded to ;; when buffer is deleted (defun ttmx-tag-buffer (msg) (make-local-variable 'ttmx-messages) (if (not (boundp 'ttmx-messages)) (setq ttmx-messages nil)) (setq ttmx-messages (cons msg ttmx-messages)) (add-hook 'kill-buffer-hook 'ttmx-respond-to-buffer-messages) ) ;; Helper functions to respond to and remove all messages associated with ;; current buffer (defun ttmx-respond-to-buffer-messages() (if (boundp 'ttmx-messages) (mapcar (function (lambda (x) (return-tooltalk-message x 'reply))) ttmx-messages) ) (setq ttmx-messages nil) ) ;; Ensure all messages are responded to when killing emacs (add-hook 'kill-emacs-hook (function (lambda () (save-excursion (mapcar (function (lambda (buf) (set-buffer buf) (ttmx-respond-to-buffer-messages) ) ) (buffer-list t) ) ) ) ) ) ;; Display (read-only) a buffer (defun ttmx-display-buffer (contents title counterfoil msg) (let ((buf (generate-new-buffer title))) (ttmx-switch-to-buffer buf) (insert contents) (set-buffer-modified-p nil) (setq buffer-read-only t) ) ) ;; Edit a buffer (defun ttmx-edit-buffer (contents title counterfoil msg) (let ((buf (generate-new-buffer title))) (ttmx-switch-to-buffer buf) (insert contents) (ttmx-tag-buffer msg) ) ) ;; Edit or display a file -- let permissions of file control read/write ;; versus read-only. This is consistent with the behavior of dtpad, ;; although not very consistent with the defined meanings of ;; the Edit and Display messages. (defun ttmx-edit-file (filename title counterfoil msg) (let* ((buf (find-file-noselect filename)) (window (get-buffer-window buf t t)) ) (if window (let ((screen (window-screen window))) (deiconify-screen screen) (raise-screen screen) (set-buffer buf) ) (ttmx-switch-to-buffer buf) ) (if title (rename-buffer title t)) (ttmx-tag-buffer msg) ) ) ;; session Display(in ALL contents) (defun ttmx-disp-1 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0))) (if (not (string-equal "" contents)) (ttmx-display-buffer contents "Unnamed" nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) "Unnamed" nil msg) ) ) ) ) (ttmx-register-handle-pat "Display" '((TT_IN "ALL" contents)) 'ttmx-disp-1) ;; session Display(in ALL contents, in messageID counterfoil) (defun ttmx-disp-2 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0))) (if (not (string-equal "" contents)) (ttmx-display-buffer contents "Unnamed" nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) nil nil msg) ) ) ) ) (ttmx-register-handle-pat "Display" '((TT_IN "ALL" contents) (TT_IN "messageID" counterfoil)) 'ttmx-disp-2) ;; session Display(in ALL contents, in title docName) (defun ttmx-disp-3 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0)) (title (get-tooltalk-message-attribute msg 'arg_val 1)) ) (if (not (string-equal "" contents)) (ttmx-display-buffer contents title nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) title nil msg) ) ) ) ) (ttmx-register-handle-pat "Display" '((TT_IN "ALL" contents) (TT_IN "title" docName)) 'ttmx-disp-3) ;; session Display(in ALL contents, in messageID counterfoil, in title docName) (defun ttmx-disp-4 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0)) (title (get-tooltalk-message-attribute msg 'arg_val 2)) ) (if (not (string-equal "" contents)) (ttmx-display-buffer contents title nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) title nil msg) ) ) ) ) (ttmx-register-handle-pat "Display" '((TT_IN "ALL" contents) (TT_IN "messageID" counterfoil) (TT_IN "title" docName)) 'ttmx-disp-4) ;; session Edit(inout ALL contents) (defun ttmx-edit-1 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0))) (if (not (string-equal "" contents)) (ttmx-edit-buffer contents "Unnamed" nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) nil nil msg) ) ) ) ) (ttmx-register-handle-pat "Edit" '((TT_INOUT "ALL" contents)) 'ttmx-edit-1) ;; session Edit(inout ALL contents, in messageID counterfoil) (defun ttmx-edit-2 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0))) (if (not (string-equal "" contents)) (ttmx-edit-buffer contents "Unnamed" nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) nil nil msg) ) ) ) ) (ttmx-register-handle-pat "Edit" '((TT_INOUT "ALL" contents) (TT_IN "messageID" counterfoil)) 'ttmx-edit-2) ;; session Edit(inout ALL contents, in title docName) (defun ttmx-edit-3 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0)) (title (get-tooltalk-message-attribute msg 'arg_val 1)) ) (if (not (string-equal "" contents)) (ttmx-edit-buffer contents title nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) title nil msg) ) ) ) ) (ttmx-register-handle-pat "Edit" '((TT_INOUT "ALL" contents) (TT_IN "title" docName)) 'ttmx-edit-3) ;; session Edit(inout ALL contents, in messageID counterfoil, in title docName) (defun ttmx-edit-4 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (let ((contents (get-tooltalk-message-attribute msg 'arg_val 0)) (title (get-tooltalk-message-attribute msg 'arg_val 2)) ) (if (not (string-equal "" contents)) (ttmx-edit-buffer contents title nil msg) (ttmx-edit-file (get-tooltalk-message-attribute msg 'file) title nil msg) ) ) ) ) (ttmx-register-handle-pat "Edit" '((TT_INOUT "ALL" contents) (TT_IN "messageID" counterfoil) (TT_IN "title" docName)) 'ttmx-edit-4) ;; session Edit(out ALL contents) (defun ttmx-edit-5 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) nil (ttmx-edit-buffer "" "Unnamed" nil msg) ) ) (ttmx-register-handle-pat "Edit" '((TT_OUT "ALL" contents)) 'ttmx-edit-5) ;; session Edit(out ALL contents, in messageID counterfoil) (ttmx-register-handle-pat "Edit" '((TT_OUT "ALL" contents) (TT_IN "messageID" counterfoil)) 'ttmx-edit-5) ;; session Edit(out ALL contents, in title docName) (defun ttmx-edit-7 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) (return nil)) (let ((title (get-tooltalk-message-attribute msg 'arg_val 1)) ) (ttmx-edit-buffer "" title nil msg) ) ) (ttmx-register-handle-pat "Edit" '((TT_OUT "ALL" contents) (TT_IN "title" docName)) 'ttmx-edit-7) ;; session Edit(out ALL contents, in messageID counterfoil, in title docName) (defun ttmx-edit-8 (msg pat) "Pattern callback" (if (ttmx-reject-invalid-types msg) (return nil)) (let ((title (get-tooltalk-message-attribute msg 'arg_val 2)) ) (ttmx-edit-buffer "" title nil msg) ) ) (ttmx-register-handle-pat "Edit" '((TT_OUT "ALL" contents) (TT_IN "messageID" counterfoil) (TT_IN "title" docName)) 'ttmx-edit-8)
Infodoc ID | Synopsis | Date | ||
13388 | CDE: Stopping dtlogin From Running Without Doing L1-A? | 10 Jul 1996 |
Description | Top |
Stopping dtlogin From Running Without Doing L1-A? It depends on how you started dtlogin and if you want to be permanently out of dtlogin or not. If you did a /usr/dt/bin/dtconfig -e to enable dtlogin to start each and every time you boot your machine, then from the login screen, pull down on the Options button and select Command Line Login. If dtconfig has enabled dtlogin to run all the time, you will be presented with a command line prompt (after pressing the return key when indicated) and can do your command line login and subsequent work. Once you log out, or if you fail in your login attempt, dtlogin will restart. However, if you never enabled dtlogin through dtconfig, you will be a victim of a code fix to avert a potential security hole in the login process. Whereas the previously discussed option used to be available from the login screen, someone could use this mechanism to break the login process with a Control-C, thus dropping them into your system as root, something that should not happen. So, if dtlogin is executed from the command line, the Command Line Login is specifically disallowed. The thought is that, whether or not you agree with it, to run dtlogin, one must do a dtconfig -e to enable the new login process. Aussuming that you will only run the login configuration script, to get out, you can still use Control-C, but you have to use it after the logout process has completed (you'll usually see all those apps in your workspaces map to the screen and then have the screen blank). Once the screen goes blank, you can press the Control-C to abort the dtlogin process. It's not pretty, but it does the job you want. To disable a permanent dtlogin from the command line (as root) do: /usr/dt/bin/dtconfig -d to disable the recurrent dtlogin screen. A reboot might be necessary after disabling dtlogin through dtconfig to make the system understand that the removal of this process is permanent.
Infodoc ID | Synopsis | Date | ||
19070 | how to use old .mwmrc files with CDE? | 1 May 1999 |
Description | Top |
I would like to use my $HOME/.mwmrc file with CDE. How do I accomplish this? To use an mwmrc config file with CDE(or to at least get the mouse pull-down menuss): - Put the .mwmrc file in $HOME - Edit the .mwmrc and change the following line: Buttons DefaultButtonBindings to: Buttons DtButtonBindings - Create a .Xdefaults file in $HOME and put the following line in it: Dtwm*configFile: /home/testuser/.mwmrc Please note that the environment variable name $HOME may not work in .Xdefaults. *** Sun does not support or endorse such customization of CDE. ***
Infodoc ID | Synopsis | Date | ||
14637 | Action/Data Types Search Paths and Environment Variables in CDE | 24 May 1997 |
Description | Top |
CDE uses search paths to locate applications and associated desktop files. There are four search paths: Application, Database, Icons, and Help data. Of interest to Actions and Data Types is the Database search path. The Database search path is used to specify locations for action and data type definition files (as well as Front Panel files). To obtain the search paths' value for the current user, execute this command: dtsearchpath -v dtsearchpath uses a combination of environment variables and built-in values to create search paths. The environment variables dtsearchpath reads are called input variables. For the Database search path, the input variables are: DTSPSYSDATABASEHOSTS - System Wide Input Variable, set in /etc/dt/config/Xsession.d/0010.dtpaths. For example, if this file doesn't exist, copy it from /usr/dt/config/Xsession.d/0010.dtpaths. Then, add the following line: export DTSPSYSDATABASEHOSTS=/var/applications/db By default, this value is set to /etc/dt/appconfig/types/{language} where {language} by default is C. DTSPUSERDATABASEHOSTS - Personal (User) Input Variable, set in the $HOME/.dtprofile. For example: export DTSPUSERDATABASEHOSTS=/home/user/mydb By default, this value is set to $HOME/.dt/types For changes to these input variables to take effect, one must exit, then re-enter the CDE window manager. The Database search path built-in value is /usr/dt/appconfig/types/{language} where {language} by default is C. When dtsearchpath assembles these values, it assigns these values to an output variable. For the Database search path, the output variable is DTDATABASESEARCHPATH. DTDATABASESEARCHPATH by default will be something like: /home/user/.dt/types /etc/dt/appconfig/types/%L /etc/dt/appconfig/types/C /usr/dt/appconfig/types/%L /usr/dt/appconfig/types/C DTDATABASESEARCHPATH is created by incorporating the following environment variables or locations: + DTSPUSERDATABASEHOSTS + $HOME/.dt/types + /etc/dt/appconfig/types/{language} + DTSPSYSDATABASEHOSTS + DTSPSYSAPPHOSTS + /usr/dt/appconfig/types/{language}
Infodoc ID | Synopsis | Date | ||
16248 | Xterminal PSD | 2 Jun 1998 |
Description | Top |
Xterminal PSD ------------- 1. What is an Xterminal? 2. What are Sun's Xterminals? 3. What is XDMCP and how do Xterminals use it? 4. What are the different methods for xdm to display onto Xterminals? 5. What is the Xterminal software? 6. What's the difference between the XTerminal boot host and the Xterminal session server? 7. If an Xterminal is going to use xdm does it need the xterminal software? 8. How do you setup fonts for Xterminals? 9. Do Xterminals have Xservers? 10. Do Xterminals work across subnets? 11. How do I capture error messages from Xterminals? 12. Troubleshooting tips for Xterminals? 13. Why does quitting one session from one XTerminal cause all XTerminals to reset? 14. How do I bring up CDE on an Xterminal? 15. CDE: The window manager periodically dies on X Terminals 16. How do I change the resolution of the Xterminal? 17. How do I get my Xterminals to pick up fonts from another system besides the boot host? 18. Xterminals don't work (hang) with CDE 1.2 if NOT using NIS ============================================================================== 1. What is an Xterminal? An Xterminal is a cost effective , SPARC-based display station. It displays applications that are running on other computers, called remote hosts, as if the applications were running on the terminal itself. These are called client applications. The Xterminal passes its keyboard and mouse input to these client applications, which display their output in windows on the Xterminal's screen. The Xterminal fulfills its role as a graphical display station for a remote host by using the X Window System Software. 2. What are Sun's Xterminals? The Xterminal 1 and the Xterminal Classic EX. Xterminal Classic hardware: Is a stripped down SPARC classic single ethernet port initial config will have cg3; although cg6 model offered later no serial, audio, or external SCSI capability 4MB of memory; although an 8MB config will be offered upgradable to diskless workstation type-5 keyboard and mouse 16" color monitor Xterminal Classic Software: boots via tftp no Xserver such as Xsun or NeWS, uses a generic Xserver no audio no DPS no serial line connect or Xremote capability X SERVER X11R5 based special modifications for low memory management in low memory situations: - releases active backing store - selective memory allocation - connection refusal fontpath extension for remote system NFS fontpaths i.e. special syntax for specifying remote font locations does not access R5 style font servers recognizes local Window Manager process Font Support: X11R5 MIT supplied formats: .bdf, .pcf, scaled: speedo and Adobe Type 1 Sun scalable .f3b (folio format fonts) Does not support: postscript fonts 3. What is XDMCP and how do Xterminals use it? XDMCP stands for X Display Manager Control Protocol which is a standard protocol established by the X Consortium in 1989. From the end user's point of view, it maintains the connection between the XTerminal and its server in regardless of the state of the XTerminal, namely ON or OFF. When a XDMCP-compatible XTerminal is powered on, it would broadcast a request for establishing a connection to a remote host. A remote host has xdm running would reply and send a login prompt to the XTerminal. "xdm" Release 4 supports XDMCP. Therefore, if XDMCP is implemented both on the XTerminal and xdm on the remote host, an entry for the XTerminal is not required in the Xservers file. However, if neither the XTerminal nor xdm on the remote host supports XDMCP, an entry for the XTerminal should be put into the Xservers file to force a direct connection between the remote host and the XTerminal. Please read the Xservers file for more details. 4. What are the different methods for xdm or dtlogin to display onto Xterminals? See INFODOC ID: 11666 Xterminals generally supply three different ways of running XDMCP: Direct Establish an XDM connection to the specified host. This requires that the name or IP address of the host running xdm be supplied. Indirect Send an indirect request for XDM connection to the specified host, which then forwards the request to another host. This requires that the name or IP address of the host running xdm be supplied. For a host running X11R4, an "Indirect" query is treated the same as a "Direct" one. For a host running X11R5, it can be configured to respond to an "Indirect" query by forwarding the request to another host or by offering a list of hosts for the user to choose from. Broadcast Broadcast the request for an XDM connection to all hosts on the subnet. This does not require a hostname or address. For most Xterminals, the first host that responds is the one that is used. For some smarter Xterminals, the X server gathers responses from all hosts on the local network and allows the user to choose one to start up on. If an Terminal doesn't connect to any host running xdm under a Broadcast query, but can connect to hosts via a Direct or Indirect query, then there is probably something wrong with the Broadcast address that you have configured the Xterminal to use. See your vendor's documentation for information on how to set the Broadcast address. 5. What is the Xterminal software? Sun provided three versions of Xterminal software, versions 1.0, 2.0 and 2.1. Sun does not sell any Xterminal software anymore because the product has been End of Lifed. Xterminal Software is installed on the server that will be acting as the boot host for a given Xterminal. This software allows the server to provide an ip address for the Xterminal as well as configuration files. The reason why the Xterminal software is installed on a server instead of the Xterminal itself is because the Xterminal is a dumb terminal which only contains enough memory for boot prom information. The Xterminal's Xserver is then downloaded from the boot host via the Xterminal software so that client applications can display onto the Xterminal. 6. What's the difference between the XTerminal boot host and the Xterminal session server? The Sun Xterminal boot host and the Xterminal session server can be the same system. The boot host needs to have the Xterminal software installed so it can provide the Xterminal's rarp request with an ip address at boot time. The Xterminal Session Server is there to provide the X Windows Environment for an Xterminal. This can be a separate system than the boot host depending on how the Xterminal is configured by the Xterminal Software. 7. If an Xterminal is going to use xdm does it need the xterminal software? If the Xterminal is a Sun Xterminal then the answer is YES. If the Xterminal is actually a Sun workstation that's being used as an Xterminal then the answer is NO. The reason is that a Sun workstation already knows it's IP address and therefore just needs to get the display from the server. 8. How do you setup fonts for Sun Xterminals? Under the Xterminal software there is a GUI application called xtmgr. xtmgr has a properties window which allows you to set the path for the fonts the Xterminal should use. 9. Do Xterminals have an Xserver? All Xterminals have an Xserver which is downloaded from the Xterminal software on the boot host. The Xserver is a fully compliant X Window System X11 Revision 5 (X11R5) server. 10. Do Xterminals work across subnets? Broadcast queries are restricted to the local network or subnet. Unlike Direct and Indirect queries, you cannot use a Broadcast query to access a host through a gateway. 11. How do I capture error messages from Xterminals? Go onto the boot host and bring up the xtmgr GUI. Select properties and environment you'll see a syslog option. Once you find it click on Yes to enable it and then you should start seeing error messages in /var/adm/messages. 12. Troubleshooting tips for Xterminals? 1. Always find out the exact environment setup. - What is the boot host? - Is it the Xterminal server as well? - What version of Xterminal software is running? - How many Xterminals? - Are the Xterminal on the Same subnet? - What type of connection is being used? telnet or xdm? - Do either telnet or xdm connection work? - What type of Xterminals? - Patches??? showrev -p - Any errors under /var/adm/messages? - At what point is the Xterminal failing? Get Description of the state of the Xterminals. 2. Enable syslog if it's not already enabled. 3. What is the command used to boot the Xterminal? 4. You can run a snoop to see what the Xterminal and the servers are doing. snoop -rarp 13. Why does quitting one session from one XTerminal cause all XTerminals to reset ? The most likely reason for the resource: DisplayManager*reset in the $OPENWINHOME/lib/xdm/xdm-config file is being set to: $OPENWINHOME/lib/xdm/Xreset If the entry does exist in the xdm-config file: DisplayManager*reset: $OPENWINHOME/lib/xdm/Xreset it should be changed to: DisplayManager._0.reset: $OPENWINHOME/lib/xdm/Xreset The xdm process should be restarted. 14. How to start CDE on Xterminals CDE works nicely with Sun's Xterminal line. The InstallGuide has a Using Xterminals section, around page 25 (depending on the doc's revision). You can find an online copy of this guide in the CDE Application Mgr's Information Folder (on CDE system's installed with Developer's cluster). This guide is also in the CDE answerbook. Thw abbreviated answer is, on the Xterminal's property setup, select: Use XDM XDM connection : indirect to <name of wkstn running CDE> Local Winodw Mgr : None On the Xterminal's Fonts setup dialog: Add Font path of /usr/dt/config/xfonts/C (for C local) to a workstation exporting the installed CDE area. (Note that this font path is installed from the package SUWdtft, which is available in Solaris 2.4 and 2.5.X. It is not available after Solaris 2.5.1. For Solaris 2.6, you may be able to use the font path of /usr/openwin/lib/X11/fonts/F3bitmaps, although this has not been tested.) Restart the Xterminal and CDE's chooser screen will appear. Then double-click on the name of the workstation that you wish to log in to. 15. CDE: The window manager periodically dies on X Terminals CDE consistently dies on all Xterminals connected to a specific server after running for a time period - usually in the range of 10 to 15 minutes. In addition, these messages appear in ~/.dt/startlog: ... --- /usr/dt/bin/Xsession starting... fbconsole: open /dev/console: Permission denied --- Xsession started by dtlogin ... and these messages appear in ~/.dt/errorlog: ... Workspace Manager: I/O error on display:: ... The Xterminal's server does not have a graphics monitor on it. Rather, it has serial console connected or no monitor at all. SOLUTION SUMMARY: The problem is that the server console doesn't have an associated framebuffer. CDE is attempting to start up the X Server on a server that has no framebuffer, and failing. When that happens the CDE processes die, bringing down all the CDE Xterminal connections to the server. To avoid this problem, modify Xservers as follows: 1. cp /usr/dt/config/Xservers /etc/dt/config 2. Comment out the following line in /etc/dt/config: :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner to: # :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner 16. How do I change the resolution of the Xterminal? How do I change the resolution on an X-Terminal running 2.1, for example from 75x75dpi to 90x90dpi. Edit the sunxt_config file either in /tftpboot or in the sub-directory /tfptboot/HOSTID_CFG and add the following line: screen_resolution 90dpi 17. How do I get my Xterminals to pick up fonts from another system besides the boot host? Problem: A customer has an Xterminal 1, NFS server(boot host), and a PC. The customer wants to have the fonts and rgb from the PC instead of the boot host. Solution: The correct way to do this is to bring up xtmgr on the boot host, then modify the Xterminal properties. Go under fonts and enter the PC hostname and the path to the fonts found on the PC. Do the same for the rgb, go to the environment properties. Change the Color Server to the PC hostname, specify the path name to the rgb file of the PC, then hit apply and add. NOTE: All these modifications should be done on the boot host. The NFS server should not be turned off at all if the xterminal will be used. The Solution given above will not work if the boot host isn't up and running. The Xterminal is dependent on the boot host during boot up. 18. Xterminals don't work (hang) with CDE 1.2 if NOT using NIS Xterminals like hamlet, Xterminal1, NCD, and Tektronix don't come up with CDE 1.2. if NOT running NIS. After booting, the terminal hangs. Dtlogin does not show up. This happens at sites where no NIS is running as well as at sites where the NIS domainname equals the DNS domainname. The assumption being made in CDE is that there is always NIS running and that the NIS domainname has an additional prefix over the dns domainname. This is certainly the case at most sites, but this is not guaranteed. The interesting lines are in /usr/dt/config/Xstartup: # Append Font Server to tail of path. # Will server any "-dt-" fonts not found on the remote machine. # if [ -x /usr/openwin/bin/fs ]; then $XDIR/xset fp+ tcp/`/usr/bin/hostname`.`/usr/bin/domainname | /usr/bin/cut -d. -f2-`:7100 fi and /usr/dt/bin/Xsession. # Append Font Server to tail of path. # Will server any "-dt-" fonts not found on the remote machine. # if [ -x /usr/openwin/bin/fs ]; then $XDIR/xset fp+ tcp/`/usr/bin/hostname`.`/usr/bin/domainname | /usr/bin/cut -d. -f2-`:7100 fi Comment out the mentioned lines.