Index: docs/man/man1/dumpkeys.1.in =================================================================== --- docs/man/man1/dumpkeys.1.in.orig +++ docs/man/man1/dumpkeys.1.in @@ -4,6 +4,7 @@ dumpkeys \- dump keyboard translation tables .SH SYNOPSIS .B dumpkeys +.RI [ \-C\ '' | \-\-console='' ] [ .\".B \-1Vdfhiklnstv .B \-h \-\-help \-i \-\-short\-info \-l \-s \-\-long\-info @@ -212,6 +213,12 @@ loadkeys how to interpret the keymap. (F .B \-V \-\-version Prints version number and exits. .LP +The affected console device can be specified using the +.I -C +(or +.I --console +) option. This option supports exactly one device name. +.LP .SH FILES .PD 0 .TP 20 Index: src/dumpkeys.c =================================================================== --- src/dumpkeys.c.orig +++ src/dumpkeys.c @@ -41,6 +41,8 @@ usage(int rc) " -t, --funcs-only display only the function key strings;\n" " -k, --keys-only display only key bindings;\n" " -d, --compose-only display only compose key combinations;\n" + " -C \n" + " --console= Indicate the virtual console device to be used;\n" " -c, --charset=")); lk_list_charsets(stderr); fprintf(stderr, _( @@ -55,7 +57,7 @@ usage(int rc) int main(int argc, char *argv[]) { - const char *short_opts = "hilvsnf1tkdS:c:V"; + const char *short_opts = "hilvsnf1tkdS:C:c:V"; const struct option long_opts[] = { { "help", no_argument, NULL, 'h' }, { "short-info", no_argument, NULL, 'i' }, @@ -68,6 +70,7 @@ int main(int argc, char *argv[]) { "keys-only", no_argument, NULL, 'k' }, { "compose-only", no_argument, NULL, 'd' }, { "charset", required_argument, NULL, 'c' }, + { "console", required_argument, NULL, 'C' }, { "verbose", no_argument, NULL, 'v' }, { "version", no_argument, NULL, 'V' }, { NULL, 0, NULL, 0 } @@ -82,6 +85,7 @@ int main(int argc, char *argv[]) char funcs_only = 0; char keys_only = 0; char diac_only = 0; + char * console = NULL; struct lk_ctx *ctx; @@ -135,6 +139,9 @@ int main(int argc, char *argv[]) } printf("charset \"%s\"\n", optarg); break; + case 'C': + console = optarg; + break; case 'V': print_version_and_exit(); break; @@ -150,7 +157,7 @@ int main(int argc, char *argv[]) if (optind < argc) usage(EX_USAGE); - if ((fd = getfd(NULL)) < 0) + if ((fd = getfd(console)) < 0) kbd_error(EXIT_FAILURE, 0, _("Couldn't get a file descriptor referring to the console")); /* check whether the keyboard is in Unicode mode */