Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!spool.mu.edu!olivea!inews.intel.com!mwilley
From: mwilley@pcocd2.intel.com (Mark Willey - PCD)
Newsgroups: comp.os.386bsd.apps
Subject: Re: XFree Screen Saver
Date: 21 Mar 1994 17:55:56 GMT
Organization: Intel Corporation
Lines: 149
Sender: mwilley@pcocd2 (Mark Willey - PCD)
Distribution: world
Message-ID: <2mkn3c$aht@inews.intel.com>
References: <anderbea.1409.2D8CE2E9@columbia.dsu.edu>
NNTP-Posting-Host: fiw206.intel.com
Originator: mwilley@sedona
In article <anderbea.1409.2D8CE2E9@columbia.dsu.edu>, anderbea@columbia.dsu.edu (Anthony Anderberg) writes:
>
> Is there a way that I can change the length of time
> before the screen blanker starts? Better yet,disable
> it all togather?
Well, you can use xset, or if you need to do it from a C program, here's a
quick example...
#include <stdio.h>
#include <X11/Xos.h>
#include <X11/Xlib.h>
#define TRUE (1)
#define FALSE (0)
/*
#define DEBUG
*/
main(argc, argv)
int argc;
char *argv[];
{
char *display, *geom, *fname, *cmd;
int mode_query, mode_set, set_delay, i;
XEvent event;
Display *theDisp;
int timeout, interval, prefer_blanking, allow_exposures;
cmd = argv[0];
display = geom = fname = NULL;
mode_query = mode_set = FALSE;
set_delay = 0;
/*********************Options*********************/
for (i = 1; i < argc; i++) {
char *strind;
if (!strncmp(argv[i],"-d",2)) { /* display */
i++;
display = argv[i];
continue;
}
strind = index(argv[i], ':'); /* old-style display */
if (strind != NULL) {
display = argv[i];
continue;
}
if (!strncmp(argv[i],"-q",2)) { /* query screen saver */
if (mode_query)
Syntax(cmd);
mode_query = TRUE;
continue;
}
if (!strncmp(argv[i],"-s",2)) { /* set screen saver */
if (mode_set)
Syntax(cmd);
mode_set = TRUE;
set_delay = atoi(argv[++i]);
continue;
}
Syntax(cmd);
}
#ifdef DEBUG
fprintf(stderr, "mode_query: %d, mode_set: %d, set_delay: %d, display: %s\n",
mode_query, mode_set, set_delay, display);
#endif
if ((!mode_set) && (!mode_query))
Syntax(cmd);
if (( theDisp = XOpenDisplay(display)) == NULL) {
fprintf(stderr, "%s: Can't open display: %s\n", cmd, display);
exit(1);
}
XGetScreenSaver(theDisp, &timeout, &interval, &prefer_blanking, &allow_exposures);
if (mode_query) {
fprintf(stderr, "timeout: %d, interval: %d, prefer_blanking: %d, allow_exposures: %d\n",
timeout, interval, prefer_blanking, allow_exposures);
}
if (mode_set) {
timeout = set_delay;
XSetScreenSaver(theDisp, timeout, interval, prefer_blanking, allow_exposures);
}
XCloseDisplay(theDisp);
exit(0);
}
Syntax(char *cmd)
{
printf("Usage: %s (-query_screen_saver &| -set_screen_saver seconds) [-display display]\n",cmd);
exit(1);
}
and here's makefiles for iaws and rs6k machines....
iaws...
CFLAGS = -O
OBJECTS = x_screen_saver.o
INCLUDES =
LIBRARIES = -lX11 -lnsl -lc
CC = gcc $(CFLAGS) $(INCLUDES)
x_screen_saver: $(OBJECTS)
$(CC) $(OBJECTS) -o $@ $(LIBRARIES)
.c.o:
$(CC) -c $<
clean:
rm -f x_screen_saver *.o
rs6k...
CFLAGS = -O
OBJECTS = x_screen_saver.o
INCLUDES =
LIBRARIES = -lX11 -lc
CC = gcc $(CFLAGS) $(INCLUDES)
x_screen_saver: $(OBJECTS)
$(CC) $(OBJECTS) -o $@ $(LIBRARIES)
.c.o:
$(CC) -c $<
clean:
rm -f x_screen_saver *.o
--
------------------------------------------------------------------------
Mark Willey 916-356-5477
Intel Corporation, FM2-48 mwilley@pcocd2.intel.com
1900 Prairie City Rd, Folsom, CA 95630 I speak for myself, not Intel.
------------------------------------------------------------------------