1.\" 2.\" kbdcontrol - a utility for manipulating the syscons keyboard driver section 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 13.\" @(#)kbdcontrol.1 14.\" $FreeBSD$ 15.\" 16.Dd November 16, 2006 17.Dt KBDCONTROL 1 18.Os 19.Sh NAME 20.Nm kbdcontrol 21.Nd keyboard control and configuration utility 22.Sh SYNOPSIS 23.Nm 24.Op Fl dFKix 25.Op Fl A Ar name 26.Op Fl a Ar name 27.Oo 28.Fl b 29.Ar duration . Ns Ar pitch | Ar belltype 30.Oc 31.Oo 32.Fl r 33.Ar delay . Ns Ar repeat | Ar speed 34.Oc 35.Op Fl l Ar keymap_file 36.Op Fl f Ar # Ar string 37.Op Fl k Ar keyboard_device 38.Op Fl L Ar keymap_file 39.Sh DESCRIPTION 40The 41.Nm 42command is used to set various keyboard related options for the 43.Xr syscons 4 44console driver and the keyboard drivers, 45such as key map, keyboard repeat and delay rates, bell 46characteristics etc. 47.Pp 48Keyboard options may be automatically configured at system boot time by 49setting variables in 50.Pa /etc/rc.conf . 51See 52.Sx Boot Time Configuration 53below. 54.Pp 55The following command line options are supported: 56.Bl -tag -width indent 57.It Fl A Ar name 58Detach the keyboard, specified by the keyboard device name, from the keyboard 59multiplexer. 60When using this option, the standard input of the 61.Nm 62process should be redirected from the keyboard multiplexer keyboard device 63(if the keyboard multiplexer is not the active keyboard) or 64.Pa /dev/console 65(if the keyboard multiplexer is the active keyboard and 66you are not working on the system console). 67.It Fl a Ar name 68Attach the keyboard, specified by the keyboard device name, to the keyboard 69multiplexer. 70When using this option, the standard input of the 71.Nm 72process should be redirected from the keyboard multiplexer keyboard device 73(if the keyboard multiplexer is not the active keyboard) or 74.Pa /dev/console 75(if the keyboard multiplexer is the active keyboard and 76you are not working on the system console). 77.It Fl b Xo 78.Ar duration . Ns Ar pitch | Ar belltype 79.Xc 80Set the bell duration in milliseconds and pitch in hertz. 81If a 82.Ar belltype 83argument is specified, it may be one of 84.Cm normal 85which sets sound parameters back to normal values, 86.Cm off 87which disables the bell entirely, or 88.Cm visual 89which sets the bell to visual mode, i.e., flashes the screen instead. 90If 91.Ar belltype 92is preceded by the word 93.Cm quiet. , 94the bell will not be rung when the ringing process is in the background vty. 95The 96.Cm visual 97bell, when chosen, applies to all vtys; other bell types 98can be set individually for each vty. 99.It Fl r Xo 100.Ar delay . Ns Ar repeat | Ar speed 101.Xc 102Set keyboard 103.Ar delay 104(250, 500, 750, 1000) 105and 106.Ar repeat 107(34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 108136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 109472, 504) 110rates, or if a 111.Ar speed 112argument is specified, it may be one of 113.Cm slow 114(1000.504), 115.Cm fast 116(250.34) 117or 118.Cm normal 119(500.126). 120.It Fl l Ar keymap_file 121Install keyboard map file from 122.Ar keymap_file . 123You may load the keyboard map file from a menu-driven command, 124.Xr kbdmap 1 . 125.It Fl d 126Dump the current keyboard map onto stdout. 127The output may be redirected to a file and can be loaded 128back to the kernel later by the 129.Fl l 130option above. 131.It Fl f Ar # Ar string 132Set function key number 133.Ar # 134to send 135.Ar string . 136Refer to the man page for the keyboard driver 137(e.g.\& 138.Xr atkbd 4 ) 139for available function keys and their numbers. 140.It Fl F 141Set function keys back to the standard definitions. 142.It Fl x 143Use hexadecimal numbers in keyboard map dump. 144.It Fl i 145Print brief information about the keyboard. 146.It Fl K 147Disconnect the keyboard from the console. 148You need to use the 149.Fl k 150option below to associate a keyboard with the console again. 151.It Fl k Ar keyboard_device 152Use the specified device as the console keyboard. 153When using this option, the standard input of the 154.Nm 155process should be redirected from 156.Pa /dev/console 157if you are not working on the system console 158(see the 159.Sx EXAMPLES 160section). 161.It Fl L Ar keymap_file 162Load keyboard map file from 163.Ar keymap_file 164and write the 165.Ft "struct keymap" 166compiled from it to stdout. 167This option is primarily intended for programmers and is probably 168of little use under normal circumstances. 169.El 170.Sh ENVIRONMENT 171The environment variable 172.Ev KEYMAP_PATH 173can hold an alternative path to the keyboard map files. 174.Sh KEYBOARD CONFIGURATION 175.Ss Boot Time Configuration 176You may set variables in 177.Pa /etc/rc.conf 178or 179.Pa /etc/rc.conf.local 180in order to configure the keyboard at boot time. 181The following is the list of relevant variables. 182.Pp 183.Bl -tag -width foo_bar_var -compact 184.It Ar keymap 185Specifies a keyboard map file for the 186.Fl l 187option. 188.It Ar keyrate 189Sets the keyboard repeat rate for the 190.Fl r 191option. 192.It Ar keychange 193Lists function key strings for the 194.Fl f 195option. 196.El 197.Pp 198See 199.Xr rc.conf 5 200for details. 201.Ss Driver Configuration 202The keyboard device driver may let you change default configuration 203options, such as the default keyboard map, so that you do not need to set up 204the options at boot time. 205See keyboard driver manuals 206(e.g.\& 207.Xr atkbd 4 , 208.Xr ukbd 4 ) 209for details. 210.Sh FILES 211.Bl -tag -width /usr/share/syscons/keymaps/foo_bar -compact 212.It Pa /usr/share/syscons/keymaps/* 213keyboard map files 214.El 215.Sh EXAMPLES 216The following command will load the keyboard map file 217.Pa /usr/share/syscons/keymaps/ru.koi8-r.kbd . 218.Pp 219.Dl kbdcontrol -l /usr/share/syscons/keymaps/ru.koi8-r.kbd 220.Pp 221So long as the keyboard map file resides in 222.Pa /usr/share/syscons/keymaps , 223you may abbreviate the file name as 224.Pa ru.koi8-r . 225.Pp 226.Dl kbdcontrol -l ru.koi8-r 227.Pp 228The following command will make the function key 10 emit "telnet myhost". 229.Pp 230.Dl kbdcontrol -f 10 \&"telnet myhost\&" 231.Pp 232In order to get the visual effect for bell, but prevent the screen 233from flushing if the bell is to ring in the background screen, 234run the following command. 235.Pp 236.Dl kbdcontrol -b quiet.visual 237.Pp 238To change the default console keyboard to the another keyboard, 239for example the first USB keyboard (see 240.Xr ukbd 4 ) , 241use the following commands. 242.Pp 243.Dl kbdcontrol -k /dev/ukbd0 < /dev/console 244.Pp 245To switch back to the default keyboard, use this command. 246.Pp 247.Dl kbdcontrol -k /dev/kbd0 248.Pp 249To allow using both the second USB keyboard and the first AT keyboard 250at the same time on console via the 251.Xr kbdmux 4 252driver, use the following sequence of commands. 253.Bd -literal -offset indent 254kbdcontrol -K < /dev/console 255kbdcontrol -a atkbd0 < /dev/kbdmux0 256kbdcontrol -a ukbd1 < /dev/kbdmux0 257kbdcontrol -k /dev/kbdmux0 < /dev/console 258.Ed 259.Sh SEE ALSO 260.Xr kbdmap 1 , 261.Xr vidcontrol 1 , 262.Xr atkbd 4 , 263.Xr kbdmux 4 , 264.Xr keyboard 4 , 265.Xr screen 4 , 266.Xr syscons 4 , 267.Xr ukbd 4 , 268.Xr kbdmap 5 , 269.Xr rc.conf 5 270.Sh AUTHORS 271.An S\(/oren Schmidt Aq sos@FreeBSD.org 272.Sh BUGS 273Report when found. 274