#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

menu "Console Utilities"

config CONFIG_CHVT
	bool "chvt"
	default n
	help
	  This program is used to change to another terminal.
	  Example: chvt 4 (change to terminal /dev/tty4)

config CONFIG_CLEAR
	bool "clear"
	default n
	help
	  This program clears the terminal screen.

config CONFIG_DEALLOCVT
	bool "deallocvt"
	default n
	help
	  This program deallocates unused virtual consoles.

config CONFIG_DUMPKMAP
	bool "dumpkmap"
	default n
	help
	  This program dumps the kernel's keyboard translation table to
	  stdout, in binary format. You can then use loadkmap to load it.

config CONFIG_LOADFONT
	bool "loadfont"
	default n
	help
	  This program loads a console font from standard input.

config CONFIG_LOADKMAP
	bool "loadkmap"
	default n
	help
	  This program loads a keyboard translation table from
	  standard input.

config CONFIG_OPENVT
	bool "openvt"
	default n
	help
	  This program is used to start a command on an unused
	  virtual terminal.

config CONFIG_RESET
	bool "reset"
	default n
	help
	  This program is used to reset the terminal screen, if it
	  gets messed up.

config CONFIG_SETCONSOLE
	bool "setconsole"
	default n
	help
	  This program redirects the system console to another device,
	  like the current tty while logged in via telnet.

config CONFIG_SETKEYCODES
	bool "setkeycodes"
	default n
	help
	  This program loads entries into the kernel's scancode-to-keycode
	  map, allowing unusual keyboards to generate usable keycodes.

endmenu
