dim: NeXT Screen dimmer (not automatic)

John Garnett garnett at ccwf.cc.utexas.edu
Wed Dec 12 23:23:24 AEST 1990


Contained below is a simple program to allow one to set the
brightness of the NeXT screen from the command line.

John Garnett, 12/12/90

--- cut here and feed to sh ---
echo x - bright.c
sed '1,$s/^X//' <<\!FUNKY!STUFF! > bright.c
X/* 
X   bright.c: written for the NeXT computer (using 1.0)
X
X   general usage: bright [0-61]
X
X   example usage: bright 52
X
X   purpose: dims the screen, waits for a carriage return, and then
X            resets display to original brightness.
X
X   author: written by John W. Garnett on December 12, 1990
X
X   email: garnett at cs.utexas.edu
X
X   compile using: cc bright.c -o dim
X
X   relevant manual pages: evs and ioctl
X
X   comments: yes, I know that preferences lets one set the autodim time
X     so that the screen will automatically dim after a certain period
X     of time.  However, the degree of dimming that occurs is fixed at
X     1/4 the current level which I don't think is dim enough.  Ideally
X     there should be some way to control the degree of dimming that
X     automatically occurs.  However, since there doesn't appear to be
X     any way to do so, I've written this hack.  Do with it what you will.
X     If anyone knows the details of how to duplicate the way the
X     WindowServer handles the automatic dimming, please let me know
X     via email (garnett at cs.utexas.edu).
X
X   disclaimer: no claims are made as to the suitability of this software for
X     any purpose.  use at your own risk.
X*/
X
X#include <stdio.h>
X#include <sys/fcntl.h>
X#include <sys/ioctl.h>
X#include <nextdev/evsio.h>
X
X#define EVS_DEVICE "/dev/evs0"
X
X/* open the event status device (see man page for evs) */
X
Xint openEvs()
X{
X	int fd;
X
X	fd = open(EVS_DEVICE,O_RDWR,0660);
X	if (fd < 0) {
X		fprintf(stderr,"error: couldn't open %s\n",EVS_DEVICE);
X		exit(2);
X	}
X	return(fd);
X}
X
X/* return brightness level as integer value between 0 and 61 */
X
Xunsigned long getBrightness()
X{
X	unsigned long original;
X	int fd;
X
X	fd = openEvs();
X	ioctl(fd,EVSIOCB,&original);
X	close(fd);
X	return(original);
X}
X
X/* set brightness to level and return previous brightness */
X
Xint setBrightness(level)
Xunsigned long level;
X{
X	unsigned long original;
X	int fd;
X
X	fd = openEvs();
X	original = getBrightness();
X	ioctl(fd,EVSIOSB,&level);
X	close(fd);
X	return(original);
X}
X
Xint main(argc,argv)
Xint argc;
Xchar **argv;
X{
X	unsigned long request, original;
X
X	if (argc != 2) {
X		fprintf(stderr,"usage: %s [0-61]\n",argv[0]);
X		exit(1);
X	}
X	sscanf(argv[1],"%lu",&request);
X	original = setBrightness(request);
X	getchar();
X	setBrightness(original);
X	return(0);
X}
!FUNKY!STUFF!
echo x - makefile
sed '1,$s/^X//' <<\!FUNKY!STUFF! > makefile
Xdim: bright.o
X	cc bright.o -o dim
X
Xbright.shar: bright.c makefile
X	shar bright.c makefile > bright.shar
X
Xall: dim bright.shar
!FUNKY!STUFF!



More information about the Alt.sources mailing list