]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/man/8/kbdfs
merge
[plan9front.git] / sys / man / 8 / kbdfs
index 5b6844c28d0aea714a07dbec99fa38bf6c7ad38e..7d785d2645b83b80a58778a07fafc2a0275d5430 100644 (file)
@@ -20,6 +20,7 @@ kbdfs \- keyboard and console filesystem
 .B /dev/cons
 .B /dev/consctl
 .B /dev/kbd
+.B /dev/kbdin
 .B /dev/kbin
 .B /dev/kbmap
 .fi
@@ -34,7 +35,9 @@ translates raw keyboard scancodes from
 .IR kbd (3))
 and its
 .BR kbin
-file and optionaly reads console input from
+and
+.BR kbdin
+file and optionally reads console input from
 .I consfile
 to provide initial keyboard and console input.
 .PP
@@ -42,6 +45,7 @@ It serves a one-level directory containing the files
 .BR cons,
 .BR consctl,
 .BR kbd,
+.BR kbdin,
 .BR kbin
 and
 .BR kbmap.
@@ -82,16 +86,21 @@ otherwise on
 Reading the
 .BR cons
 file returns characters typed on the console.  Normally, characters
-are buffered to enable erase and kill processing.  A control-U, 
+are buffered to enable erase and kill processing.  
+A control-U, 
 .LR ^U ,
 typed at the keyboard
-.I kills
+.I erases
 the current input line (removes all
 characters from the buffer of characters not yet read via cons), and a
 backspace
 .I erases
 the previous non-kill, non-erase character from the
-input buffer.  Killing and erasing only delete characters back to, but
+input buffer.
+The combination control-W,
+.LR ^W ,
+deletes the input last word.
+Killing and erasing only delete characters back to, but
 not including, the last newline.  Characters typed at the keyboard
 actually produce 16-bit runes (see
 .IR utf (6)),
@@ -123,7 +132,8 @@ is in
 .IR "raw mode" :
 characters are not echoed as they are typed,
 backspace,
-.L ^U
+.L ^U,
+.L ^W
 and
 .L ^D
 are not treated specially, and characters are
@@ -152,32 +162,62 @@ This is used on serial consoles.
 .SS Keyboard
 A read on the
 .BR kbd
-file returns a null terminated, variable-length,
+file returns the character
+.B k,
+.B K
+or
+.B c
+followed by a null terminated, variable-length,
 .SM UTF
-encoded string of all the keys that are currently pressed (key is
-down) on the keyboard.  This includes all keys that have a keyboard
-mapping and modifier keys.  No key is treated specially. A new event
-is generated on each state change or at keyboard repeat rate and put
-in a buffer. Each
+encoded string. The
+.B k
+message is send when a key is pressed down
+and
+.B K
+when a key is released. The following string contains all the keycodes
+of the keys that are currently pressed down in unshifted form. 
+This includes all keys that have a keyboard mapping and modifier keys.
+The string following the
+.B c
+message contains the single character that would have been returned
+on the
+.BR cons
+file instead. The
+.B c
+message will be resent at the keyboard repeat rate.
+A single
 .IR read (2)
-will return a single event or block until there are new events
-available.  The read data is always terminated with a null-byte,
-so when all keys are released (all keys are up), a single
-null-byte will be returned.  Newly pressed keys are appended to the
-string before the null-byte.  Key releases remove the
-character from the string.  Change on a modifier key like
-.B Shift
+can return multiple concatenated messages at once (delimited by the null byte)
+or block when there are no messages queued. Opening the
+.BR kbd
+file disables input processing on the
+.BR cons
+file until it is closed again.
+.PP
+.B K,
+.B k
+and
+.B c
+messages can be written to
+.BR kbdin
+and will forwarded to the reader of
+.BR cons
+or
+.BR kbd.
+Writing a
+.B r
 or
-.B Num
-will not change
-the characters already present in the string, but will
-take effect on newly pressed keys.
+.B R
+message followed by a
+.SM UTF
+encoded rune will simulate the press or
+release of that particular rune.
 .PP
 Raw scancodes can be written to the
 .BR kbin
-file for external keyboard input (used for usb keyboards).
+file for external keyboard input (used for USB keyboards).
 .SS "Keyboard map"
-Scancodes are maped to Unicode characters with a number of
+Scancodes are mapped to Unicode characters with a number of
 translation tables. These tables can be accessed with the
 .BR kbmap
 file.
@@ -216,6 +256,9 @@ to represent a control character.
 .IR utf (6),
 .IR kbd (3)
 .SH FILES
-.B /dev/lib/kbmap/*
+.B /sys/lib/kbmap/*
 .SH SOURCE
-.B /sys/src/cmd/aux/kbdfs.c
+.B /sys/src/cmd/aux/kbdfs
+.SH HISTORY
+.I Kbdfs
+first appeared in 9front (May, 2011).