From c2fee1b7fa705de8fdc8a90146bda4adaad4f5bc Mon Sep 17 00:00:00 2001 From: Zak Lantz Date: Mon, 25 Aug 2025 12:17:16 -0400 Subject: [PATCH 01/12] check for desktop apps in ~/.nix-profile --- bin/omarchy-launch-browser | 2 +- bin/omarchy-launch-webapp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-launch-browser b/bin/omarchy-launch-browser index 5b9f86c..86904af 100755 --- a/bin/omarchy-launch-browser +++ b/bin/omarchy-launch-browser @@ -1,3 +1,3 @@ #!/bin/bash -exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@ +exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@ diff --git a/bin/omarchy-launch-webapp b/bin/omarchy-launch-webapp index 24f48e9..0276d96 100755 --- a/bin/omarchy-launch-webapp +++ b/bin/omarchy-launch-webapp @@ -7,4 +7,4 @@ google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi*) ;; *) browser="chromium.desktop" ;; esac -exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}" +exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}" From 51830d5ce1f58c28b6bb9990c6848e3476f63604 Mon Sep 17 00:00:00 2001 From: Kent Keirsey Date: Tue, 26 Aug 2025 00:08:10 -0400 Subject: [PATCH 02/12] Change removal selection icons --- bin/omarchy-webapp-remove | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-webapp-remove b/bin/omarchy-webapp-remove index ceb9bca..07e1a33 100755 --- a/bin/omarchy-webapp-remove +++ b/bin/omarchy-webapp-remove @@ -14,7 +14,7 @@ if [ "$#" -eq 0 ]; then if ((${#WEB_APPS[@]})); then IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}")) unset IFS - APP_NAMES=$(gum choose --no-limit --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}") + APP_NAMES=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " --cursor-prefix=" " "${SORTED_WEB_APPS[@]}") else echo "No web apps to remove." exit 1 From ea21d0a7b77536ff106c34e3dfa63020110d3dcb Mon Sep 17 00:00:00 2001 From: Taha Date: Mon, 25 Aug 2025 23:56:50 -0700 Subject: [PATCH 03/12] Update omarchy icon in unified menu --- bin/omarchy-menu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 8e702b8..b4e0a82 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -315,7 +315,7 @@ show_remove_menu() { } show_update_menu() { - case $(menu "Update" "󰣇 Omarchy\n Config\n󰸌 Themes\n Process\n Timezone") in + case $(menu "Update" " Omarchy\n Config\n󰸌 Themes\n Process\n Timezone") in *Omarchy*) present_terminal omarchy-update ;; *Config*) show_update_config_menu ;; *Themes*) present_terminal omarchy-theme-update ;; From 7e2d266a9af88f686e12efebed66e9fa4b6588b2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 26 Aug 2025 09:13:22 +0200 Subject: [PATCH 04/12] Don't think the selector looks quite right, but the remover does --- bin/omarchy-webapp-remove | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-webapp-remove b/bin/omarchy-webapp-remove index 07e1a33..34f4c99 100755 --- a/bin/omarchy-webapp-remove +++ b/bin/omarchy-webapp-remove @@ -14,7 +14,7 @@ if [ "$#" -eq 0 ]; then if ((${#WEB_APPS[@]})); then IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}")) unset IFS - APP_NAMES=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " --cursor-prefix=" " "${SORTED_WEB_APPS[@]}") + APP_NAMES=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " "${SORTED_WEB_APPS[@]}") else echo "No web apps to remove." exit 1 From 0e88962e4fcab147edfce4fe533cca33b0a680ac Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 26 Aug 2025 09:14:14 +0200 Subject: [PATCH 05/12] Bring multi-select and custom X remover to TUI --- bin/omarchy-tui-remove | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-tui-remove b/bin/omarchy-tui-remove index 47ef7c2..05e89c1 100755 --- a/bin/omarchy-tui-remove +++ b/bin/omarchy-tui-remove @@ -14,7 +14,7 @@ if [ "$#" -ne 1 ]; then if ((${#TUIS[@]})); then IFS=$'\n' SORTED_TUIS=($(sort <<<"${TUIS[*]}")) unset IFS - APP_NAME=$(gum choose --header "Select TUI to remove..." "${SORTED_TUIS[@]}") + APP_NAME=$(gum choose --no-limit --header "Select TUI to remove..." --selected-prefix="✗ " "${SORTED_TUIS[@]}") else echo "No TUIs to remove." exit 1 From f22755df4f7c7a99c46a6ecf0c81ba010f5e4c83 Mon Sep 17 00:00:00 2001 From: William Tio Date: Tue, 26 Aug 2025 17:15:46 +1000 Subject: [PATCH 06/12] Remove Omarchy from the list of selectable fonts (#1101) --- bin/omarchy-font-list | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-font-list b/bin/omarchy-font-list index 6bf504b..32150d9 100755 --- a/bin/omarchy-font-list +++ b/bin/omarchy-font-list @@ -1,3 +1,3 @@ #!/bin/bash -fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | sort -u +fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting|omarchy' | sort -u From 23c9229fdda72244c9f805e13ef1c7ab76c14272 Mon Sep 17 00:00:00 2001 From: Oleg Luganskiy <62727407+arcbjorn@users.noreply.github.com> Date: Tue, 26 Aug 2025 04:17:09 -0300 Subject: [PATCH 07/12] fix(hypr): convert TAB workspace bindings from bind to bindd (#1098) --- default/hypr/bindings/tiling.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf index caad61a..0a53b01 100644 --- a/default/hypr/bindings/tiling.conf +++ b/default/hypr/bindings/tiling.conf @@ -39,8 +39,8 @@ bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 # Tab between workspaces -bind = SUPER, TAB, workspace, e+1 -bind = SUPER SHIFT, TAB, workspace, e-1 +bindd = SUPER, TAB, Next workspace, workspace, e+1 +bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 # Swap active window with the one next to it with SUPER + SHIFT + arrow keys bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l From 44c9be795821ce0deb6e08dfcb0b10be3278cb11 Mon Sep 17 00:00:00 2001 From: Adi Yeroslav Date: Tue, 26 Aug 2025 10:19:34 +0300 Subject: [PATCH 08/12] Fix emoji picker description (#1091) --- default/hypr/bindings/utilities.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index 65ccd0d..1dee6fe 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,6 +1,6 @@ # Menus bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…" -bindd = SUPER CTRL, E, Show clipboard, exec, walker -m Emojis +bindd = SUPER CTRL, E, Emoji picker, exec, walker -m Emojis bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system From 13f2cd964103741f6290c5e004e2edd388b8415e Mon Sep 17 00:00:00 2001 From: John Schmidt Date: Tue, 26 Aug 2025 11:57:39 +0200 Subject: [PATCH 09/12] fix multiple word app names (#1087) * fix multiple word app names * fix multiple words string handling * upstream selector and tui-remove multi-select --------- Co-authored-by: David Heinemeier Hansson --- bin/omarchy-tui-remove | 29 +++++++++++++++++------------ bin/omarchy-webapp-remove | 14 ++++++++++---- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/bin/omarchy-tui-remove b/bin/omarchy-tui-remove index 05e89c1..b2bb072 100755 --- a/bin/omarchy-tui-remove +++ b/bin/omarchy-tui-remove @@ -3,8 +3,8 @@ ICON_DIR="$HOME/.local/share/applications/icons" DESKTOP_DIR="$HOME/.local/share/applications/" -if [ "$#" -ne 1 ]; then - # Find all web apps +if [ "$#" -eq 0 ]; then + # Find all TUIs while IFS= read -r -d '' file; do if grep -q '^Exec=.*alacritty.*-e' "$file"; then TUIS+=("$(basename "${file%.desktop}")") @@ -14,23 +14,28 @@ if [ "$#" -ne 1 ]; then if ((${#TUIS[@]})); then IFS=$'\n' SORTED_TUIS=($(sort <<<"${TUIS[*]}")) unset IFS - APP_NAME=$(gum choose --no-limit --header "Select TUI to remove..." --selected-prefix="✗ " "${SORTED_TUIS[@]}") + APP_NAMES_STRING=$(gum choose --no-limit --header "Select TUI to remove..." --selected-prefix="✗ " "${SORTED_TUIS[@]}") + # Convert newline-separated string to array + APP_NAMES=() + while IFS= read -r line; do + [[ -n "$line" ]] && APP_NAMES+=("$line") + done <<< "$APP_NAMES_STRING" else echo "No TUIs to remove." exit 1 fi else - APP_NAME="$1" + # Use array to preserve spaces in app names + APP_NAMES=("$@") fi -if [[ -z "$APP_NAME" ]]; then - echo "You must provide TUI name." +if [[ ${#APP_NAMES[@]} -eq 0 ]]; then + echo "You must provide TUI names." exit 1 fi -rm "$DESKTOP_DIR/$APP_NAME.desktop" -rm "$ICON_DIR/$APP_NAME.png" - -if [ "$#" -ne 1 ]; then - echo -e "Removed $APP_NAME\n" -fi +for APP_NAME in "${APP_NAMES[@]}"; do + rm -f "$DESKTOP_DIR/$APP_NAME.desktop" + rm -f "$ICON_DIR/$APP_NAME.png" + echo "Removed $APP_NAME" +done diff --git a/bin/omarchy-webapp-remove b/bin/omarchy-webapp-remove index 34f4c99..833e898 100755 --- a/bin/omarchy-webapp-remove +++ b/bin/omarchy-webapp-remove @@ -14,21 +14,27 @@ if [ "$#" -eq 0 ]; then if ((${#WEB_APPS[@]})); then IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}")) unset IFS - APP_NAMES=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " "${SORTED_WEB_APPS[@]}") + APP_NAMES_STRING=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " "${SORTED_WEB_APPS[@]}") + # Convert newline-separated string to array + APP_NAMES=() + while IFS= read -r line; do + [[ -n "$line" ]] && APP_NAMES+=("$line") + done <<< "$APP_NAMES_STRING" else echo "No web apps to remove." exit 1 fi else - APP_NAMES="$*" + # Use array to preserve spaces in app names + APP_NAMES=("$@") fi -if [[ -z "$APP_NAMES" ]]; then +if [[ ${#APP_NAMES[@]} -eq 0 ]]; then echo "You must provide web app names." exit 1 fi -for APP_NAME in $APP_NAMES; do +for APP_NAME in "${APP_NAMES[@]}"; do rm -f "$DESKTOP_DIR/$APP_NAME.desktop" rm -f "$ICON_DIR/$APP_NAME.png" echo "Removed $APP_NAME" From 128e0901659db057474ccd905d0c2b3b802d4dd8 Mon Sep 17 00:00:00 2001 From: Josh LeBlanc Date: Tue, 26 Aug 2025 07:10:24 -0300 Subject: [PATCH 10/12] include more chromium browsers in chromium rules (#1090) * include more chromium browsers in chromium rules * Use tag to avoid declaring the match twice * Fix the match to actual browser class names as reported by hyprctl clients --------- Co-authored-by: David Heinemeier Hansson --- default/hypr/apps/chromium.conf | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/default/hypr/apps/chromium.conf b/default/hypr/apps/chromium.conf index 67d9421..0c70d80 100644 --- a/default/hypr/apps/chromium.conf +++ b/default/hypr/apps/chromium.conf @@ -1,6 +1,8 @@ -# Force chromium into a tile to deal with --app bug -windowrule = tile, class:^(Chromium)$ +windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable) -# Only slight opacity when unfocused -windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable|Brave-browser|brave-browser)$ -windowrule = opacity 1 1, initialTitle:(youtube.com_/|app.zoom.us_/wc/home) +# Force chromium-based browsers into a tile to deal with --app bug +windowrule = tile, tag:chromium-based-browser + +# Only a subtle opacity change, but not for video sites +windowrule = opacity 1 0.97, tag:chromium-based-browser +windowrule = opacity 1.0 1.0, initialTitle:(youtube\.com_/|app\.zoom\.us_/wc/home) From 5e3d8e5f2272c31f9ec70078c73c16212a6c8370 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 26 Aug 2025 12:16:23 +0200 Subject: [PATCH 11/12] Treat all the major browsers the same --- default/hypr/apps.conf | 2 +- default/hypr/apps/{chromium.conf => browser.conf} | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) rename default/hypr/apps/{chromium.conf => browser.conf} (67%) diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index 9833fb6..07c7ec5 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -1,6 +1,6 @@ # App-specific tweaks source = ~/.local/share/omarchy/default/hypr/apps/pip.conf -source = ~/.local/share/omarchy/default/hypr/apps/chromium.conf +source = ~/.local/share/omarchy/default/hypr/apps/browser.conf source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf source = ~/.local/share/omarchy/default/hypr/apps/steam.conf diff --git a/default/hypr/apps/chromium.conf b/default/hypr/apps/browser.conf similarity index 67% rename from default/hypr/apps/chromium.conf rename to default/hypr/apps/browser.conf index 0c70d80..c24f284 100644 --- a/default/hypr/apps/chromium.conf +++ b/default/hypr/apps/browser.conf @@ -1,8 +1,13 @@ +# Browser types windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable) +windowrule = tag +firefox-based-browser, class:(Firefox|zen|librewolf) # Force chromium-based browsers into a tile to deal with --app bug windowrule = tile, tag:chromium-based-browser # Only a subtle opacity change, but not for video sites windowrule = opacity 1 0.97, tag:chromium-based-browser +windowrule = opacity 1 0.97, tag:firefox-based-browser + +# Some video sites should never have opacity applied to them windowrule = opacity 1.0 1.0, initialTitle:(youtube\.com_/|app\.zoom\.us_/wc/home) From a7322fe7aec24f2c690bda459b82a6cf86319176 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 26 Aug 2025 12:27:35 +0200 Subject: [PATCH 12/12] Remove apps we don't use any more --- migrations/1756203383.sh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 migrations/1756203383.sh diff --git a/migrations/1756203383.sh b/migrations/1756203383.sh new file mode 100644 index 0000000..a21e2aa --- /dev/null +++ b/migrations/1756203383.sh @@ -0,0 +1,5 @@ +echo "Remove old About, Activity, Audio Settings apps that are in Omarchy Menu or hotkey" + +rm -f ~/.local/share/applications/About.desktop +rm -f ~/.local/share/applications/Activity.desktop +rm -f ~/.local/share/applications/wiremix.desktop