---
name: "keyboard_init"
section: "3"
platform: "linux"
package: "libsvga1-dev"
version: "1:1.4.3-33"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/keyboard_init"
---

# keyboard\_init(3)

initialize the keyboard to raw mode

## NAME

keyboard\_init, keyboard\_init\_return\_fd - initialize the keyboard to raw mode

## SYNOPSIS

**#include \<vgakeyboard.h\>**

**int keyboard\_init(void);**\
 **int keyboard\_init\_return\_fd(void);**

## DESCRIPTION

These routines initialize the keyboard to raw mode. No ASCII codes are produced, instead svgalib keeps track of each single keypress or depress. The **return\_fd** version returns the file descriptor of the console device to allow you to do further tricks with it (though it is unclear which). The other version just returns 0 if successful. Both return -1 on error.

[**keyboard\_close**(3)](/keyboard_close/3.md) returns to normal operation.

When in raw keyboard mode you can no longer use **[vga\_getch(3)](/vga_getch/3.md)** or  **[vga\_getkey(3)](/vga_getkey/3.md)** but you must use [**keyboard\_getstate**(3)](/keyboard_getstate/3.md) or [**keyboard\_keypressed**(3)](/keyboard_keypressed/3.md).

Depending on the setting of [**keyboard\_translatekeys**(3)](/keyboard_translatekeys/3.md) even in raw mode a **\<Ctrl\>-C** will cause a **SIGINT.** In any case svgalib will check for **\<Alt\>-F1** - **\<Alt\>-F10** and perform console switches accordingly.

## SEE ALSO

[**svgalib**(7)](/svgalib/7.md), [**vgagl**(7)](/vgagl/7.md), [**libvga.config**(5)](/libvga.config/5.md), **keytest**(6), **eventtest**(6), [**keyboard\_seteventhandler**(3)](/keyboard_seteventhandler/3.md), [**keyboard\_close**(3)](/keyboard_close/3.md), [**keyboard\_update**(3)](/keyboard_update/3.md), [**keyboard\_waitforupdate**(3)](/keyboard_waitforupdate/3.md), [**keyboard\_setdefaulteventhandler**(3)](/keyboard_setdefaulteventhandler/3.md), [**keyboard\_getstate**(3)](/keyboard_getstate/3.md), [**keyboard\_clearstate**(3)](/keyboard_clearstate/3.md), [**keyboard\_translatekeys**(3)](/keyboard_translatekeys/3.md), [**keyboard\_keypressed**(3)](/keyboard_keypressed/3.md), [**vga\_waitevent**(3)](/vga_waitevent/3.md)

## AUTHOR

This manual page was edited by Michael Weller \<eowmob@exp-math.uni-essen.de\>. The exact source of the referenced function as well as of the original documentation is unknown.

It is very likely that both are at least to some extent are due to Harm Hanemaayer \<H.Hanemaayer@inter.nl.net\>.

Occasionally this might be wrong. I hereby asked to be excused by the original author and will happily accept any additions or corrections to this first version of the svgalib manual.
