grabnuti klavesnice na konzole

Pavel JANIK ml. pjanik na aida.inet.cz
Čtvrtek Květen 22 15:23:20 CEST 1997


> Ahoj 
>  nevite nekdo jak se da na linuxove konzole zabavit programem nejaka
>  klavesa jenom pro nej? Chtel bych pustit demonka, ktery reaguje na stisk
>  napr. <Home> a <End> a je mu celkem jedno, na ktere konzoli se prave
>  nachazite, a jestli mezi nimi prepinate... (neco jako XGrabKey v Xech)

Nejjednodussi je :

	do tabulky mapovani klavesnice doplnit napr. nasledujici radky:

string F100 = "/usr/local/bin/spustit_nasledujici_programek\n"

a zmenit prislusny retezec u klavesy - End - napr. :

	keycode 107 = F100

nebo Home:
	keycode 102 = F100

Tedy neco jako:

machine:/home/user$ loadkeys
string F100 = "/usr/local/bin/spustit_nasledujici_programek\n"
keycode 107 = F100
^D
machine:/home/user$

Pokud ale nechces, aby se programek spoustel (tento zpusob vlastne jakoby
napise na klavesnici dane znaky...) budes muset pravdepodobne upravit trosku
jadro - ovladac klavesnice. Ovsem problemem popsaneho reseni je, ze
programek se spusti s uzivatelskymi pravy prave prihlaseneho uzivatele
(pokud vubec je nekdo prihlasen na konzole), pokud neni, tak zadane
uzivatelske jmeno bych tedy mit nechtel :-))))

Myslim, ze chces udelat neco jako {Ctrl, Shift, AltGr}+ScrLck. Potom bude
nejlepe se podivat do zdrojaku jadra... (REKLAMA: doporucuji pres LSD - uz
je tam i 2.1.41, zatim co ani na sunsite.mff ani na fi.muni nebyla :-)))

Ale stejne myslim, ze pokud budes na virtualni konzole, kterou si dynamicky
alokuje X-server, tak ti tvuj demonek stejne nebude fungovat...

PJ
--
############################################################################
#                                                                          #
#                                                   Pavel.JANIK na inet.cz    #
#  arch/sparc/kernel/smp.c:                                                #
#                                                                          #
#       printk("Entering SparclinuxMultiPenguin(SMP) Mode...\n");          #
#       printk("Penguin %d is stuck in the bottle.\n", i);                 #
#                                                                          #
#  PGP Public Key  - http://www.inet.cz/~pjanik/pgp_public_key.txt         #
#  Top URL - http://www.math.muni.cz/cgi-bin/LSD                           #
############################################################################


Další informace o konferenci Linux