Copied from loci.hotkey.txt, found in the docs directory of the LociTerm client. The Last Outpost MUD and LociTerm support this GMCP module to program and add dynamic lables to the client hotkey menu.
GMCP Loci.Hotkey
Client must support: "Loci.Hotkey 2"
If client claims support, server will send hotkey definition update
messages asynchronosly, as they become available, at the server's
discretion.
Defined Values for the hotkey "name:" are-
pgup, pgdn, home, end, f1 - f20
Client to Server:
"Loci.Hotkey.Get" { }
Request for server to send/resend all of the current hotkey definitions to
the client. May be sent at any time, or not at all. Intended use is to
indicate to server that all previously sent updates may have been lost due
to a client reset, and need to be resent.
"Loci.Hotkey.Edit" { // (v2 only)
name: "<keyname>", // required
label: "<display label>" // optional
macro: "alphanumeric string to set" // optional
sends: "seq" or "macro" // optional (v2 only)
}
Message from client to server to set a server side hotkey expansion.
Expectation is that if the server recieves the vt/xterm hotkey sequence, it
will substitute in the provided macro text. May be sent at any time, when
the client wishes to inform the server of a definition or change, such as
when user edits a hotkey with the client UI.
Server to Client:
"Loci.Hotkey.Set" {
name: "<keyname>", // required
label: "<display label>" // optional
macro: "alphanumeric string to set" // optional
sends: "seq" or "macro" // optional (v2 only)
}
Message from server to client containing a hotkey definition. May be sent
at any time. name: is a required field. label: is a UI display name,
intended to be used in on-screen buttons.
The sends: <seq|macro> paramter indicates to the client whether it should
send a vt/xterm function key sequence, or the text of the macro: parameter
when a function key is hit. The macro: string should always be sent with
at least one terminating '\n' newline character, whether the macro string
ends in a \n or not. Note that if the macro: string isn't defined, the
client should send the vt/xterm function key sequence instead of sending an
empty line.
"Loci.Hotkey.Reset" {
name: "<keyname>" // optional
}
Message from server to client indicating that the hotkey definintion MUST
be reset to the client default value. if name: not present, ALL
definitions MUST be reset to defaults.