From 984f3368b4c68fc3f744f6f59a541f5996ce03c6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 25 May 2026 18:19:06 +0200 Subject: [PATCH] On-demand Signal install --- bin/omarchy-install-service-signal | 15 +++++++++++++++ bin/omarchy-launch-signal | 15 +++++++++++++++ config/hypr/bindings.lua | 2 +- default/omarchy/omarchy-menu.jsonc | 1 + install/omarchy-base.packages | 1 - 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100755 bin/omarchy-install-service-signal create mode 100755 bin/omarchy-launch-signal diff --git a/bin/omarchy-install-service-signal b/bin/omarchy-install-service-signal new file mode 100755 index 00000000..f7679686 --- /dev/null +++ b/bin/omarchy-install-service-signal @@ -0,0 +1,15 @@ +#!/bin/bash + +# omarchy:summary=Install Signal and launch it. +# omarchy:requires-sudo=true + +set -e + +echo "Installing Signal..." +omarchy-pkg-add signal-desktop + +echo "Opening Signal..." +setsid uwsm-app -- /usr/bin/signal-desktop >/dev/null 2>&1 & + +echo "" +echo "Signal has been installed." diff --git a/bin/omarchy-launch-signal b/bin/omarchy-launch-signal new file mode 100755 index 00000000..31d94cce --- /dev/null +++ b/bin/omarchy-launch-signal @@ -0,0 +1,15 @@ +#!/bin/bash + +# omarchy:summary=Launch Signal or start its installer when missing. + +set -e + +WINDOW_ADDRESS=$(hyprctl clients -j | jq -r '.[]|select((.class|test("\\bsignal\\b";"i")) or (.title|test("\\bsignal\\b";"i")))|.address' | head -n1) + +if [[ -n $WINDOW_ADDRESS ]]; then + hyprctl dispatch "hl.dsp.focus({ window = \"address:$WINDOW_ADDRESS\" })" >/dev/null 2>&1 || hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS" +elif [[ -x /usr/bin/signal-desktop ]]; then + exec setsid uwsm-app -- /usr/bin/signal-desktop +else + exec omarchy-launch-floating-terminal-with-presentation omarchy-install-service-signal +fi diff --git a/config/hypr/bindings.lua b/config/hypr/bindings.lua index b0c94dbd..e006e199 100644 --- a/config/hypr/bindings.lua +++ b/config/hypr/bindings.lua @@ -10,7 +10,7 @@ o.bind("SUPER + SHIFT + M", "Music", { omarchy = "spotify" }) o.bind("SUPER + SHIFT + ALT + M", "Music TUI", { tui = "cliamp", focus = true }) o.bind("SUPER + SHIFT + N", "Editor", { omarchy = "editor" }) o.bind("SUPER + SHIFT + D", "Docker", { tui = "lazydocker" }) -o.bind("SUPER + SHIFT + G", "Signal", { launch = "signal-desktop", focus = "^signal$" }) +o.bind("SUPER + SHIFT + G", "Signal", { omarchy = "signal" }) o.bind("SUPER + SHIFT + O", "Obsidian", { launch = "obsidian", focus = "^obsidian$" }) o.bind("SUPER + SHIFT + W", "Typora", { launch = "typora --enable-wayland-ime" }) o.bind("SUPER + SHIFT + SLASH", "Passwords", { launch = "1password" }) diff --git a/default/omarchy/omarchy-menu.jsonc b/default/omarchy/omarchy-menu.jsonc index b8af0dce..047f3e9a 100644 --- a/default/omarchy/omarchy-menu.jsonc +++ b/default/omarchy/omarchy-menu.jsonc @@ -173,6 +173,7 @@ "install.service.1password": {"icon":"󰢁","label":"1Password","keywords":"password","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-service-1password"}, "install.service.dropbox": {"icon":"","label":"Dropbox","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-dropbox"}, "install.service.spotify": {"icon":"󰓇","label":"Spotify","keywords":"music","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-service-spotify"}, + "install.service.signal": {"icon":"󰭹","label":"Signal","keywords":"messenger chat","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-service-signal"}, "install.service.tailscale": {"icon":"","label":"Tailscale","keywords":"vpn","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-tailscale"}, "install.service.nordvpn": {"icon":"󱇱","label":"NordVPN [AUR]","keywords":"vpn","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-nordvpn"}, "install.service.once": {"icon":"󰏖","label":"ONCE","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-once"}, diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index a0c29299..7b2838d5 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -106,7 +106,6 @@ ruby rust satty sddm -signal-desktop slurp socat starship