As of: Kermit 95 2.1
24 October 2002
[ Kermit 95 Home ]
[ Kermit Home ]
- INTRODUCTION
- MAKING CONNECTIONS
- STARTING AND STOPPING K95G
- THE DIALER
- NEW COMMANDS AND VARIABLES
- THE STATUS BAR
- THE MENU BAR
- THE TOOL BAR
- SCROLL BARS
- DIALOGS
- WINDOW SIZE
- TERMINAL EMULATION FEATURES
- FONTS AND CHARACTER SETS
- (NOT) BUGS
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.
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.
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".
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:
- Screen position.
- Font.
- Font size.
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.
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: [ ] 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.
- Xpos: [ ] Ypos [ ]
- (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.
- 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.
- 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 RGB-COLORS
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.
- 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.
- 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 }
- Tells K95 how to respond to resize events: CHANGE-DIMENSIONS (the default)
changes the number of rows and columns on the screen to fit the new size,
keeping the font size constant; SCALE-FONT attempts to keep the rows and
columns constant, changing the font size to make them fit as well as possible
into the new window size. If you put this command in your
K95CUSTOM.INI file, this sets the default resizing behavior for K95G.
You can specify the resizing behavior for a particular K95G connection on the
Dialer GUI page for that connection.
- 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.
- 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.
- 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.
A new status bar at the bottom of the window is divided into six sections;
from left to right:
- Screen indicator (Terminal Screen or Command Screen).
- Current Locus for file management commands
(remote or local, explained in Section 7.3).
- Network protocol (such as Telnet, SSH, Rlogin), along with an indication
of authentication and encryption methods used, if any.
- Cursor coordinates in 1-based column,row (X,Y) notation.
- Terminal screen dimensions, rows × columns.
- Pull corner for changing screen dimension or font size.
Locus is explained
HERE.
Items 4-6 are explained in Section 11.
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.
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 dimenstions 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.
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 it, a little list pops up, which 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:
- If the Terminal screen format or layout is wrong, the host and K95G
might have a terminal-type mismatch.
- The font selection determines which characters can be viewed, and the font
size determines how big and/or readable the screen can be. If you see lots of
hollow boxes or question marks on the screen, you might need to switch to a
more complete or appropriate font.
- The character set tells K95G how to interpret the codes sent by the host
(i.e. how to map them to glyphs in the current font) and which codes to send
to the host. If you see garbage where "special" characters (such as accented
or non-Roman letters, Kanji, math symbols, etc) should be, the character set
probably needs changing.
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.
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)."
K95G's window size is a function of three factors:
- The font
- The font size
- The screen rows and columns
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
dimenstions and holding Ctrl always changes font size):
- To change the width (the number of columns), position the mouse
pointer over the left or right K95G screen border, hold down the left mouse
button, and drag the border in the desired direction. As you drag, a little
popup shows the changing dimensions as
columns × rows (the first number changes). Let
go of the mouse when you have the desired number of columns.
- To change the height (the number of rows), drag the bottom screen
edge and watch the row count change in the little popup.
- To change the height and width at the same time, drag the lower
right corner of the K95G window in the desired (diagonal) direction; watch
both numbers change in the popup.
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).
GUI windows allow several effects not possible in Console windows, and
K95G takes advantage of them:
- True underlining. When the emulated terminal type supports underlining
and the host sends underlined text, K95G shows underlined text. The Console
version of K95 uses special colors to simulate underlining. K95G also uses
underlining as part of its default presentation method for URL hotspots
(you can change the presentation method with the SET TERMINAL URL-HIGHLIGHT
command). In ANSI X3.64 based emulations underlining
is selected with <CSI>4m.
- Italics (slanted writing). In ANSI X3.64 based emulations italics
are selected with <CSI>3m.
- Double-width characters. These are used by the VT100-series terminals
for emphasis. In the Console version, these are simulated by wide spacing
of regular characters.
- Double-height-and-width characters, used by VT100-series terminals
for extra emphasis, simulated in K95 by a double row of spaced characters.
- Text in many languages and writing systems (next section).
Colors are set in the GUI the same way they are set in the console
version:
- In the Dialer, on the Terminal Settings page; or:
- Via the SET TERMINAL COLOR command.
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 the
next release.
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:
oem.sales@agfamonotype.com 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
Until recently, 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 character deletion or other character operations. Entering
UTF8 characters (anything beyond ASCII) into applications might or might not
work, depending on the application.
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, or maybe 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:
- If the characters are on your national keyboard, just type them.
- 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.
- 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).
- For any language at all, use K95G's Unicode "compose key" (Alt-n, also
in the Actions menu).
Limitations
- K95G does not support Japanese, Chinese, Korean, Indic, Thai, Armenian,
Georgian, Khmer, Ethiopic, or many other scripts directly as terminal
character sets, in the sense that it can convert between different encodings
for them, but you can still have UTF-8 terminal sessions in these scripts if
your font includes them. Although Kermit knows how to convert several
Japanese character sets in file transfer, it does not handle them in terminal
emulation since they require a duospace font, and as far as we know, none is
available for Windows.
- Combining characters are not handled in UTF-8 sessions (in the screen
shot, this is evident in the Hindi text).
- K95G does not handle bidirectionality, e.g. in Arabic or Hebrew terminal
emulation; that is the responsibility of the host application (you can see
this in the screen shot too; the Unix "cat" command does not handle Hebrew
and Arabic text, thus it comes out backwards in this example, whereas a
Hebrew-or-Arabic aware application would send the characters to the terminal
in display order).
- K95G's terminal emulator works just like the terminal it is emulating
as far as printing is concerned; it does not recode or reformat the host
bytes in any way, thus non-ASCII text can be printed only if the printer
supports the host character set (or, beginning in K95 2.1, if you tell
Kermit the printer's character with SET PRINTER
/CHARACTER-SET:name).
Some of these limitations might be lifted in future releases.
Most of these are not bugs, but are listed here in case you think they are.
- As noted elsewhere, there can be some dexterity issues with the Dial
button and the Dialer; e.g. double-clicking rather than single-clicking can
produce surprising (but proper) results such as multiple K95G windows.
Clicking on the Dialer's main (white) screen to bring it to foreground changes
the highlighted entry. Double-clicking on the Dialer's main screen to
bring it to the foreground actually opens a session to whetever entry you
happened to click on. And so on.
- When you click the Dial button to invoke the Dialer when the Dialer is not
already loaded, a Console screen appears momentarily, due to the API used to
start the Dialer. If you have configured your console sessions to be
fullscreen, then your entire screen goes black (or other color you have
configured) for a second.
- Some confusion can ensue if you launch the Dialer from K95G, launch
sessions from the Dialer, close the Dialer, open another Dialer, and try to
control (e.g. Hangup) sessions created by the earlier Dialer -- it won't work,
but should not do any harm either. A particular instance of the Dialer only
knows about the sessions it launched.
- As also noted (and explained) elsewhere, clicking OK on
a popup Help screen does not make the help screen go away; for this, use the
Cancel button or the Esc key. Also, some of the text in the popup help screens
is oriented towards the Console version; e.g. it gives the wrong instructions
for how to make the popup go away in the GUI version.
- If you disable screen updates while moving windows (e.g. in Windows XP
Desktop → Properties → Appearrance → Show window contents
while dragging), then in K95G when Actions → Resize Mode →
Changes Dimensions is selected the popup that shows the changing
dimensions is not updated, and with Actions → Resize Mode →
Scales Font, you can't watch the font change size.
- If the Windows font size is too big and/or the K95G window is too narrow,
the Toolbar can be truncated. This is true of almost any Windows application.
- During file transfer initiated by automatic packet recognition in the
Terminal window (autodownload or autoupload), the Status bar says Terminal
screen rather than Command screen. That's because this type of file transfer
occurs in the Terminal screen's context.
- The telnet.exe and rlogin.exe stubs are Console
applications and therefore can load only the Console version of K95.
- This one might be a bug after all: if you launch
a K95G connection from the Dialer, and the Dialer entry changes the terminal
dimensions, and then if you move the K95G window (and only the first time you
move it), the Terminal screen is cleared (but not lost; the cleared material
is still available in the scrollback buffer).
Also see:
ftp://kermit.columbia.edu/kermit/k95/newbugs.txt
[ Top ]
[ Contents ]
[ K95 Home ]
[ Kermit Home ]
Kermit 95 GUI / The Kermit Project / Columbia University /
24 October 2002