From b8bd1d1d6cd220c73d53773982ee01703b7400aa Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Fri, 22 Aug 2025 22:22:29 +0200 Subject: [PATCH] Add tsui to Tailscale installer (#604) --- bin/omarchy-install-tailscale | 7 ++++- bin/omarchy-menu | 6 ++-- bin/omarchy-tui-install | 54 +++++++++++++++++++++++++++++++++++ bin/omarchy-tui-remove | 36 +++++++++++++++++++++++ default/hypr/apps/system.conf | 15 ++++------ install.sh | 1 + install/apps/tuis.sh | 5 ++++ 7 files changed, 112 insertions(+), 12 deletions(-) create mode 100755 bin/omarchy-tui-install create mode 100755 bin/omarchy-tui-remove create mode 100644 install/apps/tuis.sh diff --git a/bin/omarchy-install-tailscale b/bin/omarchy-install-tailscale index 6c859c3f..c6dbe03f 100755 --- a/bin/omarchy-install-tailscale +++ b/bin/omarchy-install-tailscale @@ -1,8 +1,13 @@ #!/bin/bash curl -fsSL https://tailscale.com/install.sh | sh +curl -fsSL https://neuralink.com/tsui/install.sh | bash echo -e "\nStarting Tailscale..." sudo tailscale up --accept-routes -omarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png +echo -e "\nAdd tsui to sudoers..." +echo "$USER ALL=(ALL) NOPASSWD: $(which tsui)" | sudo tee /etc/sudoers.d/tsui + +omarchy-tui-install "Tailscale" "sudo tsui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png +omarchy-webapp-install "Tailscale Admin Console" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 0276143b..5cfe3a0e 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -172,9 +172,10 @@ show_setup_config_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Package\n Web App\n Service\n Style\n󰵮 Development\n Editor\n󱚤 AI\n Gaming") in + case $(menu "Install" "󰣇 Package\n Web App\n TUI\n Service\n Style\n󰵮 Development\n Editor\n󱚤 AI\n Gaming") in *Package*) terminal omarchy-pkg-install ;; *Web*) present_terminal omarchy-webapp-install ;; + *TUI*) present_terminal omarchy-tui-install ;; *Service*) show_install_service_menu ;; *Style*) show_install_style_menu ;; *Development*) show_install_development_menu ;; @@ -289,9 +290,10 @@ show_install_elixir_menu() { } show_remove_menu() { - case $(menu "Remove" "󰣇 Package\n Web App\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in + case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in *Package*) terminal omarchy-pkg-remove ;; *Web*) present_terminal omarchy-webapp-remove ;; + *TUI*) present_terminal omarchy-tui-remove ;; *Theme*) present_terminal omarchy-theme-remove ;; *Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;; *Fido2*) present_terminal "omarchy-setup-fido2 --remove" ;; diff --git a/bin/omarchy-tui-install b/bin/omarchy-tui-install new file mode 100755 index 00000000..a15d364c --- /dev/null +++ b/bin/omarchy-tui-install @@ -0,0 +1,54 @@ +#!/bin/bash + +if [ "$#" -ne 4 ]; then + echo -e "\e[32mLet's create a TUI shortcut you can start with the app launcher.\n\e[0m" + APP_NAME=$(gum input --prompt "Name> " --placeholder "My TUI") + APP_EXEC=$(gum input --prompt "Launch Command> " --placeholder "lazydocker or bash -c 'dust; read -n 1 -s'") + WINDOW_STYLE=$(gum choose --header "Window style" float tile) + ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)") +else + APP_NAME="$1" + APP_EXEC="$2" + WINDOW_STYLE="$3" + ICON_URL="$4" +fi + +if [[ -z "$APP_NAME" || -z "$APP_EXEC" || -z "$ICON_URL" ]]; then + echo "You must set app name, app command, 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 + +if [[ $WINDOW_STYLE == "float" ]]; then + APP_CLASS="TUI.float" +else + APP_CLASS="TUI.tile" +fi + +cat >"$DESKTOP_FILE" <