Skocz do zawartości

Numlock...


Zyggy_Bird

Rekomendowane odpowiedzi

Ja mam aplikację włączającą numlocka w dwóch miejscach.

 

Ponieważ najpierw konsola domyślnie wyłącza numlocka, a potem serwer graficzny to mam programy włączające numlocka dla konsoli i później dla X-ów. Dla konsoli sprawa jest prosta: do pliku /etc/rc.d/rc.local wystarczy dopisać

 

for tty in $INITTY; do
    setleds -D +num < $tty
done

 

Natomiast w X-ach musiałem stworzyć mały program. Niech się nazywa xsetnumlock.c, zawartość tego pliku wygląda tak:

 

#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;
}

 

Następnie do kompilacji tego używamy następującego polecenia:

gcc -I/usr/X11R6/include -L/usr/X11R6/lib -o xsetnumlock xsetnumlock.c -lX11 -lXtst

 

Stworzoną aplikację skopiowałem sobie do katalogu /etc/X11/xinit/ i na koniec należy do pliku /etx/X11/xinit/xinitrc-common dopisać następującą linijkę:

 

/etc/X11/xinit/xsetnumlock &

 

I numlock ładnie działa :)

Swoją drogą - tę poradę znalazłem na phuzz.org, całkiem przyjemna stronka :)

Odnośnik do komentarza
Udostępnij na innych stronach

Witam mam pytanko czy mógłbyś napisać jak to kompilujesz??? tzn w jakim katalogu lub coś takiego bo mi takie krzaki wywala:

gcc -I/usr/X11R6/include -L/usr/X11R6/lib -o xsetnumlock xsetnumlock.c -lX11 -lXtst

xsetnumlock.c:1:34: X11/extensions/XTest.h: Nie ma takiego pliku ani katalogu

xsetnumlock.c:2:24: X11/keysym.h: Nie ma takiego pliku ani katalogu

xsetnumlock.c: In function `main':

xsetnumlock.c:6: error: `Display' undeclared (first use in this function)

xsetnumlock.c:6: error: (Each undeclared identifier is reported only once

xsetnumlock.c:6: error: for each function it appears in.)

xsetnumlock.c:6: error: `disp' undeclared (first use in this function)

xsetnumlock.c:6: error: `NULL' undeclared (first use in this function)

xsetnumlock.c:8: error: `XK_Num_Lock' undeclared (first use in this function)

xsetnumlock.c:8: error: `True' undeclared (first use in this function)

xsetnumlock.c:8: error: `CurrentTime' undeclared (first use in this function)

xsetnumlock.c:9: error: `False' undeclared (first use in this function)

będę bardzo wdzięczny!!!!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 months later...
  • 2 years later...
Ja mam aplikację włączającą numlocka w dwóch miejscach.

 

Ponieważ najpierw konsola domyślnie wyłącza numlocka, a potem serwer graficzny to mam programy włączające numlocka dla konsoli i później dla X-ów. Dla konsoli sprawa jest prosta: do pliku /etc/rc.d/rc.local wystarczy dopisać

 

for tty in $INITTY; do
    setleds -D +num < $tty
done

 

Natomiast w X-ach musiałem stworzyć mały program. Niech się nazywa xsetnumlock.c, zawartość tego pliku wygląda tak:

 

#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;
}

 

Następnie do kompilacji tego używamy następującego polecenia:

gcc -I/usr/X11R6/include -L/usr/X11R6/lib -o xsetnumlock xsetnumlock.c -lX11 -lXtst

 

Stworzoną aplikację skopiowałem sobie do katalogu /etc/X11/xinit/ i na koniec należy do pliku /etx/X11/xinit/xinitrc-common dopisać następującą linijkę:

 

/etc/X11/xinit/xsetnumlock &

 

I numlock ładnie działa :)

Swoją drogą - tę poradę znalazłem na phuzz.org, całkiem przyjemna stronka :)

 

Fedora 9 i KDE 4.0

Zrobiłem według Twojego, podanego wyżej, sposobu i NumLock działa, ale nie świeci się jego lampka na klawiaturze. Lampka działa odwrotnie: jeśli jest zgaszona to NumLock jest włączony, jeśli lampka jest włączona to NumLock jest wyłączony.

Czy można to jakoś poprawić?

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...