aboutsummaryrefslogtreecommitdiffstats
path: root/doc/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'doc/protocols')
-rw-r--r--doc/protocols326
1 files changed, 0 insertions, 326 deletions
diff --git a/doc/protocols b/doc/protocols
index 6270456..0e3936f 100644
--- a/doc/protocols
+++ b/doc/protocols
@@ -285,329 +285,3 @@ Compulsivity: required if supporting `Command: add-tray-icon`
---------------------------------------------------------------------
-Command: key-sent
- Announce a keyboard input event
-
-Required header: Keyboard
- Any string that uniquely identifies the keyboard
- Purpose: Enable multi-keyboard aware programs and give at
- least on keyboard per seat in a multi-seat environment
- Note: mds-kkbd uses `kernel` to indicate that it uses the kernel
- and thus lumps together all keyboards.
-
-Required header: Released
- `yes` if the key was released
- `no` otherwise, that is, held down or pressed
- Note: pause/break is automatically released directly after it
- has been pressed. This is feature built into keyboards
- and servers should not try to circumvent this
-
-Required header: Keycode
- An unsigned 14-bit integer identifying the key, may be remapped
-
-Optional header: Scancode
- Either an unsigned 7-bit integer or a single blank space
- separated trio of unsigned 7-bit integers, identifying the key.
- This is the scancode sent from the keyboard and optionally
- unified by the keyboard driver, however with the typed/released
- bit zeroed out. This may not be remapped.
-
-Optional header: Modifiers
- Single blank space separated list of active modifiers:
- shift) Shift (level 2)
- ctrl) Control
- alt) Alternative/Option
- altgr) Alternative Graphic (level 3)
- lvl*) * may be any 2ⁿ + 1 integer with 1 < n < 20
- super) Super
- hyper) Hyper
- ultra) Ultra
- caps) Caps (usually a lock key)
- num) Num (usually a lock key)
- scrl) Scroll (usually a lock key)
- top) Top (historical)
- front) Front (historical)
- greek) Greek (historical)
- compose) Compose (rare, it is usally a dead key)
- Any key that has been locked should be prefix with `+`,
- if the key has been locked by nullified with non-lock
- modifier it should be prefixed with a `-`.
- If no modifier is active or has been nullified, `none`
- should be used.
-
-Optional header: Key
- A textual representation of the key that has been typed or
- released, as mapped by the keyboard layout.
- esc) Escape
- f*) F* where * is any integer
- sysrq) System Request/Print Screen
- scrl) Scroll (lock)
- break) Break/Pause
- backspace) Backspace
- tab) Tab
- return) Return/Enter
- space) Blank Space
- menu) Application Menu
- ins) Insert
- home) Home
- pgup) Page Up
- del) Delete
- end) End
- pgdown) Page Down
- up) Up Arrow
- left) Left Arrow
- down) Down Arrow
- right) Right Arrow
- shift) Shift (level 2)
- begin) Begin (keypad 5 in nagivation mode)
- ctrl) Control
- alt) Alternative/Option
- altgr) Alternative Graphic (level 3)
- lvl*) * may be any 2ⁿ + 1 integer with 1 < n < 20
- super) Super
- hyper) Hyper
- ultra) Ultra
- caps) Caps (usually a lock key)
- num) Num (usually a lock key)
- scrl) Scroll (usually a lock key)
- top) Top (historical)
- front) Front (historical)
- greek) Greek (historical)
- compose) Compose (usally a dead key)
- hexcompose) Hex-Compose (usally a dead key)
- (use to create aribitrary characters)
- longhexcompose) Long Hex-Compose (usally a dead key)
- (variant of hexcompose for longer codepoints)
- modelock) Mode Lock
- letter *) * may be any UTF-8 encoded letter
- Keys that lock/unlock a modifer should be suffixed with a
- blank space and a `lock`. If the key is a dead key (even
- the compose key) should use `dead` instead. A position,
- either `left`, `right`, `keypad` or an index, followed by a
- blank space, should prefix any key that occurs on multiple
- position on the keyboard, unless it only appears on the
- keypad once and once not on the keypad. Keys without any
- meaning should be identified as `unknown`. Modifiers and
- dead keys should not affect the value.
-
-Optional header: Characters
- UTF-8 encoded string that has been written
-
-Purpose: Enable the user to use a keyboard, physical or on-screen
-Purpose: Enable programs to send keys as part of a script or
- a reply of a recorded session
-
-Compulsivity: highly-recommended, a computer is as good as useless
- without a keyboard
-
-Reference implementation: kkbd
-Reference implementation: kbd
-Reference implementation: keytrans
-
----------------------------------------------------------------------
-
-Command: enumerate-keyboards
- List available keyboards
-
-Required header: Client ID
- Your ID, provided by `ID assignment`
- in response to `Command: assign-id`
-
-Instructions: This message must be consumed by the first server
- that receives it and implements support for it,
- and then send out a `Command: keyboard-enumeration`
- populated with the keyboard it provide as named
- in the `Keyboard` header for protocols such as
- `Command: key-sent`
-
-Purpose: Make it possible for clients to list all available keyboards
- so that can be configured individually
-
-Compulsivity: optional
-
-Reference implementation: kkbd
-Reference implementation: kbd
-
----------------------------------------------------------------------
-
-Command: keyboard-enumeration
- Response to `enumerate-keyboards`
-
-Required header: To
- The ID received under `Client ID` in the
- `Command: enumerate-keyboards` message that triggered this
- message to be broadcasted
-
-Required header: In response to
- The ID received under `Message ID` in the
- `Command: enumerate-keyboards` message that triggered this
- message to be broadcasted
-
-Required header: Length
- Length of the message
-
-Message: New line separated list of available keyboards
-
-Instructions: All keyboard servers should listen for this message
- and append all keyboards it implement to the message
- once recieved
-
-Purpose: Make it possible for clients to list all available keyboards
- so that can be configured individually
-
-Compulsivity: required if you implement `Command: enumerate-keyboards`
-
-Reference implementation: kkbd
-Reference implementation: kbd
-
----------------------------------------------------------------------
-
-Command: set-keyboard-leds
- Activate and deactivate LED:s on a keyboard
-
-Required header: Active
- LED:s that should be turned on.
- If a LED is listed here but not in `Mask` that LED
- should be turned on if it is off, and turned off
- if it is on.
- The value is a single blank space separated list of LED:s:
- num) Num lock
- caps) Caps lock
- scroll) Scroll lock
- compose) Compose
- Unsupported LED:s should be silently ignored.
-
-Required header: Mask
- LED:s listed here that do not appear in `Active`
- should be turned off.
- The value of this header follows the same rules
- as for `Active`.
-
-Optional header: Keyboard
- A string that identifies the keyboard that should be
- affected. If omitted all keyboard are affected.
-
-Purpose: Enable keyboard layout servers to activate and deactive
- LED:s on the keyboard to indicate active locks
-
-Compulsivity: optional
-
-Reference implementation: kkbd
-Reference implementation: kbd
-Reference implementation: kbdtrans
-
----------------------------------------------------------------------
-
-Command: get-keyboard-leds
- List exisiting LED:s on a keyboard and their state
-
-Required header: Client ID
- Your ID, provided by `ID assignment`
- in response to `Command: assign-id`
-
-Required header: Keyboard
- A string that identifies the keyboard that should be
- affected
-
-Response: The server implementing support for
- `Command: get-keyboard-leds` for the keyboard indicated
- by `Keyboard` should send a message back to the client
- indicated by `Client ID` (using the `To` header) with
- the headers:
- Active: list of currently turned on LED:s
- Present: list of LED:s that the server believes
- to be present on the keyboards
- Both of these headers followes the rules of the
- `Active` header under `Command: set-keyboard-leds`
-
-Purpose: Enable keyboard layout servers to automatically
- set active locks when the server starts based on
- currently active LED:s
-
-Compulsivity: recommended, required if you implement support for
- `Command: set-keyboard-leds`. If you do not support
- this protocol servers and clients and stall when
- they try to get the active LED:s
-
-Reference implementation: kkbd
-Reference implementation: kbd
-Reference implementation: kbdtrans
-
----------------------------------------------------------------------
-
-Command: keycode-map
- Remap keyboard keycodes and query current mapping
-
-Required header: Action
- remap) Remap keys
- reset) Reset all mappings to identity mapping
- query) Query mapping
- Each affected server will send a message format
- like that of `Action: remap` with current mapping
- that are not identity mappings
-
-Optional header: Keyboard
- A string that identifies the keyboard that should be
- affected. If omitted all keyboard are affected.
-
-Conditionally required header: Client ID
- Required if: `Action: query`
- Your ID, provided by `ID assignment`
- in response to `Command: assign-id`
-
-Conditionally optional header: Length
- Available and optional if: `Action: remap`
- The length of the message
-
-Message: Each line contains contains two single space delimited numbers,
- the first number is the keycode as determined by the scancode,
- the second number is keycode that scancode should generate.
- For example, `1 1` resets Escape to be mapped to Escape,
- and `1 59` remaps Escape to F1, while `1 59\n59 1`, where
- `\n` is a new lone, swaps Escape and F1.
-
-Purpose: Enable the user to swap or replace keys on the keyboard
-Purpose: Enable the user manually correct an incorrectly mapped keyboard
-
-Compulsivity: optional
-
-Reference implementation: kkbd
-Reference implementation: kbd
-
----------------------------------------------------------------------
-
-Command: new-keyboard
- Announce the existance of a new keyboard
-
-Required header: Length
- The length of the message
-
-Message: List of strings that identifies the keyboards
- that have been added.
-
-Purpose: Enable servers and clients to detect new keyboards
-
-Compulsivity: recommended
-
-Reference implementation: kkbd
-Reference implementation: kbd
-
----------------------------------------------------------------------
-
-Command: old-keyboard
- Announce the removal of an old keyboard
-
-Required header: Length
- The length of the message
-
-Message: List of strings that identifies the keyboards
- that have been removed.
-
-Purpose: Enable servers and clients to detect removal of keyboards
-
-Compulsivity: recommended
-
-Reference implementation: kbd
-
----------------------------------------------------------------------
-