1 .\" Hey, EMACS: -*- nroff -*-
2 .TH ZAVAI 1 "18-FEB-2010"
4 .\" Some roff macros, for reference:
5 .\" .nh disable hyphenation
6 .\" .hy enable hyphenation
8 .\" .ad b justify to both left and right margins
9 .\" .nf disable filling
10 .\" .fi enable filling
11 .\" .br insert line break
12 .\" .sp <n> insert n+1 empty lines
13 .\" for manpage-specific macros, see man(7)
16 zavai \- GUI for operating the OpenMoko, closest to UNIX
21 is a word of the Bolognese language which means "useless thing of no
22 value". The idea that I'm trying to do what I can with what I have.
24 It is written with the purpose of working for me; everything else is optional.
25 Feature requests for things that I don't need will likely be ignored unless
26 of course they come with patches.
28 The Debian package cannot completely perform the installation work,
29 the remaining configuration needs to be performed by the user.
32 .B Install dbus.d configuration file
34 cp conf/zavai.conf /etc/dbus-1/system.d/
37 .B Select icons of favorite apps
39 Copy the .desktop files of applications you use more often into ~/.zavai. The following lines give an example, the
41 script of the openmoko community may have performed this already, but for later installed applications or other kinds of updates, this may be your reposponsibility:
44 cp /usr/share/applications/tangogps.desktop ~/.zavai
45 cp /usr/share/applications/navit.desktop ~/.zavai
46 cp /usr/share/applications/vala-terminal.desktop ~/.zavai
47 cp /usr/share/applications/midori.desktop ~/.zavai
48 cp /usr/share/applications/zhone.desktop ~/.zavai
49 cp /usr/share/applications/FBReader.desktop ~/.zavai
50 cp conf/satmon.desktop ~/.zavai
53 .B Copy accessory scripts in ~/.zavai
55 [for the very moment, this is a packaging bug - the files are not installed]
57 cp hooks/display ~/.zavai
58 cp hooks/keyboard ~/.zavai
61 .B Update information on polygen grammars
64 The preparator of this man page has no idea what polygen grammars are about. However, to update them, which is optional, execute
66 zavai-polygen-update-info
71 When running zavai, one cannot exclude the possibility that it crashes. This should not stop your phone, though, and you will want to restart it immediately, i.e. start zavai in a loop. When performing live update, e.g. upon the installation of a new Debian package, just quick the current instance (with debug->quit) and see the updated version starting.
74 export ZAVAI_ICONDIR=/usr/share/zavai/icons
75 export PATH="$PATH:/usr/share/zavai/lindi"
76 # currently this is a packaging bug, lindi seems not to be packed
80 # Make argv[0] always an absolute path
84 The script is yet not tested.
90 Push the power button to get the power menu, with options to suspend/shutdown/reboot, lock the screen and keep the backlight always on (useful if you are using the openmoko as a satellite navigator in the car)
95 Hold the power button longer to lock / unlock the screen. If the screen is locked you see a lock icon in the traybar.
97 A short push of the power button while locked will turn on the backlight for a bit, which is useful if you want to check the map for a moment. Another short push will show the main zavai window, which is useful if you want to see the time. Another short push will hide the main zavai window.
102 In the main window you see the time. If your GPS has a fix, the time comes from the GPS.
104 In the top left there is a gps icon. Push it to toggle the GPS to be always on (useful to restart tangogps or navit without needing to reacquire a fix).
106 In the bottom there is a button to access the main menu.
111 Zavai shows several tray bar buttons. One kills the current application (or goes back in the menu if the current application is zavai).
114 One hides and shows zavai.
116 One hides and shows the keyboard.
118 One shows the status of the battery.
123 The menu should be self-explanatory. It has options for simple GPS management tasks, setting an alarm, running applications, a task switcher, and a polygen interface.
128 It is possible to set an alarm, which will be shown in the alarm window. When the alarm expires, the phone wakes up if it is suspended, and zavai vibrates for 5 seconds.
130 It is planned to use the AUX button to acknowledge the alarm and stop the vibration; when this will happen, vibration can go on for more than 5 seconds.
132 When I'll implement some audio playing infrastructure, I'll implement playing an audio file as well.
134 Also missing are a popup that tells that an alarm is ringing, and a notifier for unacknowledged popups.
138 Details: the alarms are scheduled with at(1). Please see omhacks for simple suspend hooks that will wake up the phone to run scheduled at jobs.
143 You can reach the calendar from the menu or by clicking on the date in the main screen.
145 The calendar shows notes on every day. You can add notes just by typing on the white space below the calendar.
147 The notes are saved in ~/.zavai/cal/YEAR/MONTH/DAY.txt, feel free to:
149 sync it with your main computer;
151 create a tool that populates it using the information from your favourite calendar system;
153 interface zavai with a proper calendar system, without making the interface harder to use (if you can).
155 .SH Stability / design
157 Zavai currently focuses on the interface side, trying to make it easy for me
158 to reach the functions that I need. I try not to focus on hardware details
159 (yet) (when I can), so I build it on the freesmartphone framework, which is
160 unstable, underdocumented and sometimes untested, whose developers so far have
161 never answered my questions and whose API tends to change every now and again.
163 .SH TODO list / wish list
166 .B FSO API "documentation":
168 http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD
174 zavai does not look good in landscape mode
175 - replace menus with a widget taking a list of actions,
176 which then lays them out according to the screen size
178 set backlight with Randr (xrandr --prop shows "Backlight: 4 (0x00000004) range: (0,15)") and xbacklight uses it (note: the property is not available on the freerunner atm, it would be only for desktop systems, to avoid chowning the device under /sys/something)
180 volume control in power menu "Amp Spk" (-> learn/test libalsamixer something) /usr/share/vala/vapi/alsa.vapi
182 space buttons from sliders, to avoid shutting down instead of lowering the volume
184 fisheye list music player
185 (-> learn/test gstreamer libs)
186 - player page with seek/skip controls
188 - chosen song start playing if nothing is being played
189 - chosen song moves to playlist editor: play, add to
190 playlist, add dir to playlist (show a standard list
191 multiselectable with all the songs in the dir and only the
192 selected song selected; allow to select others, select
193 all, add selected to playlist)
194 - playlist as reorderable standard list, allow to delete
195 tracks, reorder tracks
196 - save playlist to file to reload later
197 - pause with headset button
199 battery without devkit: do the parsing via lua
201 contacts: show as a fancy focus+context list (see prefuse)
202 - vcard on e-vcard.{h,c}
203 - ical on libical-dev
205 - lua functions to read things
207 zavai-calendar as a separate app
209 zavai-contacts as a separate app
212 - vibrate at alarm trigger
213 - play sound at alarm trigger
214 - acknowledge alarms with AUX button
215 - then, vibrate and play sound for longer
216 - popup that tells that an alarm is ringing
217 - leave expired alarm on screen until acknowledged
218 (alarm status icon that also brings to alarm menu)
219 - remember alarm names (on request, maybe with an add feature)
220 and how often they are triggered, and show them most
222 - remember unexpired alarms persistently (again, a table in
223 sqlite?) so that they can be reinstated if zavai is restarted
224 - show active alarms and allow to delete them
227 + power on/off the gps and start/stop gpsd
228 + set to keep the GPS on during suspend
229 - use the gpsd protocol to know if there is a fix or not
230 - suspend/resume hooks to put the GPS into low power mode
232 next30: don't update if not shown currently on the notebook
234 gtk_calendar_set_detail_func
236 GSM power and network
237 - link to open SHR-dialer
239 icon to show if there are new messages
240 - link to open SHR-messages
242 switch backlight keep mode when on power/recharging
243 - the button changes the default for the current power mode
245 unlock screen when receiving phone calls
247 GPX status icon (off, waiting for fix, recording)
249 GPX waypoint using AUX button
253 track EPV (and similar) in gpx and kill trackpoints with
257 - shortcut icon in main screen
262 - start/stop wicd-client
264 Simple wireless scanner (code from guessnet, or minimal wicd client)
266 Suspend phone if not calling and gps is not on and backlight is not on (maybe with idle notifier?)
268 Phone from kapula (or just running kapula)
271 - Location aware (show timezones in order of distance from
274 Show timezone in clock
279 Why sometimes the phone will stop acting normal and will completely ignore the screen for the purpose of screen dimming, that is, it will dim the screen even if I'm using the touchscreen? (it was old ousaged brokenness)
281 Is there a way to lock the screen completely turning off the touchscreen, so that interrupts are not even generated?
284 .B Not quite needed yet:
286 GPX log with more features (quality, course, speed, ...)
288 Take a waypoint then show a menu with a timeout
289 - Add a scribbled note
291 - Add a text note (tickling the text input method thing)
292 If timeout expires, leave the waypoint with the automatic name
294 get fix events without requesting the GPX resource (and then? gpx log all the time? what for?)
299 you may consider subscribing to the
301 mailing list and pose your questions to the community.
305 was written by Enrico Zini <enrico@debian.org>
307 This manual page was adapted from the README by Steffen Moeller <moeller@debian.org>,
308 for the Debian project (and may be used by others).