diff --git a/scripts/core/sxmo_alarmclock.sh b/scripts/core/sxmo_alarmclock.sh deleted file mode 100755 index 69be2bd..0000000 --- a/scripts/core/sxmo_alarmclock.sh +++ /dev/null @@ -1,219 +0,0 @@ -#!/usr/bin/env sh - -# include common definitions -# shellcheck source=scripts/core/sxmo_common.sh -. "$(dirname "$0")/sxmo_common.sh" - -RTCWAKE="$(which sxmo_rtcwake.sh)" -ALARMCLOCK="$(which sxmo_alarmclock.sh)" - - -ALARMS="$HOME/.config/sxmo/alarms.tsv" -NOTIFICATION="${DEFAULT_ALARM:-/usr/share/sxmo/ring.ogg}" - -alarms() { - cat "$ALARMS" | cut -d $'\t' -f 1,2 | sed -E "s/^([^#].*)/\1 $icon_chk/; s/^#//" -} - -playalarm(){ - message="$1" - notification="${2:-$NOTIFICATION}" - echo mpv --quiet --no-video --loop "$notification" & - mpvid="$!" - CHOICE="$( - printf %b " - Snooze - Dismiss - " | - awk '{$1=$1};1' | grep '\w' | dmenu -p "$message" - )" - case "$CHOICE" in - Snooze) - notify-send "Still need to implement" - ;; - Dismiss) - kill "$mpvid" - ;; - esac -} - -# First argument should be the string like nyyyyyn -dayscron(){ - list="$1" - cronlist="" - for i in $(seq 0 6); do - if [ "${list:$i:1}" = "y" ]; then - cronlist="$cronlist$i," - fi - done - # Remove trailing , - cronlist="$(echo "$cronlist" | sed 's/,$//')" - # If no days were given, assume any day - [ -z "$cronlist" ] && cronlist="*" - printf %s "$cronlist" -} - -alarmcrons(){ - cat "$ALARMS" | sed '/^#/d' | while read line; do - hour="$(echo "$line" | awk -F '(\t|:)' '{print $1}')" - minute="$(echo "$line" | awk -F '(\t|:)' '{print $2}')" - message="$(echo "$line" | awk -F '(\t|:)' '{print $3}')" - days="$(echo "$line" | awk -F '(\t|:)' '{print $4}')" - alarm="$(echo "$line" | awk -F '(\t|:)' '{print $5}')" - printf "%s\n" "$minute $hour * * $(dayscron "$days") $RTCWAKE $ALARMCLOCK playalarm \"$message\" \"$alarm\"" - done -} - -setcrons(){ - ( - # All of the crons that aren't to do with the alarm clock - crontab -l | grep -v sxmo_alarmclock - # The alarm clock cron entries - alarmcrons - ) | crontab - -} - -togglealarm() { - alarm="$1" - time="$(echo "$alarm" | cut -d ' ' -f 1)" - description="$(echo "$alarm" | cut -d ' ' -f 2- | sed "s/ $icon_chk//")" - if echo "$alarm" | grep -q "$icon_chk\$"; then - # If the alarm contains the check, it needs to be disabled - sed -i -E "s/^($time\t$description)/#\1/" "$ALARMS" - else - # If the alarm doesn't contain the check, it needs to be enabled - sed -i -E "s/^#($time\t$description)/\1/" "$ALARMS" - fi - setcrons -} - -deletealarm() { - CHOICE="$( - printf %b "Close Menu\n$(alarms)" | awk '{$1=$1};1' | grep '\w' | - dmenu -p "Delete Alarm" - )" - if [ "$CHOICE" = "Close Menu" ]; then - return - else - time="$(echo "$CHOICE" | cut -d ' ' -f 1)" - description="$(echo "$CHOICE" | cut -d ' ' -f 2- | sed "s/ $icon_chk//")" - if echo "$CHOICE" | grep -q "$icon_chk\$"; then - # If the alarm contains the check, then the line to delete will start time\tdescription - sed -i -E "/^($time\t$description)/d" "$ALARMS" - else - # If the alarm doesn't contain the check, then the line to delete will a hash - sed -i -E "/^#($time\t$description)/d" "$ALARMS" - fi - setcrons - fi -} - -daylist(){ - list="$1" - echo "Sunday $( [ "${list:0:1}" = "y" ] && echo "$icon_chk" )" - echo "Monday $( [ "${list:1:1}" = "y" ] && echo "$icon_chk" )" - echo "Tuesday $( [ "${list:2:1}" = "y" ] && echo "$icon_chk" )" - echo "Wednesday $( [ "${list:3:1}" = "y" ] && echo "$icon_chk" )" - echo "Thursday $( [ "${list:4:1}" = "y" ] && echo "$icon_chk" )" - echo "Friday $( [ "${list:5:1}" = "y" ] && echo "$icon_chk" )" - echo "Saturday $( [ "${list:6:1}" = "y" ] && echo "$icon_chk" )" -} - -listtodays(){ - sed "/$icon_chk/ s/.*/y/; s/...*/n/" | tr -d '\n' -} - -toggleDay(){ - # The 7 long string eg nyyyyyn - days="$1" - # The number to change (0 indexed) - item="$2" - nextItem="$(( item + 1 ))" - pre="${days:0:item}" - post="${days:nextItem}" - current="${days:item:1}" - if [ "$current" = "y" ]; then - new="n" - else - new="y" - fi - echo "$pre$new$post" -} - -newalarm() { - time="$( - echo "Cancel" | - sxmo_dmenu_with_kb.sh -p "Time:" - )" - [ "$time" = "Cancel" ] && return - - description="$( - echo "Cancel" | - sxmo_dmenu_with_kb.sh -p "Description:" - )" - [ "$description" = "Cancel" ] && return - - days="nnnnnnn" - - while true; do - daytoggle="$( - printf %b "$(daylist "$days")\nSave\nCancel" | sxmo_dmenu.sh -p "Days:" - )" - [ "$daytoggle" = "Save" ] && break - [ "$daytoggle" = "Cancel" ] && return - case "$daytoggle" in - "Save" ) break ;; - "Cancel" ) return ;; - "Sunday"* ) days="$(toggleDay "$days" 0)" ;; - "Monday"* ) days="$(toggleDay "$days" 1)" ;; - "Tuesday"* ) days="$(toggleDay "$days" 2)" ;; - "Wednesday"* ) days="$(toggleDay "$days" 3)" ;; - "Thursday"* ) days="$(toggleDay "$days" 4)" ;; - "Friday"* ) days="$(toggleDay "$days" 5)" ;; - "Saturday"* ) days="$(toggleDay "$days" 6)" ;; - esac - done - - printf %b "$time\t$description\t$days\n" >> "$ALARMS" - - setcrons -} - -alarmclockmenu() { - while true; do - CHOICE="$( - printf %b " - $(alarms) - New Alarm - Delete Alarm - System Menu - Close Menu - " | - awk '{$1=$1};1' | grep '\w' | dmenu -p 'Alarms' - )" - [ -z "$CHOICE" ] && exit 1 - case "$CHOICE" in - "System Menu" ) - sxmo_appmenu.sh sys && exit - ;; - "Close Menu" ) - exit - ;; - "New Alarm" ) - newalarm - ;; - "Delete Alarm" ) - deletealarm - ;; - *) - togglealarm "$CHOICE" - ;; - esac - done -} - -if [ $# -gt 0 ]; then - "$@" -else - alarmclockmenu -fi diff --git a/scripts/core/sxmo_appmenu.sh b/scripts/core/sxmo_appmenu.sh index b97953c..5192d24 100755 --- a/scripts/core/sxmo_appmenu.sh +++ b/scripts/core/sxmo_appmenu.sh @@ -151,7 +151,7 @@ programchoicesinit() { $icon_aru Brightness ^ 1 ^ sxmo_brightness.sh up $icon_ard Brightness ^ 1 ^ sxmo_brightness.sh down $icon_phn Modem Toggle ^ 1 ^ sxmo_modemmonitortoggle.sh - $icon_phn Modem Reset ^ 1 ^ sxmo_modemmonitortoggle.sh reset + $icon_phn Modem Restart ^ 1 ^ sxmo_modemmonitortoggle.sh restart $icon_inf Modem Info ^ 0 ^ sxmo_modeminfo.sh $icon_phl Modem Log ^ 0 ^ sxmo_modemlog.sh $icon_wif Wifi $(