[vox-tech] Using setleds

Ken Bloom kbloom at gmail.com
Thu Jul 28 09:35:49 PDT 2005


On 7/27/05, John Wojnaroski <castle at mminternet.com> wrote:
> Hi,
> 
> Is there a way to use 'setleds' inside a program?  My understanding is that
> it only works with VTs (tty0 -- ttyxxx) and programs using input devices
> such as /dev/pts/0 will not work.
> 
> Regards
> John W.

You can use setleds inside a program by simply executing it as you
would any other UNIX program, using system(3) or fork(2) and exec(2).

If you're trying to use setleds on an x display, here's a little C
program that can toggle the numlock key. I have it run in my .xsession
so that it always turns on numlock when I log in. You can also look at
http://freshmeat.net/projects/numlockx/ which is similar.

//numlock.c
//compile using:
//gcc -I/usr/X11R6/include -L/usr/X11R6/lib -o setnumlock Numlock.c
-lX11 -lXtst#include <X11/extensions/XTest.h>
#include <X11/keysym.h>

int main(void) {
        Display* disp = XOpenDisplay( NULL );
        if( disp == NULL )
                return 1;
        XTestFakeKeyEvent( disp, XKeysymToKeycode( disp, XK_Num_Lock),
True, CurrentTime );
        XTestFakeKeyEvent( disp, XKeysymToKeycode( disp, XK_Num_Lock),
False, CurrentTime );
        XCloseDisplay( disp );
        return 0;
}

//end of source code

--Ken Bloom


More information about the vox-tech mailing list