Linux console tools development discussion
 help / color / mirror / Atom feed
* [kbd] New vt_mode tool for kbd?
@ 2011-03-21 21:42 Michael Schutte
  2011-03-21 22:13 ` Dmitry V. Levin
  2011-03-25 13:20 ` Alexey Gladkov
  0 siblings, 2 replies; 13+ messages in thread
From: Michael Schutte @ 2011-03-21 21:42 UTC (permalink / raw)
  To: kbd


[-- Attachment #1.1: Type: text/plain, Size: 858 bytes --]

Hi Alexey,

The console-setup package in Debian needs a way to check for the
text/graphics mode of the active VT (from a shell script).  This can be
done with “setfont -v -o /dev/null”, for example, but that isn’t very
elegant.  Julien Cristau has proposed a small utility (which I’m calling
“vt_mode” for now) to report this information in a canonical fashion.

I’ve adapted it to kbd; see attachment.  Do you think this code is
suitable for inclusion?  If so, I am going to integrate it into the
build system and write a short man page for it, so I can send you a
proper patch.  I’d like to hear your opinion!

All the best,
-- 
Michael Schutte                   | michi@{uiae.at,debian.org}
Innsbruck, Austria                | happily accepting encrypted mail
OpenPGP: 0x16fb 517b a866 c3f6 8f11 1485 f3e4 122f 1D8C 261A

[-- Attachment #1.2: vt_mode.c --]
[-- Type: text/x-csrc, Size: 1902 bytes --]

/*
 * vt_mode: report VT mode (text or graphics)
 *
 * Contributed by Julien Cristau <jcristau@debian.org> in
 *   http://bugs.debian.org/618573;
 * adapted to kbd by Michael Schutte <michi@debian.org>.
 */

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/kd.h>
#include <getopt.h>
#include "getfd.h"
#include "nls.h"
#include "version.h"

static void attr_noreturn
usage(int code) {
        fprintf(stderr, _("Usage: vt_mode [-C DEVICE]\n"));
        exit(code);
}

int
main(int argc, char *argv[]) {
        int fd, rc, mode, c;
        char *console = NULL;

        set_progname(argv[0]);
#ifndef __klibc__
        setlocale(LC_ALL, "");
        bindtextdomain(PACKAGE_NAME, LOCALEDIR);
        textdomain(PACKAGE_NAME);
#endif

        while ((c = getopt(argc, argv, "C:hV")) != EOF) {
                switch (c) {
                case 'C':
                        if (optarg == NULL || optarg[0] == '\0')
                                usage(1);
                        console = optarg;
                        break;
                case 'h':
                        usage(0);
                        break;
                case 'V':
                        print_version_and_exit();
                        break;
                default:
                        usage(1);
                }
        }

        fd = getfd(console);

        rc = ioctl(fd, KDGETMODE, &mode);
        if (rc < 0) {
                fprintf(stderr, _("%s: Error reading VT mode.\n"), progname);
                return 1;
        }

        switch (mode) {
        case KD_TEXT:
                printf("text\n");
                break;
        case KD_GRAPHICS:
                printf("graphics\n");
                break;
        default:
                printf("other (%d)\n", mode);
                break;
        }

        return 0;
}

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2011-03-29 22:27 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-21 21:42 [kbd] New vt_mode tool for kbd? Michael Schutte
2011-03-21 22:13 ` Dmitry V. Levin
2011-03-21 22:25   ` Michael Schutte
2011-03-25 13:20 ` Alexey Gladkov
2011-03-26 17:33   ` Michael Schutte
2011-03-26 22:33   ` Dmitry V. Levin
2011-03-27  9:33     ` Alexey Gladkov
2011-03-28 10:55       ` Alexey Gladkov
2011-03-28 11:19       ` Dmitry V. Levin
2011-03-28 11:26         ` Alexey Gladkov
2011-03-28 21:07         ` Alexey Gladkov
2011-03-29 21:51           ` Dmitry V. Levin
2011-03-29 22:27             ` Alexey Gladkov

Linux console tools development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/kbd/0 kbd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kbd kbd/ http://lore.altlinux.org/kbd \
		kbd@lists.altlinux.org kbd@lists.altlinux.ru kbd@lists.altlinux.com
	public-inbox-index kbd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.kbd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git