From 9af41afd06450f9cec0a7641ada2b9fd7d53fdb2 Mon Sep 17 00:00:00 2001 From: Andrey Sologub <40601667+a-sologub@users.noreply.github.com> Date: Wed, 19 Nov 2025 09:41:12 +0100 Subject: [PATCH] Feature: Add bluetui integration and migration (#3207) * Add bluetui integration and launch script - Add omarchy-launch-bluetooth script to launch bluetui TUI - Create migration scripts for bluetui installation - Update omarchy-menu and waybar configuration for bluetui support - Add bluetui to base packages * Move unblock into launchers and reuse existing launch or focus setup * Fix installer to remove blueberry and be more surgical with waybar changes --------- Co-authored-by: David Heinemeier Hansson --- bin/omarchy-launch-bluetooth | 4 ++++ bin/omarchy-launch-wifi | 1 + bin/omarchy-menu | 10 ++-------- config/waybar/config.jsonc | 2 +- default/hypr/apps/system.conf | 2 +- install/omarchy-base.packages | 2 +- migrations/1751134568.sh | 2 +- migrations/1762417304.sh | 9 +++++++++ 8 files changed, 20 insertions(+), 12 deletions(-) create mode 100755 bin/omarchy-launch-bluetooth create mode 100644 migrations/1762417304.sh diff --git a/bin/omarchy-launch-bluetooth b/bin/omarchy-launch-bluetooth new file mode 100755 index 00000000..6a654687 --- /dev/null +++ b/bin/omarchy-launch-bluetooth @@ -0,0 +1,4 @@ +#!/bin/bash + +rfkill unblock bluetooth +exec setsid omarchy-launch-or-focus org.omarchy.bluetui "omarchy-launch-tui bluetui" diff --git a/bin/omarchy-launch-wifi b/bin/omarchy-launch-wifi index fc1e2c83..4d66dcdc 100755 --- a/bin/omarchy-launch-wifi +++ b/bin/omarchy-launch-wifi @@ -1,3 +1,4 @@ #!/bin/bash +rfkill unblock wifi exec setsid omarchy-launch-or-focus org.omarchy.impala "omarchy-launch-tui impala" diff --git a/bin/omarchy-menu b/bin/omarchy-menu index e14d22f2..b7180a44 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -174,14 +174,8 @@ show_setup_menu() { case $(menu "Setup" "$options") in *Audio*) omarchy-launch-or-focus org.omarchy.wiremix "omarchy-launch-tui wiremix" ;; - *Wifi*) - rfkill unblock wifi - omarchy-launch-wifi - ;; - *Bluetooth*) - rfkill unblock bluetooth - blueberry - ;; + *Wifi*) omarchy-launch-wifi ;; + *Bluetooth*) omarchy-launch-bluetooth ;; *Power*) show_setup_power_menu ;; *Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;; *Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;; diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 1f632eaa..b8ff116a 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -102,7 +102,7 @@ "format-disabled": "󰂲", "format-connected": "", "tooltip-format": "Devices connected: {num_connections}", - "on-click": "blueberry" + "on-click": "omarchy-launch-bluetooth" }, "pulseaudio": { "format": "{icon}", diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf index 522cef3e..1f8043bf 100644 --- a/default/hypr/apps/system.conf +++ b/default/hypr/apps/system.conf @@ -3,7 +3,7 @@ windowrule = float, tag:floating-window windowrule = center, tag:floating-window windowrule = size 875 600, tag:floating-window -windowrule = tag +floating-window, class:(blueberry.py|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.terminal|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) +windowrule = tag +floating-window, class:(org.omarchy.bluetui|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.terminal|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) windowrule = float, class:org.gnome.Calculator diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index e42ef822..8a55e7d0 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -8,7 +8,7 @@ asdcontrol avahi bash-completion bat -blueberry +bluetui brightnessctl btop clang diff --git a/migrations/1751134568.sh b/migrations/1751134568.sh index 14c8f414..99cd600f 100644 --- a/migrations/1751134568.sh +++ b/migrations/1751134568.sh @@ -1,4 +1,4 @@ -# Turn on bluetooth service so blueberry works out the box +# Turn on bluetooth service so blueberry or bluetui works out the box echo "Let's turn on Bluetooth service so the controls work" if systemctl is-enabled --quiet bluetooth.service && systemctl is-active --quiet bluetooth.service; then # Bluetooth is already enabled, nothing to change diff --git a/migrations/1762417304.sh b/migrations/1762417304.sh new file mode 100644 index 00000000..15134e6d --- /dev/null +++ b/migrations/1762417304.sh @@ -0,0 +1,9 @@ +echo "Replace bluetooth GUI with TUI" + +omarchy-pkg-add bluetui +omarchy-pkg-drop blueberry + +if ! grep -q "omarchy-launch-bluetooth" ~/.config/waybar/config.jsonc; then + sed -i 's/blueberry/omarchy-launch-bluetooth/' ~/.config/waybar/config.jsonc + omarchy-restart-waybar +fi