Skip to content

Keyboard

Iain Smith edited this page Sep 13, 2026 · 3 revisions

Keyboard

veetee maps PC keys by position to the DEC LK401 keyboard, so the keypad and editing keys sit where DEC users expect them. What each key sends depends on the host-selected modes (cursor key mode, keypad application mode, 7-bit or 8-bit controls, VT52 mode), exactly as on the terminal.

The map is a TOML file you can change with the Keyboard Map window; the tables below are the built-in map.

Function keys

PC key DEC key
F1 or Pause Hold Screen
F2 or Print Screen Print Screen
F3 Set-Up
F4 Session — moves the keyboard to the other session
F5 or Break Break
Ctrl+F5 or Ctrl+Break Answerback
F6–F12 F6–F12
Shift+F1–F10 F11–F20 (Shift+F5 = Help, Shift+F6 = Do)
Ctrl+F6–F12, Ctrl+Shift+F1–F10 User-defined keys (DEC Shift+F6–F20)

In VT100 mode F11, F12 and F13 send ESC, BS and LF, like an LK201 in VT100 mode.

On the VT500 models a host can give F1–F4 to the application or disable them (DECLFKC), and disable the copy and paste keys (DECELF).

Editing keypad

PC key DEC key
Insert Find
Home Insert Here
Page Up Remove
Delete Select
End Prev Screen
Page Down Next Screen
Arrow keys Arrow keys

Numeric keypad

PC key DEC key
Num Lock, /, *, − PF1, PF2, PF3, PF4
+ , (comma)
Shift + − (minus)
0–9, ., Enter 0–9, ., Enter

PF1 is the EDT and EVE Gold key; PF2 is EDT's Help. The keypad works the same whether Num Lock's light is on or off. If your keyboard has no numeric keypad, bind PF1–PF4 to other keys in the Keyboard Map window.

Main keypad

PC key DEC key
Backspace <X] — sends DEL, the DEC default (DECBKM)
Ctrl+Space, Ctrl+2 NUL
Ctrl+3 … Ctrl+7 ESC, FS, GS, RS, US
Ctrl+8 DEL

Characters typed in an 8-bit session use DEC Multinational or ISO Latin-1, whichever the host selected as the user-preferred supplemental set. In national replacement character (NRC) mode the keyboard follows the national layout.

veetee's own keys

PC key Function
Ctrl+Shift+C / Ctrl+Shift+V Copy / Paste
Ctrl+↑ / Ctrl+↓ Pan the view one line through page memory
Ctrl+End / Ctrl+Page Down Pan to the previous / next page
Ctrl+Shift+M Mark a checkpoint in the session recording

Ctrl, Alt and Shift with DEC keys

Modifiers that a binding does not use pass on to the DEC key. A VT510, VT520 or VT525 then sends its modified-key sequences (DECFNK, CSI n ; m ~ with m = 1 + Shift + 2×Alt + 4×Ctrl): for example Ctrl+Insert is Ctrl+Find, CSI 1;5~. Older models send the unmodified key.

The Keyboard Map window

Keyboard Map… in the window menu shows an LK401 keyboard. Click a DEC key (or one of veetee's functions) to see which PC keys produce it, then:

  • Add PC Key…, then press the key combination you want.
  • The remove button beside a PC key takes that binding away.
  • Save writes your map to ~/.config/veetee/keymap.toml (%LOCALAPPDATA%\veetee\keymap.toml on Windows); Restore Defaults goes back to the built-in map.

--keymap FILE starts with another map. A map file lists bindings:

name = "My LK401"

[[bind]]
pc = "Ctrl+Alt+2"
dec = "pf2"

[[bind]]
pc = "F12"
dec = "do"

PC keys are GDK key names with Ctrl+, Shift+ and Alt+ prefixes. DEC names include pf1pf4, kp0kp9, kp-comma, kp-minus, kp-period, kp-enter, find, insert-here, remove, select, prev-screen, next-screen, up, down, left, right, f6f20, help, do, delete, return, tab, escape, udk6udk20, and the local functions hold-screen, print-screen, set-up, session, break, answerback, copy, paste, mark-checkpoint, pan-up, pan-down, pan-prev-page and pan-next-page.

User-defined and programmed keys

Hosts load user-defined keys with DECUDK. On a DEC keyboard they are Shift+F6–F20; in veetee use Ctrl+F6–F12 and Ctrl+Shift+F1–F10.

A VT520 or VT525 host can also program keys by LK411 key position: function keys with DECPFK, main keypad keys with DECPAK (up to seven codes per key, for each modifier combination), and copy the factory definitions back with DECCKD. It can ask for the definitions (DECRQKD), the free key memory (DECRQPKFM) and a key's type (DECRQKT). A key programmed to a local function (Hold Screen, Print Screen, Set-Up, Session, Break, Answerback) runs veetee's own function.

Clone this wiki locally