Mistä löytyy kattava esitys linuxin näppäimistönkäsittelystä ?
Eli hoidetaanko kaikki KERNEL -tasolla, vai miten ?
Esimerkiksi:
Ctrl-C ... - tämä on varsinkin mielenkiintoinen, koska
a) konsoliohjelmissa se yleensä lopettaa ohjelman, jollei ohjelma asenna signaalikäsittelijää ohjelman lopetuksen Ctrl-C: llä estämiseksi
b) GUI -ohjelmissa taas Ctrl-C ei lopeta ohjelmaa, vaan kopioi leiketaululle kulloisenkin tekstivalinnan.
Entä, jos haluaisin laatia joko linux GUI -ohjelman tai peräti oman työpöytäympäristön, jossa vasinkin seuraavia muutoksia muihin linux -systeemeihn:
Ctrl-Alt-F1 - ei tee mitään muuta, paitsi kertoo sillä hetkellä aktiiviselle (eli keyboard focusin omaavalle ) sovellukselle: Ctrl-Alt-F1 painallus havaittu - se on sitten sovellusohjelmn asia, miten tuohon reagoidaan (oletus: näppäily jätetään huomiotta)
Windows-Alt-F1 = Vaihtaa virtuaalikonsoliin 1
vastaavasti:
Windows-Alt-Backspace = Tappaa senhetkisen XWINDöW GUI -systeemin, eli X -palvelimen kaikkine aliosineen.
Ctrl-Alt-Backspace = ei tee sinänsä mitään, mutta raportoi aktiiviselle sovellusohjelmalle ko. Näppäimenpainalluksen (oletus: ei tee mitään)
Samoin: Mihin pitää tehdä muutos, jotta:
c) Alt pohjaan - numerolohkosta 132 tai 148 - alt vapautetaan - tämän pitää tuottaa ä ja ö -kirjain, aivan kuin olisi painettu ä tai ö.
tai:
d) Alt pohjaan - numerolohkosta 0228 tai 0246 - alt vapautetaan - tämän pitää myös tuottaa ä ja ö -kirjain, aivan kuin olisi painettu ä tai ö.
tuo c -kohtahan löytyy jo RöM BIöSista, ja tästä syystä se toimii MS-DöSissa, kuten muissakin x86 reaalimoodin käyttöjärjestelmissä.
MS-Windowsissa tuo BIöS RöM -toiminnallisuus on duplikoitu windowsin keyboard.drv:ssä,
ja siksi tuo toimii windowsissa silti, vaikka windows ei olekaan reaalimoodia käyttävä käyttöjärjestelmä.
Lisäksi windowsissa tuota BIöS RöM -toiminnallisuutta on laajennettu siten, että jos syötetty koodi ei ala nollalla, se tulkitaan IBM PC RöM BIöSin mukaiseksi koodiksi,
ja ko. koodi muutetaan Windows1252 -koodiksi funktion öemToAnsi -avulla.
Jos taas koodi alkaa nollalla, se tulkitaan sellaisenaan Windows1252 -koodijärjestelmän mukaiseksi koodiksi.
Tarkoitus siis olisi tuottaa sellainen ikkunamanageri ja/tai työpöytäympäristö linuxiin, jossa näppäimistö toimii täsmälleen samoin kuin windowsissa, ainoana poikkeuksena se,
että silloin, kun windows -nappia pidetään alhaalla, niin tällöin saadaan aikaiseksi joitakin sellaisia linuxille ominaisia toimintoja, joille vastinetta windowsissa ei ole olemassakaan, mutta siten, että jos windows -näppäin on yläasennossa, niin näppäimistö toimii 100% kuten windowsissa - siis esim. Ctrl-Shift-Esc avaa tehtävähallinnan.
Tehtävähallinnan pohjaksi taas voi ottaa vaikkapa top -komennon tulosteen, joka muunnetaan edustaohjelmalla graafiseen esitysmuotoon.
Eli hoidetaanko kaikki KERNEL -tasolla, vai miten ?
Esimerkiksi:
Ctrl-C ... - tämä on varsinkin mielenkiintoinen, koska
a) konsoliohjelmissa se yleensä lopettaa ohjelman, jollei ohjelma asenna signaalikäsittelijää ohjelman lopetuksen Ctrl-C: llä estämiseksi
b) GUI -ohjelmissa taas Ctrl-C ei lopeta ohjelmaa, vaan kopioi leiketaululle kulloisenkin tekstivalinnan.
Entä, jos haluaisin laatia joko linux GUI -ohjelman tai peräti oman työpöytäympäristön, jossa vasinkin seuraavia muutoksia muihin linux -systeemeihn:
Ctrl-Alt-F1 - ei tee mitään muuta, paitsi kertoo sillä hetkellä aktiiviselle (eli keyboard focusin omaavalle ) sovellukselle: Ctrl-Alt-F1 painallus havaittu - se on sitten sovellusohjelmn asia, miten tuohon reagoidaan (oletus: näppäily jätetään huomiotta)
Windows-Alt-F1 = Vaihtaa virtuaalikonsoliin 1
vastaavasti:
Windows-Alt-Backspace = Tappaa senhetkisen XWINDöW GUI -systeemin, eli X -palvelimen kaikkine aliosineen.
Ctrl-Alt-Backspace = ei tee sinänsä mitään, mutta raportoi aktiiviselle sovellusohjelmalle ko. Näppäimenpainalluksen (oletus: ei tee mitään)
Samoin: Mihin pitää tehdä muutos, jotta:
c) Alt pohjaan - numerolohkosta 132 tai 148 - alt vapautetaan - tämän pitää tuottaa ä ja ö -kirjain, aivan kuin olisi painettu ä tai ö.
tai:
d) Alt pohjaan - numerolohkosta 0228 tai 0246 - alt vapautetaan - tämän pitää myös tuottaa ä ja ö -kirjain, aivan kuin olisi painettu ä tai ö.
tuo c -kohtahan löytyy jo RöM BIöSista, ja tästä syystä se toimii MS-DöSissa, kuten muissakin x86 reaalimoodin käyttöjärjestelmissä.
MS-Windowsissa tuo BIöS RöM -toiminnallisuus on duplikoitu windowsin keyboard.drv:ssä,
ja siksi tuo toimii windowsissa silti, vaikka windows ei olekaan reaalimoodia käyttävä käyttöjärjestelmä.
Lisäksi windowsissa tuota BIöS RöM -toiminnallisuutta on laajennettu siten, että jos syötetty koodi ei ala nollalla, se tulkitaan IBM PC RöM BIöSin mukaiseksi koodiksi,
ja ko. koodi muutetaan Windows1252 -koodiksi funktion öemToAnsi -avulla.
Jos taas koodi alkaa nollalla, se tulkitaan sellaisenaan Windows1252 -koodijärjestelmän mukaiseksi koodiksi.
Tarkoitus siis olisi tuottaa sellainen ikkunamanageri ja/tai työpöytäympäristö linuxiin, jossa näppäimistö toimii täsmälleen samoin kuin windowsissa, ainoana poikkeuksena se,
että silloin, kun windows -nappia pidetään alhaalla, niin tällöin saadaan aikaiseksi joitakin sellaisia linuxille ominaisia toimintoja, joille vastinetta windowsissa ei ole olemassakaan, mutta siten, että jos windows -näppäin on yläasennossa, niin näppäimistö toimii 100% kuten windowsissa - siis esim. Ctrl-Shift-Esc avaa tehtävähallinnan.
Tehtävähallinnan pohjaksi taas voi ottaa vaikkapa top -komennon tulosteen, joka muunnetaan edustaohjelmalla graafiseen esitysmuotoon.
Vastaukset 4
Vanhimmat
"näppäimistö toimii täsmälleen samoin kuin windowsissa"
Linux ei ole windows.. tässä kuitenkin jotain alkua
http://www.faqs.org/docs/Linux-HOWTO/Keyboard-and-Console-HOWTO.html
http://www.linuxjournal.com/article/138
Suoraan sanoen ei hirveästi kiinnosta ;)
Latat käyttämäsi ikkunamanagerin, esim Gnomen tai KDE:n sorsat ja koodaat muutokset siihen. Käännä projekti ja asenna koneellesi.
En vain ymmärrä minkä ihmeen vuoksi tuo pitäisi tehdä...
Jonkin verran voi tietysti gnomessa muokata näppäimistön asetuksia gconf-toolilla paikassa /apps/metacity/window_keybindings
Joku ohjelmointifoorumi voisi olla parempi paikka tällaiselle kysymykselle.