GPECalendar

From Openmoko

Jump to: navigation, search

Contents

GPE: Calendar

Full featured calendar application available in most of the openmoko repositories. It was not designed directly for openmoko and finger navigation thus it brings along some drawbacks when using it, but most of the drawbacks can be worked around.

Features:

  • recurring events (daily, workdays, weekends, monthly, yearly)
  • alarms (with atd, even when Freerunner is turned off - in such case it will start up and fire the alarm)
  • entries without due-time, just a note for a particular day
  • different view modes (day, week, month, agenda)
  • multiple calendars
  • mimedir (vCal, iCal) data import/export

Links:

Screenshots:

Gpecal-scr-1.png Gpecal-scr-2.png Gpecal-scr-3.png Gpecal-scr-4.png Gpecal-scr-5.png Gpecal-scr-6.png


Problems and workarounds

Problems (on SHR-testing of 2009-03-03):

  1. alarms need atd - this is not available in SHR testing, but it can be installed from openmoko repository (see below). in SHR unstable atd-over-fso is available, hopefully it should also work.
  2. atd script does not run gpe-calendar if gpe-calendar is not running
  3. alarm sound needs /dev/dsp
  4. alarm sound needs esd
  5. alarm sound level is too high
  6. closing gpe-calendar window does not close the application
Workarounds (on SHR-testing of 2009-03-03):
ad problem 1
opkg install http://downloads.openmoko.org/repository/Om2008.8/armv4t/atd_0.70-r4_armv4t.opk
ad problem 2
this can be worked around using a bug in gpe-calendar :-) If gpe-calendar is run without a full path on the command line, like this
$ gpe-calendar &
then it prepares the atd script with current directory as its full path. we can thus make a script that will be run by atd instead of gpe-calendar and this script can actually run the calendar:
  • mkdir $HOME/.gpe
  • copy gpe-calendar script to $HOME/.gpe/
  • chmod 755 $HOME/.gpe/gpe-calendar
  • copy gpe-calendar.desktop to /usr/share/applications to run gpe-calendar from the workaround directory
ad problem 3
echo snd-pcm-oss > /etc/modutils/dev_dsp; update-modules; modprobe snd-pcm-oss
ad problem 4
  • opkg install esd
  • copy esd to /etc/init.d/ (esd package does not contain an init script?)
  • /etc/init.d/esd start
ad problem 5
the alarm sound level should be configurable in $HOME/.gpe/alarm.conf, but gpe-calendar ignores the level settings there :-(
a small (not fully satisfactory) workaround to this is contained in the gpe-calendar script described above, which sets the volume with amixer before running gpe-calendar
ad problem 6
the only possible workaround to this would probably need a recompilation of the package. so far, when you close the gpe-calendar window, it only "iconifies", e.i. goes away, but appears when switching tasks. The main problem of this state is, that when you shut down the phone, enlightenment waits for all running tasks and after 15s it complains about gpe-calendar not wanting to exit. so the only current solution is to quit gpe-calendar from its menu with File->Quit.

Attachments

$HOME/.gpe/gpe-calendar

workaround startup script

#!/bin/sh

if [ "x$1" = "x-s" -a "x$2" = "x0" ] \
&&  ! pidof gpe-calendar >/dev/null 2>/dev/null; then
        shift
        shift
fi

cd $HOME/.gpe
amixer set PCM 220
gpe-calendar $*

/usr/share/applications/gpe-calendar.desktop

[Desktop Entry]
Encoding=UTF-8
Name=Calendar
Comment=GPE Calendar
Exec=/home/root/.gpe/gpe-calendar
Terminal=false
Type=Application
Icon=gpe-calendar.png
Categories=Application;PIM;GPE;
StartupNotify=true
SingleInstance=true
X-home-applet-resizable=XY
X-home-applet-minwidth=200
X-home-applet-minheight=40

/etc/init.d/esd

#! /bin/sh
#
# esd
#
# chkconfig: 345 70 30
# description: esd
# processname: esd

PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=esd

[ -f /etc/default/rcS ] && . /etc/default/rcS

case "$1" in
    start)
        echo -n "Starting esd daemon: "
        start-stop-daemon --start --pidfile /var/run/${NAME}.pid --exec /usr/bin/esd -- -nobeeps &

        if [ $? = 0 ]; then
            echo "(ok)"
        else
            echo "(failed)"
        fi
        ;;
    stop)
        echo -n "Stopping esd daemon: "
        start-stop-daemon --stop --pidfile /var/run/${NAME}.pid --oknodo
        rm -f /var/run/${NAME}.pid
        echo "(done)"
        ;;
    restart|force-reload)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: /etc/init.d/esd {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0
Personal tools