* Install dependencies
# Build time
- apt-get install valac libglib2.0-dev libdbus-glib-1-dev libgee-dev libgtk2.0-dev libwnck-dev libdevkit-power-gobject-dev
+ apt-get install valac libglib2.0-dev libdbus-glib-1-dev libgee-dev libgtk2.0-dev \
+ libwnck-dev libdevkit-power-gobject-dev \
+ libomhacks-dev liblua5.1-dev
# Runtime
apt-get install devicekit-power
* Alarms
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.
+ the alarm expires, the phone wakes up if it is suspended, and zavai vibrates,
+ turns on baclight, shows a big ACK button and flashes the AUX led for 30
+ seconds. It also plays some music.
- 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.
+ You can use the big button on screen or the AUX button to acknowledge the
+ alarm and stop all the attention-seeking activities.
- When I'll implement some audio playing infrastructure, I'll implement playing
- an audio file as well.
+ If you want to change the alarm ringtone, you can set:
+ ringtone_alarm = "file:///some/where/file.ext"
+ in ~/.zavai/config
- Also missing are a popup that tells that an alarm is ringing, and a notifier
- for unacknowledged popups.
+ Alarms (acknowledged or not) are logged in "~/.zavai/log-alarm/". Still
+ missing, howerver, is a way to show that an alarm rang and noone noticed.
Patches welcome.
+ Details: the alarms are scheduled with at(1): they stay scheduled even if
+ zavai is restarted, and you can see them with "atq". Please see omhacks for
+ simple suspend hooks that will wake up the phone to run scheduled at jobs.
+
* Calendar
You can reach the calendar from the menu or by clicking on the date in the
- interface zavai with a proper calendar system, without making the interface
harder to use (if you can).
+ * GSM
+
+ If you have a pin, add 'sim_pin = "1234"' to ~/.zavai/config
+
+ Don't start frameworkd at boot. Get rid of fso-usaged from your system (it
+ will be started by dbus when frameworkd starts, if it's there).
+
+ Now you can use zavai to turn on GSM, including powering up the antenna and
+ providing the PIN if required by the SIM.
+
+ It does not currently do anything else beside turning things on. It is useful,
+ however, to make GSM services available to simple scripts like SMS or contact
+ list dump tools.
+
+
Stability / design
Zavai currently focuses on the interface side, trying to make it easy for me
http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD
* Features to add:
- - zavai-calendar to use as a calendar popup for lxde
- - option to choose toplevel or popup (and where to show the popup)
- - zavai calendar: show month notes
- - zavai calendar: show global notes
+ - log
+ - write data to disk as log happens (to have at least partial logs if power
+ is cut)
+ - more detailed GPX data (dop, elev..)
+ - message (structured) (json?)
+ - turn on/off gsm
+ + start frameworkd as a subprocess, configured to only do phone
+ + go through the dbus motions of turning on this and that, and entering PIN
+ hardcoded in zavai config
+ + GSM status on main screen (with messages while coming online, and
+ operator, power and so on)
+ - log and refuse incoming calls and messages
+ - alarm
+ + play sound at alarm trigger
+ - leave expired alarm on screen until acknowledged
+ (alarm status icon that also brings to alarm menu)
+ - remember alarm names (on request, maybe with an add feature) and how
+ often they are triggered, and show them most frequent first
+ - show active alarms and allow to delete them
+ - fisheye list music player
+ (-> learn/test gstreamer libs)
+ - player page with seek/skip controls
+ - playlist editor
+ - chosen song start playing if nothing is being played
+ - chosen song moves to playlist editor: play, add to playlist, add dir to playlist
+ (show a standard list multiselectable with all the songs in the dir and
+ only the selected song selected; allow to select others, select all, add
+ selected to playlist)
+ - playlist as reorderable standard list, allow to delete tracks, reorder tracks
+ - save playlist to file to reload later
+ - pause with headset button
+ - audio notes
+ - record audio notes, logging start and stop so it gets an associated GPX
+ - shortcut icon in main screen
+ - check gobject introspection and dynamic loading
+ - there could be a basic loader core that just dynamically loads bits as
+ available/needed. Only the battery icon and calendar can be loaded on a
+ laptop, while on the moko one can also load the power menu.
+ Different bits can effectively work as plugins, to be there or not.
+ Alternative plugins can be loaded based on different technologies, too (a
+ gpsd satellite monitor, or a fso satellite monitor).
+ - zavai does not look good in landscape mode
+ - replace menus with a widget taking a list of actions, which then lays
+ them out according to the screen size
+ - 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)
+ - volume control in power menu "Amp Spk"
+ (-> learn/test libalsamixer something)
+ /usr/share/vala/vapi/alsa.vapi
+ - space buttons from sliders, to avoid shutting down instead of lowering the volume
+ - battery without devkit: do the parsing via lua
- contacts: show as a fancy focus+context list (see prefuse)
+ - vcard on e-vcard.{h,c}
+ - ical on libical-dev
+ - vcard+index file
+ - lua functions to read things
+ - zavai-calendar as a separate app
+ - zavai-contacts as a separate app
+ - calendar
+ - next30: don't update if not shown currently on the notebook
+ - gtk_calendar_set_detail_func
+ - GPS FixNow mode for sleeping
- GSM power and network
- link to open SHR-dialer
- icon to show if there are new messages
- link to open SHR-messages
- switch backlight keep mode when on power/recharging
- the button changes the default for the current power mode
- - alarm
- + vibrate at alarm trigger
- - play sound at alarm trigger
- - acknowledge alarms with AUX button
- - then, vibrate and play sound for longer
- - popup that tells that an alarm is ringing
- - leave expired alarm on screen until acknowledged
- (alarm status icon that also brings to alarm menu)
- - remember alarm names (on request, maybe with an add feature) and how
- often they are triggered, and show them most frequent first
- - remember unexpired alarms persistently (again, a table in sqlite?) so
- that they can be reinstated if zavai is restarted
- - show active alarms and allow to delete them
- unlock screen when receiving phone calls
- GPX status icon (off, waiting for fix, recording)
- GPX waypoint using AUX button
- GPX + Audio track
- track EPV (and similar) in gpx and kill trackpoints with bad accuracy
- - Audio note
- - shortcut icon in main screen
- - Toggle wireless
- - turn on/off chip
- - start/stop wicd
- - start/stop wicd-client
- - Simple wireless scanner (code from guessnet)
+ - Simple wireless scanner (code from guessnet, or minimal wicd client)
- Suspend phone if not calling and gps is not on and backlight is not on
(maybe with idle notifier?)
- Phone from kapula (or just running kapula)
- - Split polygen applet in a separate app, ran via a .desktop file
- (faster zavai startup time, can then integrate a browser in the polygen
- applet, makes more sense altogether)
- - Is there a way to lock the screen completely turning off the touchscreen, so
- that interrupts are not even generated?
- Timezone selector
- Location aware (show timezones in order of distance from current
location)
- Show timezone in clock
* To find out
- - Why sometimes the phone will stop acting normal and will completely ignore
+ + 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?
+ screen even if I'm using the touchscreen? (it was old ousaged brokenness)
+ - Is there a way to lock the screen completely turning off the touchscreen, so
+ that interrupts are not even generated?
* Not quite needed yet:
- GPX log with more features (quality, course, speed, ...)
- Add an audio note
- Add a text note (tickling the text input method thing)
If timeout expires, leave the waypoint with the automatic name
- - restart zavai
- (also on dbus fuckup)
- (can be done by just quitting and let the runner script restart it)
- get fix events without requesting the GPX resource (and then? gpx log all the time? what for?)