THE KERMIT 95 2.0 GUI

As of: Kermit 95 2.1.3
1 January 2003
[ Kermit 95 Home ] [ Kermit Home ]


CONTENTS

  1. INTRODUCTION
  2. MAKING CONNECTIONS
  3. STARTING AND STOPPING K95G
  4. THE DIALER
  5. NEW COMMANDS AND VARIABLES
  6. THE STATUS BAR
  7. THE MENU BAR
  8. THE TOOL BAR
  9. SCROLL BARS
  10. DIALOGS
  11. WINDOW SIZE
  12. TERMINAL EMULATION FEATURES
  13. FONTS AND CHARACTER SETS
  14. (NOT) BUGS


1. INTRODUCTION

Kermit 95 2.0 was the first K95 release that runs in a graphical user interface (GUI) window. The GUI version of Kermit 95 is called K95G. A console-window version remains available; it is called K95, as before. This document describes the GUI-specific features of K95G. K95G has a new icon: the Columbia University crown. Please do not attribute any religious or political significance to this symbol, beyond the fact that it is the emblem of Columbia University, representing the crown of George II, King of England, who founded the University in 1754 (more about the crown HERE).

The user interface of the initial K95G release is the same as always: text-mode commands and prompts plus a separate full-GUI connection manager (Dialer). But K95G also has a new, more "native-Windows" look, font selections, a closer connection to the Dialer, and new GUI-based controls and dialogs for its most essential functions. Conversion to a GUI window solves numerous problems that affect all Windows Console applications, especially in Windows 95/98/ME: the disappearing cursor, Caps Lock confusion, the "incredible shrinking window", extraneous or out-of-order characters on screen, loss of focus when started from a GUI application, various Copy/Paste problems, inability to use Input Method Editors, ghost images on the screen, and on and on and on. Here's a capsule comparison of the GUI and Console versions:

Feature GUI
Win9x/ME/NT/2000/XP
Console
Win9x/ME
Console
NT/2000/XP
Kermit Menu Yes No No
Kermit Toolbar Yes No No
Scrollbars Yes No No
Font Selection Yes No Limited
Multiple Scripts Yes No Limited
Save Font Preferences Yes No No
Stretch Screen Dimensions Yes No No
Stretch Font Size Yes No No
Maximize/Restore Yes No No
True Fullscreen No Yes Yes
True Underlining Yes No No
Double High/Wide Characters  Yes No No
[x] Box Works Yes No Yes

The form and substance of subsequent K95G releases will be determined by customer response to version 2.0: should we concentrate on adding features such as graphics terminal emulation, 3270 and 5250 terminal emulation, etc, or should we chase after new standards such as IPv6 and IPsec, or should we add more GUI dialogs and Windows conveniences? (Of course these aren't the only choices.)

Here's the new K95G Terminal screen:

Quick tour:

The Title Bar
Shows the new crown icon. Shows how window title can be set (with new --title: command-line option or the SET TITLE command). Minimize, Maximize/Restore, and Exit controls on the right all work.

The Menu Bar
File, Edit, Actions, and Help menus are provided.

The Tool Bar
The left button (Dial icon) brings up the Dialer. The button next to it switches between the Terminal (→) and Command (←) screens. Combo boxes are provided to choose (and show) the terminal emulation, font, font size, and host character set.

The Terminal Screen
Commonly called the "blue screen" since that's the default background color for non-ANSI terminal emulations. Of course you can choose any colors you like, such as white as in this example, which shows an SSH session to Linux, emulating the Linux console, running the text-mode Lynx web browser to access the Kermit website.

The Vertical Scroll Bar
Use this in both the Terminal and Command windows to access previous screens, up to two million lines worth. The scroll bar also shows whether the current screen is scrolled back, and how far.

The Status Bar
Indicates K95G's current active screen (Command or Terminal), the communications protocol (in this case Telnet with Kerberos 4 and TLS), the cursor coordinates, and the screen dimensions. The lower right corner lets you stretch or shrink the screen.

These are discussed below, along with various other screen elements not shown: popup dialogs and help screens, etc.


2. MAKING CONNECTIONS

The graphical method for making connections remains the K95 Dialer, but now it is available directly from the K95G Menu bar and Tool bar. As always, the Dialer it lets you define, set up, configure, and launch connections, and manages a persistent database of connections and their settings for you, so once you set up a connection the way you want it, all its characteristics are remembered and you can re-launch it any time in the future with just a couple mouse clicks.

Remember: Toolbar buttons act on a single click. If you double-click the Dialer's CONNECT button, you get two sessions.

When you start the Dialer from K95G and then launch a connection from the Dialer, the connection reuses the same instance of K95G if there is no active connection. If you launch second or subsequent connection from the Dialer, it starts a new copy of K95G (or K95, depending on the connection). If you exit from the Dialer, the K95[G] sessions are not affected. If you exit from K95G, the Dialer is not affected. Only one copy of the Dialer can be active at one time; all copies of K95G share the same copy of the Dialer.

If you bring the Dialer to the foreground by using K95G's Dial toolbar button, the next session started from the Dialer reuses the current K95G instance if there is no active session. If you bring the dialer to the foreground using any other method, the next connection launched from the Dialer starts a new copy of K95G.

As always, the Dialer can not be used for changing settings of an active connection. Any changes made to a connection's settings take effect the next time you launch the connection. To change settings of the active connection, you must use K95G's Menu or Tool bar or its Command Screen.


3. STARTING AND STOPPING K95G

Kermit 95 2.0 has several new command-line options, some of them GUI-specific, which are used by the Dialer when you specify the associated values in the Dialer's new GUI page or Terminal page:

--xpos:n (K95G only)
X-coordinate of window position, expressed as the number of pixels to the right of the upper left screen corner

--ypos:n (K95G only)
Y-coordinate of window position, expressed as the number of pixels below the upper left screen corner.

--fontname:s (or --facename:s) (K95G only)
Font/typeface name: string with _ (underscore) replacing blank.

--fontsize:n (K95G only)
Font point size, number, such as 14. Half sizes can be given; e.g. 14.5.

--height:n
Screen height (number of rows).

--width:n
Screen width (number of columns).

--termtype:name
Terminal emulation name, such as vt220.

--title:string
Window title; string may contain spaces, which case you should enclose the the entire option in doublequotes: "--title:This Is the Title".

The following options were added in K95 2.1.3:

--nomenubar
The K95G window is to include no menu bar.

--notoolbar
The K95G window is to include no tool bar.

--nostatusbar
The K95G window is to include no status bar.

--nobars
Equivalant to --nomenubar --notoolbar --nostatusbar.

--nopush
Disallows invocation of external applications or commands from within Kermit 95 (GUI or Console). This also disables K95G's Dialer button.

--noescape
Prevents the user from manually returning to the Command screen from the Terminal screen: disables the CONNECT-mode escape sequence as well as the \Kexit keyboard verb.

--noscroll
Prevents the user from scrolling back to previous screens: disables the scrollback-related keyboard verbs as well as the GUI scrollbars (but does not make the scrollbars disappear).

--lockdown
Combines --noscroll, --noescape, --nopush, --nobars and to create a "captive" session.

--maximize
Starts K95G maximized (full screen). Equivalent to SET GUI WINDOW RUN-MODE MAXIMIZE.

--minimize
Starts K95G minimized (i.e. appearing only on the Windows task bar). Equivalent to SET GUI WINDOW RUN-MODE MINIMIZE.

--scalefont
Screen size changes are to result in font scaling (this is the default).

--changedim
Screen size changes are to leave the font size alone and change the number screen rows and columns.

You can also use these yourself when starting K95G from a command prompt, batch file, VB program, etc. and you can use them in desktop shortcuts (right-click on the shortcut, choose properties, and fill in the desired command-line options).

K95G can be safely stopped by clicking the [x] box on the Title bar in any Windows version, even Windows 95, 98, or ME; this is not safe in the Console version in Win9x/ME because Windows does not notify the application that it is being closed, so locked resources can be left behind. This is why the [x] box is grayed out in Console version on Win9x/ME.

When you exit from K95G, several tidbits are stored in the Windows Registry:

Next time you start K95G, in the absence of other instructions (e.g. from a Dialer entry or desktop shortcut), it uses the most recently stored screen position and font information.


4. THE DIALER

The new Dialer icon is a rotary telephone dial. Although we don't use rotary phones much any more, the telephone dial is a universally recognizable symbol for making connections. The Dialer has a new GUI settings page, shown below. Each connection can have its own separate GUI settings.

The items on the page are:

[ ] Use GUI Kermit 95
Check to use K95G for this connection (default); uncheck to use the Console version of K95. If you uncheck this box, the rest of the page is grayed out, since these settings do not apply to the Console version.

Facename
The font to be used on this connection.

Font Size
The font size, in points.

Resize Mode:
How K95 should react when its screen is resized with the mouse: Change dimensions (i.e. the number of character rows and columns on the screen) or Scale font (keep the rows and columns constant and scale the font to fit the new screen size as closely as possible).

Run:
The run mode for K95's window: Normal, Maximized, or Minimized.

Startup Position: [ ] Default
Check this box to let Windows decide where the K95 screen should be located on the desktop when it starts. Uncheck this box to specify a startup location.

X-pos: [ ] Y-pos [ ]
(Only if Startup Default is unchecked) The horizontal (X) and vertical (Y) positions for the upper-left corner of the K95G window at startup, measured in pixels from the upper-left screen corner. The actual values depend on your monitor and Windows display settings; some trial and error is required to achieve a particular placement, and the coordinates are not necessarily compatible from one PC to another.

[ ] Menu Bar
[ ] Tool Bar
[ ] Status Bar
These are normally checked. To remove the Menu bar from the K95 window, uncheck Menu Bar; ditto for the Tool and Status bars.

The Color Table
Terminal/Host connections allow the host to control the colors on your terminal screen using "ANSI color" escape sequences. These allow the specification of 16 colors: black, blue, green, cyan, red, magenta, etc. Each of these is defined by a particular mixture of Red, Green, and Blue (RGB) hues whose intensities are specified by a number, 0-255. You can alter the definitions for each "ANSI" color in this table by changing the numbers. The column to the right is reserved; in a future release it will show the actual color of the result.


5. NEW COMMANDS AND VARIABLES

ASK /GUI variable prompt
ASKQ /GUI variable prompt
A version of the ASK and ASKQ commands that uses a GUI popup in which the user can enter text. It succeeds if the user clicks OK (regardless of whether the text box was filled in) and fails if Cancel was clicked. At present there is no way to specify a default answer.

DIALER
If the K95 Dialer is loaded, brings it to the foreground. If it isn't, loads and starts it.

GETOK /GUI prompt
A version of the GETOK command (asks a Yes/No question) that uses a GUI popup. Succeeds if user clicked OK or Yes; fails if user clicked No or Cancel. The default answer is always No (a future release might include a way to specify a default answer).

KCD symbolic-directory-name
(Not strictly GUI related, but new to version 2.0) Changes Kermit 95's working directory to the given symbolically named directory: EXEDIR, COMMON, APPDATA, etc (explained in the README document).

SET GUI RGBCOLOR   ansi-color-name   red-value   green-value   blue-value
Changes the definition of the given ANSI color. The RGB values are numbers between 0 and 255. The ANSI color names are black, darkgray, lightgreen, magenta, blue, green, lightgray, red, brown, lightblue, lightmagenta, white, cyan, lightcyan, lightred, and yellow.

SET GUI FONT name [ size ]
Chooses a monospace font to be used in K95G's Terminal and Command windows. The size can be an integer (whole number) such as 12, or a fractional number, such as 12.4, which is rounded to the nearest half point. The font name and size can also be specified on the Dialer GUI page, on the K95G Toolbar, and in K95G command-line options.

SET GUI DIALOGS { ON, OFF }
Tells whether popups should use GUI dialogs (ON) or text-mode popups (OFF). GUI DIALOGS are ON by default. OFF might be more comfortable for touch typists and old Kermit hands (OFF allows typeahead).

SET GUI MENUBAR OFF
Disables items on K95s Menu bar which allow the current session configuration to be altered (2.1). The menu bar does not disappear but disabled actions are grayed out and cannot be selected. To make the menu bar totally disappear, use the --nomenubar command-line option (2.1.3).

SET GUI TOOLBAR OFF
Disables the Terminal Type, Font, and Character-set selection items on K95s Tool bar (2.1). The tool bar does not disappear or stop responding to mouse actions, but Terminal Type, Font, or Character-set selections in the tool bar have no effect. To make the tool bar totally disappear, use the --notoolbar command-line option (2.1.3).

SET GUI WINDOW POSITION x y
Moves the K95 window to the given coordinates (expressed in pixels from the top left corner). If you put this command in your K95CUSTOM.INI file, the specified position becomes the default K95G startup position. You can specify the startup position for a particular K95G connection on the Dialer GUI page for that connection. You can also specify the startup coordinates for a particular K95G instance on the command line.

SET GUI WINDOW RESIZE-MODE { CHANGE-DIMENSIONS, SCALE-FONT, NONE }
Tells K95 how to respond to resize events: CHANGE-DIMENSIONS changes the number of rows and columns on the screen to fit the new size, keeping the font size constant; SCALE-FONT keeps the rows and columns constant, changing the font size to make them fit as well as possible into the new window size. NONE prevents manual window resizing by the user and prevents the window from covering the entire screen when maximized. SCALE-FONT is the default. You can specify the resizing behavior for a particular K95G connection on the Dialer GUI page for that connection. If you put a SET GUI WINDOW RESIZE-MODE command in your K95CUSTOM.INI file, this sets the default resizing behavior for K95G for when you make connections directly, rather than from the Dialer.

SET GUI WINDOW RUN-MODE { MAXIMIZE, MINIMIZE, RESTORE }
Allows K95 to do to itself what you would do by clicking the respective title-bar buttons. You can also put this command in your K95CUSTOM.INI file to have K95 start in the desired format, and specify the desired run mode for a particular connection in the Dialer on the GUI page.

SET TERMINAL HEIGHT rows
SET TERMINAL WIDTH columns
In K95G, these commands affect both the Terminal Screen and the Command Screen, and they always affect the number of screen rows and columns, regardless of the GUI WINDOW RESIZE-MODE setting.

SET TITLE text
(Not new; also works in Console version) Sets the Window title for the Title bar, Task bar, Task list, etc. You can also specify the window title on the command line. If you don't specify a window title, the name of the connection, host, or communication device is used.

NOSCROLL
Disables scrollback.

SHOW GUI
Displays SET GUI values, and shows the actual color values.

New GUI-related variables include:

\v(gui_fontname)
Name of current font.

\v(gui_fontsize)
Size of current font in points, perhaps with a fractional part, e.g. 12.5.

\v(gui_runmode)
Current window status: Minized, Maximized, or Restored.

\v(gui_xpos)
Current x-coordinate of terminal-screen cursor.

\v(gui_xres)
Screen resolution in the X (horizontal) direction, number of pixels across the screen.

\v(gui_ypos)
Current x-coordinate of terminal-screen cursor.

\v(gui_yres)
Screen resolution in the Y (vertical) direction, number of pixels from screen top to bottom.


6. THE STATUS BAR

A new status bar at the bottom of the window is divided into six sections; from left to right:

  1. Screen indicator (Terminal Screen or Command Screen).
  2. Current Locus for file management commands (remote or local, explained in Section 7.3).
  3. Network protocol (such as Telnet, SSH, Rlogin), along with an indication of authentication and encryption methods used, if any.
  4. Cursor coordinates in 1-based column,row (X,Y) notation.
  5. Terminal screen dimensions, rows × columns.
  6. Pull corner for changing screen dimension or font size.

Locus is explained HERE. Items 4-6 are explained in Section 11.


7. THE MENU BAR

The K95G menu is clean and simple: File, Edit, Actions, Help. There are no keyboard shortcuts for K95G's menu items, since every key and key combination already has application-specific uses.

7.1. The File Menu

Connections
Invokes the Kermit 95 Dialer so you can make a connection, or use it in any other desired way.

Hangup
Closes the current connection.

Exit
Exits from K95G.

7.2. The Edit Menu

Paste
Copies the text (if any) from the clipboard into the current window (Command or Terminal).

Mark Mode
Lets you use your keyboard to mark text for copying to the clipboard or transmission to the host. The particular action is controlled by the submenu: Start, Cancel, Copy to Clipboard, Copy to Host. More about mark mode HERE.

7.3. The Actions Menu

The following actions take place when you choose them in the Actions menu:
Clear Screen
Clears (blanks) the current screen

Clear Scrollback
Clears (erases) the scrollback buffer for the current screen

Reset Terminal
Resets the terminal emulator (e.g. in case "garbage" from the host has put it into an unwanted state).

Send...
Use the submenu to select what to send to the host: Break, Long Break, NUL (ASCII 0), Telnet Are You There, Telnet Interrupt Process.

Compose (character)
Lets you compose a West or East European accented Roman or special character.

Unicode Compose (character)
Lets you enter any Unicode Base Multilingual Plane character by its 4-digit hexademical code value.

The following are "toggles", which you turn on and off in the menu. An option is checked when it's on, unchecked when it's off; click an option to toggle it between off and on. Those with an ellipsis ( . . . ) lead to a small submenu. The menu is arranged alphabetically.

Autodownload
Turns automatic recognition of Kermit and Zmodem file-transfer packets off and on. When on, which is the default, all Kermit-protocol file transfers can be initiated by the host-resident Kermit program, such as C-Kermit on Unix, and all Zmodem downloads (but not uploads) can be initiated by the host-resident Zmodem program. When Autodownload is set to "Ask", a file dialog pops up when the download begins, to allow you to choose the name and location for the incoming file. When Autodownload is set to "On", incoming files are accepted automatically under the name they were sent with and stored in K95's download directory if one has been specified, or else in its current directory.

Automatic Locus Switching...
Explained below.

Bytesize...
Switches terminal bytesize between 7 and 8. These days 8 is the norm. 7 is normally used only on direct or directly dialed serial connections where the host is using even parity.

Capture
Turns session logging on and off. If a session log has not been opened, the first time you turn capture on, a dialog pops up to allow you to choose the name and location of the session log file.

Copy to printer
Turns printing of incoming material on and off.

Debug
Turns terminal-screen debugging on and off. When debugging is on, control characters and escape sequences are shown, rather than acted upon.

Exit Warnings
Enables/Disables warning dialogs if you try to exit K95G when a connection is active. Exit warnings are enabled by default. Equivalent to SET EXIT WARNING.

GUI Dialogs
Enables/Disables GUI dialogs; equivalent to SET GUI DIALOGS. ON by default; when OFF, text-mode popups or prompts are used, which (unlike GUI dialogs) accept typeahead.

Keyclick
Turns software keyclick on and off.

Locus:Local
Changes Locus for file management commands, explained below. Checked means Local, unchecked means Remote.

PCTERM keyboard
Terns PCTERM keyboard mode on and off, in which Kermit sends up/down make/break codes for each key, rather than the associated character codes or Kverbs.

Resize mode...
Switches the screen-stretch action between changing the font size and changing the number of rows and columns (but note that holding Shift while resizing always changes screen dimensions and holding Ctrl always changes font size).

URL highlighting
Turns automatic URL highlighting off and on. It's on by default.

Locus refers to the target of file management commands when Kermit has a connection to a server on another computer. Historically, commands such as CD, DIRECTORY, DELETE, RENAME, and MKDIR have always acted locally in all Kermit programs. To ask a remote server to do these things required a REMOTE or "R" prefix: e.g. REMOTE CD or RCD.

When the FTP client was added to Kermit in 2002, this behavior seemed unnatural to users of text-mode FTP clients. Thus the notion of Locus was introduced: Local means that unprefixed file management commands are executed on the local computer; Remote means they are sent to the remote FTP or Kermit server for execution. By default, Kermit switches Locus automatically every time you make or break a connection, depending on what kind of connection it is. When you make an FTP connection, Kermit switches its Locus to Remote. When you make any other kind of connection, or when you break any connection, its Locus switches back to Local.

In K95G, automatic Locus switching is accompanied by a popup dialog, informing you of the switch and asking if it is OK. This is to make sure you know where commands such as DELETE will be executed! If you would rather not be bothered by the popups, use the Actions menu to change the Automatic Locus Switching to On or Off, rather than Ask, or put the appropriate SET LOCUS command in your K95CUSTOM.INI file. Type HELP LOCUS at the K-95> prompt for details.

The "Locus: Local" item in the Actions menu actually changes the current Locus, toggling it between Local and Remote (it is checked when local, unchecked when remote).

The Console version of K95 2.0 behaves the same way, but without the GUI popups.

7.4. The Help Menu

The Help menu gives access to help text and documents:

Context
Gives popup help on the current context, primarily key assignments.

Kermit 95 Manual
Access the Kermit 95 manual on your local disk through your web browser.

Via the Web
Access the Kermit Project website (Internet connection required).

About...
Displays the Kermit version number, date, and copyright.


8. THE TOOL BAR

Like the Menu bar, K95G's Toolbar is minimal yet highly functional. It consists of two buttons and four combo boxes:

Button 1
If you look closely, it's a telephone dial. Invokes the graphical Dialer (same as File → Connections), used mainly for opening connections, but also for configuring and managing them. If the Dialer is not loaded, this button loads and starts it. If the Dialer is loaded, this button brings it to the foreground. Only one copy of the Dialer can be active at a time.

Button 2
Switches back and forth between the Terminal and Command screens, same as Alt-x.

The Terminal Type Combo Box
Displays the current terminal emulation and lets you change it. This, like the remaining boxes on the Toolbar, is a combo box. If you click on the little triangle, a list pops up that you can scroll through (if necessary) using its scrollbar. Click on any entry to select it. You can also use arrow keys, Page Up, Page Down, Home, End, etc, to go down and up.

The Font Combo Box
Displays the current font (facename) and lets you change it. Fonts are discussed in Section 12.

The Font Size Combo Box
Displays the current font size and lets you change it to any value between 1 and 47.5, in increments of one half point (a point is about 1/72 inch, and about 1/3 mm). Not all font sizes are valid for a given set of dimensions, facename, and height/width. When you select a facename or height, Windows performs a best fit and then the chosen size is automatically updated with the actual height that windows selected. Changing the font or font size repaints the current screen in the new font or size, and affects all subsequent new or scrolled-back screens.

The Character Set Combo Box
Displays remote terminal character set selected by you, and lets you change it. More about fonts and character sets in Section 12. Changing the character set does not affect current or previous screens, only material that arrives after the change.

The Toolbar gives you a capsule definition of what you see on the screen and a mini control panel for making adjustments:


9. SCROLL BARS

K95G lets you scroll back and forth through both the Terminal and Command screens using the scroll bar in the normal Windows way: push the slider in the desired direction; click on the the little arrowheads at top or bottom of the scrollbar; click above or below the slider; or use your mouse wheel if you have one. This is not possible in the Console version of K95.

Of course the keyboard-driven methods work as before. For most terminal emulations, the keys are Page Up, Ctrl-PageUp, Page Down, Ctrl-PageDown, Home, and End.

Scrollback can be disabled by including the --noscroll command-line option when Kermit is started or with the NOSCROLL command (2.1.3).


10. DIALOGS

Aside from what's on the menu and toolbar, the only GUI dialogs are help screens and program-generated popups that require action or information from the user such as username or password prompts during the secure authentication process; choosing Yes/No in some particular situation; for example, when you try to exit with a connection still active:

Popup context-sensitive help dialogs in response to Alt-h have been converted to GUI popups. The help-screen buttons might be a bit counterintuitive. Presently the OK button is equivalent to the Alt-H key: it cycles through through the screens (one or more) of the current help topic. The Cancel button is equivalent to the Space key, which makes the Console-mode help screen disappear.

When a K95G GUI dialog contains multiple buttons (such OK and Cancel), the default response button is highlighted; pressing the Space bar or Enter key "pushes" it. To press a different button from the keyboard, you can use the Tab or Right-Arrow key to move the highlighting, and then Space or Enter to push the button, or you can type the first letter of the word on the button (if it is underlined). You can also use Esc or Alt-F4 to make any Help screen or sequence go away.

You can generate popups yourself in scripts, using the new /GUI switch on the ASK, ASKQ, and GETOK commands, for example:

  ASK /GUI name " What is your name? "
  if success echo " Your name is \m(name)."


11. WINDOW SIZE

K95G's window size is a function of three factors:

The font and size can be set in the Toolbar as described in Section 8, or with the SET GUI FONT command described in Section 5, or from the K95 command line as described in Section 3.

The screen dimensions can be set with the SET TERMINAL HEIGHT and SET TERMINAL WIDTH commands, as before, and now also by stretching the K95G window with the mouse when Resize Mode in the Actions menu is set to Changes Dimensions (but note that holding Shift while resizing always changes screen dimensions and holding Ctrl always changes font size):

It is often desirable to achieve the tallest possible Terminal window that is also easily legible. To do this, first pick the font and size that are most comfortable for you, then position the title bar at the top of your screen, and then stretch the bottom window border to the bottom of the screen. Alternatively, maximize the window and then drag a vertical edge to achieve the desired width.

You can also maximize and restore the K95G window using the the middle button at the right of the Title bar. Maximize (clicking the button when it contains a single box) expands the K95G window to fill the whole screen, adjusting the screen dimensions or the font size (according to your Resize Mode setting in the Action menu) to achieve the best possible fit. Restore (clicking the button when it shows two boxes) puts the K95G back as it was before you maximized it. Note that it is not always possible to achieve a perfect fit because the size units (rows and columns or font points) can be too granular.

The terminal dimensions (rows × columns) are shown in the rightmost position of the status bar. If the terminal window includes a Kermit 95 status line, this line is not included (since it is not part of the terminal).


12. TERMINAL EMULATION FEATURES


GUI windows allow several effects not possible in Console windows, and K95G takes advantage of them:

Colors are set in the GUI the same way they are set in the console version:

These are both described in the Kermit 95 manual. In addition, as noted in Section 4, in K95G only, you can change the value of each color. A GUI color dialog in K95G itself is a wish-list item for future releases.


13. FONTS AND CHARACTER SETS

Perhaps the greatest functional advantage of K95G over the Console version is its ability to use any Windows font, and therefore to display text in many languages and writing systems simultaneously on the same screen, even in Windows 9x and ME. This is a rather complex topic, but we'll try to summarize it briefly here.

You can select the font to be used by K95G in the Font and Font Size combo boxes on the K95G Toolbar, or with the --fontname and --fontsize command-line options, or with the SET GUI FONT command. You should experiment with different fonts to find the one that includes all the characters you need, is most readable for you at the desired size, and the least impact on system performance (some fonts can be up to 20MB in size).

When K95G starts on your PC for the first time, it looks to see what fonts are available and picks what it believes is the best one. You can try other ones if you wish. When you exit from K95G, the font and size are remembered for next time.

Monospace Fonts

Kermit 95 is a terminal emulator, and as such it expects to have a monospace font; that is, one in which each character has the same width, just like real terminals (and like most typewriters before them). Thus its initial font selection is the best populated monospace font it can find on your PC. Examples of monospace fonts include Andale Mono, Andale Mono WT J, Courier, Courier New, Everson Mono Terminal, Fixedsys, Lucida Console, Monotype.com, System, and Terminal. This is not an exhaustive list. Some of these are Unicode fonts, some are ASCII only, some correspond to Microsoft or PC code pages. Some come with Windows, some are freely downloadable from Microsoft or other Web sites; some must be purchased.

Courier New, a Unicode font standard with recent Windows releases, includes Roman, Greek, Cyrillic, Hebrew, Arabic, and a pretty good selection of math, technical, and box- and line-drawing characters. If your PC doesn't have Courier New installed, you can download it from the Microsoft website.

If Courier New is not installed, another common choice is Lucida Console, which supports Roman, Greek, and Cyrillic, plus a limited repertoire of math/technical and line/box-drawing characters.

Third-party commercial fonts are available with much broader coverage. An example is Agfa Monotype's Andale Mono WT J (pronounced as in Spanish: Ándale), which supports practically all there is to support, including Armenian, Georgian, Chinese, Japanese, Korean, Thai, and the Indic scripts: very close to every single character in the Kermit UTF-8 Sampler, plus a wider variety of symbols, including those needed for APL programming. NOTE: Andale Mono WT J is currently not advertised on the Agfa/Monotype website; send inquiries to: [email protected] and indicate whether you are interested in an OEM or end-user license.

An excellent compromise is a new font developed especially for Kermit 95 by Everson Typography: Everson Mono Terminal (EMT), which supports most of the non-Han characters in the Base Multilingual Plane of Unicode, including Latin, Cyrillic, Greek, Arabic, Hebrew, Coptic, Armenian, Georgian, Runes, Ogham, Canadian Syllabics, Cherokee, Tibetan, Katakana, Hiragana, Math, Symbols, Line and Box Drawing, Dingbats, and APL (not supported, besides Han, are Indic, Hangul, Ethiopic, Syriac, Thai, Lao, Myanmar, and Braille). This is not a free font; it comes with Kermit 95 2.0 but may not be further redistributed. CLICK HERE for a sample.

Proportional Fonts

Kermit 95 lets you choose any font installed on your PC, even proportionally-spaced fonts such as Times New Roman, in which (for example) the letter "i" is narrower than the letter "m". However, K95G is not designed to use proportional fonts so if you pick one, spacing won't be correct in most cases.

Font Resources

Character Sets

The font used by K95G has a particular encoding, either Unicode (many writing systems) or else one of the many PC or Microsoft code pages (one language, region, or writing system each). The host to which K95G is connected is most likely using a different character encoding, such as ISO 8859-1 Latin Alphabet 1 (or one of the other Latin Alphabets); some proprietary host character set like HP Roman8 or Data General Multinational; some national standard set like JIS X 0201; perhaps even Unicode in its UTF-8 format (among many other possibilities). Kermit 95's job is to convert between the two encodings. It already knows its own font and encoding; your job is to inform Kermit 95 of the encoding used on the host. You can do this in the Character Set combo box on the K95G Toolbar, with the SET TERMINAL CHARACTER-SET command, or (when finer-grained control is needed) with the SET TERMINAL REMOTE-CHARACTER-SET command. If host text contains characters that are not also in your current font, K95G displays an empty box or a question mark; in that case, you should try (or obtain) another, more appropriate font.

Note that the character-set combo box does not reflect host-initiated character-set switching since, in certain applications, this could change on a per-character basis, e.g. with ISO 2022 line/box-drawing applications. It shows the latest user-selected character set, either by the combo box or by the SET TERMINAL CHARACTER-SET or SET TERMINAL REMOTE-CHARACTER-SET command, or when implied by a terminal emulation selection (such as ANSI, which expects the host character set to be CP437). You can see the current detailed character set assignments with the SHOW CHARACTER-SETS command.

Unicode

Not so long ago, terminals and terminal emulators – and the host applications that they access – used only single-byte 7-bit or 8-bit character sets such as ASCII, ISO 646, or ISO 8859. More recently, there is a movement to make Unicode available in the terminal-to-host setting, in which the Kermit Project is an active participant. The encoding used "on the wire" is called UTF-8 (Unicode Transformation Format 8), which is compatible with ASCII; that is, all ASCII text is automatically also UTF-8 text. More and more host-based applications understand UTF-8, including the Linux Console, xFree86 xterm, EMACS 21.1, Python, Tcl/Tk, etc. (More about UTF-8 in Linux and Unix in general HERE).

It is always best to use a Unicode monospace font such as Everson Mono Terminal, Andale Mono (or Andale Mono WT J), Courier New, or Lucida Console, because it is most likely to contain all the characters that are in the host character set, no matter what the host character set is.

When using UTF8 as your terminal character-set, you should be aware of some new wrinkles. First of all, there is no ISO 2022 character-set switching because (a) UTF8 is incompatible with ISO 2022 (except insofar as ISO 2022 can be used to switch into and out of UTF8), and (b) UTF8 doesn't need to switch character sets, since by definition, it already contains all the characters that are in any set you would switch to. However, this also means that host-based software that uses ISO 2022 to put up forms, math, and so on, doesn't work when your terminal character-set is UTF8. In other words, for anything beyond ordinary plain-text display, UTF8-aware host applications are required.

To illustrate, you can use UTF8 safely to TYPE (cat) files, read email, and so on, but you can't use ANSI X3.64 / ISO 2022 forms-based software with UTF8 as your terminal-character-set. It's also problematic in text editors like EMACS (at least prior to UTF8-aware versions) or VI, because they don't know (for example) that three bytes make one character -- they think it's three characters -- so screen positioning and formatting don't work as you might expect, nor do word or line wrap, character deletion, or other character operations. Entering UTF8 characters (anything beyond ASCII) into applications might or might not work, depending on the application, the major impediment being that UTF-8 uses C1 control codes (0x80-0x9F) in its representations for graphic characters.

Of course host-based forms-filling applications can be written using UTF-8 rather than ISO 2022, but you probably won't find any, except maybe in new or experimental versions of Linux and perhaps in Plan 9.

Switching Fonts

If you are displaying text a language or script that is not covered by your font, you will see lots question marks or empty boxes on your terminal screen, which means the font does not contain a character that needs to be displayed. If you change to a more appropriate font, the screen is automatically repainted and the missing characters show up if they are in the font. Conversely, if you change to a more restrictive font, some characters might change into empty boxes or question marks.

The same considerations hold for line- and box-drawing characters, math and technical characters, etc. Some fonts have them, some don't. ANSI terminal emulation (used with BBS's, SCO operating systems, etc), with its "PC graphics" use of single and double lines, borders, "shadows", etc, works with fonts like Andale Mono, Courier New, Lucida Console, and Everson Mono Terminal, but not (for example) with Courier or Terminal.

Switching Character Sets

To say that a particular host uses a particular character set is an oversimplification. Host computers, in general, are totally ignorant of character sets. They simply store and send bytes blindly. The interpretation is up to the display device, such as a terminal, terminal emulator, or printer. If you set K95G's TERMINAL CHARACTER-SET to LATIN1, and you type text in Spanish, Italian, or German, everything looks right to you. But if somebody else accesses the same files on the same host with some other TERMINAL CHARACTER-SET, the "special" (accented) letters will be wrong. Data does not identify its own character set – it's always up to the display device or application to use the same character set that was used by the creator of the data.

A good case in point is text-based e-mail or netnews, using a client that is ignorant of character sets. When you are using a terminal emulator to read e-mail or netnews on the host, you are very likely to encounter messages with different encodings: Latin-1, Latin/Cyrillic, Japanese EUC, UTF-8. If you're interested in viewing these messages correctly, you'll need to have a Unicode font (so you don't have to be constantly changing fonts), but you will still have to change K95G's character set for each message, which, presumably, is indicated in the message headers, e.g.:

  Content-Type: text/plain; charset="iso-8859-1"

This is a bit inconvenient, especially since MIME (more precisely, IANA) character set names do not necessarily correspond to Kermit names, and because you'll need to redisplay the message after changing to the appropriate character set. But it's still a great leap forward from the old days, when you didn't have a prayer of reading a message in the "wrong" character set, let alone in an entirely different script! To ease the pain somewhat, here's a table showing the correspondence of the Kermit and MIME names (Kermit names predate MIME names):

IANA Kermit Description
iso-8859-1 latin1 ISO 8859-1 Latin Alphabet 1 (West European)
iso-8859-2 latin2 ISO 8859-2 Latin Alphabet 2 (East European)
iso-8859-5 cyrillic-iso ISO 8859-5 Latin/Cyrillic Alphabet
iso-8859-6 arabic-iso ISO 8859-6 Latin/Arabic Alphabet
iso-8859-7 greek-iso ISO 8859-7 Latin/Greek Alphabet
iso-8859-8 hebrew-iso ISO 8859-8 Latin/Hebrew Alphabet
iso-8859-15 latin9 ISO 8859-15 Latin Alphabet 9 (West European + Euro)
utf-8 utf8 Unicode UTF-8

This is just a sampling, but you get the idea. You can see the list of K95G's available terminal character-set names in the character-set combo box on the Toolbar, or by typing "set terminal char ?" at the K-95> prompt.

Entering Non-ASCII Characters

When your font and character-set are chosen appropriately, you have four ways of typing "special" (accented or non-Roman) characters:

  1. If the characters are on your national keyboard, just type them.

  2. Choose the appropriate keyboard driver in Windows and use whatever input method is available. Kermit 95 automatically converts the characters you type to the host character set.

  3. For Latin-1 (West European) and Latin-2 (East European Roman alphabet) languages, use K95G's "Compose Key" (Alt-c, also found in the Actions menu).

  4. For any language at all, use K95G's Unicode "compose key" (Alt-n, also in the Actions menu).

Limitations

Some of these limitations might be lifted in future releases.


14. (NOT) BUGS

Most of these are not bugs, but are listed here in case you think they are.

Also see: ftp://kermit.columbia.edu/kermit/k95/newbugs.txt

[ Top ] [ Contents ] [ K95 Home ] [ Kermit Home ]


Kermit 95 GUI / The Kermit Project / Columbia University / 1 January 2003