]> ToastFreeware Gitweb - gregoa/zavai.git/blobdiff - README
Notify alarms using the new Notifier infrastructure
[gregoa/zavai.git] / README
diff --git a/README b/README
index a13e1c6e0c78106d99b527f4a45d76bb0ffbfa10..97f1d24fc9e32609954449a1e459971a7ed57634 100644 (file)
--- a/README
+++ b/README
@@ -11,9 +11,16 @@ Getting it to work:
 
  * Install dependencies
 
-   apt-get install valac libglib2.0-dev libdbus-glib-1-dev libgee-dev libgtk2.0-dev libwnck-dev
+   # Build time
+   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
 
-   Optional: apt-get install polygen polygen-data
+   # Runtime
+   apt-get install devicekit-power
+
+   # Optional runtime
+   apt-get install polygen polygen-data
 
  * Compile
 
@@ -36,6 +43,11 @@ Getting it to work:
    cp /usr/share/applications/FBReader.desktop ~/.zavai
    cp conf/satmon.desktop ~/.zavai
 
+ * Copy accessory scripts in ~/.zavai
+
+   cp hooks/display ~/.zavai
+   cp hooks/keyboard ~/.zavai
+
  * Update the information about the polygen grammars installed in the system
    (optional) 
 
@@ -97,15 +109,58 @@ Features / guide
  * 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 does
- nothing but print an error message on standard error.
+ 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.
+
+ You can use the big button on screen or the AUX button to acknowledge the
+ alarm and stop all the attention-seeking activities.
  
- When there will be a documented API to turn OFF the vibrator, I'll implement
- vibration on alarm.  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; gstreamer is used, so mostly any audio file format will
+ work. I'm not sure what will happen if you choose a video format: that might
+ work as well.
+
+ 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
+ main screen.
+
+ The calendar shows notes on every day. You can add notes just by typing on the
+ white space below the calendar.
+
+ The notes are saved in ~/.zavai/cal/YEAR/MONTH/DAY.txt, feel free to:
+  - sync it with your main computer;
+  - create a tool that populates it using the information from your
+    favourite calendar system;
+  - 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
@@ -121,54 +176,116 @@ TODO list / wish list
  * FSO API "documentation":
  http://git.freesmartphone.org/?p=specs.git;a=blob_plain;f=html/index.html;hb=HEAD
 
+using vala-dbus-binding-tool:
+  mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freedesktop.DBus.Introspectable.Introspect > /tmp/api.xml
+  vi /tmp/api.xml
+  convert to xml: 
+    remove quotes at begin and end
+    :$s/\n/^M/g
+  mkdir /tmp/foo
+  vala-dbus-binding-tool --directory=/tmp/foo --api-path=/tmp/api.xml
+
+  Async and D-Bus:
+  http://git.gnome.org/browse/vala/tree/tests/dbus/async.test
+
  * Features to add:
- - switch backlight keep mode when on power/recharging
- + check for effective visibility before showing the power popup menu (or
-   better, hide zavai window when going out of visibility, whether it's
-   currently visible or not)
+ - if GPS time is more than 1 minute and less than 1 hour different than the
+   system time, automatically sync it
+   if GPS time is more than 1 hour different than the system time, show a
+   "SYNC" button that will sync it if pressed
+ - stacked notifier, with stacked modal dialogs
+   (notify sms received during phone ringing during alarm)
+    - aux acks the topmost dialog
+    - custom ringtone per every notifier (stops ringtone of modifier below,
+      saving the time offset of playing so it can be reloaded and resumed)
+ - log
+    - flash aux when there are unacknowledged log entries
+    - 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
+    - play ringtone when someone calls (not useful to pick up, but just to
+      notify a call is there)
+      (but stop ringtone if aux pressed in the meantime, to avoid annoying
+      people)
+    - pick up phone call
+       - phone call applet (pushed when picking up)
+          - buttons for dtmf
+         - button for hold
+         - button for hangup
+       - icon in main screen (to go back to applet if going around zavai during
+        phone call)
+   to "move" the GSM device to my laptop:
+    socat FILE:/dev/ttySAC0 TCP-LISTEN:12345,bind=192.168.0.202
+    socat TCP:192.168.0.202:12345 PTY,link=/tmp/gps,raw,echo=0
  - alarm
-    - vibrate at alarm trigger
-    - 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
-    - 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
- - calendar, just the GTK calendar widget with buttons to go back, forth and
-   current (fill in with opimd if it will make sense)
-    - fill in day info with data coming from the laptop, but just read only,
-      without edit features. Good to check what's on for the day, and notes can
-      be taken with pen and paper for now
+ - 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
+ - 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-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
+ - 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
- - Wake up alarm
- - Toggle wireless
-    - turn on/off chip
-    - start/stop wicd
-    - start/stop wicd-client
+ - 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, ...)
@@ -177,7 +294,4 @@ TODO list / wish list
     - 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?)