Changed -S scrnmap to be -M scrnmap,
authorChristoph Robitschko <chmr@edvz.tu-graz.ac.at>
Fri, 4 Feb 1994 10:37:45 +0000 (10:37 +0000)
committerChristoph Robitschko <chmr@edvz.tu-graz.ac.at>
Fri, 4 Feb 1994 10:37:45 +0000 (10:37 +0000)
added new -S to list/change screensavers,
added reference to screen(4) and keyboard(4) in the man page.

usr.bin/syscons/syscons.1
usr.bin/syscons/syscons.c

index f224f67..6a75f40 100644 (file)
@@ -37,7 +37,12 @@ Sets the screensaver timeout to
 .I N
 seconds, or turns it
 .I off
 .I N
 seconds, or turns it
 .I off
-.
+.TP
+.BI "\-S\ " NAME|list
+Sets the screensaver appearance to
+.I NAME .
+Use \-S list to list the available
+.I NAMEs .
 .TP
 .BI "\-m\ " 80x25|80x50
 Set screen size to 80x25 or 80x50 chars.
 .TP
 .BI "\-m\ " 80x25|80x50
 Set screen size to 80x25 or 80x50 chars.
@@ -53,7 +58,7 @@ rates, or use presets for
 or
 .I normal.
 .TP
 or
 .I normal.
 .TP
-.BI "\-S\ " scrmap
+.BI "\-M\ " scrmap
 Install screen output map file from
 .I scrmap
 .TP
 Install screen output map file from
 .I scrmap
 .TP
@@ -87,6 +92,8 @@ to send
 .SH BUGS
 Sure to be some.
 .SH "SEE ALSO"
 .SH BUGS
 Sure to be some.
 .SH "SEE ALSO"
+.BR keyboard (4) ,
+.BR screen (4) ,
 .BR /sys/i386/conf/SYSCONS
 .SH AUTHORS
 Christoph M. Robitschko
 .BR /sys/i386/conf/SYSCONS
 .SH AUTHORS
 Christoph M. Robitschko
index 0c2a79e..13eef63 100644 (file)
@@ -47,6 +47,7 @@ char          *prgname;
 __BEGIN_DECLS
 int    is_syscons      __P((int));
 void   screensaver     __P((char *));
 __BEGIN_DECLS
 int    is_syscons      __P((int));
 void   screensaver     __P((char *));
+void   screensavertype __P((char *));
 void   linemode        __P((char *));
 void   keyrate         __P((char *));
 void   keymap          __P((char *));
 void   linemode        __P((char *));
 void   keyrate         __P((char *));
 void   keymap          __P((char *));
@@ -75,11 +76,14 @@ int         opt;
        prgname = argv[0];
        if (!is_syscons(0))
                exit(1);
        prgname = argv[0];
        if (!is_syscons(0))
                exit(1);
-       while((opt = getopt(argc, argv, "s:m:r:k:f:t:F:S:vd")) != -1)
+       while((opt = getopt(argc, argv, "s:S:m:r:k:f:t:F:M:vd")) != -1)
                switch(opt) {
                        case 's':
                                screensaver(optarg);
                                break;
                switch(opt) {
                        case 's':
                                screensaver(optarg);
                                break;
+                       case 'S':
+                               screensavertype(optarg);
+                               break;
                        case 'm':
                                linemode(optarg);
                                break;
                        case 'm':
                                linemode(optarg);
                                break;
@@ -89,7 +93,7 @@ int           opt;
                        case 'k':
                                keymap(optarg);
                                break;
                        case 'k':
                                keymap(optarg);
                                break;
-                       case 'S':
+                       case 'M':
                                mapscr(optarg);
                                break;
                        case 'f':
                                mapscr(optarg);
                                break;
                        case 'f':
@@ -150,6 +154,7 @@ usage(void)
 const char     usagestr[] = {"\
 Usage: syscons  -v               (be verbose)\n\
                 -s {TIME|off}    (set screensaver timeout to TIME seconds)\n\
 const char     usagestr[] = {"\
 Usage: syscons  -v               (be verbose)\n\
                 -s {TIME|off}    (set screensaver timeout to TIME seconds)\n\
+               -S {NAME|list}   (set screensaver type or list available types\n\
                 -m {80x25|80x50} (set screen to 25 or 50 lines)\n\
                 -r DELAY.REPEAT  (set keyboard delay & repeat rate)\n\
                 -r fast                 (set keyboard delay & repeat to fast)\n\
                 -m {80x25|80x50} (set screen to 25 or 50 lines)\n\
                 -r DELAY.REPEAT  (set keyboard delay & repeat rate)\n\
                 -r fast                 (set keyboard delay & repeat to fast)\n\
@@ -159,7 +164,7 @@ Usage: syscons  -v               (be verbose)\n\
                 -f SIZE FILE     (load font file of size 8, 14 or 16)\n\
                 -t SCRNUM        (switch to specified VT)\n\
                 -F NUM STRING    (set function key NUM to send STRING)\n\
                 -f SIZE FILE     (load font file of size 8, 14 or 16)\n\
                 -t SCRNUM        (switch to specified VT)\n\
                 -F NUM STRING    (set function key NUM to send STRING)\n\
-                -S SCRNMAP       (load screen map file)\n\
+                -M SCRNMAP       (load screen map file)\n\
 "};
        fprintf(stderr, usagestr);
 }
 "};
        fprintf(stderr, usagestr);
 }
@@ -233,6 +238,44 @@ char               *s1;
 }
 
 
 }
 
 
+void
+screensavertype(opt)
+char           *opt;
+{
+ssaver_t       shaver;
+int            i, e;
+
+
+       if (!strcmp(opt, "list")) {
+               i = 0;
+               printf("available screen saver types:\n");
+               do {
+                       shaver.num = i;
+                       e = ioctl(0, CONS_GSAVER, &shaver);
+                       i ++;
+                       if (e == 0)
+                               printf("\t%d\t%s\n", shaver.num, shaver.name);
+               } while (e == 0);
+               if (e == -1 && errno != EIO)
+                       perror("getting screensaver info");
+       } else {
+               i = 0;
+               do {
+                       shaver.num = i;
+                       e = ioctl(0, CONS_GSAVER, &shaver);
+                       i ++;
+                       if (e == 0 && !strcmp(opt, shaver.name)) {
+                               if (ioctl(0, CONS_SSAVER, &shaver) == -1)
+                                       perror("setting screensaver type");
+                               return;
+                       }
+               } while (e == 0);
+               if (e == -1 && errno != EIO)
+                       perror("getting screensaver info");
+       }
+}
+
+
 void
 linemode(opt)
 char           *opt;
 void
 linemode(opt)
 char           *opt;