diff --git a/configs/default_hooks/missed_call b/configs/default_hooks/missed_call new file mode 100644 index 0000000..7c69d25 --- /dev/null +++ b/configs/default_hooks/missed_call @@ -0,0 +1,8 @@ +#!/usr/bin/env sh + +# This script is executed (asynchronously) when you missed a call +# You can use it to play a ring tone + +#we simply remove the ring trigger file +#written by the ring hook and the ringing will stop +rm /tmp/ring.trigger diff --git a/configs/default_hooks/pickup b/configs/default_hooks/pickup new file mode 100644 index 0000000..0cdc784 --- /dev/null +++ b/configs/default_hooks/pickup @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +# This script is executed (asynchronously) when you pick up an incoming call + +# remove the ring trigger +rm /tmp/ring.trigger + +# kill any existing playback +pkill mpv diff --git a/configs/default_hooks/ring b/configs/default_hooks/ring new file mode 100644 index 0000000..fdb602d --- /dev/null +++ b/configs/default_hooks/ring @@ -0,0 +1,20 @@ +#!/usr/bin/env sh + +# This script is executed (asynchronously) when you get an incoming call +# You can use it to play a ring tone + +#we create a temporary trigger file /tmp/ring.trigger +#and ring for as long as it exists +#the missed_call or pickedup hooks delete +#delete this trigger again +touch /tmp/ring.trigger +i=0 +while [ -f /tmp/ring.trigger ]; do + #play the ring over and over again as long as the trigger persists + mpv --quiet --no-video /usr/share/sxmo/ring.ogg + i=$((i+1)) + if [ $i -gt 10 ]; then + #safety check to protect against runaway endless ringing + rm /tmp/ring.trigger + fi +done diff --git a/configs/default_hooks/sms b/configs/default_hooks/sms new file mode 100644 index 0000000..26fe4bc --- /dev/null +++ b/configs/default_hooks/sms @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + +# This script is executed after you received a text +#You can use it to play a notification sound or forward the sms elsewhere + +#The following parameters are provided: +#CONTACTNAME="$1" +#TEXT="$2" + +mpv --quiet --no-video /usr/share/sxmo/notify.ogg diff --git a/resources/notify.ogg b/resources/notify.ogg new file mode 100644 index 0000000..413f61d Binary files /dev/null and b/resources/notify.ogg differ diff --git a/resources/ring.ogg b/resources/ring.ogg new file mode 100644 index 0000000..e1bd034 Binary files /dev/null and b/resources/ring.ogg differ diff --git a/scripts/core/sxmo_xinit.sh b/scripts/core/sxmo_xinit.sh index 37fd039..148905a 100755 --- a/scripts/core/sxmo_xinit.sh +++ b/scripts/core/sxmo_xinit.sh @@ -66,9 +66,30 @@ daemonsneedingdbus() { } defaultconfig() { + #this is only run on the very first start of sxmo + mkdir -p "$XDG_CONFIG_HOME/sxmo" cp /usr/share/sxmo/appcfg/xinit_template "$XDG_CONFIG_HOME/sxmo/xinit" chmod u+rx "$XDG_CONFIG_HOME/sxmo/xinit" + + #Set some default hooks + mkdir -p "$XDG_CONFIG_HOME/sxmo/hooks" + if [ ! -e "$XDG_CONFIG_HOME/sxmo/hooks/ring" ]; then + cp /usr/share/sxmo/default_hooks/ring "$XDG_CONFIG_HOME/sxmo/hooks/ring" + chmod u+rx "$XDG_CONFIG_HOME/sxmo/hooks/ring" + fi + if [ ! -e "$XDG_CONFIG_HOME/sxmo/hooks/sms" ]; then + cp /usr/share/sxmo/default_hooks/sms "$XDG_CONFIG_HOME/sxmo/hooks/sms" + chmod u+rx "$XDG_CONFIG_HOME/sxmo/hooks/sms" + fi + if [ ! -e "$XDG_CONFIG_HOME/sxmo/hooks/pickup" ]; then + cp /usr/share/sxmo/default_hooks/pickup "$XDG_CONFIG_HOME/sxmo/hooks/pickup" + chmod u+rx "$XDG_CONFIG_HOME/sxmo/hooks/pickup" + fi + if [ ! -e "$XDG_CONFIG_HOME/sxmo/hooks/missed_call" ]; then + cp /usr/share/sxmo/default_hooks/missed_call "$XDG_CONFIG_HOME/sxmo/hooks/missed_call" + chmod u+rx "$XDG_CONFIG_HOME/sxmo/hooks/missed_call" + fi } customxinit() {