| 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.