Új hozzászólás Aktív témák

  • Domonkos

    addikt

    válasz Domonkos #70 üzenetére

    Na de akkor nezzuk, hogy tenylegesen mibol is elunk! :)

    Ahogy azt emlitettem, a legtobb firmware a kiosztast retegekben kepzeli el. Egesz termeszetes otlet.
    Altalaban egy 3 dimenzios tombbel van az egesz megvalositva, amiben a dimenziok a sorok, az oszlopok es a retegek.
    A retegeket altalaban be es ki lehet kapcsolgatni aszerint, hogy epp melyik funkciot szeretnenk elerni. Mar most megjegyeznem, hogy itt direkt (es a jovoben is) funkciot irtam gomb / billentyu / karakter / stb. helyett, mert ez a legaltalanosabb. Mi a baj a tobbivel?
    A billentyuzeten billentyuk vannak, es nem gombok. A billentyu amugy is a fizikai resze a dolognak, ami nem minden esetben jo kifejezes ezekben a kontextusokban. A karakterrel az a gond, hogy nem minden billentyu - peldaul az fn - leutese eredmenyez kimeno karaktert a kabelen.
    Egyebkent a "funkcio"val sem vagyok nagyon elegedett, de ez legalabb elegge altalanos, hogy magaba foglalhassa az osszes eshetoseget. Peldaul abban az esetben, ha egy leutes az tenyleg csak egy karaktert ut, akkor arra meg mindig gondolhatunk ugy, hogy a leutes az igazabol egy funkciot hajtott vegre, aminek az eredmenye (vagy mellekhatasa (... ki milyen hatterrel jott)) egy karakter lett. Viszont, hogy ezt a funkciot mettol-meddig tekintjuk "egy funkcio"nak, az megint csak vita targya lehet. Ahogy az elozo kommentemben is irtam, ugy minden egyes leutest sok-sok funkcio dolgoz fel (noha legtobbjuk csak siman ignoralja) es ezert nem lenne celszeru altalanositani es azt mondani, hogy az egesz lanc az csak egy hosszu funkcio. Bar egy fuggvenyhivassal feljebbrol tenyleg csak egy, de nekunk sosem lesz ugy egy klassz firmware-unk, hogy nem megyunk ezeken mi magunk vegig.
    Lenyeg a lenyeg: a leutesek (es felengedesek) funkciokat hivnak meg, amelyek amellett, hogy egy-egy karakter kikuldesere kesztethetik a billentyuzetet, meg sok mas dolgot is csinalhatnak. Egy picit altalanositva minden allapotatmenetre rahuzhatjuk, hogy valami fuggvenyt hivott meg, de azok a fuggvenyek - mondjuk a legtobb billentyu felengedese - nem valt ki semmi mellekhatast. Sima No-Op-ok.

    Szoval altalaban van egy alap-reteg, ami mindig aktiv. Ha vizualisan szeretnenk elkepzelni, akkor ez a legalso. Amikor egy masik reteg is aktiv, az azon levo funkciok "elfedik" az (azonos pozicion levo) lentebbieket. Ha tobb reteg is egyszerre aktiv, akkor a logikailag legfelso aktiv reteghez rendelt funkciot fogja figyelembe venni a billentyuzet. Altalaban lehetoseg van egy transparent (de sok mas neven is fut) keycode-ot is hasznalni, aminek az a lenyege, hogy nem fedi el a reteg alatt levo funkciot. Ennek ugye nem sok ertelme van, ha csak egy-egy reteget kapcsolgatunk be az alap fole egyszerre, de ha harom vagy tobb reteg aktiv, akkor lehetoseget ad komponalasra.

    A valtogatasra van vagy fel tucat kulonbozo modszer, ami ilyen-olyan esetekben johet jol:
    - Valthatunk ideiglenesen, amig a billentyut nyomva tartjuk. Lenyomaskor bekapcsolhatunk vele egy reteget, felengedeskor kikapcsolhatjuk. Ezt csinalja a laptopokon az fn, de igy mukodik a normal shift is, ha egy pillanatra ugy tekintunk a kis es nagy betukre, mint ket egymas folott levo retegre, amit a shift-tel valthatunk.
    - Van gombnyomasra ide-oda kapcsolhato retegvaltas is. Ez kb. ugy mukodik, mint a caps-lock. Ha sok kulonbozo karaktert kell bevinni egy masik retegrol, akkor erdemes lehet talan ezt a valtast hasznalni az elozo helyett. Itt ugyan vesziteni fogunk egy extra leutest amikor majd vissza kell valtani, de ha olyan az input, akkor ez sokszor sokkal kenyelmesebb lehet. (peldaul szamologepezesnel a szamok lehetnek a jobb kez alatt, jelek pedig a masik oldalon)
    - Az elso variaciot kombinalhatjuk, hogy amellett hogy az adott billentyu retegvaltasra is hasznalhato, ha nem nyomunk meg semmi mast a valtott retegen, akkor felengedeskor egy masik funkciot valthatunk ki. Ezt rengetegen hasznaljak arra, hogy a modositoknak adjanak plusz egy funkciot, vagy epp arra, hogy a modositokat kozelebb vigyek a home-row-hoz (konkretan ra is lehet rakni (home-row mods)). Azt hogy a "felengedes" funkciojat minek kell triggerelnie, az megint csak egy vitatott kerdes, mert siman lehet egy timeout is a felengedes helyett (vagy a felengedes es a timeout hivhat kulonbozo funkciokat is attol fuggoen, hogy melyik tortenik elobb...) szoval ez egy nyitott kerdes - rengeteg szemelyre szabasi lehetoseggel.
    - Ezek nagyreszt kombinalhatok tapping-gel is, amiben az elobb emlitett valtasokat tovabb lehet komplikalni, peldaul olyannal, hogy 2-3 vagy tobb (gyors) leutesre kulonbozo retegekre lehet valtani. Igy akar egy billentyuvel is meg lehetne oldani az osszes retegvaltast.

    Es ezek meg csak az alapok voltak.

    A tovabbiakban eldontom, hogy ezek kozul erdemes lenne-e valamelyiket ennel jobban is kivesezni vagy egybol mehetunk a bonyolultabbakra.
    Ti hasznaljatok valamelyiket? Vagy szeretnetek valamelyikrol egy jobb diskurzust? Hatha adnank egymasnak valami uj, mar bevalt otletet! :)

    .spoiler
    Pompas lenne, ha sikerulne ennel a temanal vagy valami hasonlonal egy kicsit tobbet idozni - mikozben ezt a topikot aktivan tartjuk - mert a hatterben ugyan keszul egy ujabb, egy olyan otletekre epito firmware, amit soha az eletben nem latott ez az elcseszett hobbi, sajnos par komponens licensze miatt jelenlegi formaban nem tudom publikalni. A komponensek ujraimplementalasahoz pedig ujra szakirodalmat kell olvassak. Sohaj.

Új hozzászólás Aktív témák