From 08ed9a5dffc265eed17739332b50ef9847e5f69e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 11:39:57 +0200 Subject: [PATCH] Add web app management to Omarchy menu --- bin/omarchy-menu | 10 ++++---- bin/omarchy-webapp-install | 48 ++++++++++++++++++++++++++++++++++++++ bin/omarchy-webapp-remove | 39 +++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 4 deletions(-) create mode 100755 bin/omarchy-webapp-install create mode 100755 bin/omarchy-webapp-remove diff --git a/bin/omarchy-menu b/bin/omarchy-menu index e0b3254a..d1f939ee 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -88,8 +88,9 @@ show_setup_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Package\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in - *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + case $(menu "Install" "󰣇 Package\n Web App\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in + *Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-install ;; + *Web*) terminal $OMARCHY_BIN_PATH/omarchy-webapp-install ;; *Theme*) terminal $OMARCHY_BIN_PATH/omarchy-theme-install ;; *Dropbox*) terminal $OMARCHY_BIN_PATH/omarchy-setup-dropbox ;; *Steam*) terminal $OMARCHY_BIN_PATH/omarchy-setup-steam ;; @@ -99,8 +100,9 @@ show_install_menu() { } show_remove_menu() { - case $(menu "Remove" "󰣇 Package\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in - *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-uninstall ;; + case $(menu "Remove" "󰣇 Package\n Web App\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in + *Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-remove ;; + *Web*) terminal $OMARCHY_BIN_PATH/omarchy-webapp-remove ;; *Theme*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-remove ;; *Fingerprint*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fingerprint --remove" ;; *Fido2*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fido2 --remove" ;; diff --git a/bin/omarchy-webapp-install b/bin/omarchy-webapp-install new file mode 100755 index 00000000..1e4cb179 --- /dev/null +++ b/bin/omarchy-webapp-install @@ -0,0 +1,48 @@ +#!/bin/bash + +if [ "$#" -ne 3 ]; then + ~/.local/share/omarchy/bin/omarchy-show-logo + 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_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)") +else + APP_NAME="$1" + APP_URL="$2" + ICON_URL="$3" +fi + +if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then + echo "You must set app name, app URL, and icon URL!" + exit 1 +fi + +ICON_DIR="$HOME/.local/share/applications/icons" +DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop" +ICON_PATH="$ICON_DIR/$APP_NAME.png" + +mkdir -p "$ICON_DIR" + +if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then + echo "Error: Failed to download icon." + return 1 +fi + +cat >"$DESKTOP_FILE" <