Okay, got that working just fine. Is there an argument for
XTestFakeKeyEvent that would just change the LED and not the state of
the flags; analagous to "setleds -L +caps"
Trying 'system( "setleds -L +caps" );' returns the standard complaint
... stdin is not a VT
Regards
John W.
From: "Ken Bloom" <[EMAIL PROTECTED]>
To: "lugod's technical discussion Sent: Thursday, July 28, 2005 9:35 AM
Subject: Re: [vox-tech] Using setleds
forum" <[email protected]>
On 7/27/05, John Wojnaroski <[EMAIL PROTECTED]> 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
_______________________________________________
vox-tech mailing list
[email protected]
http://lists.lugod.org/mailman/listinfo/vox-tech
|
_______________________________________________
vox-tech mailing list
[email protected]
http://lists.lugod.org/mailman/listinfo/vox-tech