Actually decrement usage count when releasing a service
[gregoa/zavai.git] / debian / zavai.1
1 .\"                                      Hey, EMACS: -*- nroff -*-
2 .TH ZAVAI 1 "18-FEB-2010"
3 .\"
4 .\" Some roff macros, for reference:
5 .\" .nh        disable hyphenation
6 .\" .hy        enable hyphenation
7 .\" .ad l      left justify
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)
14
15 .SH NAME
16 zavai \- GUI for operating the OpenMoko, closest to UNIX
17
18 .SH DESCRIPTION
19 .br
20 .B zavai
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.
23
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.
27
28 The Debian package cannot completely perform the installation work,
29 the remaining configuration needs to be performed by the user.
30
31 .br
32 .B Install dbus.d configuration file
33 .br
34 cp conf/zavai.conf /etc/dbus-1/system.d/
35
36 .br
37 .B Select icons of favorite apps
38 .br
39 Copy the .desktop files of applications you use more often into ~/.zavai. The following lines give an example, the
40 .I install.sh
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:
42
43  mkdir ~/.zavai
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
51
52 .br
53 .B Copy accessory scripts in ~/.zavai
54
55 [for the very moment, this is a packaging bug - the files are not installed]
56
57  cp hooks/display ~/.zavai
58  cp hooks/keyboard ~/.zavai
59
60 .br
61 .B Update information on polygen grammars
62 .br
63
64 The preparator of this man page has no idea what polygen grammars are about. However, to update them, which is optional, execute
65
66  zavai-polygen-update-info
67
68 .br
69 .B Program start
70
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.
72
73  #!/bin/sh
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
77  cd /usr/share/zavai
78  while true
79  do
80   # Make argv[0] always an absolute path
81   /usr/bin/zavai "$@"
82  done
83
84 The script is yet not tested.
85 .SH Features / guide
86
87 .br
88 .B Power menu
89
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)
91
92 .br
93 .B Lock screen
94
95 Hold the power button longer to lock / unlock the screen. If the screen is locked you see a lock icon in the traybar.
96
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.
98
99 .br
100 .B Main window
101
102 In the main window you see the time. If your GPS has a fix, the time comes from the GPS.
103
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).
105
106 In the bottom there is a button to access the main menu.
107
108 .br
109 .B Tray bar
110
111 Zavai shows several tray bar buttons. One kills the current application (or goes back in the menu if the current application is zavai).
112
113 .IP \(bu
114  One hides and shows zavai.
115 .IP \(bu
116  One hides and shows the keyboard.
117 .IP \(bu
118  One shows the status of the battery.
119
120 .br
121 .B The menu
122
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.
124
125 .br
126 .B Alarms
127
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.
129
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.
131  
132 When I'll implement some audio playing infrastructure, I'll implement playing an audio file as well.
133
134 Also missing are a popup that tells that an alarm is ringing, and a notifier for unacknowledged popups.
135
136 Patches are welcome.
137
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.
139
140 .br
141 .B Calendar
142
143 You can reach the calendar from the menu or by clicking on the date in the main screen.
144
145 The calendar shows notes on every day. You can add notes just by typing on the white space below the calendar.
146
147 The notes are saved in ~/.zavai/cal/YEAR/MONTH/DAY.txt, feel free to:
148 .IP \(bu
149 sync it with your main computer;
150 .IP \(bu
151 create a tool that populates it using the information from your favourite calendar system;
152 .IP \(bu
153 interface zavai with a proper calendar system, without making the interface harder to use (if you can).
154
155 .SH Stability / design
156
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.
162
163 .SH TODO list / wish list
164
165 .br
166 .B FSO API "documentation":
167
168  http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD
169
170 .br
171 .B Features to add:
172
173 .IP \(bu
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
177 .IP \(bu
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)
179 .IP \(bu
180 volume control in power menu "Amp Spk" (-> learn/test libalsamixer something) /usr/share/vala/vapi/alsa.vapi
181 .IP \(bu
182 space buttons from sliders, to avoid shutting down instead of lowering the volume
183 .IP \(bu
184 fisheye list music player
185    (-> learn/test gstreamer libs)
186     - player page with seek/skip controls
187     - playlist editor
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
198 .IP \(bu
199 battery without devkit: do the parsing via lua
200 .IP \(bu
201 contacts: show as a fancy focus+context list (see prefuse)
202     - vcard on e-vcard.{h,c}
203     - ical on libical-dev
204     - vcard+index file
205     - lua functions to read things
206 .IP \(bu
207 zavai-calendar as a separate app
208 .IP \(bu
209 zavai-contacts as a separate app
210 .IP \(bu
211 alarm
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
221       frequent first
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
225 .IP \(bu
226 work without ogpsd
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
231 .IP \(bu
232 next30: don't update if not shown currently on the notebook
233 .IP \(bu
234 gtk_calendar_set_detail_func
235 .IP \(bu
236 GSM power and network
237     - link to open SHR-dialer
238 .IP \(bu
239 icon to show if there are new messages
240     - link to open SHR-messages
241 .IP \(bu
242 switch backlight keep mode when on power/recharging
243     - the button changes the default for the current power mode
244 .IP \(bu
245 unlock screen when receiving phone calls
246 .IP \(bu
247 GPX status icon (off, waiting for fix, recording)
248 .IP \(bu
249 GPX waypoint using AUX button
250 .IP \(bu
251 GPX + Audio track
252 .IP \(bu
253 track EPV (and similar) in gpx and kill trackpoints with
254    bad accuracy
255 .IP \(bu
256 Audio note
257     - shortcut icon in main screen
258 .IP \(bu
259 Toggle wireless
260     - turn on/off chip
261     - start/stop wicd
262     - start/stop wicd-client
263 .IP \(bu
264 Simple wireless scanner (code from guessnet, or minimal wicd client)
265 .IP \(bu
266 Suspend phone if not calling and gps is not on and backlight is not on (maybe with idle notifier?)
267 .IP \(bu
268 Phone from kapula (or just running kapula)
269 .IP \(bu
270 Timezone selector
271     - Location aware (show timezones in order of distance from
272       current location)
273 .IP \(bu
274 Show timezone in clock
275
276 .TP
277 .B To find out
278 .IP \(bu
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)
280 .IP \(bu
281 Is there a way to lock the screen completely turning off the touchscreen, so that interrupts are not even generated?
282
283 .TP
284 .B Not quite needed yet:
285 .IP \(bu
286 GPX log with more features (quality, course, speed, ...)
287 .IP \(bu
288 Take a waypoint then show a menu with a timeout
289     - Add a scribbled note
290     - Add an audio note
291     - Add a text note (tickling the text input method thing)
292    If timeout expires, leave the waypoint with the automatic name
293 .IP \(bu
294 get fix events without requesting the GPX resource (and then? gpx log all the time? what for?)
295
296 .SH SEE ALSO
297 .BR xsession (1),
298 .br
299 you may consider subscribing to the
300 .IR pkg-fso
301 mailing list and pose your questions to the community.
302
303 .SH AUTHOR
304 .I zavai
305 was written by Enrico Zini <enrico@debian.org>
306 .PP
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).
309
310
311