Fontkodo: Ignore Touchpad
Kiam mi programadas aŭ verkas rakontojn per portebla komputilo dum vojaĝo en trajno, ofte okazas, ke pro subita skueto mia dikfingro tuŝas la tuŝplaton. La rezulto: la teksto, kiun mi tajpas, aperas tute aliloke ol kie mi intencis. Tio estas terure ĝena. En iu momento mi koleriĝis kaj decidis, ke mi ne plu volas suferi pro tio.
Do mi kreis malgrandan konzolan utilaĵon por la operaciumo Haiku, kies tasko estas filtri hazarde faritajn tuŝojn de la tuŝplato, kiam la portebla komputilo havas pli ol unu montrilon.

La algoritmo estas tre simpla: kiam oni petas ignori iun el la aparatoj, mia programo transdonas tiun peton al la operaciumo per BInputDevice→Stop(), kaj kiam la uzanto volas reaktivigi la aparaton, la utilaĵo vokas BInputDevice→Start():

La tuta funkcieco okupas ĉirkaŭ dudek liniojn de kodo, sen kalkuli la malplenajn. La ceteraj ducent okdek estas ornamaĵoj: kontrolado de enigo, erarmesagoj, kaj simila akvaĵo.
Nuntempe la utilaĵo estas destinita por uzo el la komandlinio kaj havas du reĝimojn — interagan kaj neinteragan. La neinteraga reĝimo estas aparte oportuna por uzi kiel sistemajn klavarkomandojn. Se vi konektas muson al la portebla komputilo post kiam ĝi jam startis, la tuŝplato kutime ricevas numeron 0, do oni povas malŝalti ĝin per unu sola klavakordo. Kaj estas saĝe havi ankoraŭ unu klavakordon por reŝalti ĉiujn antaŭe malŝaltitajn aparatojn: la utilaĵo ne estas rezidenta, ĝi ne kontrolas, kiom da montrilaj aparatoj restas en la sistemo, kaj se la uzanto malaktivigis la tuŝplaton kaj poste malkonektis la muson, la tuŝplato ne reaktivigos sin mem — kaj tiam la kursoro tute ne moviĝos.

Mi ankaŭ verkas grafikan fasadon por ĝi — replicant, kiu ŝargiĝos kune kun la operaciumo kaj restos en la memoro en la Deskbar Shelf (analogo de la taskoplekto en Vindozo). Tiel la uzanto povos ŝalti aŭ malŝalti aparatojn sen eniri la komandlinion. Mia GUI baziĝos sur la programo „AutoRaise” de mmu_man. Sed la verkado de grafika interfaco ne estas rapida procezo — kaj ĉar mi mem ne bezonas tiun funkcion, estas pli interesaj aferoj por fari. 🙂
Ekzemplo de la utilaĵo dum funkciado:

Fontkodo: Ignore Touchpad