4.4. 字符应用程序

本节介绍如何配置字符应用程序对象。另外还讨论了终端仿真器映射。

本节包括以下主题:

4.4.1. 配置字符应用程序对象

如果要向用户提供 VT420、Wyse 60 或 SCO 控制台字符应用程序,可以使用字符应用程序对象。

在管理控制台中,字符应用程序对象的配置设置分散在以下选项卡中:

  • "General"(常规)选项卡-这些设置控制创建用户链接时使用的名称和图标

  • "Launch"(启动)选项卡-这些设置控制启动应用程序的方式以及是否可以暂停和恢复应用程序会话

  • "Presentation"(表示)选项卡-这些设置控制向用户显示应用程序的方式

  • "Performance"(性能)选项卡-这些设置用于优化应用程序的性能

  • "Client Device"(客户端设备)选项卡-这些设置控制用户的客户端设备与应用程序的交互方式

下表列出了配置字符应用程序对象最常用的设置及其使用方法。

属性

描述

Name(名称)

用户看到的名称。

Icon(图标)

用户看到的图标。

Application Command(应用程序命令)

用户单击链接时运行的应用程序的完整路径。

在所有应用服务器上,该应用程序必须安装在相同的位置。

另请参见第 4.8.9 节 “配置 VMS 应用程序”,了解有关如何配置虚拟内存系统 (Virtual Memory System, VMS) 字符应用程序的详细信息。

Arguments for Command(命令的参数)

启动应用程序时要使用的任何命令行参数。

Connection Method(连接方法)

SGD 用于连接至应用服务器(例如 ssh 或 telnet)的机制。

Number of Sessions(会话数)

用户可以运行的应用程序的实例数量。默认为三个。

Application Resumability(应用程序可恢复性)

应用程序在多长时间内可以恢复。以下选项可供使用:

  • Never(从不)-应用程序永远不能恢复

  • During the User Session(用户会话期间)-在用户注销 SGD 之前,应用程序一直保持运行状态并可进行恢复

  • General(常规)-用户注销 SGD 之后,应用程序保持运行一段时间(由超时时间值控制),并可在用户下次登录时恢复

Window Close Action(窗口关闭操作)

当用户使用窗口管理器装饰控件来关闭主应用程序窗口时所发生的操作。此属性仅适用于使用独立窗口的应用程序。

Window Type(窗口类型)

向用户显示应用程序的方式。

如果选择 "Independent Window"(独立窗口),则必须为 "Window Size"(窗口大小)指定 "Height"(高度)和 "Width"(宽度),或选中 "Client's Maximum Size"(客户端最大窗口大小)复选框。

指定要在终端窗口中显示的列数和行数。

Emulation Type(仿真类型)

要仿真的字符应用程序类型。SGD 支持 VT420、Wyse 60 或 SCO 控制台字符应用程序。

Terminal Type(终端类型)

应用程序的终端类型。接受默认的终端类型,或在 "Custom"(定制)字段中键入您自己的类型。

Application Load Balancing(应用程序负载平衡)

SGD 如何选择最佳的应用服务器来运行应用程序。

有关更多详细信息,请参见第 7.2.3 节 “Application Load Balancing(应用程序负载平衡)”

"Hosting Application Servers"(托管应用服务器)选项卡

使用 "Editable Assignments"(可编辑的分配)表选择可以运行应用程序的应用服务器或应用服务器组。

在所有应用服务器上,该应用程序必须安装在相同的位置。

"Assigned User Profiles"(分配的用户配置文件)选项卡

使用 "Editable Assignments"(可编辑的分配)表选择可以看到应用程序的用户。选择目录或目录(轻量)对象允许您一次将应用程序提供给多个用户。您也可以使用 LDAP 目录分配应用程序。请参见第 3.2.2 节 “LDAP 分配”

要使用和显示欧洲字符,终端会话必须能够显示 8 位字符。为了确保此条件,请输入命令 stty -istrip。另外,客户端设备必须能够输入欧洲字符。

4.4.1.1. 通过命令行创建字符应用程序对象

在命令行中,使用 tarantella object new_charapp 命令创建字符应用程序对象。您也可以使用 tarantella object script 命令同时创建多个字符应用程序对象。请参见第 3.1.5 节 “使用批处理脚本填充 SGD 组织层次结构”

字符应用程序对象仅能在 o=applications 组织分层结构中创建。

4.4.2. 终端仿真器键盘映射

SGD 终端仿真器将用户客户端键盘上的键与真实终端上的键进行关联。对于每种类型的终端仿真器:SCO 控制台、Wyse 60 和 VT420,都存在默认的键盘映射。

要针对特定的应用程序更改默认的映射或定义其他映射,您可以使用对象的 "Keyboard Map"(键盘映射)属性指定您自己的键盘映射文件。

4.4.2.1. 默认映射

仿真器具有内置的键盘映射,这些映射等效于 /opt/tarantella/etc/data/keymaps 目录中的以下示例键映射文件:

  • ansikey.txt-适用于 SCO 控制台仿真器

  • vt420key.txt-适用于 VT420 仿真器

  • w60key.txt-适用于 Wyse 60 仿真器

注意

修改这些键盘映射不会更改 SGD 使用的默认映射。执行此操作的唯一方法是使用字符应用程序对象的 --keymap 属性指定键盘映射。

4.4.2.2. 创建键盘映射

要创建您自己的键盘映射,请复制一个示例键盘映射文件,然后对其进行修改以适用于您的应用程序。您可以在任何文本编辑器中修改键盘映射。

映射的格式为:

ClientKeys=Translation

其中 ClientKeys 是用户在客户端设备上所按的一个或多个键,Translation 是发送到应用服务器上的应用程序的一个或多个击键。例如:

PageDown=Next

通过此映射,当用户按 Page Down 键时,仿真器将击键 Next 发送到应用服务器。

如果特定键具有用户定义的映射,则会覆盖默认的设置。如果没有用户定义的映射,则将默认的映射发送到应用服务器。

您可以将字符串括在直引号中,以便通过按一个键发送完整的字符串。例如:

F1="hello world"

要在映射字符串时输入不可打印的字符,请使用下表中显示的代码:

代码

含义

\r

回车符

\n

换行符

\"

直引号

\e

转义

\t

制表符

\nnn

具有八进制值 nnn 的字符

\xHH

具有十六进制值 HH 的字符

要在映射中指定修改键,例如 Shift、Ctrl 和 Alt,请使用加号 + 分隔这些键。例如:

Shift+NUMLOCK=INSLINE
Shift+F1="\0330a"
Alt+Shift+Control+DELETE="\003[33~"

要针对字符应用程序指定您自己的键盘映射,请使用以下命令:

$ tarantella object edit --name obj --keymap keymap

其中 obj 是字符应用程序对象,keymap 是键盘映射文件的路径名。

您可以使用完整路径名或相对路径名。相对路径名相对于 /opt/tarantella/etc/data/keymaps 目录。

例如,以下示例使用存储在 /opt/tarantella/etc/data/keymaps 中的命名键盘映射。

$ tarantella object edit --name obj --keymap mykeymap.txt

4.4.2.3. 键名

以下是在 SGD 键盘映射中有效的键名列表。第 4.4.2.4 节 “客户端设备键” 列表显示了代表用户客户端设备上的键的键名。这些键可以映射到 第 4.4.2.5 节 “应用服务器击键” 中给定的仿真器键名,而这些键名是最终发送到应用服务器上的应用程序的击键。

注意

这些键名之间的默认映射与 SGD 随附的键盘映射一致。如果某个键未包含在键盘映射中,则不会将其映射。

4.4.2.4. 客户端设备键

SGD 支持用户客户端设备上的以下键:

  • CURSOR_DOWN

  • CURSOR_LEFT

  • CURSOR_RIGHT

  • CURSOR_UP

  • DELETE

  • END

  • F1 到 F12

  • HOME

  • INSERT

  • KP0 到 KP9

  • KPADD

  • KPDELETE

  • KPDIVIDE

  • KPENTER

  • KPMULTIPLY

  • KPSUBSTRACT

  • NUMLOCK

  • PAGEDOWN

  • PAGEUP

4.4.2.5. 应用服务器击键

SCO 控制台应用程序支持以下应用服务器击键:

  • CURSOR_DOWN

  • CURSOR_LEFT

  • CURSOR_RIGHT

  • CURSOR_UP

  • DELETE

  • END

  • F1 到 F12

  • HOME

  • INSERT

  • KP0 到 KP9

  • KPADD

  • KPDIVIDE

  • KPDOT

  • KPMULTIPLY

  • KPSUBSTRACT

  • NUMLOCK

  • PAGEDOWN

  • PAGEUP

VT420 应用程序支持以下应用服务器击键:

  • CURSOR_DOWN

  • CURSOR_LEFT

  • CURSOR_RIGHT

  • CURSOR_UP

  • F1 到 F20

  • FIND

  • INSERT

  • KP0 到 KP9

  • KPCOMMA

  • KPDOT

  • KPENTER

  • KPMINUS

  • NEXT

  • PF1 到 PF4

  • PREV

  • REMOVE

  • SELECT

Wyse 60 应用程序支持以下应用服务器击键:

  • CLRLINE

  • CLRSCR

  • CURSOR_DOWN

  • CURSOR_LEFT

  • CURSOR_RIGHT

  • CURSOR_UP

  • DELCHAR

  • DELETE

  • DELLINE

  • F1 到 F16

  • HOME

  • INSCHAR

  • INSERT

  • INSLINE

  • KP0 到 KP9

  • KPCOMMA

  • KPDELETE

  • KPENTER

  • KPMINUS

  • NEXT

  • PREV

  • PRINT

  • REPLACE

  • SEND

  • SHIFTHOME

4.4.3. 终端仿真器属性映射

终端仿真器属性映射允许您更改字符属性(例如粗体或下划线)在 SGD 终端仿真器中的显示方式。例如,可以指定通常显示为粗体和带下划线的文本在 SGD 终端仿真器中显示为红色,但不是同时显示红色以及粗体和下划线。

SGD 提供了默认属性映射 /opt/tarantella/etc/data/attrmap.txt。其将字符属性映射到逻辑颜色 Color_15(白色)。您也可以创建您自己的属性映射。

4.4.3.1. 如何创建您自己的属性映射

  1. 以超级用户 (root) 身份创建要处理的 /opt/tarantella/etc/data/attrmap.txt 副本。

  2. 编辑新的文件,以便字符属性映射到您选择的颜色。

  3. 使用应用程序对象的 "Attribute Map"(属性映射)属性的文件名。

4.4.3.2. 编辑字符属性

SGD 属性映射允许您映射以下属性:

  • Normal(正常)

  • Bold(粗体)

  • Dim(暗淡)

  • Blinking(闪烁)

  • Underline(下划线)

  • Inverse(反显)

要映射属性组合,请使用加号 + 分隔各个属性,例如 Bold+Underline

为了在终端仿真器中显示颜色,SGD 将逻辑颜色映射到 RGB 值。例如,逻辑颜色 Color_9 映射到 RGB 值 128 0 0(红色)。

在属性映射中将属性映射到颜色时,请指定逻辑颜色名称。例如:

  • 将带下划线的粗体文本更改为红色文本:

    Bold+Underline=Color_9
  • 将反显闪烁文本更改为浅红色文本:

    Inverse+Blinking=Color_1

有关逻辑颜色到 RGB 值映射的完整列表,请参见 attrmap.txt 中的注释。

您可以通过编辑终端仿真器使用的颜色映射来更改默认的颜色映射。请参见第 4.4.4 节 “终端仿真器颜色映射”

注意

Wyse 60 终端仅显示黑色和白色。但是,您可以使用 SGD Wyse 60 终端仿真器在 Wyse 60 应用程序中显示颜色。您可以通过使用属性映射将 Wyse 60 应用程序中的字符属性映射到颜色来实现该过程。

4.4.4. 终端仿真器颜色映射

SCO 控制台 (ANSI) 和 VT420 终端支持 16 种颜色。SGD 终端仿真器使用颜色映射确定如何将这些颜色显示在应用程序会话中。

注意

Wyse 60 终端是单色的。您只能使用颜色映射切换背景色和前景色(黑色和白色)。但是,可以将字符属性(例如粗体或下划线)映射到终端仿真器支持的 16 种逻辑颜色中的任何颜色。请参见第 4.4.3 节 “终端仿真器属性映射”

颜色映射将逻辑颜色 Color_0(含)到 Color_15(含)映射到颜色和 SGD 用于表示这些颜色的 RGB 值。默认映射如下:

逻辑颜色

终端颜色

SGD 使用的 RGB 值

Color_0

黑色

0 0 0

Color_1

浅红色

255 0 0

Color_2

浅绿色

0 255 0

Color_3

黄色

255 255 0

Color_4

浅蓝色

0 0 255

Color_5

浅品红色

255 0 255

Color_6

浅青色

0 255 255

Color_7

高度白色

255 255 255

Color_8

灰色

128 128 128

Color_9

红色

128 0 0

Color_10

绿色

0 128 0

Color_11

棕色

128 128 0

Color_12

蓝色

0 0 128

Color_13

品红色

128 0 128

Color_14

青色

0 128 128

Color_15

白色

192 192 192

要更改特定应用程序的默认设置,请创建您自己的颜色映射,并在应用程序对象的 "Color Map"(颜色映射)属性中指定此映射。

提供了默认的文本格式颜色映射 /opt/tarantella/etc/data/colormap.txt

4.4.4.1. 使用颜色映射的示例

  • 要使红色变得更亮,请将 Color_9 的 RGB 设置更改为 192 0 0

  • 要将显示为浅绿色的项目更改成显示为黄色,请将 Color_2 的 RGB 设置更改为 255 255 0,即黄色的 RGB 值。

  • 一个常见的颜色更改是在黑色和白色之间切换前景色和背景色。当您进行此更改时,并不是在更改前景色或背景色,而是在更改显示黑色 (Color_0) 和白色 (Color_15) 的方式。因此,如果您的应用程序具有白色背景,而您要将其更改为黑色背景,请将 Color_15 的值更改为 0 0 0,即黑色的 RGB 值。