Jei neatpažįstami specialieji klavišai

A. Kai kuriems specialiesiems klavišams gali tekti savarankiškai priskirti tam tikras funkcijas konkrečioje
programoje (pvz., VLC, Kmix) arba per darbalaukio aplinkos (pvz., KDE) konfigūraciją.

B. Paprastai įvairiausi specialieji klavišai atpažįstami, tačiau gali pasitaikyti išimčių. Todėl praneškite apie
klaidą į Bugzillą, jei openSUSE 11.x sistemoje nuspaudus Vald(Ctrl)+Alt+F10 ir spaudžiojant tam tikrą klavišą
(arba /var/log/messages žurnale) matote kažką panašaus į žemiau pateiktas eilutes:

atkbd serio0: Unknown key pressed (translated set 2, code 0x88 on isa0060/serio0).
atkbd serio0: Use ‘setkeycodes e008 ’ to make it known.
atkbd serio0: Unknown key released (translated set 2, code 0x88 on isa0060/serio0).
atkbd serio0: Use ‘setkeycodes e008 ’ to make it known.

(Pastaba: po Vald+Alt+F10 nuspaudimo į openSUSE 11.x grafinę sąsają grįšite nuspaudę Vald+Alt+F7).

Norėdami, kad sistema pažintų šiuos klavišus, administratoriaus root teisėmis įvykdykite komandą:

setkeycodes KLAVIŠAS KODAS

Čia KLAVIŠAS yra klaidos pranešime matytas klavišas, o KODAS yra jo atliekamos funkcijos kodas iš
/usr/share/X11/xkb/keycodes/evdev arba įvykdę xmodmap -pke. Reikia rašyti funkcijos kodą, kuris yra už //
simbolių, o ne prieš juos. Jei jo prie komentarų nėra, rašyk tą, kuris yra, tik atimk 8. Pvz., e008 klavišui
KEY_MEDIA funkciją suteikia tokia komanda:

su -c “setkeycodes e008 226”

Tačiau setkeycodes komanda padės tik iki sekančio kompiuterio įjungimo. Jei nori, kad visada paleidžiant
openSUSE 11.x sistemą būtų nustatomi tie klavišai:

• Root teisėmis įvykdyk

crontab -e

• Paspausk a raidę ir įrašyk, pavyzdžiui:

SHELL=/bin/sh
@reboot setkeycodes e008 226
@reboot setkeycodes e00e 148

(pastarasis kodas tiko HP Pavillion dv6000 nešiojamajam kompiuteriui, turinčiam du prisilietimui
jautrius specialius „QuickPlay“ mygtukus).
• Paspausk Grįžti(Escape) klavišą, po to suvesk :wq (pirma dvitaškį) ir nuspausk Įvesti(Enter) klavišą.
Viskas, ką parašei už @reboot, operacinės sistemos paleidimo metu bus įvykdoma vieną kartą.

Patikrinti, su kuria funkcija susietas klavišas, galima bet kokio naudotojo teisėmis įvykdžius xev.
Tačiau gali būti ir taip, kad nei tarp sistemos pranešimų (kuriuos matei nuspaudęs Vald+Alt+F10), nei įvykdęs
xev nieko nematei. Tada tikriausiai tavo klavišas buvo priskirtas blogam funkcijos kodui. Įsitikinti gali
administratoriaus teisėmis komandinėje eilutėje įvykdęs:
showkey
Programėlė parašys funkcijos kodą (neatėmus 8), vos tik paspausi klavišą; showkey automatiškai baigs darbą,
jei 10 sekundžių nieko nebus paspausta.
Norint sutvarkyti tokį klavišą, kuriam priskirta bloga funkcija (vadinamasis keycode), pirma turi išsiaiškinti jo
kodą (vadinamąjį scancode). Tam konsolėje super naudotojo (root) teisėmis įvykdyk:
getkeycodes
Dabar išvestoje lentelėje susirask tą kodą, kurį matei įvykdęs showkey.
Pirmasis už dvitaškio esantis skaičius sutampa su prieš dvitaškį esančiu kodu, o tolesni atitinka vis didesnius
šešioliktainius kodus. Pavyzdžiui eilutėje e008: 226 236 152 212 226 0 389 0 pirmasis 226 atitinka e008 (jei anksčiau
jam priskyrėme XF86AudioMedia/KEY_MEDIA funkciją 126 (o ne 126+8=134)), 152 atitiks e00a, 389 atitiks
e00e. O dabar, žinant klavišą, vėl galima pasinaudoti setkeycodes komanda.