1 /* vi: set sw=4 ts=4: */
3 * Mini kbd_mode implementation for busybox
5 * Copyright (C) 2007 Loïc Grenié <loic.grenie@gmail.com>
6 * written using Andries Brouwer <aeb@cwi.nl>'s kbd_mode from
7 * console-utils v0.2.3, licensed under GNU GPLv2
9 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
16 int kbd_mode_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
17 int kbd_mode_main(int ATTRIBUTE_UNUSED argc, char **argv)
27 static const char KD_xxx[] ALIGN1 = "saku";
28 opt = getopt32(argv, KD_xxx);
29 fd = get_console_fd();
33 if (!opt) { /* print current setting */
34 const char *mode = "unknown";
37 ioctl(fd, KDGKBMODE, &m);
39 mode = "raw (scancode)";
40 else if (m == K_XLATE)
41 mode = "default (ASCII)";
42 else if (m == K_MEDIUMRAW)
43 mode = "mediumraw (keycode)";
44 else if (m == K_UNICODE)
45 mode = "Unicode (UTF-8)";
46 printf("The keyboard is in %s mode\n", mode);
48 opt = opt & UNICODE ? 3 : opt >> 1;
49 xioctl(fd, KDSKBMODE, &opt);
52 if (ENABLE_FEATURE_CLEAN_UP)