Readme soubor pro balik klavesovych map czsk-keyb Autor: Richard S~puta, Richard.Sputa@os3.os.ds.mfcr.cz License: GNU GPL 2 Links: ftp://ftp.penguin.cz/pub/cestina/klavesnice/console/ - primary ftp archiv http://www.debian.cz/proj/czkbd/index.php3 - czech keyboard standarts UPOZORNENI: Implementoval jsem klavesnici QWERTY i QWERTZ Zadani: Vytvorit ceskou neprogramatorskou klavesnici pro linux konzolu mapovani klaves shodne se standartem IBM, Microsoft - shodne s MS-DOS,MS-Windows Budoucnost: Chci vylepsit funkcnost pod jadrem 2.2.x - LEDka ScrollLock => indikace klavesnice US - Plna funkcnost interniho editoru "mc" bez patche Vzdalena budoucnost: UNICODE Vysledek: ve verzi 2.0.2 Slovenska klavesnice - ver. 2.0.2 (vlastnosti podobne CESKE) Ceska klavesnice hotova - ver. 2.0.2 Na CESKE klavesnici se daji psat vsechny znaky co jsou na US klav. Mezi US a CESKOU klavesnici se prepina pomoci klavesy "Pause" Na US klavesnici se daji psat vsechny znaky co jsou na CESKE klav. podporovany vsechny akcentovane znaky ISO-8859-2 podporovana 102-ha klavesa Alt funguje jako MetaKlavesa (Alt-A generuje ESC a, Alt-Shift-A generuje ESC A) podporovany WINDOWS klavesy (maji vyznam F13 a F14) - SHIFT+F3 => F13 - SHIFT+F4 => F14 Rozsireni oproti standartni_CESKE_unikodove_klavesnici (standartni_SLOVENSKE_unikodove_klavesnici) (zde jsou popsany pouze kombinace, jejichz umisteni je diskutabilni) (popis ostatnich vlastnosti je dale) 1) AltGr-SPACE => znak "nobreakspace" (neoddelitelna mezera kod 0xa0) 2) Ctrl-SPACE => znak "nul" (kod 0x00) 3) AltGr-A => ~ (tilda - pozor AltGr-1 genruje mrtvou tildu) 4) AltGr-H => ` (zpetny apostrof) 5) AltGr-J => ' (apostrof) 6) AltGr-M => ^ (jiz nikdy vice us-klavesnice) 7) AltGr-Z => (stupen "degree") PRIDANIM AltGr-M JE ZARUCENO ZE JIZ NEMUSITE PREPINAT NA US-KLAVESNICI Tato klavesnice podporuje vsechny znaky, ktere jsou na US klavesnici. Napr. Shift-\ => ' AltGr-Q => \, AltGr-W => |, AltGr-S => preskrknute "d", AltGr-D => preskrknute "D", AltGr-F => [, AltGr-G => ], AltGr-K => preskrknute "l", AltGr-L => preskrknute "L", AltGr-X => #, AltGr-C => &, AltGr-V => @, AltGr-B => {, AltGr-N => }, AltGr-, => <, AltGr-. => >, AltGr-- => *, AltGr-; => $ AltGr-' => ostre_s, AltGr-[ => deleno, AltGr-] => krat AltGr-102_ha_klavesa => / Mrtve klavesy (u obou klavesnic - CESKE (SLOVENSKE) i US) AltGr-2 => dead_caron (hacek_nad_pismenem) AltGr-3 => dead_circumflex (striska_nad_pismenem) AltGr-4 => dead_breve (obloucek_nad_pismenem) AltGr-5 => (krouzek_nad_pismenem) AltGr-6 => dead_cedilla (ocasek_pod_pismenem_smerujici_zprava_doleva) AltGr-7 => (nedefinovano) AltGr-8 => (tecka_nad_pismenem) AltGr-9 => dead_acute (carka_nad_pismenem) AltGr-0 => dead_doubleacute (dve_carky_nad_pismenem) AltGr-- => dead_diaeresis (dve_tecky_nad_pismenem) AltGr-= => dead_ogonek (ocasek_pod_pismenem_smerujici_zleva_doprava) Mrtve klavesy (pouze u US klavesnice) PrintScreen => dead_acute (carka_nad_pismenem) Shift-PrintScreen => dead_caron (hacek_nad_pismenem) => mozno pouzit i na krouzkovane U Mrtve klavesy (pouze u CESKE (SLOVENSKE) klavesnice) = => dead_acute (carka_nad_pismenem) Shift-= => dead_caron (hacek_nad_pismenem) Shift-~ => (krouzek_nad_pismenem) Mrtva klavesa (pouze u CESKE klavesnice) \ => dead_diaeresis (dve_tecky_nad_pismenem) POZOR: Tato klavesova mapa obsahuje ve skutecnosti 2 (dve) klavesnice Primarni je CESKA (SLOVENSKA) Sekundarni je US Prepinani se provadi pomoci klavesy "Pause" ktera funguje jako "ShiftR_Lock" (SLOVENSKA) CESKA: Control-Klavesa, Alt-Klavesa, Alt-Shift-Klavesa => funguje stejne jako v US klavesnici US: AltGr-Klavesa, AltGr-Shift-Klavesa => funguje stejne jako v CESKE (SLOVENSKE) klavesnici (i dead klavesy na AltGr-2 az AltGr-9, AltGr-0, AltGr--, AltGr-=) Navic klavesa "PrintScreen" funguje jako carka a hacek Upozorneni: PRIMARNI je cz-qwerty.map pro neopatchovane jadro OSTATNI klavesove mapy se vytvareji pomoci konverznich skriptu (toto plati i pro slovenske klavesove mapy) - To take znamena ze PRIMARNI ma nejvice komentaru (komentare ktere by byly neplatne v OSTATNICH byly vymazany) - Ve slovenskych klavesovych mapach byly nahrazeny slova: CESKA => SLOVENSKA a CESKE => SLOVENSKE Vyzva: Pokud najdete nejakou chybu v implementaci prosim poslete mi e-mail Vyzva: Prosim posilejte mi namety a pripominky - urychlite tim vyvoj Znaky z ISO-8859-2 ktere nejsou na klavesnici: obloucek_nad_znakem, prehlas, carka, hacek, dve_carky_nad znakem tecka_nad_znakem a dva ocasky_pod_znakem Podrobnosti: Vrchni ciselna rada generuje + e s c r z y a i e - hackovane - s CapsLockem generuje + E S C R Z Y A I E - hackovane - se Shiftem generuje 1 2 3 4 5 6 7 8 9 0 - Pro CESKOU klavesnici Vrchni ciselna rada generuje + l s c t z y a i e - hackovane - s CapsLockem generuje + L S C T Z Y A I E - hackovane - se Shiftem generuje 1 2 3 4 5 6 7 8 9 0 - Pro SLOVENSKOU klavesnici Podobne se chovaji jeste: - uacute (u_s_carkou - na pozici "[") - uring (u_s_krouzkem - na pozici ";") - Pro CESKOU klavesnici Podobne se chovaji jeste: - adiaeresis (prehlasovane_a - na pozici "]") - ocircumflex (o_se_striskou - na pozici ";") - ncaron (n_s_hackem - na pozici "'") - Pro SLOVENSKOU klavesnici Alt-cisla_na_numerickem_bloku funguji jako v dosu: napr.: Drzite Alt a napisete 100, Pustite Alt => "d" Ctrl-cisla_na_numerickem_bloku funguji: jako Alt ale cislo se zadava hexa klavesy pro A-F je blok 6 klaves: Insert..PageDown AltGr-numericky_blok generuje znaky jako pri NumLocku, ale je to nezavisle na nastaveni NumLocku AltGr-blok_6_klaves generuje "a"-"f" nebo "A"-"F" (podle CapsLocku) Shift_nebo_Control_nebo_Alt-ScrollLock generuje zname vypisy Alt_nebo_AltGr-sipky prepina virtualni konzoly Alt-F1_az_F12 nebo Alt-Ctrl-F1_az_F12 nebo AltGr-Ctrl-F1_az_F12 - prepina virtualni konzoly Shift-F1 generuje F11 Shift-F2 generuje F12 Shift-F3 generuje F13 . . . Shift-F11 generuje F21 (ma F21 generovat "\033[35~" ?) Shift-F12 generuje F22 (ma F22 generovat "\033[36~" ?) Ctrl-2 => \0x00, Ctrl-3 => \0x1b, Ctrl-4 => \0x1c, Ctrl-5 => \0x1d Ctrl-6 => \0x1e, Ctrl-7 => \0x1f, Ctrl-8 => \0x7f Ctrl-Klavesa_pod_ESCAPE => \0x00, Ctrl-- => \0x1f, Ctrl-/ => \0x1f Ctrl-[ => \0x1b, Ctrl-\ => \0x1c, Ctrl-] => \0x1d Vyreseno: 1) Control-ENTER v Midnight Commander-u nefunguje Nakonec jsem prisel na to co tam mam dat Control-ENTER generuje ten samy kod jako Control-M Doporucuji pozivat kombinaci Alt-ENTER => ta je take mozna Alt-ENTER funguje tak, ze odesle dva znaky ESC a ENTER Navic tato kombinace funguje i v xtermu 2) SHIFT-SIPKY nefunguji v internim editoru Midnight Commander-u Toto se neda za dnesniho stavu (schopnosti ovladace klavesnice) vyresit aniz by ma klavesova mapa stratila schopnost na numericke rade psat jak velka ceska pismena tak mala ceska pismena a navic jeste cisla. Problem spociva v tom ze MC si nejakym zpusobem zjistuje stisknuti samotne klavesy SHIFT (tzn. obchazi keycody alespon nekdy). No a klavesa SHIFT je v me klavesnici osetrena trochu obskurne, aby fungovala numericka rada. Reseni jsou 3: a) Prepsat MC tak aby necetl keycod-yy, ale keysym-y. - Toto je take obskurni reseni a nedoporucuji je. b) Pockat na jadro 2.2.x ktere pry bude mit lepsi ovladac klavesnice - V podstate nejlepsi reseni by bylo kdyby se dal pomoci keymap-y konfigurovat funkce LED diod a funkce CapsLock-u Nyni je to totiz tak ze jedine keysym "CapsLock" meni stav diody CapsLock a navic jedine keysym CapsLock ma tu funkci ze funguje jako stisk SHIFT (no trosku jinak) - Pokud by se dalo nastavit, ze LED dioda CapsLock by reagovala na aktivaci keysym-u SHIFTL_LOCK - tak by bylo vyhrano - Nebo pokud by se dalo nastavit, ze keysym CapsLock ma tu funkci ze funguje jako stisk SHIFTL - bylo by take vyhrano c) Provest patch ovladace klavesnice u jadra 2.0.x - Touto cestou jsem se vydal ja - Vice informaci v napovede k programu "patch-capslock" (staci spustit program "patch-capslock" bez argumentu) - Zde jen informace, ze cely patch spociva v pridani jednoho (slovy 1) pismene do souboru "drivers/char/keyboard.c" - Tento program umi i tento patch odstranit prejmenovanim zalohy originalu na puvodni nazev (zaloha originalu ma nazev "keyboard.c.orig") - Program je psan tak ze ho zvladne obsluhovat kdokoli kdo umi zkompilovat jadro - coz je po patch-i samozrejme nutne