Linux näppäimistönkäsittely ?

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.
4328
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

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ä...

Äänestä
  • Jonkin verran voi tietysti gnomessa muokata näppäimistön asetuksia gconf-toolilla paikassa /apps/metacity/window_keybindings

    Äänestä

Joku ohjelmointifoorumi voisi olla parempi paikka tällaiselle kysymykselle.

Äänestä

Kommentoi aloitusta


näppix_linux kirjoitti:

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.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu