#!/bin/bash if [ "$#" -lt 3 ]; then echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m" APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app") APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com") ICON_REF=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)") CUSTOM_EXEC="" MIME_TYPES="" INTERACTIVE_MODE=true else APP_NAME="$1" APP_URL="$2" ICON_REF="$3" CUSTOM_EXEC="$4" # Optional custom exec command MIME_TYPES="$5" # Optional mime types INTERACTIVE_MODE=false fi # Ensure valid execution if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_REF" ]]; then echo "You must set app name, app URL, and icon URL!" exit 1 fi # Refer to local icon or fetch remotely from URL ICON_DIR="$HOME/.local/share/applications/icons" if [[ $ICON_REF =~ ^https?:// ]]; then ICON_PATH="$ICON_DIR/$APP_NAME.png" if curl -sL -o "$ICON_PATH" "$ICON_REF"; then ICON_PATH="$ICON_DIR/$APP_NAME.png" else echo "Error: Failed to download icon." exit 1 fi else ICON_PATH="$ICON_DIR/$ICON_REF" fi # Use custom exec if provided, otherwise default behavior if [[ -n $CUSTOM_EXEC ]]; then EXEC_COMMAND="$CUSTOM_EXEC" else EXEC_COMMAND="omarchy-launch-webapp $APP_URL" fi # Create application .desktop file DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop" cat >"$DESKTOP_FILE" <>"$DESKTOP_FILE" fi chmod +x "$DESKTOP_FILE" if [[ $INTERACTIVE_MODE == true ]]; then echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n" fi