From 147242cbbab60b8b9c292f5dac7eacac693c3c68 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 14:13:23 +0200 Subject: [PATCH 01/10] Same permissions as everything --- install/config/localdb.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 install/config/localdb.sh diff --git a/install/config/localdb.sh b/install/config/localdb.sh old mode 100644 new mode 100755 From 90cdbd5504b8fc425b0b69fafb4708015357a0ab Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 14:14:03 +0200 Subject: [PATCH 02/10] Run the omarchy-update in a terminal process not owned by waybar so it'll survive being restarted --- bin/omarchy-launch-terminal-with-presentation | 4 ++++ config/waybar/config.jsonc | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100755 bin/omarchy-launch-terminal-with-presentation diff --git a/bin/omarchy-launch-terminal-with-presentation b/bin/omarchy-launch-terminal-with-presentation new file mode 100755 index 0000000..bae701e --- /dev/null +++ b/bin/omarchy-launch-terminal-with-presentation @@ -0,0 +1,4 @@ +#!/bin/bash + +cmd="$*" +setsid alacritty -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 7ff8c0e..b8c02f6 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -46,7 +46,7 @@ "custom/update": { "format": "", "exec": "omarchy-update-available", - "on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update", + "on-click": "omarchy-launch-terminal-with-presentation omarchy-update", "tooltip-format": "Omarchy update available", "interval": 3600 }, From b264c6540a19e867c5f8cd136f272473897a1549 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 14:19:07 +0200 Subject: [PATCH 03/10] Use floating terminal --- bin/omarchy-launch-floating-terminal-with-presentation | 4 ++++ bin/omarchy-launch-terminal-with-presentation | 4 ---- bin/omarchy-menu | 2 +- config/waybar/config.jsonc | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) create mode 100755 bin/omarchy-launch-floating-terminal-with-presentation delete mode 100755 bin/omarchy-launch-terminal-with-presentation diff --git a/bin/omarchy-launch-floating-terminal-with-presentation b/bin/omarchy-launch-floating-terminal-with-presentation new file mode 100755 index 0000000..ecba263 --- /dev/null +++ b/bin/omarchy-launch-floating-terminal-with-presentation @@ -0,0 +1,4 @@ +#!/bin/bash + +cmd="$*" +setsid alacritty --class Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" diff --git a/bin/omarchy-launch-terminal-with-presentation b/bin/omarchy-launch-terminal-with-presentation deleted file mode 100755 index bae701e..0000000 --- a/bin/omarchy-launch-terminal-with-presentation +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -cmd="$*" -setsid alacritty -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" diff --git a/bin/omarchy-menu b/bin/omarchy-menu index f5179cb..8569d18 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -26,7 +26,7 @@ terminal() { } present_terminal() { - alacritty --class Omarchy -e bash -c "omarchy-show-logo; eval \"$1\"; omarchy-show-done;" + omarchy-launch-floating-terminal-with-presentation $1 } edit_in_nvim() { diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index b8c02f6..ab1cf55 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -46,7 +46,7 @@ "custom/update": { "format": "", "exec": "omarchy-update-available", - "on-click": "omarchy-launch-terminal-with-presentation omarchy-update", + "on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update", "tooltip-format": "Omarchy update available", "interval": 3600 }, From cf4e1c0eb72ae7238e0e58a05f31e785eedeb30f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 14:26:30 +0200 Subject: [PATCH 04/10] Better resilience for fetching the tags --- bin/omarchy-update-available | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bin/omarchy-update-available b/bin/omarchy-update-available index 808513e..2555821 100755 --- a/bin/omarchy-update-available +++ b/bin/omarchy-update-available @@ -1,13 +1,18 @@ #!/bin/bash -# Ensure remote is reachable -if ! git -C "$OMARCHY_PATH" ls-remote &>/dev/null; then - echo "Error: Unable to reach remote repository." +# Get remote tag +latest_tag=$(git -C "$OMARCHY_PATH" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1) +if [[ -z "$latest_tag" ]]; then + echo "Error: Could not retrieve latest tag." exit 1 fi -latest_tag=$(git -C "$OMARCHY_PATH" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1) +# Get local tag current_tag=$(git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1)) +if [[ -z "$current_tag" ]]; then + echo "Error: Could not retrieve current tag." + exit 1 +fi if [[ "$current_tag" != "$latest_tag" ]]; then echo "Omarchy update available ($latest_tag)" From 175066ecba7e404f02f03e795b2b5e166ca1cf61 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 14:38:00 +0200 Subject: [PATCH 05/10] Fix migration not to add working-directory if already there And make command line compatible with Ghostty too --- migrations/1755870033.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/migrations/1755870033.sh b/migrations/1755870033.sh index e1a0be0..fde865b 100644 --- a/migrations/1755870033.sh +++ b/migrations/1755870033.sh @@ -1,3 +1,5 @@ echo "Use current terminal shell cwd for new terminal working directories" -sed -i 's|bindd = SUPER, return, Terminal, exec, \$terminal|bindd = SUPER, return, Terminal, exec, $terminal --working-directory $(omarchy-cmd-terminal-cwd)|' ~/.config/hypr/bindings.conf +if ! grep -q "working-directory" ~/.config/hypr/bindings.conf; then + sed -i '/bindd = SUPER, return, Terminal, exec, \$terminal/ s|$| --working-directory=$(omarchy-cmd-terminal-cwd)|' ~/.config/hypr/bindings.conf +fi From e5927fc1b29fe056c14a9de828d930ccaf1c29bf Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 14:38:14 +0200 Subject: [PATCH 06/10] Fix ghostty compatibility here too --- config/hypr/bindings.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf index 6164ec0..fc6d9ce 100644 --- a/config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -2,7 +2,7 @@ $terminal = uwsm app -- alacritty $browser = omarchy-launch-browser -bindd = SUPER, return, Terminal, exec, $terminal --working-directory $(omarchy-cmd-terminal-cwd) +bindd = SUPER, return, Terminal, exec, $terminal --working-directory=$(omarchy-cmd-terminal-cwd) bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window bindd = SUPER, B, Browser, exec, $browser bindd = SUPER, M, Music, exec, uwsm app -- spotify From 5fec87d324fca37605ffd2434922052b218967b4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 15:24:18 +0200 Subject: [PATCH 07/10] Get rid of -Sy and -Syy (#1175) * Get rid of -Sy and -Syy * Get rid of all naked -Sy usage * Don't need a full system update for this * Combine * Does not need a full system update * Need to refresh even just for Omarchy repository * Does not warrant a full system update * No longer need the sudoless pacman runs * We have already added the Omarchy repo before getting to here So fine to just do a straight install --- bin/omarchy-install-dev-env | 2 +- bin/omarchy-install-steam | 3 +-- bin/omarchy-menu | 10 +++++----- bin/omarchy-pkg-aur-install | 2 +- bin/omarchy-pkg-install | 3 +-- boot.sh | 2 +- install/config/hardware/nvidia.sh | 2 +- install/preflight/repositories.sh | 12 +++--------- migrations/1751134561.sh | 2 +- migrations/1752091783.sh | 2 +- migrations/1752981883.sh | 2 +- migrations/1753352057.sh | 2 +- migrations/1754509222.sh | 2 +- migrations/1754515289.sh | 2 +- migrations/1755164105.sh | 2 +- migrations/1755795450.sh | 2 +- migrations/1756103168.sh | 6 ------ migrations/1756300740.sh | 3 +++ 18 files changed, 25 insertions(+), 36 deletions(-) delete mode 100644 migrations/1756103168.sh create mode 100644 migrations/1756300740.sh diff --git a/bin/omarchy-install-dev-env b/bin/omarchy-install-dev-env index 1e8480a..5453e8d 100755 --- a/bin/omarchy-install-dev-env +++ b/bin/omarchy-install-dev-env @@ -6,7 +6,7 @@ if [[ -z "$1" ]]; then fi install_php() { - sudo pacman -Sy php composer php-sqlite --noconfirm + sudo pacman -S php composer php-sqlite --noconfirm # Install Path for Composer if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then diff --git a/bin/omarchy-install-steam b/bin/omarchy-install-steam index 9eb826d..9903feb 100755 --- a/bin/omarchy-install-steam +++ b/bin/omarchy-install-steam @@ -2,8 +2,7 @@ echo "Adding multilib repository for 32-bit compatibility" sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf -sudo pacman -Sy echo "Now pick dependencies matching your graphics card" -sudo pacman -S steam +sudo pacman -Syu steam setsid gtk-launch steam >/dev/null 2>&1 & diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 8569d18..ce94bae 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -35,23 +35,23 @@ edit_in_nvim() { } install() { - present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2" + present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm $2" } install_and_launch() { - present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2 && setsid gtk-launch $3" + present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm $2 && setsid gtk-launch $3" } install_font() { - present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'" + present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'" } aur_install() { - present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2" + present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2" } aur_install_and_launch() { - present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2 && setsid gtk-launch $3" + present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2 && setsid gtk-launch $3" } show_learn_menu() { diff --git a/bin/omarchy-pkg-aur-install b/bin/omarchy-pkg-aur-install index 25aff21..c99ee71 100755 --- a/bin/omarchy-pkg-aur-install +++ b/bin/omarchy-pkg-aur-install @@ -18,7 +18,7 @@ pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}") if [[ -n "$pkg_names" ]]; then # Convert newline-separated selections to space-separated for yay - echo "$pkg_names" | tr '\n' ' ' | xargs yay -Sy --noconfirm + echo "$pkg_names" | tr '\n' ' ' | xargs yay -S --noconfirm sudo updatedb omarchy-show-done fi diff --git a/bin/omarchy-pkg-install b/bin/omarchy-pkg-install index 7f86106..8a6c1ce 100755 --- a/bin/omarchy-pkg-install +++ b/bin/omarchy-pkg-install @@ -14,12 +14,11 @@ fzf_args=( --color 'pointer:green,marker:green' ) -sudo pacman -Sy pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}") if [[ -n "$pkg_names" ]]; then # Convert newline-separated selections to space-separated for yay - echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -Sy --noconfirm + echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -S --noconfirm sudo updatedb omarchy-show-done fi diff --git a/boot.sh b/boot.sh index 17ad668..98df4e4 100755 --- a/boot.sh +++ b/boot.sh @@ -14,7 +14,7 @@ ansi_art=' ▄▄▄ clear echo -e "\n$ansi_art\n" -sudo pacman -Sy --noconfirm --needed git +sudo pacman -Syu --noconfirm --needed git # Use custom repo if specified, otherwise default to basecamp/omarchy OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}" diff --git a/install/config/hardware/nvidia.sh b/install/config/hardware/nvidia.sh index 6623de6..65f3f04 100755 --- a/install/config/hardware/nvidia.sh +++ b/install/config/hardware/nvidia.sh @@ -36,7 +36,7 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then fi # force package database refresh - sudo pacman -Syy + sudo pacman -Syu # Install packages PACKAGES_TO_INSTALL=( diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index 59c18f3..f3e6ba7 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -1,7 +1,7 @@ #!/bin/bash # Install build tools -sudo pacman -Sy --needed --noconfirm base-devel +sudo pacman -S --needed --noconfirm base-devel # Add fun and color and verbosity to the pacman installer if ! grep -q "ILoveCandy" /etc/pacman.conf; then @@ -30,16 +30,10 @@ if [[ "$(uname -m)" == "x86_64" ]] && [ -z "$DISABLE_CHAOTIC" ]; then if ! grep -q "chaotic-aur" /etc/pacman.conf; then echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null fi - - # Refresh all repos - sudo pacman -Sy else echo -e "Failed to install Chaotic-AUR, so won't include it in pacman config!" fi fi -# Allow repository index updates without sudo -sudo tee /etc/sudoers.d/repositories >/dev/null </dev/null; then - sudo pacman -Sy --noconfirm --needed walker-bin libqalculate + sudo pacman -S --noconfirm --needed walker-bin libqalculate sudo pacman -Rns --noconfirm wofi rm -rf ~/.config/wofi diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh index 3c3b915..7cd33be 100755 --- a/migrations/1753352057.sh +++ b/migrations/1753352057.sh @@ -11,7 +11,7 @@ if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.c echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null # Refresh pacman package databases - sudo pacman -Sy + sudo pacman -Syu else echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" fi diff --git a/migrations/1754509222.sh b/migrations/1754509222.sh index 8ad7ad4..ced63c6 100644 --- a/migrations/1754509222.sh +++ b/migrations/1754509222.sh @@ -1,3 +1,3 @@ echo "Add xmlstarlet needed for updating fonts via Omarchy menu" -sudo pacman -Sy --noconfirm --needed xmlstarlet +sudo pacman -S --noconfirm --needed xmlstarlet diff --git a/migrations/1754515289.sh b/migrations/1754515289.sh index 17a3d56..23f4db5 100644 --- a/migrations/1754515289.sh +++ b/migrations/1754515289.sh @@ -1,4 +1,4 @@ echo "Update and restart Walker to resolve stuck Omarchy menu" -sudo pacman -Sy --noconfirm walker-bin +sudo pacman -Syu --noconfirm walker-bin omarchy-restart-walker diff --git a/migrations/1755164105.sh b/migrations/1755164105.sh index 17dd2a7..a17ac58 100644 --- a/migrations/1755164105.sh +++ b/migrations/1755164105.sh @@ -11,7 +11,7 @@ set_theme_colors() { if command -v chromium &>/dev/null; then sudo pacman -Rns --noconfirm chromium || true - sudo pacman -Sy --noconfirm omarchy-chromium + sudo pacman -S --noconfirm omarchy-chromium if pgrep -x chromium; then if gum confirm "Chromium must be restarted. Ready?"; then diff --git a/migrations/1755795450.sh b/migrations/1755795450.sh index 96df3fc..3e2b3e6 100644 --- a/migrations/1755795450.sh +++ b/migrations/1755795450.sh @@ -1,3 +1,3 @@ echo "Ensure latest uwsm is installed" -sudo pacman -Sy --noconfirm uwsm +sudo pacman -Syu --noconfirm uwsm diff --git a/migrations/1756103168.sh b/migrations/1756103168.sh deleted file mode 100644 index bef59f4..0000000 --- a/migrations/1756103168.sh +++ /dev/null @@ -1,6 +0,0 @@ -echo "Allow pacman -Sy without sudo to easier installs" - -sudo tee /etc/sudoers.d/repositories >/dev/null < Date: Wed, 27 Aug 2025 15:29:48 +0200 Subject: [PATCH 08/10] Confirm whether issue is still present with proper use of pacman -Syu --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 44e2887..4a851ad 100755 --- a/install.sh +++ b/install.sh @@ -53,7 +53,7 @@ source $OMARCHY_INSTALL/login/limine-snapper.sh source $OMARCHY_INSTALL/login/alt-bootloaders.sh # Pin bad packages -sudo pacman -U --noconfirm https://pkgs.omarchy.org/x86_64/abseil-cpp-20250512.1-1-x86_64.pkg.tar.zst +# sudo pacman -U --noconfirm https://pkgs.omarchy.org/x86_64/abseil-cpp-20250512.1-1-x86_64.pkg.tar.zst # Reboot clear From 2832c599703ea9f19136f8b02df0d5c82d86e500 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 15:40:48 +0200 Subject: [PATCH 09/10] Always --noconfirm --- bin/omarchy-install-steam | 2 +- install/config/hardware/nvidia.sh | 2 +- install/preflight/repositories.sh | 2 +- migrations/1751134561.sh | 2 +- migrations/1753352057.sh | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/omarchy-install-steam b/bin/omarchy-install-steam index 9903feb..1d58845 100755 --- a/bin/omarchy-install-steam +++ b/bin/omarchy-install-steam @@ -4,5 +4,5 @@ echo "Adding multilib repository for 32-bit compatibility" sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf echo "Now pick dependencies matching your graphics card" -sudo pacman -Syu steam +sudo pacman -Syu --noconfirm steam setsid gtk-launch steam >/dev/null 2>&1 & diff --git a/install/config/hardware/nvidia.sh b/install/config/hardware/nvidia.sh index 65f3f04..c2b54e5 100755 --- a/install/config/hardware/nvidia.sh +++ b/install/config/hardware/nvidia.sh @@ -36,7 +36,7 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then fi # force package database refresh - sudo pacman -Syu + sudo pacman -Syu --noconfirm # Install packages PACKAGES_TO_INSTALL=( diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index f3e6ba7..c368955 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -36,4 +36,4 @@ if [[ "$(uname -m)" == "x86_64" ]] && [ -z "$DISABLE_CHAOTIC" ]; then fi # Refresh all repos -sudo pacman -Syu +sudo pacman -Syu --noconfirm diff --git a/migrations/1751134561.sh b/migrations/1751134561.sh index 0d1a932..367fac3 100644 --- a/migrations/1751134561.sh +++ b/migrations/1751134561.sh @@ -3,5 +3,5 @@ echo "Add Omarchy Package Repository" if ! grep -q "omarchy" /etc/pacman.conf; then sudo sed -i '/^\[core\]/i [omarchy]\nSigLevel = Optional TrustAll\nServer = https:\/\/pkgs.omarchy.org\/$arch\/\n' /etc/pacman.conf sudo systemctl restart systemd-timesyncd - sudo pacman -Syu + sudo pacman -Syu --noconfirm fi diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh index 7cd33be..3265f6a 100755 --- a/migrations/1753352057.sh +++ b/migrations/1753352057.sh @@ -11,7 +11,7 @@ if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.c echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null # Refresh pacman package databases - sudo pacman -Syu + sudo pacman -Syu --noconfirm else echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" fi From e9d2a3d3f7904afd462d5933954b99bb16dfb675 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 27 Aug 2025 15:46:59 +0200 Subject: [PATCH 10/10] Revert "Confirm whether issue is still present with proper use of pacman -Syu" This reverts commit 3882fbf21c29d4ed6df0521a0c081a8584856510. --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 4a851ad..44e2887 100755 --- a/install.sh +++ b/install.sh @@ -53,7 +53,7 @@ source $OMARCHY_INSTALL/login/limine-snapper.sh source $OMARCHY_INSTALL/login/alt-bootloaders.sh # Pin bad packages -# sudo pacman -U --noconfirm https://pkgs.omarchy.org/x86_64/abseil-cpp-20250512.1-1-x86_64.pkg.tar.zst +sudo pacman -U --noconfirm https://pkgs.omarchy.org/x86_64/abseil-cpp-20250512.1-1-x86_64.pkg.tar.zst # Reboot clear