#!/usr/bin/env bash

# rofi theme
theme="$HOME/.config/rofi/compact_without_icons.rasi"

get_options() {
  echo "  Capture Region"
  echo "  Capture Region (without saving)"
  echo "  Capture Screen"
  echo "  Capture Screen (without saving)"
  echo "  Record Region (GIF)"
  echo "  Record Screen (GIF)"
  echo "  Record Region (MP4)"
  echo "  Record Screen (MP4)"
  #echo "  Record Region (MP4+audio_virt)"
  #echo "  Record Region (MP4+audio_mic)"
  #echo "  Record Audio virt"
  #echo "  Record Audio mic"
  echo "  Stop Recording"
}

main() {

  # get choice from rofi
  choice=$( (get_options) | rofi -dmenu -i -fuzzy -p "" -theme "$theme")

  # if user has not picked anything, exit
  if [[ -z "${choice// /}" ]]; then
    exit 1
  fi

  # run the selected command
  case $choice in
  '  Capture Region (without saving)')
    screenshot -crtc
    ;;
  '  Capture Region')
    screenshot -crtf
    ;;
  '  Capture Screen (without saving)')
    screenshot -cstc
    ;;
  '  Capture Screen')
    screenshot -cstf
    ;;
  '  Record Region (GIF)')
    screenshot -rrg
    ;;
  '  Record Screen (GIF)')
    screenshot -rsg
    ;;
  '  Record Region (MP4)')
    screenshot -rrv
    ;;
  '  Record Screen (MP4)')
    screenshot -rsv
    ;;
  '  Record Region (MP4+audio_virt)')
    screenshot -rrav
    ;;
  '  Record Region (MP4+audio_mic)')
    screenshot -rrmv
    ;;
  '  Record Audio virt')
    screenshot -rav
    ;;
  '  Record Audio mic')
    screenshot -ram
    ;;
  '  Stop Recording')
    screenshot -s
    ;;
  esac

  # done
  set -e
}

main &

exit 0
