console-tools: added kbd_mode patch to change keyboard repeat rate
authorMarcin Juszkiewicz <hrw@openembedded.org>
Sun, 20 Nov 2005 17:51:15 +0000 (17:51 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Sun, 20 Nov 2005 17:51:15 +0000 (17:51 +0000)
- patch provided by Matthias Goebl <oe@m.goebl.net>
- close #478

packages/console-tools/console-tools-0.3.2/kbdrate.patch [new file with mode: 0644]
packages/console-tools/console-tools_0.3.2.bb

diff --git a/packages/console-tools/console-tools-0.3.2/kbdrate.patch b/packages/console-tools/console-tools-0.3.2/kbdrate.patch
new file mode 100644 (file)
index 0000000..47d7ea5
--- /dev/null
@@ -0,0 +1,73 @@
+Patch from Matthias Goebl <oe@m.goebl.net>
+Added via OE bugtracker: bug #478
+
+--- console-tools-0.3.2/kbdtools/kbd_mode.c.orig
++++ console-tools-0.3.2/kbdtools/kbd_mode.c
+@@ -29,11 +29,16 @@
+   OPT("-u --unicode  ", _("UTF-8 mode (UNICODE)"));
+   OPT("-s --scancode ", _("scancode mode (RAW)"));
+   OPT("   --mode={8bit,keycode,unicode,scancode} ", _("set mode"));
++  OPT("-r --rate=RATE ", _("set repeat rate (default: 33)"));
++  OPT("-d --delay=DELAY ", _("set repeat delay (default: 250)"));
+   OPT("-h --help     ", HELPDESC);
+   OPT("-V --version  ", VERSIONDESC);
+ }
++int rate=-1;
++int delay=-1;
++
+ static int parse_cmdline (int argc, char *argv[])
+ {
+     int mode = -1;
+@@ -46,11 +51,13 @@
+       { "mode"     , required_argument, NULL, 'm' },
+       { "scancode" , no_argument, NULL, 's' },
+       { "unicode"  , no_argument, NULL, 'u' },
++      { "rate"     , required_argument, NULL, 'r' },
++      { "delay"    , required_argument, NULL, 'd' },
+       { NULL, 0, NULL, 0 }
+     };
+     int c;
+-    while ( (c = getopt_long (argc, argv, "Vhaksu", long_opts, NULL)) != EOF) 
++    while ( (c = getopt_long (argc, argv, "Vhaksur:d:", long_opts, NULL)) != EOF) 
+       switch (c) {
+       case 'h':
+       usage ();
+@@ -58,6 +65,14 @@
+       case 'V':
+       version ();
+       exit(0);
++      case 'r':
++      rate = atoi(optarg);
++      mode = -2;
++      break;
++      case 'd':
++      delay = atoi(optarg);
++      mode = -2;
++      break;
+       case 'a':
+       mode = K_XLATE;
+       break;
+@@ -129,6 +144,20 @@
+       exit(0);
+     }
+   
++  if ( rate != -1 || delay != -1 )
++    {
++    struct kbd_repeat kbd_rep;
++    kbd_rep.delay = delay;
++    kbd_rep.period = rate;
++    if (ioctl(fd, KDKBDREP, &kbd_rep))
++      {
++      fprintf(stderr, progname);
++      perror(_(": error setting keyboard repeat mode\n"));
++      exit(1);
++      }
++    if(mode==-2) exit(0);
++    }
++  
+   if (ioctl(fd, KDSKBMODE, mode))
+     {
+       fprintf(stderr, progname);
index 2a94a4f..f745582 100644 (file)
@@ -1,12 +1,13 @@
 SECTION = "base"
 LICENSE = "GPL"
 DESCRIPTION = "Allows you to set-up and manipulate the Linux console."
-PR = "r1"
+PR = "r2"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/lct/console-tools-${PV}.tar.gz \
            file://codepage.patch;patch=1 \
            file://configure.patch;patch=1 \
            file://compile.patch;patch=1 \
+           file://kbdrate.patch;patch=1 \
            file://config/*.m4"
 
 export SUBDIRS = "fontfiletools vttools kbdtools screenfonttools contrib \
@@ -43,4 +44,4 @@ pkg_prerm_${PN} () {
        update-alternatives --remove deallocvt deallocvt.${PN}
        update-alternatives --remove openvt openvt.${PN}
 }
-                       
+