diff --git a/configs/applications/sxmo-phone-menu.desktop b/configs/applications/sxmo-phone-menu.desktop new file mode 100644 index 0000000..68471a7 --- /dev/null +++ b/configs/applications/sxmo-phone-menu.desktop @@ -0,0 +1,6 @@ +[Desktop Entry] +Name=Sxmo Phone Menu +Exec=sxmo_phonemenu.sh +Terminal=false +Type=Application +MimeType=x-scheme-handler/tel diff --git a/configs/firefox/handlers.json b/configs/firefox/handlers.json new file mode 100644 index 0000000..b30af8f --- /dev/null +++ b/configs/firefox/handlers.json @@ -0,0 +1,25 @@ +{ + "defaultHandlersVersion": { + "en-US": 4 + }, + "mimeTypes": { + "application/pdf": { + "action": 3, + "extensions": [ + "pdf" + ] + } + }, + "schemes": { + "tel": { + "action": 2, + "ask": false, + "handlers": [ + { + "name": "sxmo", + "path": "/usr/bin/sxmo_open.sh" + } + ] + } + } +} \ No newline at end of file diff --git a/configs/xdg/mimeapps.list b/configs/xdg/mimeapps.list index c103a44..387baa3 100644 --- a/configs/xdg/mimeapps.list +++ b/configs/xdg/mimeapps.list @@ -5,3 +5,4 @@ image/gif=sxmo-sxiv.desktop audio/x-m4a=sxmo-mpv-music.desktop audio/mpeg=sxmo-mpv-music.desktop application/pdf=sxmo-zathura.desktop +x-scheme-handler/tel=sxmo-phone-menu.desktop diff --git a/scripts/core/sxmo_contactmenu.sh b/scripts/core/sxmo_contactmenu.sh index 8fca2df..3df6ffa 100755 --- a/scripts/core/sxmo_contactmenu.sh +++ b/scripts/core/sxmo_contactmenu.sh @@ -5,7 +5,12 @@ newcontact() { name="$(echo | sxmo_dmenu_with_kb.sh -p "$icon_usr Name")" - number= + + number="$1" + if [ -n "$number" ]; then + number="$(valid_number "$number")" + fi + while [ -z "$number" ]; do number="$(sxmo_contacts.sh --unknown | sxmo_dmenu_with_kb.sh -p "$icon_phl Number")" number="$(valid_number "$number")" @@ -132,4 +137,10 @@ main() { done } -main +if [ -n "$1" ]; then + cmd="$1" +else + cmd=main +fi + +"$cmd" "$@" diff --git a/scripts/core/sxmo_phonemenu.sh b/scripts/core/sxmo_phonemenu.sh new file mode 100644 index 0000000..1fae7d9 --- /dev/null +++ b/scripts/core/sxmo_phonemenu.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env sh + +# shellcheck source=scripts/core/sxmo_common.sh +. "$(dirname "$0")/sxmo_common.sh" + +set -e + +number="$(printf "%s" "$1" | sed -e "s/^tel://")" + +number="$(sxmo_validnumber.sh "$number")" + +result="$(printf "%s Call %s\n%s Text %s\n%s Save %s\n%s Close Menu\n" \ + "$icon_phn" "$number" "$icon_msg" "$number" "$icon_sav" "$number" \ + "$icon_cls" \ + | sxmo_dmenu.sh -p "Action")" + +case "$result" in + *Call*) + sxmo_modemdial.sh "$number" + ;; + *Text*) + sxmo_textmenu.sh "$number" + ;; + *Save*) + sxmo_contactmenu.sh newcontact "$number" + ;; +esac