Na pĹedmÄt NovĂĄ mĂŠdia jsem potĹeboval udÄlat presentaci toho co jsem zatĂm vytvoĹil a napadlo mne, Ĺže bych si mohl ochodit ovlĂĄdĂĄnĂ tĂŠ presentace pomocĂ mobilnĂho telefonu. UĹž jsem to jednou vidÄl na pĹedloĹskĂŠm openweekendu kde mobil jako dĂĄlkovĂŠ ovlĂĄdĂĄnĂ presentace pouĹžĂval Pavel Machek, kernelovĂ˝ to vĂ˝vojĂĄĹ, toho Äasu zamÄstnanec SuSE (pardĂłn, chtÄl jsem ĹĂct Novellu). Jednou jsem s nĂm dÄlal rozhovor pro Terabajt a musĂm ĹĂci, Ĺže je to hodnÄ dobrĂ˝ ÄlovÄk (ve smyslu anglickĂŠho nice).
Za ten rok ale vĂ˝voj na tomto poli urÄitÄ musel trochu pokroÄit a tak jsem se dal do hledĂĄnĂ zdrojĹŻ, jak Ĺže to ten Pavel tehdy udÄlal. Jako prvnĂ jsem naĹĄel softĂk pro K750i, ale jĂĄ mĂĄm bohuĹžel telefon o kousek starĹĄĂ: T630. Hledal jsem trochu vĂc a naĹĄel tĹeba tohle. To se mi ale stejnÄ nepodaĹilo rozchodit, aĹž jsem se dostal pĹes strĂĄnku Sony Ericsson T630 and Linux na projekt tsemgr.
Ten umĂ kromÄ jinĂ˝ch vÄcĂ jako je zazĂĄlohovat smsky a telefonnĂ seznam z telefonu do poÄĂtaÄe, nebo opaÄnÄ z poÄĂtaÄe naplnit telefon, takĂŠ jednu funkci nazvanou remote. Nejde o nic jinĂŠho, neĹž Ĺže po spĂĄrovĂĄni (klasicky pouĹžĂvĂĄm bluez) a klepnutĂ na tlaÄĂtko connect prĂĄvÄ na kartÄ remote se vĂĄm do telefonu v sekci pĹipojitelnost menu pĹĂsluĹĄenstvĂ objevĂ menu, kterĂŠ v tom programu (respektive v jeho konfigu ~/.tsemgr/tsemgr_remote.conf) definujete.
KaĹždĂ˝ pĹĂkaz z menu pak odpovĂdĂĄ nÄjakĂŠmu pĹĂkazu shellu. TĹeba pro xmms je uĹž situace jasnĂĄ a staÄĂ zadefinovat poloĹžky tĹeba takhle:
0,root,xmms, 1,xmms,play,xmms-shell -e play 1,xmms,stop,xmms-shell -e stop
atd.
OstatnÄ tenhle pĹĂklad je uĹž v tom konfigu obsaĹžen. JenĹže co kdyĹž chci ovlĂĄdat aplikaci jako je tĹeba Acrobat Reader, nebo jako v mĂŠm pĹĂpadÄ pspresent (dÄlal jsem prezentaci v LaTeXu pomocĂ maker ha-prosper)? PotĹeboval jsem nÄco, co by pĹi nÄjakĂŠm pĹĂkazu shellu vygenerovalo event jako by byla stisknuta nÄjakĂĄ klĂĄvesa a poslalo jej XĹŻm. No a nebudu vĂĄs napĂnat, ale naĹĄel jsem dost dobrĂ˝ projektĂk android. JednĂĄ se o pokus udÄlat defakto makra prĂĄvÄ z eventĹŻ X11 a v podstatÄ by to mÄlo fungovat tak, Ĺže vy si nejdĹĂv „nahrajete“ svoje chovĂĄnĂ v X (kam jste klikli, jakou klĂĄvesu zmĂĄÄkli) a pak kdyĹž to spustĂte jako skript, tak se to odehraje znova. Kolega v prĂĄci mÄ asi pĹed rokem ĹĂkal o nÄÄem podobnĂŠm pro Windows, kde mĂĄ nÄco podobnĂŠho jeĹĄtÄ daleko vÄtĹĄĂ ViĹžinĂĄm (kdo nÄkdy programoval nÄjakĂŠ sloĹžitÄjĹĄĂ skripty tĹeba pro sprĂĄvu AD domĂŠny, tak mi dĂĄ nejspĂĹĄ za pravdu, Ĺže to uĹž by muselo bĂ˝t sakra velkĂĄ Ăşspora Äasu aby se to nevyplatilo prostÄ naklikat v tÄch prĹŻvodcĂch). Kolega prĂ˝ mÄl kolegu, co takhle odeĹĄel na obÄd, pustil tohle udÄlĂĄtko a neĹž se vrĂĄtil, tak mÄl pĹŻlku dennĂ prĂĄce hotovou. No nevĂm. JĂĄ bych se asi bĂĄl, Ĺže se vrĂĄtĂm a budu mĂt naformĂĄtovanĂ˝ poÄĂtaÄ (ono kdyby ve vhodnĂ˝ okamĹžik na vhodnĂŠ mĂsto vyskoÄila neÄekanÄ vhodnĂĄ hlĂĄĹĄka 😉
NicmĂŠnÄ abych se vrĂĄtil k tĂŠmatu. Po asi tĹetĂ instalaci (android totiĹž nenĂ dostupnĂ˝ v emerge balĂÄkovacĂm systĂŠmu mĂŠho Gentooo, tak jsem mÄl trochu problĂŠmy s cestami), ale nakonec se povedlo a udÄlal jsem si takovĂŠhle skriptĂky:
$ cat ~/bin/prosper/vpred
#!/usr/bin/wish
wm withdraw .
set failures 0
package require android
proc waitfor_window { name { howlong 60 } } {
set result ""
while 1 {
catch { set result [ exec xwininfo -name $name ] } error
if [ string equal "" $result ] {
if { $howlong == 0 } { return 0 }
incr howlong -1
after 1000
continue
}
regexp {Window id: (0x[0-9a-f]*)} $result -> id
return $id
}
}
send_xevents key Right
# report and exit
#puts "Total failures: $failures"
exit
V podstatÄ je to celĂŠ nÄjakĂ˝ pĹĂklad, kterĂ˝ jsem sebral v distribuci android, jedinĂ˝ zajĂmavĂ˝ je tenhle ĹĂĄdek:
send_xevents key Right
Tady to staÄĂ zmÄnit na
send_xevents key Left
a mĂĄte skript vzad. V tom konfigu tsemgr_remote.conf jsem pak zadefinoval tohle:
0,root,prosper, 1,prosper,Dalsi,/home/nax/bin/prosper/vpred 1,prosper,Predchozi,/home/nax/bin/prosper/zpet
No a zase se mĹŻĹžu chlubit o nÄco lepĹĄĂm prezentĂĄtorskĂ˝m umÄnĂm. Mimochodem cviÄĂcĂmu se to vĂĄĹžnÄ lĂbilo a za prezentaci jsem nejen tedy kĹŻli tomuhle dostal plnĂ˝ poÄet.
Napsat komentář
Pro přidávání komentářů se musíte nejdříve přihlásit.