{
  pkgs,
  ...
}:
let
  record = pkgs.writeShellScript "toggle-wf-record" ''
    PID_FILE="/tmp/wf-recorder.pid"

    if [[ $1 = "toggle" ]]; then
      OUTPUT_DIR="$HOME/Videos/recordings"
      FILENAME="$OUTPUT_DIR/recording_$(date +%Y%m%d_%H%M%S).mp4"
      SINK_DEV="$(${pkgs.pulseaudio.out}/bin/pactl get-default-sink).monitor"

      declare -A recordOptions=(
          [Monitor]="${pkgs.slurp}/bin/slurp -o"
          [Area]="${pkgs.slurp}/bin/slurp"
      )

      if [[ -f "$PID_FILE" ]]; then
        pid=$(cat "$PID_FILE")

        if kill "$pid" 2>/dev/null; then
          rm "$PID_FILE"
          echo "Stopped recording"
          notify-send "󰑋 RECORD" "Recording saved to $FILENAME"
        else
          echo "No process found, cleaning up"
          notify-send "󰑋 RECORD" "Failed: No process found, cleaning up"
          rm "$PID_FILE"
        fi
      else
        # Start recording
        choice=$(printf "%s\n" "''\${!recordOptions[@]}" | rofi -i -dmenu -config ~/.config/rofi/config.rasi -p "Which mode")

        if [[ -z "$choice" ]]; then
          notify-send "󰑋 RECORD" "Cancelled"
          exit 1
        fi

        mkdir -p "$OUTPUT_DIR"

        geometry="$(''\${recordOptions[$choice]})"

        if [[ -z "$geometry" ]]; then
          notify-send "󰑋 RECORD" "Cancelled"
          exit 1
        fi

        ${pkgs.wf-recorder}/bin/wf-recorder -y \
        -g "$geometry" \
        --audio="$SINK_DEV" \
        -f "$FILENAME" &
        echo $! > "$PID_FILE"
        echo "Started recording: $FILENAME"
      fi
    fi

    if [ -f "$PID_FILE" ]; then
      jq -nc --arg text "on" --arg class "on" '{text: $text, class: $class, alt: $class}'
    else
      jq -nc --arg text "off" --arg class "off" '{text: $text, class: $class, alt: $class}'
    fi
  '';
in
record
