next up previous contents index
Next: Pointing Device Up: Graphical Interface, Commands and Previous: Menu Selection and Accelerators   Contents   Index


Keyboard Input

The main window must have the keyboard focus in order for Xic to receive keyboard input. Under some window managers, including under Windows, the frame of the main window can be clicked on to give that window the focus, and the focus will remain with that window regardless of the location of the pointer. In other cases, the pointer must be in the main window in order to give the main window the focus.

If a command is active that is prompting for input, the keystrokes will appear on the prompt line, the key press display will be replaced with buttons, and the prompt line background will appear in a lighter color. See 3.1.1 for a description of the key bindings that are in force while in editing mode.

If not in editing mode, the characters will be added to the buffer displayed in the keys area. After each character is added to the buffer, the buffer is compared with all menu command names, and if the buffer uniquely matches the first characters of a menu button name, that button will be activated. Only a few characters can be saved in the buffer, and after the buffer is full, keystrokes will be ignored. The buffer can be cleared with Ctrl-u (hold the Ctrl key and press u). The buffer is also cleared after each command match, although the display will show the full name of the command. The Backspace key will delete the last character entered. There are other accelerators for most menu commands.

The `!' character will switch the prompt line to editing mode to solicit one of the text-mode commands. The `?' character will switch the prompt line to editing mode to obtain a help keyword or directive. There are many other keys with special significance to Xic, summarized in the table below. These keys should be memorized by the user, as there is no alternative way to invoke their function.

Character Result
! Enter text-mode command
? Enter help keyword, URL, or path to image or HTML file
Esc Exit current command, or deselect selections
Tab Undo operation
Shift-Tab Redo last undone operation
Delete Delete selected objects
Forward Slash Swap current transform with saved (Register 0) transform value.
Arrow Keys Pan
Shift-Arrow Keys Fine pan
Ctrl-Arrow Keys Cycle rotation and mirror transformations
Numeric + Zoom in, expand by 2
Shift-Numeric + Zoom in by 10 percent
Numeric - Zoom out, shrink by 2
Shift-Numeric - Zoom out by 10 percent
Home Center full view cell
Page Down Show next DRC error in Show Errors command
Page Up Show previous DRC error in Show Errors command
Ctrl-a Select associated labels
Ctrl-c Interrupt
Ctrl-e Enter coordinate
Ctrl-g Change grid
Ctrl-k Delete-to-end when editing
Ctrl-n Save view
Ctrl-p Deselect associated labels
Ctrl-r Redraw window
Ctrl-u Clear input buffer
Ctrl-v Print program version
Ctrl-x Expand cells
Ctrl-z Iconfiy

Just as the `!' character switches the prompt line to editing mode to accept a command (see 19, the `?' character will switch to editing mode, to accept a ``help directive''.

A ``help directive'' can be one of the following:

Character Result
!, b, B Giving exactly one of these characters will print a listing of the `!' commands that are available in the program.
v, V Giving exactly one of these characters will print a listing of the variable names that have significance within the program. Variables are listed whether or not the variable is actually set.
s, S Giving exactly one of these characters will print a list of variables that are currently set, the same as the !set command without arguments.
f, F Giving exactly one of these characters will print a list of all of the internal script interface functions available within the program.

Each listing will provide the listed items as colored links. Clicking on the links will pop up help about the item.

The Xic program is modular, and the XicII and Xiv virtual programs are effectively Xic with only a subset of modules. The listings provide definitive summaries of the functions and variables actually available in the feature set, in case this is not clear from the documentation.

The Esc (Escape) key terminates any command and clears the key press buffer. Many commands can also be terminated by pressing the command button a second time, or by selecting a new command. After pressing Esc, the mode listed in the status area should be ``MAIN''.

If pressed in idle mode, all selected objects will be deselected.

The Tab key performs an Undo command, which will undo the last operation, and has the same effect as pressing the Undo button in the Modify Menu. Pressing the Shift key along with the Tab key will instead redo the last undone operation, which is the same as pressing the Redo button in the Modify Menu.

Pressing the Delete key will delete any objects currently selected. Objects in a drawing can be selected with button 1 operations (see 3.6.1). This has the same effect as the Delete button in the Modify Menu. If the Rulers button in the View Menu is active, the Delete key will delete rulers and not other objects.

Outside of any command, pressing the forward slash `/' key will swap the current transform with the saved transform in Register 0, if any. The saved transform is the one in force for the last move or copy operation. The current transform is also saved when terminating a Move, Copy, or Place command.

Without the Ctrl or Shift keys pressed, the arrow keys will pan the display in the drawing window which contains the pointer by one-half screen in the direction of the arrow. If Shift (but not Ctrl)is held while pressing the arrow keys, the display will instead pan by ten percent. Panning can also be performed with the middle mouse button (button 2), and with the mouse wheel.

Holding Ctrl (but not Shift) while pressing the left and right arrow keys will cycle the current rotation setting, otherwise set with the xform command in the side menu. This affects moved and copied objects and new instances.

Holding Ctrl (but not Shift) while pressing the up arrow key will toggle the current Reflect Y state of the Current Transform.

Holding Ctrl (but not Shift) while pressing the down arrow key will toggle the current Reflect X state of the Current Transform.

Holding both Shift and Ctrl while pressing the left or right arrow keys will cycle through the previous views in the window which has keyboard focus. This is similar to the prev and next menu commands in the View command of the View Menu. The last five views of a cell are saved.

Holding both Shift and Ctrl while pressing the up or down arrow keys will increment or decrement the subcell expansion depth, as if giving a `+ ' or `- ' to the Expand pop-up, affecting the drawing window that has the keyboard focus.

The arrow keys may have special functions in individual commands, which override the behavior above. This is noted in the descriptions of the commands.

The + and - keys in the numeric keypad area will zoom the display in or out by a factor of two, respectively, in the drawing window where the pointer was located at the time of the key press. The action is similar to the Zoom command in the View Menu, and the button 3 operations. On some systems, these keys must be defined using the mapping facility provided by the Key Map button in the Attributes Menu.

If the Shift key is held while pressing the numeric keypad + /- keys, the zoomin/zoomout factor is reduced to 10%.

Pressing the Home key will center and fully display the current cell, in the window where the pointer was located at the time of the key press. This can also be done with the View command. On some systems, this key must be mapped with the Key Map command in the Attributes Menu in order for this functionality to be available.

The Page Up and Page Down keys are used with the Show Errors command in the DRC Menu. Page Down will show the first and subsequent errors. Page Up will show the previous error(s). Pressing Ctrl-f will have a similar effect to Page Down, and either Ctrl-b or Ctrl-p will simulate a Page Up press. On some systems, the Page Up and Page Down keys must be mapped using the Key Map command in the Attributes Menu.

The command line interface through the prompt area provides an interface to operating system commands, as well as to a number of internal commands which are often rather specialized and not associated with a menu button. Each of these commands starts with an exclamation point (`!'), and may be entered when no other command is active, or inside of many commands. These key presses are not recorded in the ``keys'' area below the side menu. If the command entered matches one of the internal commands, that command is executed. Otherwise, an operating system shell and associated window is produced to execute the command, with the exclamation mark stripped. If the `!' is followed immediately by Enter, an interactive subshell window is brought up. See Chapter 19 for a listing of the `!' commands.

The keyboard function keys, usually labeled F1 - F12, can be mapped by the user to provide an alternate means of pressing buttons in the menus. The mappings are added to the technology file with a text editor, following the syntax described in A. These mappings are completely up to the user to define, and no default mapping is installed (though the supplied technology file contains a mapping).

There are several control characters (characters entered while holding the Ctrl key) which perform operations in Xic. These are hard coded, and are in addition to any accelerators listed in the drop-down menus from the main toolbar. These are also in addition to accelerators from pop-up windows that have accelerators in their menus. These control keys supersede a menu accelerator using the same key.

Ctrl-a
In electrical mode, outside of any command, pressing Ctrl-a will cause the associated labels of any selected device or wire to also become selected. If labels are selected, then pressing Ctrl-a will cause their associated device or wire to also become selected. The associated labels can be deselected by pressing Ctrl-p. This is useful for determining which labels are associated with a given device or wire, and vice-versa.

When entering text to the prompt area, Ctrl-a will move the cursor to the beginning of the line.

Ctrl-c
This key sends an interrupt signal to Xic. When an interrupt is received, and Xic is performing a lengthly operation, the user is generally given the option of aborting the operation. This occurs within the DRC and Extraction functions, and geometrical commands such as !join and !layer, as well as file reading and writing. If an interrupt is received while drawing to the screen, the drawing immediately terminates, without user confirmation. Script execution is also terminated immediately.

Under Microsoft Windows, pressing the Pause/Break key also sends an interrupt signal if Xic has the keyboard focus.

When the ``wait'' cursor is active when the mouse pointer is in a drawing window, Xic is ``busy''. When busy, Xic locks out all key press events except for Ctrl-c, and most mouse button events. If a locked-out event is received, a pop-up will appear that informs the user that Xic is busy and to use Ctrl-c to abort the operation. This pop-up will disappear after three seconds (trying to destroy it with the mouse won't work).

When Xic is busy and Ctrl-c is pressed, the operation may be paused, and the user is asked (on the prompt line) whether to abort or continue. While waiting for input, most buttons are desensitized. Those that are not are the Help Menu, View/Allocation, and Attributes/Main Window/Freeze. Thus, these features are available during the pause.

All other events are dispatched normally while busy, so that visual updates should happen fairly quickly. Unlike early releases, there is no attempt to save unhandled events and handle them later.

Ctrl-e
Pressing Ctrl-e prompts the user for a coordinate pair, which is then used in a point operation, just as if the user had clicked with button 1 at that location. When entering coordinates using Ctrl-e, the coordinate is not moved to the nearest snap point as it would have been if entered with the mouse. Thus, off-grid points can be entered, and the user must bear this in mind.

When editing a string on the prompt line, Ctrl-e will move the cursor to the end of the string.

Ctrl-g
Pressing Ctrl-g brings up the Grid Setup panel (see 13.11.12). This can be used to alter the grid displayed in the drawing window that had the keyboard focus. This is effectively an accelerator for the Set Grid button in the Main Window sub-menu of the Attributes Menu, or the Set Grid button in the Attributes menu of sub-windows (see 12.6).

Ctrl-k
When entering text to the prompt area, trl-K will delete-to-end. The character over the cursor and all characters to the right will be deleted.

Ctrl-n
The view in a window can be saved at any time by pressing Ctrl-n. The view is assigned a letter, which allows it to be recalled with the View command. Up to five views can be saved per window, and these are assigned letters A-E in order. The view can also be restored by pressing Ctrl-Shift-a through Ctrl-Shift-e.

Ctrl-p
In electrical mode, outside of any command, pressing Ctrl-a will cause the associated labels of any selected device to also become selected. The associated labels can be deselected by pressing Ctrl-p. This is sometimes useful for determining which labels are associated with a given device.

Pressing Ctrl-p is equivalent to pressing the Page Up key when the DRC Show Errors command is active.

Ctrl-r
Pressing Ctrl-r will redraw the window which contained the pointer when Ctrl-r was pressed.

Ctrl-u
When entering text to the prompt area, pressing Ctrl-u will delete all characters from the input buffer.

Ctrl-v
Pressing Ctrl-v will bring up a window containing the Xic version number and copyright information.

Ctrl-x
Pressing Ctrl-x will bring up a the Expansion Control panel, the same as the Expand command in the View Menu.

Ctrl-z
Pressing Ctrl-z while the pointer is in a drawing window will iconify Xic. Ctrl-z in the controlling terminal window retains the usual job control function.

Finally, the Shift and Ctrl keys are often used in conjunction with the pointer buttons to initiate new operations or modify current operations. The sections describing the commands will provide examples.


next up previous contents index
Next: Pointing Device Up: Graphical Interface, Commands and Previous: Menu Selection and Accelerators   Contents   Index
Stephen R. Whiteley 2024-09-29