diff options
| author | epoch <epoch@hacking.allowed.org> | 2020-01-27 17:54:32 -0600 | 
|---|---|---|
| committer | epoch <epoch@hacking.allowed.org> | 2020-01-27 17:54:32 -0600 | 
| commit | 3714205d6a7c0f66b48ee40432a5c25a51c97b99 (patch) | |
| tree | d91965d589be7d4b5bab4e7d60a2efb8cd25d4bc /share/hackvr/examples | |
| parent | 679988a8ae60b2a8392c1f9de082a6690ef938a8 (diff) | |
| download | hackvr-3714205d6a7c0f66b48ee40432a5c25a51c97b99.tar.gz hackvr-3714205d6a7c0f66b48ee40432a5c25a51c97b99.zip | |
added ANOTHER example of a calendar program. might have figured out a good way to hashbang hackvr.
Diffstat (limited to 'share/hackvr/examples')
| -rwxr-xr-x | share/hackvr/examples/calendar/calvr | 115 | ||||
| -rwxr-xr-x | share/hackvr/examples/calendar/hackvr_coproc | 2 | 
2 files changed, 117 insertions, 0 deletions
| diff --git a/share/hackvr/examples/calendar/calvr b/share/hackvr/examples/calendar/calvr new file mode 100755 index 0000000..aa95388 --- /dev/null +++ b/share/hackvr/examples/calendar/calvr @@ -0,0 +1,115 @@ +#!/usr/bin/env -S hackvr_coproc /bin/bash +#draw a 7x7 grid +#top row gets the day names +#figure out what the first day of the week for that month is +#then looping is easy after that +#use date with format string of day-of-week for an alternate time of the viewing month's first day + +### :D atq in my calendar? +# atq files are stored in: /var/spool/cron/atjobs/ +# filename format: %1c %5x %8x +# order: queue, job number, time / 60 + +set -eo pipefail +year=2020 +month=2 +day=1 + +cw=30 +ch=30 + +yoff=51 +xoff=90 +backup=238 + +printf "%s move %s 0 -%s\n" "$USER" "$xoff" "$backup" + +refresh="yep" + +stdbuf -oL grep -v '^#' | while true;do +  if [ "$refresh" ];then +    unset refresh +    first_dow="$(date -d $month/1/$year +%w)" +    monthname="$(date -d $month/$day/$year +%B)" +    dow=$first_dow +    row=0 +    d=1 +    days_in_month=$(cal -d "$year-$month" | tr ' ' '\n' | grep . | tail -n1) +    printf "%s %s\n" "${monthname}" "${year}" | makelabel.sh "_MONTH_" $[$xoff / 2] $[$yoff + $ch + 5] 0 +    printf "<==\n" | makelabel.sh "_prevmonth_" $[0 - $cw] $[$yoff + $ch + 5] 0 +    printf "==>\n" | makelabel.sh "_nextmonth_" $[$xoff * 2 + $cw] $[$yoff + $ch + 5] 0 + +    while [ "$d" -le "$days_in_month" ];do +#      printf "%s %s : %s\n" "$row" "$dow" "$d" +      if [ -f ~/.local/var/cal/${year}_${month}_${d} ];then +        color=4 +      else +        color=5 +      fi +      printf "%s addshape %s 4  %s %s 0  %s %s 0  %s %s 0  %s %s 0\n" \ +             "_day_${d}_" "${color}" \ +             "$[$dow*$cw]"     "$[-1*$row*$ch + $yoff]" \ +             "$[$dow*$cw+$cw]" "$[-1*$row*$ch + $yoff]" \ +             "$[$dow*$cw+$cw]" "$[-1*$row*$ch+$ch + $yoff]" \ +             "$[$dow*$cw]"     "$[-1*$row*$ch+$ch + $yoff]" +      printf "%s\n" "${d}" | makelabel.sh "_day_${d}_" "$[$dow*$cw + 1]" "$[-1*$row*$ch + $yoff + 1]" 0 +      d=$[$d+1] +      dow=$[$dow + 1] +      if [ $dow = 7 ];then +        dow=0 +        row=$[$row + 1] +      fi +    done +    day="$(date +%e | tr -d ' ')" +#    printf "%s move 0 0 3\n" "_${day}_" +  fi +  read group action target +  #xmessage "$group $action $target" +  if [ "$action" = "action" ];then +    if [ "$target" = "_nextmonth_" ];then +      month=$[month + 1] +      if [ $month = 13 ];then +        month=1 +        year=$[$year + 1] +      fi +      printf "%s deleteallexcept %s\n" "$USER" "$USER" +      refresh="yep" +    fi +    if [ "$target" = "_prevmonth_" ];then +      month=$[month - 1] +      if [ $month = 0 ];then +        month=12 +        year=$[$year - 1] +      fi +      printf "%s deleteallexcept %s\n" "$USER" "$USER" +      refresh="yep" +    fi +    if [ "$target" = "_MONTH_" ];then +      month="$(xmessage -buttons January:1,February:2,March:3,April:4,May:5,June:6,July:7,August:8,September:9,October:10,November:11,December:12 'pick a month';echo $?)" +      printf "%s deleteallexcept %s\n" "$USER" "$USER" +      refresh="yep" +    fi +    if printf "%s\n" "$target" | grep '^_day_' 2>&1 >/dev/null;then +      d="$(printf "%s\n" "$target" | cut -d_ -f3)" +      file=~/.local/var/cal/${year}_${month}_${d} +      if [ -e "${file}" ];then +        derp=exists +      else +        derp=notexists +      fi +      x-terminal-emulator -e nano "${file}" +      if [ -e "${file}" ];then +        merp=exists +      else +        merp=notexists +      fi +      if [ "${derp}" != "${merp}" ];then +        printf "%s deleteallexcept %s\n" "$USER" +        refresh="yep" +      fi +    fi +  fi +  if [ "$action" = "quit" ];then +    exit +  fi +done diff --git a/share/hackvr/examples/calendar/hackvr_coproc b/share/hackvr/examples/calendar/hackvr_coproc new file mode 100755 index 0000000..8d2e127 --- /dev/null +++ b/share/hackvr/examples/calendar/hackvr_coproc @@ -0,0 +1,2 @@ +#!/bin/sh +exec socat exec:hackvr "exec:$*" | 
