From ba4f1f20fcff49a18b719e39c8d8ccc5d1c0a1b1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 15:40:45 +0200 Subject: [PATCH 01/82] Upgrade the system after the potentially missing omarchy repo has been added --- migrations/1756360551.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/migrations/1756360551.sh b/migrations/1756360551.sh index a87dc54..adf8188 100644 --- a/migrations/1756360551.sh +++ b/migrations/1756360551.sh @@ -4,3 +4,4 @@ sudo cp /etc/pacman.conf /etc/pacman.conf.bak sudo sed -i '/\[omarchy\]/,+2 d' /etc/pacman.conf sudo sed -i '/\[chaotic-aur\]/i\[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/$arch/\n' /etc/pacman.conf || sudo bash -c 'echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/$arch/" >> /etc/pacman.conf' +sudo pacman -Syu --noconfirm From c5290ee970079b34a846df8f4d9a76801a2efb2c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 15:53:56 +0200 Subject: [PATCH 02/82] Add Omarchy mirror first --- install/preflight/repositories.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index 0e53313..06ccb3f 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -14,7 +14,7 @@ if ! grep -q "omarchy" /etc/pacman.conf; then fi # Set mirrors to global ones only -echo -e "Server = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch" | +echo -e "Server = https://mirror.omarchy.org/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch\nServer = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch" | sudo tee /etc/pacman.d/mirrorlist >/dev/null # Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages From 48e5aa5e91fc9cacc14e16e97fc47383f295e25f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 18:47:58 +0200 Subject: [PATCH 03/82] Include Open Folder from VSCode --- default/hypr/apps/system.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf index e5fb33c..2f0ab27 100644 --- a/default/hypr/apps/system.conf +++ b/default/hypr/apps/system.conf @@ -4,7 +4,7 @@ windowrule = center, tag:floating-window windowrule = size 800 600, tag:floating-window windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) -windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors), title:^(Open.*Files?|Save.*Files?|Save.*As|All Files|Save) +windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors), title:^(Open.*Files?|Open Folder|Save.*Files?|Save.*As|Save|All Files) # Fullscreen screensaver windowrule = fullscreen, class:Screensaver From f16908d701804739cb0c93e911f56c8c41b3b583 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 21:46:14 +0200 Subject: [PATCH 04/82] Busted --- migrations/1755878717.sh | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 migrations/1755878717.sh diff --git a/migrations/1755878717.sh b/migrations/1755878717.sh deleted file mode 100644 index 164fe6a..0000000 --- a/migrations/1755878717.sh +++ /dev/null @@ -1,5 +0,0 @@ -echo "Ensure Docker DNS requests are not blocked by ufw firewall" - -sudo ufw disable -sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'allow-docker-dns' -sudo ufw enable From a21ace2ee7bbb0f33c83d9777ecaa53f761f28c1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 21:50:49 +0200 Subject: [PATCH 05/82] Drop Chaotic-AUR repository now that we have OPR (#1264) * Drop Chaotic AUR repo Now that we have the AUR packages we need on the OPR, we don't need this as a default. * Fix escape issue and rename so it will run again --- install/preflight/repositories.sh | 18 ------------------ migrations/1753352057.sh | 18 ------------------ migrations/1756360551.sh | 6 ------ migrations/1756360552.sh | 7 +++++++ 4 files changed, 7 insertions(+), 42 deletions(-) delete mode 100755 migrations/1753352057.sh delete mode 100644 migrations/1756360551.sh create mode 100644 migrations/1756360552.sh diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index 06ccb3f..a0aab4b 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -17,23 +17,5 @@ fi echo -e "Server = https://mirror.omarchy.org/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch\nServer = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch" | sudo tee /etc/pacman.d/mirrorlist >/dev/null -# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages -if [[ "$(uname -m)" == "x86_64" ]] && [ -z "$DISABLE_CHAOTIC" ]; then - # Try installing Chaotic-AUR keyring and mirrorlist - if ! pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1 && - sudo pacman-key --recv-key 3056513887B78AEB && - sudo pacman-key --lsign-key 3056513887B78AEB && - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then - - # Add Chaotic-AUR repo to pacman config - 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 - else - echo -e "Failed to install Chaotic-AUR, so won't include it in pacman config!" - fi -fi - # Refresh all repos sudo pacman -Syu --noconfirm diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh deleted file mode 100755 index 3265f6a..0000000 --- a/migrations/1753352057.sh +++ /dev/null @@ -1,18 +0,0 @@ -echo "Add Chaotic-AUR to get compiled binaries" - -if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then - # Try installing Chaotic-AUR keyring and mirrorlist - if sudo pacman-key --recv-key 3056513887B78AEB && - sudo pacman-key --lsign-key 3056513887B78AEB && - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then - - # Add Chaotic-AUR repo to pacman config - 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 --noconfirm - else - echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" - fi -fi diff --git a/migrations/1756360551.sh b/migrations/1756360551.sh deleted file mode 100644 index ac9911a..0000000 --- a/migrations/1756360551.sh +++ /dev/null @@ -1,6 +0,0 @@ -echo "Move Omarchy Package Repository after Arch core/extra/multilib for extra security on resolution" - -sudo cp /etc/pacman.conf /etc/pacman.conf.bak -sudo sed -i '/\[omarchy\]/,+2 d' /etc/pacman.conf -sudo sed -i '/\[chaotic-aur\]/i\[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/$arch/\n' /etc/pacman.conf || - sudo bash -c 'echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch/" >> /etc/pacman.conf' diff --git a/migrations/1756360552.sh b/migrations/1756360552.sh new file mode 100644 index 0000000..a3ec24c --- /dev/null +++ b/migrations/1756360552.sh @@ -0,0 +1,7 @@ +echo "Move Omarchy Package Repository after Arch core/extra/multilib and remove AUR" + +sudo cp /etc/pacman.conf /etc/pacman.conf.bak +sudo sed -i '/\[omarchy\]/,+2 d' /etc/pacman.conf +sudo sed -i '/\[chaotic-aur\]/,+2 d' /etc/pacman.conf +sudo bash -c 'echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch/" >> /etc/pacman.conf' +sudo pacman -Syu --noconfirm From 615aa64f018c87c0a904a6b9dd8c7545296b4793 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 21:55:52 +0200 Subject: [PATCH 06/82] Remove lingering Chaotic-AUR packages --- migrations/1756410649.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 migrations/1756410649.sh diff --git a/migrations/1756410649.sh b/migrations/1756410649.sh new file mode 100644 index 0000000..d684c1c --- /dev/null +++ b/migrations/1756410649.sh @@ -0,0 +1,11 @@ +echo "Remove any Chaotic-AUR infrastructure packages" + +if pacman -Q chaotic-keyring >/dev/null; then + sudo pacman -Rns --noconfirm chaotic-keyring +fi + +if pacman -Q chaotic-mirrorlist >/dev/null; then + sudo pacman -Rns --noconfirm chaotic-mirrorlist +fi + +sudo pacman-key --delete 3056513887B78AEB From bb9fbceca2df21bf82e0e0512eab2c5c05f34fbe Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 21:59:10 +0200 Subject: [PATCH 07/82] Only update AUR packages in the AUR step --- bin/omarchy-update-system-pkgs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index 2c41d73..e3f8be2 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -6,8 +6,8 @@ sudo pacman -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)" if omarchy-pkg-aur-accessible; then echo -e "\e[32m\nUpdate AUR packages\e[0m" - echo "yay -Syu --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" - yay -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)" + echo "yay -Sua --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" + yay -Sua --noconfirm --ignore "$(omarchy-pkg-ignored)" echo else echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m" From 3e29949745d79bc68eb0b57383eedce328dfe91b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 22:00:41 +0200 Subject: [PATCH 08/82] Only remove the key if it exists --- migrations/1756410649.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/migrations/1756410649.sh b/migrations/1756410649.sh index d684c1c..cf444a1 100644 --- a/migrations/1756410649.sh +++ b/migrations/1756410649.sh @@ -8,4 +8,6 @@ if pacman -Q chaotic-mirrorlist >/dev/null; then sudo pacman -Rns --noconfirm chaotic-mirrorlist fi -sudo pacman-key --delete 3056513887B78AEB +if sudo pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1; then + sudo pacman-key --delete 3056513887B78AEB +fi From d9c69b8d02b4d922054644d4f9494d146c093a38 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 22:02:13 +0200 Subject: [PATCH 09/82] Silence errors if they are missing --- migrations/1756410649.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/migrations/1756410649.sh b/migrations/1756410649.sh index cf444a1..5a11b22 100644 --- a/migrations/1756410649.sh +++ b/migrations/1756410649.sh @@ -1,10 +1,10 @@ echo "Remove any Chaotic-AUR infrastructure packages" -if pacman -Q chaotic-keyring >/dev/null; then +if pacman -Q chaotic-keyring 2>/dev/null; then sudo pacman -Rns --noconfirm chaotic-keyring fi -if pacman -Q chaotic-mirrorlist >/dev/null; then +if pacman -Q chaotic-mirrorlist 2>/dev/null; then sudo pacman -Rns --noconfirm chaotic-mirrorlist fi From c5fffc2f1d8234c65354d337321bd51261ba1d21 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 22:04:32 +0200 Subject: [PATCH 10/82] Use new Omarchy mirror as primary mirror --- migrations/1756411333.sh | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 migrations/1756411333.sh diff --git a/migrations/1756411333.sh b/migrations/1756411333.sh new file mode 100644 index 0000000..b2c8c2c --- /dev/null +++ b/migrations/1756411333.sh @@ -0,0 +1,4 @@ +echo "Use new Omarchy mirror as default" + +echo -e "Server = https://mirror.omarchy.org/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch\nServer = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch" | + sudo tee /etc/pacman.d/mirrorlist >/dev/null From 8350355a20223e02dd7331827c847d73d7f4e508 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 22:09:21 +0200 Subject: [PATCH 11/82] Easier to read --- install/preflight/repositories.sh | 7 +++++-- migrations/1756411333.sh | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index a0aab4b..9797aba 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -14,8 +14,11 @@ if ! grep -q "omarchy" /etc/pacman.conf; then fi # Set mirrors to global ones only -echo -e "Server = https://mirror.omarchy.org/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch\nServer = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch" | - sudo tee /etc/pacman.d/mirrorlist >/dev/null +sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' +Server = https://mirror.omarchy.org/$repo/os/$arch +Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch +EOF # Refresh all repos sudo pacman -Syu --noconfirm diff --git a/migrations/1756411333.sh b/migrations/1756411333.sh index b2c8c2c..220697a 100644 --- a/migrations/1756411333.sh +++ b/migrations/1756411333.sh @@ -1,4 +1,7 @@ echo "Use new Omarchy mirror as default" -echo -e "Server = https://mirror.omarchy.org/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch\nServer = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch" | - sudo tee /etc/pacman.d/mirrorlist >/dev/null +sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' +Server = https://mirror.omarchy.org/$repo/os/$arch +Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch +EOF From 0b276c4f498c4762ce1de68bf88eb4942d609647 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 22:11:05 +0200 Subject: [PATCH 12/82] Improve readability here too --- install/preflight/repositories.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index 9797aba..b13ef24 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -10,7 +10,12 @@ fi # Add the Omarchy repository if ! grep -q "omarchy" /etc/pacman.conf; then - echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch/\n" | sudo tee -a /etc/pacman.conf >/dev/null + sudo tee -a /etc/pacman.conf >/dev/null <<'EOF' + +[omarchy] +SigLevel = Optional TrustAll +Server = https://pkgs.omarchy.org/$arch/ +EOF fi # Set mirrors to global ones only From 37699e80e46246aa19a98c213119ed1f0f8cfcf2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 28 Aug 2025 22:23:38 +0200 Subject: [PATCH 13/82] Bring back ttf-ia-writer now that it is safe --- install/packages.sh | 1 + migrations/1756411865.sh | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 migrations/1756411865.sh diff --git a/install/packages.sh b/install/packages.sh index 8fcbf3a..f50233a 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -95,6 +95,7 @@ sudo pacman -S --noconfirm --needed \ tldr \ tree-sitter-cli \ ttf-cascadia-mono-nerd \ + ttf-ia-writer \ ttf-jetbrains-mono \ typora \ tzupdate \ diff --git a/migrations/1756411865.sh b/migrations/1756411865.sh new file mode 100644 index 0000000..9d93562 --- /dev/null +++ b/migrations/1756411865.sh @@ -0,0 +1,5 @@ +echo "Add back ttf-ia-writer if it was missing" + +if ! pacman -Q ttf-ia-writer 2>/dev/null; then + sudo pacman -S --noconfirm ttf-ia-writer +fi From 4e8afd7ad68f22662f1d1a9e06509d3097432cfa Mon Sep 17 00:00:00 2001 From: Charles Ji Date: Fri, 29 Aug 2025 13:43:07 -0400 Subject: [PATCH 14/82] fix: remove extra slash (#1141) --- install/preflight/repositories.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/preflight/repositories.sh b/install/preflight/repositories.sh index b13ef24..907e31e 100755 --- a/install/preflight/repositories.sh +++ b/install/preflight/repositories.sh @@ -14,7 +14,7 @@ if ! grep -q "omarchy" /etc/pacman.conf; then [omarchy] SigLevel = Optional TrustAll -Server = https://pkgs.omarchy.org/$arch/ +Server = https://pkgs.omarchy.org/$arch EOF fi @@ -26,4 +26,4 @@ Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch EOF # Refresh all repos -sudo pacman -Syu --noconfirm +sudo pacman -Syu --noconfirm \ No newline at end of file From defe63a91c7c8ea40582f1228b90761dcc6f1363 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 29 Aug 2025 19:44:07 +0200 Subject: [PATCH 15/82] No trailing slash --- migrations/1751134561.sh | 2 +- migrations/1756360552.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/migrations/1751134561.sh b/migrations/1751134561.sh index 367fac3..5f201ed 100644 --- a/migrations/1751134561.sh +++ b/migrations/1751134561.sh @@ -1,7 +1,7 @@ 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 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 --noconfirm fi diff --git a/migrations/1756360552.sh b/migrations/1756360552.sh index a3ec24c..056853d 100644 --- a/migrations/1756360552.sh +++ b/migrations/1756360552.sh @@ -3,5 +3,5 @@ echo "Move Omarchy Package Repository after Arch core/extra/multilib and remove sudo cp /etc/pacman.conf /etc/pacman.conf.bak sudo sed -i '/\[omarchy\]/,+2 d' /etc/pacman.conf sudo sed -i '/\[chaotic-aur\]/,+2 d' /etc/pacman.conf -sudo bash -c 'echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch/" >> /etc/pacman.conf' +sudo bash -c 'echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch" >> /etc/pacman.conf' sudo pacman -Syu --noconfirm From 2647ea7745b7cd542673219797938a0254b6b5a2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 29 Aug 2025 21:16:38 +0200 Subject: [PATCH 16/82] Let Hyprland control the opacity And reduce it a bit this way --- config/alacritty/alacritty.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/config/alacritty/alacritty.toml b/config/alacritty/alacritty.toml index 05ec994..63fb85b 100644 --- a/config/alacritty/alacritty.toml +++ b/config/alacritty/alacritty.toml @@ -13,7 +13,6 @@ size = 9 padding.x = 14 padding.y = 14 decorations = "None" -opacity = 0.98 [keyboard] bindings = [ From ace0fb1cd5b1d654574e24c667c496be613fc4ec Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 29 Aug 2025 21:19:12 +0200 Subject: [PATCH 17/82] Migrate away the alacritty default override of opacity so Hyprland has full control --- migrations/1756494998.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 migrations/1756494998.sh diff --git a/migrations/1756494998.sh b/migrations/1756494998.sh new file mode 100644 index 0000000..e25f38d --- /dev/null +++ b/migrations/1756494998.sh @@ -0,0 +1,3 @@ +echo "Remove opacity from alacritty.toml so Hyprland can control fully" + +sed -i '/opacity = 0.98/d' ~/.config/alacritty/alacritty.toml From d755de40426d71b34b2e57201454296e9f4bf5e1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 29 Aug 2025 21:22:17 +0200 Subject: [PATCH 18/82] Tweak Kanagawa opacity to more closely match the other themes in appearance --- themes/kanagawa/hyprland.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/themes/kanagawa/hyprland.conf b/themes/kanagawa/hyprland.conf index 4972f14..7bc38c6 100644 --- a/themes/kanagawa/hyprland.conf +++ b/themes/kanagawa/hyprland.conf @@ -1,3 +1,6 @@ general { col.active_border = rgb(dcd7ba) } + +# Kanagawa backdrop is too strong for detault opacity +windowrule = opacity 0.98 0.95, class:.* From 94eeba48498614b95dfab31f3e60a12716a2bfcd Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 29 Aug 2025 21:24:31 +0200 Subject: [PATCH 19/82] Just tweak Alacritty --- themes/kanagawa/hyprland.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kanagawa/hyprland.conf b/themes/kanagawa/hyprland.conf index 7bc38c6..a3dc206 100644 --- a/themes/kanagawa/hyprland.conf +++ b/themes/kanagawa/hyprland.conf @@ -3,4 +3,4 @@ general { } # Kanagawa backdrop is too strong for detault opacity -windowrule = opacity 0.98 0.95, class:.* +windowrule = opacity 0.98 0.95, class:Alacritty From 3266a188976b85ab65761cd819696c397bcd4574 Mon Sep 17 00:00:00 2001 From: Alexandre Perreault Date: Fri, 29 Aug 2025 15:38:46 -0400 Subject: [PATCH 20/82] fix screensaver exit behavior on multiple monitors (#1249) --- bin/omarchy-cmd-screensaver | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver index eb32060..21eaa0a 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -1,4 +1,11 @@ #!/bin/bash +function exit_screensaver { + pkill -x tte 2>/dev/null + pkill -f "alacritty --class Screensaver" 2>/dev/null + exit 0 +} + +trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT while true; do effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1) @@ -8,9 +15,7 @@ while true; do while pgrep -x tte >/dev/null; do if read -n 1 -t 0.01; then - pkill -x tte 2>/dev/null - pkill -f "alacritty --class Screensaver" 2>/dev/null - exit 0 + exit_screensaver fi done done From 07c072cf21c8071f6fa1929e0922d28414a80550 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 29 Aug 2025 21:42:02 +0200 Subject: [PATCH 21/82] Spacing --- bin/omarchy-cmd-screensaver | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver index 21eaa0a..cf905dd 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -1,4 +1,5 @@ #!/bin/bash + function exit_screensaver { pkill -x tte 2>/dev/null pkill -f "alacritty --class Screensaver" 2>/dev/null From ed3e1f901b0f683f1a9747c565ce9f76dd37f719 Mon Sep 17 00:00:00 2001 From: Jordan King Date: Fri, 29 Aug 2025 20:43:26 +0100 Subject: [PATCH 22/82] Set hypridle exception for fullscreen apps (#1303) --- default/hypr/windows.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index bc665b2..d66b7bb 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -7,5 +7,8 @@ windowrule = opacity 0.97 0.9, class:.* # Fix some dragging issues with XWayland windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 +# Prevent screensaver/lock while running apps fullscreen +windowrule = idleinhibit fullscreen, class:.* + # App-specific tweaks source = ~/.local/share/omarchy/default/hypr/apps.conf From b388d95d4b0e75cb1e2382da3a4d127bb6c85b3e Mon Sep 17 00:00:00 2001 From: Cosmin Popovici <1656595+cossssmin@users.noreply.github.com> Date: Fri, 29 Aug 2025 22:46:39 +0300 Subject: [PATCH 23/82] Fix comment formatting for key unbinding example (#1245) `unbind = SUPER, Space` will not work, but `unbind = SUPER, SPACE` will --- 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 fc6d9ce..64814ca 100644 --- a/config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -25,5 +25,5 @@ bindd = SUPER, X, X, exec, omarchy-launch-webapp "https://x.com/" bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post" # Overwrite existing bindings, like putting Omarchy Menu on Super + Space -# unbind = SUPER, Space +# unbind = SUPER, SPACE # bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu From 4f6f92b2ccd9e517bfb9e094200030df72ddda01 Mon Sep 17 00:00:00 2001 From: Ankur Kotwal Date: Sat, 30 Aug 2025 15:37:25 +1000 Subject: [PATCH 24/82] Use ttf-jetbrains-mono-nerd font instead of the non-nerd variant. (#1308) * Use ttf-jetbrains-mono-nerd font instead of the non-nerd variant. * Update font installation script for JetBrains Mono --------- Co-authored-by: David Heinemeier Hansson --- install/packages.sh | 2 +- migrations/1756507384.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100755 migrations/1756507384.sh diff --git a/install/packages.sh b/install/packages.sh index f50233a..673a248 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -96,7 +96,7 @@ sudo pacman -S --noconfirm --needed \ tree-sitter-cli \ ttf-cascadia-mono-nerd \ ttf-ia-writer \ - ttf-jetbrains-mono \ + ttf-jetbrains-mono-nerd \ typora \ tzupdate \ ufw \ diff --git a/migrations/1756507384.sh b/migrations/1756507384.sh new file mode 100755 index 0000000..b49888a --- /dev/null +++ b/migrations/1756507384.sh @@ -0,0 +1,4 @@ +echo "Replace JetBrains Mono font with the Nerd Font edition" + +pkg-add ttf-jetbrains-mono-nerd +pkg-remove ttf-jetbrains-mono From a3c5e589f60e7ad3d103114915b4d9d863a1bdf4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 30 Aug 2025 07:41:05 +0200 Subject: [PATCH 25/82] Extract pkg cmd abstractions and clean up all migrations (#1291) * No using custom chromium.desktop any more * Spacing * Rely on $OMARCHY_PATH * Add common pkg and cmd functions for use in migrations and elsewhere * Simple pkg-adds * Later migration does it * Ensure running migrations on older installs have the new pkg/cmds available * Spacing * Use new abstractions * Installed in later migration * Needless comment * Use new commands * Fix package name from 'batt' to 'bat' --- default/bash/functions | 50 ++++++++++++++++++++++++++++++++++++++++ migrations/1751134562.sh | 3 +++ migrations/1751135253.sh | 6 ++--- migrations/1751510848.sh | 4 +--- migrations/1751667620.sh | 7 +++--- migrations/1751672984.sh | 4 +--- migrations/1751679069.sh | 4 +--- migrations/1751821819.sh | 4 +--- migrations/1751887718.sh | 6 ++--- migrations/1752081088.sh | 3 ++- migrations/1752082381.sh | 4 +--- migrations/1752091783.sh | 4 ++-- migrations/1752104271.sh | 1 + migrations/1752153188.sh | 1 + migrations/1752188554.sh | 10 ++++---- migrations/1752251002.sh | 1 + migrations/1752292967.sh | 5 ++-- migrations/1752543801.sh | 1 + migrations/1752678932.sh | 4 +--- migrations/1752725616.sh | 1 + migrations/1752793122.sh | 1 + migrations/1752797704.sh | 1 + migrations/1752874371.sh | 1 + migrations/1752885858.sh | 4 +--- migrations/1752896442.sh | 7 +++--- migrations/1752897642.sh | 5 ++-- migrations/1752899588.sh | 1 + migrations/1752955912.sh | 4 +--- migrations/1752981883.sh | 6 ++--- migrations/1753138691.sh | 4 ++-- migrations/1753176520.sh | 6 +---- migrations/1753468218.sh | 5 ---- migrations/1753495989.sh | 5 ++-- migrations/1753558374.sh | 4 ---- migrations/1753998861.sh | 4 ---- migrations/1754208139.sh | 5 ---- migrations/1754215439.sh | 5 ---- migrations/1754215533.sh | 4 ++-- migrations/1754221967.sh | 3 ++- migrations/1754228679.sh | 2 -- migrations/1754265453.sh | 1 + migrations/1754302123.sh | 1 + migrations/1754305112.sh | 2 -- migrations/1754332200.sh | 3 ++- migrations/1754509222.sh | 2 +- migrations/1754666868.sh | 3 --- migrations/1754668999.sh | 1 - migrations/1754679822.sh | 5 ---- migrations/1754828680.sh | 2 -- migrations/1754860578.sh | 1 + migrations/1754929475.sh | 1 + migrations/1754929737.sh | 1 + migrations/1755164105.sh | 6 ++--- migrations/1755436367.sh | 4 ++-- migrations/1755455095.sh | 8 +------ migrations/1755459930.sh | 4 +--- migrations/1755512354.sh | 3 --- migrations/1755527220.sh | 3 --- migrations/1755548643.sh | 4 +--- migrations/1755865046.sh | 6 ++--- migrations/1756060611.sh | 6 ++--- migrations/1756062808.sh | 2 -- migrations/1756115364.sh | 4 ++-- migrations/1756410649.sh | 8 +------ migrations/1756411865.sh | 4 +--- 65 files changed, 132 insertions(+), 153 deletions(-) create mode 100644 migrations/1751134562.sh delete mode 100644 migrations/1753468218.sh delete mode 100644 migrations/1753558374.sh delete mode 100644 migrations/1753998861.sh delete mode 100644 migrations/1754208139.sh delete mode 100644 migrations/1754215439.sh delete mode 100644 migrations/1754228679.sh delete mode 100644 migrations/1754305112.sh delete mode 100644 migrations/1754666868.sh delete mode 100644 migrations/1754679822.sh delete mode 100644 migrations/1754828680.sh delete mode 100644 migrations/1755512354.sh delete mode 100644 migrations/1755527220.sh delete mode 100644 migrations/1756062808.sh diff --git a/default/bash/functions b/default/bash/functions index 84ebf16..e074f46 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -66,3 +66,53 @@ img2png() { "${1%.*}.png" } + +pkg-present() { + for pkg in "$@"; do + pacman -Q "$pkg" &>/dev/null || return 1 + done + + return 0 +} + +pkg-missing() { + for pkg in "$@"; do + if ! pacman -Q "$pkg" &>/dev/null; then + return 0 + fi + done + + return 1 +} + +pkg-add() { + for pkg in "$@"; do + if ! pacman -Q "$pkg" &>/dev/null; then + sudo pacman -S --noconfirm --needed "$pkg" + fi + done +} + +pkg-remove() { + for pkg in "$@"; do + if pacman -Q "$pkg" &>/dev/null; then + sudo pacman -Rns --noconfirm "$pkg" + fi + done +} + +cmd-present() { + for cmd in "$@"; do + command -v "$cmd" &>/dev/null || return 1 + done + return 0 +} + +cmd-missing() { + for cmd in "$@"; do + if ! command -v "$cmd" &>/dev/null; then + return 0 + fi + done + return 1 +} diff --git a/migrations/1751134562.sh b/migrations/1751134562.sh new file mode 100644 index 0000000..8291842 --- /dev/null +++ b/migrations/1751134562.sh @@ -0,0 +1,3 @@ +echo "Ensure new pkg/cmd functions are available to old-run migrations" + +source $OMARCHY_PATH/default/bash/functions diff --git a/migrations/1751135253.sh b/migrations/1751135253.sh index 92e9144..821dd6b 100644 --- a/migrations/1751135253.sh +++ b/migrations/1751135253.sh @@ -1,5 +1,3 @@ echo "Add missing installation of bat (used by the ff alias)" -if ! command -v bat &>/dev/null; then - # Add missing installation of bat - sudo pacman -S --noconfirm --needed bat -fi + +pkg-add bat diff --git a/migrations/1751510848.sh b/migrations/1751510848.sh index 8bdc855..d1485e9 100644 --- a/migrations/1751510848.sh +++ b/migrations/1751510848.sh @@ -1,5 +1,3 @@ echo "Installing missing fd terminal tool for finding files" -if ! command -v fd &>/dev/null; then - sudo pacman -S --noconfirm --needed fd -fi +pkg-add fd diff --git a/migrations/1751667620.sh b/migrations/1751667620.sh index a45252e..d19aafa 100644 --- a/migrations/1751667620.sh +++ b/migrations/1751667620.sh @@ -1,8 +1,9 @@ echo "Switching from vlc to mpv for the default video player" -if ! command -v mpv &>/dev/null; then - sudo pacman -Rns --noconfirm vlc +if cmd-missing mpv; then + pkg-remove vlc rm ~/.local/share/applications/vlc.desktop - sudo pacman -S --noconfirm mpv + + pkg-add mpv xdg-mime default mpv.desktop video/mp4 xdg-mime default mpv.desktop video/x-msvideo xdg-mime default mpv.desktop video/x-matroska diff --git a/migrations/1751672984.sh b/migrations/1751672984.sh index 9b0308a..e423526 100644 --- a/migrations/1751672984.sh +++ b/migrations/1751672984.sh @@ -1,5 +1,3 @@ echo "Add LocalSend as new default application" -if ! command -v localsend &>/dev/null; then - sudo pacman -S --noconfirm --needed localsend -fi +pkg-add localsend diff --git a/migrations/1751679069.sh b/migrations/1751679069.sh index a2f437f..cee3def 100644 --- a/migrations/1751679069.sh +++ b/migrations/1751679069.sh @@ -1,5 +1,3 @@ echo "Install ffmpegthumbnailer for video thumbnails in the file manager" -if ! command -v ffmpegthumbnailer &>/dev/null; then - sudo pacman -S --noconfirm --needed ffmpegthumbnailer -fi +pkg-add ffmpegthumbnailer diff --git a/migrations/1751821819.sh b/migrations/1751821819.sh index f8d616f..0b78cd2 100644 --- a/migrations/1751821819.sh +++ b/migrations/1751821819.sh @@ -1,5 +1,3 @@ echo "Install bash-completion" -if ! pacman -Q bash-completion &>/dev/null; then - sudo pacman -S --noconfirm --needed bash-completion -fi +pkg-add bash-completion diff --git a/migrations/1751887718.sh b/migrations/1751887718.sh index ac1894f..a3643ea 100644 --- a/migrations/1751887718.sh +++ b/migrations/1751887718.sh @@ -1,6 +1,6 @@ echo "Install Impala as new wifi selection TUI" -if ! command -v impala &>/dev/null; then - sudo pacman -S --noconfirm --needed impala - echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar." + +if cmd-missing impala; then + pkg-add impala omarchy-refresh-waybar fi diff --git a/migrations/1752081088.sh b/migrations/1752081088.sh index 6eb49a2..727988f 100644 --- a/migrations/1752081088.sh +++ b/migrations/1752081088.sh @@ -1,2 +1,3 @@ echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)" -source ~/.local/share/omarchy/install/config/hardware/fix-fkeys.sh + +source $OMARCHY_PATH/install/config/hardware/fix-fkeys.sh diff --git a/migrations/1752082381.sh b/migrations/1752082381.sh index 561fa7e..3f3a88e 100644 --- a/migrations/1752082381.sh +++ b/migrations/1752082381.sh @@ -1,5 +1,3 @@ echo "Adding gnome-keyring to make 1password work with 2FA codes" -if ! command -v gnome-keyring &>/dev/null; then - sudo pacman -S --noconfirm --needed gnome-keyring -fi +pkg-add gnome-keyring diff --git a/migrations/1752091783.sh b/migrations/1752091783.sh index 6d7160b..e0339ea 100644 --- a/migrations/1752091783.sh +++ b/migrations/1752091783.sh @@ -1,4 +1,4 @@ echo "Install Plymouth splash screen" -sudo pacman -S --needed --noconfirm uwsm plymouth -source "$HOME/.local/share/omarchy/install/login/plymouth.sh" +pkg-add uwsm plymouth +source "$OMARCHY_PATH/install/login/plymouth.sh" diff --git a/migrations/1752104271.sh b/migrations/1752104271.sh index a602fe3..dcbda81 100644 --- a/migrations/1752104271.sh +++ b/migrations/1752104271.sh @@ -1,4 +1,5 @@ echo "Switching to polkit-gnome for better fingerprint authentication compatibility" + if ! command -v /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &>/dev/null; then sudo pacman -S --noconfirm --needed polkit-gnome systemctl --user stop hyprpolkitagent diff --git a/migrations/1752153188.sh b/migrations/1752153188.sh index fca5ebf..ec4beea 100644 --- a/migrations/1752153188.sh +++ b/migrations/1752153188.sh @@ -1,4 +1,5 @@ echo "Migrate to the modular implementation of hyprlock" + if [ -L ~/.config/hypr/hyprlock.conf ]; then rm ~/.config/hypr/hyprlock.conf cp ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf diff --git a/migrations/1752188554.sh b/migrations/1752188554.sh index ffec2a2..13c5d54 100644 --- a/migrations/1752188554.sh +++ b/migrations/1752188554.sh @@ -1,7 +1,5 @@ echo "Update chromium.desktop to ensure we are always using wayland" -if [[ ! -f ~/.local/share/applications/chromium.desktop ]]; then - cp ~/.local/share/omarchy/applications/chromium.desktop ~/.local/share/applications/ - xdg-settings set default-web-browser chromium.desktop - xdg-mime default chromium.desktop x-scheme-handler/http - xdg-mime default chromium.desktop x-scheme-handler/https -fi + +xdg-settings set default-web-browser chromium.desktop +xdg-mime default chromium.desktop x-scheme-handler/http +xdg-mime default chromium.desktop x-scheme-handler/https diff --git a/migrations/1752251002.sh b/migrations/1752251002.sh index 39cb487..cea7a61 100644 --- a/migrations/1752251002.sh +++ b/migrations/1752251002.sh @@ -1,4 +1,5 @@ echo "Migrate to the modular, variable-based implementation of waybar style.css" + if [ -L ~/.config/waybar/style.css ]; then rm ~/.config/waybar/style.css cp ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/style.css diff --git a/migrations/1752292967.sh b/migrations/1752292967.sh index ad649ce..b91bae5 100644 --- a/migrations/1752292967.sh +++ b/migrations/1752292967.sh @@ -1,5 +1,6 @@ echo "Update to use UWSM and seamless login" -if ! command -v uwsm &>/dev/null; then + +if cmd-missing uwsm; then sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true @@ -14,5 +15,5 @@ if ! command -v uwsm &>/dev/null; then sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf" fi - source ~/.local/share/omarchy/install/login/plymouth.sh + source $OMARCHY_PATH/install/login/plymouth.sh fi diff --git a/migrations/1752543801.sh b/migrations/1752543801.sh index d1e5bfd..7c068ad 100644 --- a/migrations/1752543801.sh +++ b/migrations/1752543801.sh @@ -1,3 +1,4 @@ echo "Add color and animation to pacman installs" + grep -q '^Color' /etc/pacman.conf || sudo sed -i '/^\[options\]/a Color' /etc/pacman.conf grep -q '^ILoveCandy' /etc/pacman.conf || sudo sed -i '/^\[options\]/a ILoveCandy' /etc/pacman.conf diff --git a/migrations/1752678932.sh b/migrations/1752678932.sh index 1aa8c85..8fdb22a 100644 --- a/migrations/1752678932.sh +++ b/migrations/1752678932.sh @@ -1,5 +1,3 @@ echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility" -if ! docker buildx version &>/dev/null; then - sudo pacman -S --noconfirm --needed docker-buildx -fi +pkg-add docker-buildx diff --git a/migrations/1752725616.sh b/migrations/1752725616.sh index 5dddefe..5f94c05 100644 --- a/migrations/1752725616.sh +++ b/migrations/1752725616.sh @@ -1,4 +1,5 @@ echo "Make light themes possible" + if [[ -f ~/.local/share/applications/blueberry.desktop ]]; then rm -f ~/.local/share/applications/blueberry.desktop rm -f ~/.local/share/applications/org.pulseaudio.pavucontrol.desktop diff --git a/migrations/1752793122.sh b/migrations/1752793122.sh index fad0646..9429d92 100644 --- a/migrations/1752793122.sh +++ b/migrations/1752793122.sh @@ -1,4 +1,5 @@ echo "Rename waybar config file for syntax highlighting" + if [[ -f ~/.config/waybar/config ]]; then mv ~/.config/waybar/config ~/.config/waybar/config.jsonc fi diff --git a/migrations/1752797704.sh b/migrations/1752797704.sh index f51aa70..b59111f 100644 --- a/migrations/1752797704.sh +++ b/migrations/1752797704.sh @@ -1,4 +1,5 @@ echo "Prevent docker from requiring network readiness on boot" + if [[ ! -f /etc/systemd/system/docker.service.d/no-block-boot.conf ]]; then sudo mkdir -p /etc/systemd/system/docker.service.d/ sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF' diff --git a/migrations/1752874371.sh b/migrations/1752874371.sh index 649adc7..669c3b7 100644 --- a/migrations/1752874371.sh +++ b/migrations/1752874371.sh @@ -1,4 +1,5 @@ echo "Add Catppuccin Latte light theme" + if [[ ! -L "~/.config/omarchy/themes/catppuccin-latte" ]]; then ln -snf ~/.local/share/omarchy/themes/catppuccin-latte ~/.config/omarchy/themes/ fi diff --git a/migrations/1752885858.sh b/migrations/1752885858.sh index 8720878..797af4a 100644 --- a/migrations/1752885858.sh +++ b/migrations/1752885858.sh @@ -1,5 +1,3 @@ echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder" -if ! command -v wl-screenrec &>/dev/null || ! command -v slurp &>/dev/null; then - sudo pacman -S --noconfirm --needed slurp wl-screenrec -fi +pkg-add slurp wl-screenrec diff --git a/migrations/1752896442.sh b/migrations/1752896442.sh index 1b154e3..71df10a 100644 --- a/migrations/1752896442.sh +++ b/migrations/1752896442.sh @@ -1,9 +1,8 @@ echo "Replace volume control GUI with a TUI" -if ! command -v wiremix &>/dev/null; then - sudo pacman -S --noconfirm --needed wiremix - sudo pacman -Rns --noconfirm pavucontrol - +if cmd-missing wiremix; then + pkg-add wiremix + pkg-remove pavucontrol omarchy-refresh-applications omarchy-refresh-waybar fi diff --git a/migrations/1752897642.sh b/migrations/1752897642.sh index e1f844d..119d419 100644 --- a/migrations/1752897642.sh +++ b/migrations/1752897642.sh @@ -1,4 +1,3 @@ echo "Remove needless fcitx5-configtool package" -if pacman -Qe fcitx5-configtool &>/dev/null; then - sudo pacman -Rns --noconfirm fcitx5-configtool -fi + +pkg-remove fcitx5-configtool diff --git a/migrations/1752899588.sh b/migrations/1752899588.sh index ba778cd..562c6bd 100644 --- a/migrations/1752899588.sh +++ b/migrations/1752899588.sh @@ -1,2 +1,3 @@ echo "Update .config/hypr/hyprlock.conf to include failed attempt counter" + omarchy-refresh-hyprlock diff --git a/migrations/1752955912.sh b/migrations/1752955912.sh index 0933cb1..f3d3285 100644 --- a/migrations/1752955912.sh +++ b/migrations/1752955912.sh @@ -1,5 +1,3 @@ echo "Install satty for the new screenshot flow" -if ! command -v satty &>/dev/null; then - sudo pacman -S --noconfirm --needed satty -fi +pkg-add satty diff --git a/migrations/1752981883.sh b/migrations/1752981883.sh index bac71ab..3bb6b21 100644 --- a/migrations/1752981883.sh +++ b/migrations/1752981883.sh @@ -1,9 +1,9 @@ echo "Replace wofi with walker as the default launcher" -if ! command -v walker &>/dev/null; then - sudo pacman -S --noconfirm --needed walker-bin libqalculate +if cmd-missing walker; then + pkg-add walker-bin libqalculate - sudo pacman -Rns --noconfirm wofi + pkg-remove wofi rm -rf ~/.config/wofi mkdir -p ~/.config/walker diff --git a/migrations/1753138691.sh b/migrations/1753138691.sh index 53f5471..79928c9 100644 --- a/migrations/1753138691.sh +++ b/migrations/1753138691.sh @@ -1,6 +1,6 @@ echo "Install swayOSD to show volume status" -if ! command -v swayosd-server &>/dev/null; then - sudo pacman -S --noconfirm --needed swayosd +if cmd-missing swayosd-server; then + pkg-add swayosd setsid uwsm app -- swayosd-server &>/dev/null & fi diff --git a/migrations/1753176520.sh b/migrations/1753176520.sh index e26abf2..c6ae1dd 100644 --- a/migrations/1753176520.sh +++ b/migrations/1753176520.sh @@ -1,7 +1,3 @@ echo "Install wf-recorder for screen recording for nvidia" -if lspci | grep -qi 'nvidia'; then - if ! command -v wf-recorder &>/dev/null; then - sudo pacman -S --noconfirm --needed wf-recorder - fi -fi +pkg-add wf-recorder diff --git a/migrations/1753468218.sh b/migrations/1753468218.sh deleted file mode 100644 index 8fa3ba5..0000000 --- a/migrations/1753468218.sh +++ /dev/null @@ -1,5 +0,0 @@ -echo "Add Terminal Text Effects for rizzing Omarchy" - -if ! pacman -Q python-terminaltexteffects &>/dev/null; then - sudo pacman -S --noconfirm python-terminaltexteffects -fi diff --git a/migrations/1753495989.sh b/migrations/1753495989.sh index 5c0efcd..2a25942 100644 --- a/migrations/1753495989.sh +++ b/migrations/1753495989.sh @@ -1,5 +1,6 @@ echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" -if ! command -v tzupdate &>/dev/null; then - bash ~/.local/share/omarchy/install/config/timezones.sh + +if cmd-missing tzupdate; then + $OMARCHY_PATH/install/config/timezones.sh omarchy-refresh-waybar fi diff --git a/migrations/1753558374.sh b/migrations/1753558374.sh deleted file mode 100644 index b961d3e..0000000 --- a/migrations/1753558374.sh +++ /dev/null @@ -1,4 +0,0 @@ -echo "Update Walker config to include = as the leader key for the calculator" -if ! grep -q 'prefix = "="' ~/.config/walker/config.toml; then - omarchy-refresh-walker -fi diff --git a/migrations/1753998861.sh b/migrations/1753998861.sh deleted file mode 100644 index 4751dee..0000000 --- a/migrations/1753998861.sh +++ /dev/null @@ -1,4 +0,0 @@ -echo "Update Walker config to include . as the leader key for the finder" -if ! grep -q 'prefix = "\."' ~/.config/walker/config.toml; then - omarchy-refresh-walker -fi diff --git a/migrations/1754208139.sh b/migrations/1754208139.sh deleted file mode 100644 index b95c744..0000000 --- a/migrations/1754208139.sh +++ /dev/null @@ -1,5 +0,0 @@ -echo "Ensure screensaver doesn't start while the computer is locked" - -if ! grep -q "pidof hyprlock || omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then - omarchy-refresh-hypridle -fi diff --git a/migrations/1754215439.sh b/migrations/1754215439.sh deleted file mode 100644 index 90651bb..0000000 --- a/migrations/1754215439.sh +++ /dev/null @@ -1,5 +0,0 @@ -echo "Update app launcher config to allow enough entries to show all keybindings on SUPER+K" - -if ! grep "max_entries = 200" ~/.config/walker/config.toml; then - omarchy-refresh-walker -fi diff --git a/migrations/1754215533.sh b/migrations/1754215533.sh index 05a0774..a034dff 100644 --- a/migrations/1754215533.sh +++ b/migrations/1754215533.sh @@ -1,7 +1,7 @@ echo "Enable auto-discovery of network printers" if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then - sudo pacman -S --noconfirm avahi nss-mdns + pkg-add avahi nss-mdns # Disable multicast dns in resolved. Avahi will provide this for better network printer discovery sudo mkdir -p /etc/systemd/resolved.conf.d @@ -10,7 +10,7 @@ if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then fi if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then - sudo pacman -S --noconfirm cups-browsed + pkg-add cups-browsed # Enable automatically adding remote printers echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf sudo systemctl enable --now cups-browsed.service diff --git a/migrations/1754221967.sh b/migrations/1754221967.sh index 7a13507..24ef64c 100644 --- a/migrations/1754221967.sh +++ b/migrations/1754221967.sh @@ -1,2 +1,3 @@ echo "Add support for accessing Android phone data via file manager" -sudo pacman -S --noconfirm --needed gvfs-mtp + +pkg-add gvfs-mtp diff --git a/migrations/1754228679.sh b/migrations/1754228679.sh deleted file mode 100644 index 2a80234..0000000 --- a/migrations/1754228679.sh +++ /dev/null @@ -1,2 +0,0 @@ -echo "Increase time before screensaver starts to 2.5 minutes (from 1 minute)" -omarchy-refresh-hypridle diff --git a/migrations/1754265453.sh b/migrations/1754265453.sh index 412d75e..ab2d092 100644 --- a/migrations/1754265453.sh +++ b/migrations/1754265453.sh @@ -1,2 +1,3 @@ echo "Add chromium-flags.conf" + omarchy-refresh-config chromium-flags.conf diff --git a/migrations/1754302123.sh b/migrations/1754302123.sh index 5e7ff59..b9b72ee 100644 --- a/migrations/1754302123.sh +++ b/migrations/1754302123.sh @@ -1,4 +1,5 @@ echo "Change update-available icon in top bar from  to " + if grep -q '"format": "",' ~/.config/waybar/config.jsonc; then sed -i 's/"format": ""/"format": ""/' ~/.config/waybar/config.jsonc fi diff --git a/migrations/1754305112.sh b/migrations/1754305112.sh deleted file mode 100644 index e23ea5d..0000000 --- a/migrations/1754305112.sh +++ /dev/null @@ -1,2 +0,0 @@ -echo "Restart Walker to pick up menu selections" -omarchy-restart-walker diff --git a/migrations/1754332200.sh b/migrations/1754332200.sh index fc9c350..4e92daa 100644 --- a/migrations/1754332200.sh +++ b/migrations/1754332200.sh @@ -1,2 +1,3 @@ echo "Remove old Omarchy TUI app now that we have the Omarchy Menu" -rm -rf ~/.local/share/applications/omarchy.desktop + +rm -f ~/.local/share/applications/omarchy.desktop diff --git a/migrations/1754509222.sh b/migrations/1754509222.sh index ced63c6..b9daaaa 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 -S --noconfirm --needed xmlstarlet +pkg-add xmlstarlet diff --git a/migrations/1754666868.sh b/migrations/1754666868.sh deleted file mode 100644 index db311ae..0000000 --- a/migrations/1754666868.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Update OS icon in About from Windows to Arch" - -omarchy-refresh-config fastfetch/config.jsonc diff --git a/migrations/1754668999.sh b/migrations/1754668999.sh index b7966ed..7361dcd 100644 --- a/migrations/1754668999.sh +++ b/migrations/1754668999.sh @@ -1,4 +1,3 @@ echo "Tune MTU probing for more reliable SSH" -# Solve common flakiness with SSH echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf diff --git a/migrations/1754679822.sh b/migrations/1754679822.sh deleted file mode 100644 index 3787c64..0000000 --- a/migrations/1754679822.sh +++ /dev/null @@ -1,5 +0,0 @@ -echo "Lock 1password on screen lock" - -if ! grep -q "omarchy-lock-screen" ~/.config/hypr/hypridle.conf; then - omarchy-refresh-hypridle -fi diff --git a/migrations/1754828680.sh b/migrations/1754828680.sh deleted file mode 100644 index 6deb7c4..0000000 --- a/migrations/1754828680.sh +++ /dev/null @@ -1,2 +0,0 @@ -echo "Update Walker config" -omarchy-refresh-walker diff --git a/migrations/1754860578.sh b/migrations/1754860578.sh index afd4beb..c384c7a 100644 --- a/migrations/1754860578.sh +++ b/migrations/1754860578.sh @@ -1,4 +1,5 @@ echo "Update polkit policy to yield to fingerprint and fido2" + # If fprint exists in polkit, it was wrong and needs reset if [ -f /etc/pam.d/polkit-1 ] && grep -Fq 'pam_fprintd.so' /etc/pam.d/polkit-1; then sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF' diff --git a/migrations/1754929475.sh b/migrations/1754929475.sh index f6089a8..ac4f650 100644 --- a/migrations/1754929475.sh +++ b/migrations/1754929475.sh @@ -1,4 +1,5 @@ echo "Add start burst limit to login" + if [ -f /etc/systemd/system/omarchy-seamless-login.service ]; then cat </dev/null; then - sudo pacman -Rns --noconfirm chromium || true - sudo pacman -S --noconfirm omarchy-chromium +if cmd-present chromium; then + pkg-remove chromium + pkg-add omarchy-chromium if pgrep -x chromium; then if gum confirm "Chromium must be restarted. Ready?"; then diff --git a/migrations/1755436367.sh b/migrations/1755436367.sh index b3de9b4..38fd6f3 100644 --- a/migrations/1755436367.sh +++ b/migrations/1755436367.sh @@ -1,6 +1,6 @@ echo "Add minimal starship prompt to terminal" -if ! command -v starship &>/dev/null; then - sudo pacman -S --noconfirm starship +if cmd-missing starship; then + pkg-add starship cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml fi diff --git a/migrations/1755455095.sh b/migrations/1755455095.sh index 4aed9d5..6246dcf 100644 --- a/migrations/1755455095.sh +++ b/migrations/1755455095.sh @@ -1,9 +1,3 @@ echo "Ensure TTE and dependencies are installed" -if ! pacman -Q python-poetry-core &>/dev/null; then - sudo pacman -S --noconfirm python-poetry-core -fi - -if ! pacman -Q python-terminaltexteffects &>/dev/null; then - sudo pacman -S --noconfirm python-terminaltexteffects -fi +pkg-add python-poetry-core python-terminaltexteffects diff --git a/migrations/1755459930.sh b/migrations/1755459930.sh index 2b9c2f3..7d04c0c 100644 --- a/migrations/1755459930.sh +++ b/migrations/1755459930.sh @@ -1,5 +1,3 @@ echo "Add potentially missing dependency for power profile controls" -if ! pacman -Q python-gobject &>/dev/null; then - sudo pacman -S --noconfirm python-gobject -fi +pkg-add python-gobject diff --git a/migrations/1755512354.sh b/migrations/1755512354.sh deleted file mode 100644 index ffbee83..0000000 --- a/migrations/1755512354.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Update fastfetch config to include current theme name and colors" - -omarchy-refresh-config fastfetch/config.jsonc diff --git a/migrations/1755527220.sh b/migrations/1755527220.sh deleted file mode 100644 index 845c3fe..0000000 --- a/migrations/1755527220.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Turn on the screensaver by default again now that TTE has been fixed" - -omarchy-refresh-hypridle diff --git a/migrations/1755548643.sh b/migrations/1755548643.sh index 3f5367b..051e542 100644 --- a/migrations/1755548643.sh +++ b/migrations/1755548643.sh @@ -1,5 +1,3 @@ echo "Install wf-recorder for intel based device" -if lspci | grep -Eqi 'nvidia|intel.*graphics'; then - sudo pacman -S --noconfirm --needed wf-recorder -fi +pkg-add wf-recorder diff --git a/migrations/1755865046.sh b/migrations/1755865046.sh index b07766a..92a2312 100644 --- a/migrations/1755865046.sh +++ b/migrations/1755865046.sh @@ -1,6 +1,4 @@ echo "Switch from lazydocker-bin to lazydocker official" -if pacman -Q lazydocker-bin >/dev/null; then - sudo pacman -Rns --noconfirm lazydocker-bin - sudo pacman -S --noconfirm lazydocker -fi +pkg-remove lazydocker-bin +pkg-add lazydocker diff --git a/migrations/1756060611.sh b/migrations/1756060611.sh index fd22620..a26039b 100644 --- a/migrations/1756060611.sh +++ b/migrations/1756060611.sh @@ -1,15 +1,13 @@ echo "Migrate AUR packages to official repos where possible" reinstall_package_opr() { - if pacman -Q $1 >/dev/null; then + if pkg-present $1; then sudo pacman -Rns --noconfirm $1 sudo pacman -S --noconfirm ${2:-$1} fi } -if pacman -Q yay-bin-debug >/dev/null; then - sudo pacman -Rns --noconfirm yay-bin-debug -fi +pkg-remove yay-bin-debug reinstall_package_opr yay-bin yay reinstall_package_opr obsidian-bin obsidian diff --git a/migrations/1756062808.sh b/migrations/1756062808.sh deleted file mode 100644 index 3618320..0000000 --- a/migrations/1756062808.sh +++ /dev/null @@ -1,2 +0,0 @@ -echo "Update Hypridle to prevent flash of unlocked screen after sleep" -omarchy-refresh-hypridle diff --git a/migrations/1756115364.sh b/migrations/1756115364.sh index cdd8113..dd2ade5 100644 --- a/migrations/1756115364.sh +++ b/migrations/1756115364.sh @@ -1,6 +1,6 @@ echo "Replace buggy native Zoom client with webapp" -if pacman -Q zoom >/dev/null; then - sudo pacman -Rns --noconfirm zoom +if pkg-present zoom; then + pkg-remove zoom omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zoom.png fi diff --git a/migrations/1756410649.sh b/migrations/1756410649.sh index 5a11b22..71f8585 100644 --- a/migrations/1756410649.sh +++ b/migrations/1756410649.sh @@ -1,12 +1,6 @@ echo "Remove any Chaotic-AUR infrastructure packages" -if pacman -Q chaotic-keyring 2>/dev/null; then - sudo pacman -Rns --noconfirm chaotic-keyring -fi - -if pacman -Q chaotic-mirrorlist 2>/dev/null; then - sudo pacman -Rns --noconfirm chaotic-mirrorlist -fi +pkg-remove chaotic-keyring chaotic-mirrorlist if sudo pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1; then sudo pacman-key --delete 3056513887B78AEB diff --git a/migrations/1756411865.sh b/migrations/1756411865.sh index 9d93562..dc26393 100644 --- a/migrations/1756411865.sh +++ b/migrations/1756411865.sh @@ -1,5 +1,3 @@ echo "Add back ttf-ia-writer if it was missing" -if ! pacman -Q ttf-ia-writer 2>/dev/null; then - sudo pacman -S --noconfirm ttf-ia-writer -fi +pkg-add ttf-ia-writer From effae1e7f2a47e99cbdf016fa1205e0e892c739b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 30 Aug 2025 08:51:15 +0200 Subject: [PATCH 26/82] Include nautilus dialogs as floating windows --- default/hypr/apps/system.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/hypr/apps/system.conf b/default/hypr/apps/system.conf index 2f0ab27..a718c95 100644 --- a/default/hypr/apps/system.conf +++ b/default/hypr/apps/system.conf @@ -4,7 +4,7 @@ windowrule = center, tag:floating-window windowrule = size 800 600, tag:floating-window windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) -windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors), title:^(Open.*Files?|Open Folder|Save.*Files?|Save.*As|Save|All Files) +windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open Folder|Save.*Files?|Save.*As|Save|All Files) # Fullscreen screensaver windowrule = fullscreen, class:Screensaver From 59c70fdd46f76906fa15650b5f1dbb7511f8cd0c Mon Sep 17 00:00:00 2001 From: Jarek <65668659+jardahrazdera@users.noreply.github.com> Date: Sat, 30 Aug 2025 09:41:14 +0200 Subject: [PATCH 27/82] Fix DNS migration to handle UseDNS=no in network files (#1314) * Fix DNS migration to handle UseDNS=no in network files Issue #1246: Migration 1755109182.sh only fixes resolved.conf but doesn't remove UseDNS=no from network files. When UseDNS=no persists, it blocks DHCP DNS and forces fallback to Cloudflare after reboot. Fix: Remove UseDNS=no from all network files, matching omarchy-setup-dns DHCP behavior. * Add new migration 1756491748.sh for existing users Fixes DNS issue for users who already ran migration 1755109182.sh. Removes UseDNS=no from network files to enable DHCP DNS. * Apply requested changes - Revert 1755109182.sh to original state - Consolidate all fixes in new migration 1756491748.sh - Follow migration style guidelines --- migrations/1755109182.sh | 3 +-- migrations/1756491748.sh | 6 ++++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100755 migrations/1756491748.sh diff --git a/migrations/1755109182.sh b/migrations/1755109182.sh index 352e342..1908b94 100755 --- a/migrations/1755109182.sh +++ b/migrations/1755109182.sh @@ -28,5 +28,4 @@ if [ -f /etc/systemd/resolved.conf ]; then echo "DNS configuration reset to use DHCP (router DNS)" echo "To use Cloudflare DNS, run: omarchy-setup-dns Cloudflare" -fi - +fi \ No newline at end of file diff --git a/migrations/1756491748.sh b/migrations/1756491748.sh new file mode 100755 index 0000000..801f82a --- /dev/null +++ b/migrations/1756491748.sh @@ -0,0 +1,6 @@ +echo "Removing UseDNS=no from network files to fix DNS issue" + +for file in /etc/systemd/network/*.network; do + [[ -f "$file" ]] || continue + sudo sed -i '/^UseDNS=no/d' "$file" +done \ No newline at end of file From 3ce7849c89815789e890bdd4951019d3244e28fa Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 30 Aug 2025 11:48:31 +0200 Subject: [PATCH 28/82] Group git together --- default/bash/aliases | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/bash/aliases b/default/bash/aliases index d92e2ca..53254cb 100644 --- a/default/bash/aliases +++ b/default/bash/aliases @@ -24,12 +24,12 @@ alias ...='cd ../..' alias ....='cd ../../..' # Tools -alias g='git' alias d='docker' alias r='rails' n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } # Git +alias g='git' alias gcm='git commit -m' alias gcam='git commit -a -m' alias gcad='git commit -a --amend' From a35055e5622156f6f3739aa8c4aa4b12c423bbb0 Mon Sep 17 00:00:00 2001 From: Glenn Oppegard Date: Sat, 30 Aug 2025 12:53:10 -0600 Subject: [PATCH 29/82] Give the screensaver time to breathe (#1184) Add a three second delay between screensaver effects Co-authored-by: David Heinemeier Hansson --- bin/omarchy-cmd-screensaver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver index cf905dd..2fac759 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -15,7 +15,7 @@ while true; do "$effect" & while pgrep -x tte >/dev/null; do - if read -n 1 -t 0.01; then + if read -n 1 -t 2; then exit_screensaver fi done From 98db40fd0d0b0845fba5a85baff664d10a4330d3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 07:54:16 +0200 Subject: [PATCH 30/82] This is preventing Android Studio from working correctly Closes #1300 --- default/hypr/apps/jetbrains.conf | 4 ---- 1 file changed, 4 deletions(-) diff --git a/default/hypr/apps/jetbrains.conf b/default/hypr/apps/jetbrains.conf index d13bb16..661b0a4 100644 --- a/default/hypr/apps/jetbrains.conf +++ b/default/hypr/apps/jetbrains.conf @@ -1,10 +1,6 @@ # Fixing popup size issue windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1 -# Fix tooltips (always have a title of `win.`) -windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^(win.*)$ -windowrule = nofocus, class:^(.*jetbrains.*)$, title:^(win.*)$ - # Fix tab dragging (always have a single space character as their title) windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$ windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$ From 29c22333996d9035542a5951376cb19989babc19 Mon Sep 17 00:00:00 2001 From: chan Date: Sat, 30 Aug 2025 23:07:42 -0700 Subject: [PATCH 31/82] Add gvfs-smb so GNOME Files (Nautilus) can handle smb:// URIs. (#1327) * add gvfs-smb to packages gvfs-smb and its dependencies (smbclient, samba, and cifs-utils) afford access to Samba servers in Nautilus/Files. * Add migration --------- Co-authored-by: David Heinemeier Hansson --- install/packages.sh | 1 + migrations/1756556731.sh | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 migrations/1756556731.sh diff --git a/install/packages.sh b/install/packages.sh index 673a248..76175b0 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -34,6 +34,7 @@ sudo pacman -S --noconfirm --needed \ gnome-themes-extra \ gum \ gvfs-mtp \ + gvfs-smb \ hypridle \ hyprland \ hyprland-qtutils \ diff --git a/migrations/1756556731.sh b/migrations/1756556731.sh new file mode 100644 index 0000000..3a772ba --- /dev/null +++ b/migrations/1756556731.sh @@ -0,0 +1,3 @@ +echo "Add Samba network drive support to the file manager" + +pkg-add gvfs-smb From 9f5975b717211fd4e34bf505e9caddedf4b4860e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 08:50:32 +0200 Subject: [PATCH 32/82] Only configure Docker if it is present on the system --- migrations/1754984734.sh | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/migrations/1754984734.sh b/migrations/1754984734.sh index fc39b17..d9f6cf1 100644 --- a/migrations/1754984734.sh +++ b/migrations/1754984734.sh @@ -1,21 +1,23 @@ echo "Configure Docker to use the host's DNS resolver" -# If the daemon configuration has been changed since we wrote it, leave it as-is -ORIGINAL_CONFIG='{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' +if cmd-present docker; then + # If the daemon configuration has been changed since we wrote it, leave it as-is + ORIGINAL_CONFIG='{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' -NEW_CONFIG='{ - "log-driver": "json-file", - "log-opts": { "max-size": "10m", "max-file": "5" }, - "dns": ["172.17.0.1"], - "bip": "172.17.0.1/16" -}' + NEW_CONFIG='{ + "log-driver": "json-file", + "log-opts": { "max-size": "10m", "max-file": "5" }, + "dns": ["172.17.0.1"], + "bip": "172.17.0.1/16" + }' -if grep -Fq "$ORIGINAL_CONFIG" /etc/docker/daemon.json 2>/dev/null; then - echo "$NEW_CONFIG" | sudo tee /etc/docker/daemon.json >/dev/null + if grep -Fq "$ORIGINAL_CONFIG" /etc/docker/daemon.json 2>/dev/null; then + echo "$NEW_CONFIG" | sudo tee /etc/docker/daemon.json >/dev/null + fi + + # Expose systemd-resolved to our Docker network + echo -e '[Resolve]\nDNSStubListenerExtra=172.17.0.1' | sudo tee /etc/systemd/resolved.conf.d/20-docker-dns.conf >/dev/null + + sudo systemctl restart systemd-resolved + sudo systemctl restart docker fi - -# Expose systemd-resolved to our Docker network -echo -e '[Resolve]\nDNSStubListenerExtra=172.17.0.1' | sudo tee /etc/systemd/resolved.conf.d/20-docker-dns.conf >/dev/null - -sudo systemctl restart systemd-resolved -sudo systemctl restart docker From 0a3ce5c393d442febeed3b33ae40128752abe37b Mon Sep 17 00:00:00 2001 From: Gary Rennie Date: Sun, 31 Aug 2025 08:03:25 +0100 Subject: [PATCH 33/82] Allow failed migrations to be skipped (#1124) * Allow failed migrations to be skipped Failed migrations can be now be skipped by a prompt. This means that if a migration is "stuck" then a user can opt to store it in a separate skipped directory. Skipped migrations will be considered for the purposes of running the pending migrations, however in future, we can allow the user to run their skipped migrations with a flag. To allow the script to continue and prompt for failed migrations, the `set -e` has been removed. A manual check on the exit code is used instead. * Cleanup implementation a bit --------- Co-authored-by: David Heinemeier Hansson --- bin/omarchy-migrate | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/bin/omarchy-migrate b/bin/omarchy-migrate index 00e6556..0f7ba64 100755 --- a/bin/omarchy-migrate +++ b/bin/omarchy-migrate @@ -1,18 +1,27 @@ #!/bin/bash -set -e - # Where we store an empty file for each migration that has already been performed. STATE_DIR="$HOME/.local/state/omarchy/migrations" mkdir -p "$STATE_DIR" +# Skipped migrations are tracked separately +mkdir -p "$STATE_DIR/skipped" + # Run any pending migrations for file in ~/.local/share/omarchy/migrations/*.sh; do filename=$(basename "$file") - if [[ ! -f "$STATE_DIR/$filename" ]]; then + if [[ ! -f "$STATE_DIR/$filename" && ! -f "$STATE_DIR/skipped/$filename" ]]; then echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m" - source $file - touch "$STATE_DIR/$filename" + + if bash -e $file; then + touch "$STATE_DIR/$filename" + else + if gum confirm "Migration ${filename%.sh} failed. Skip and continue?"; then + touch "$STATE_DIR/skipped/$filename" + else + exit 1 + fi + fi fi done From 94ad5d4d370ed62939200b0c450b95f5dbb8767e Mon Sep 17 00:00:00 2001 From: robert stringer <62722976+pipetogrep@users.noreply.github.com> Date: Sun, 31 Aug 2025 08:08:32 +0100 Subject: [PATCH 34/82] fix: symlinks to default icons to prevent text chevron fallbacks (#1114) * fix: symlinks to default icons to prevent text chevron fallbacks * consistent symlink syntax * Needs sudo and had extra quotes * Add migration * added gtk-update-icon-cache for symlinked files * pkill any running Files windows * Cleanup and ensure successful exit so as not to halt migrations * Excess CR --------- Co-authored-by: xz Co-authored-by: David Heinemeier Hansson Co-authored-by: robert stringer --- install/config/theme.sh | 5 +++++ migrations/1756205202.sh | 7 +++++++ 2 files changed, 12 insertions(+) create mode 100644 migrations/1756205202.sh diff --git a/install/config/theme.sh b/install/config/theme.sh index da3f130..4bc7e32 100755 --- a/install/config/theme.sh +++ b/install/config/theme.sh @@ -4,6 +4,11 @@ gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue" +# Set links for Nautilius action icons +sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-previous-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-previous-symbolic.svg +sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-next-symbolic.svg +sudo gtk-update-icon-cache /usr/share/icons/Yaru + # Setup theme links mkdir -p ~/.config/omarchy/themes for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done diff --git a/migrations/1756205202.sh b/migrations/1756205202.sh new file mode 100644 index 0000000..8d8cc73 --- /dev/null +++ b/migrations/1756205202.sh @@ -0,0 +1,7 @@ +echo "Symlink files needed for Nautilus navigation icons" + +sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-previous-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-previous-symbolic.svg +sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-next-symbolic.svg +sudo gtk-update-icon-cache /usr/share/icons/Yaru +pkill -x nautilus || true + From 9e5b4fc871ca748c7cc2b1aa90005ed68893001b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 09:18:06 +0200 Subject: [PATCH 35/82] Turn pkg and cmd functions into bins to avoid PATH issues in subshells --- bin/omarchy-cmd-missing | 9 +++++++ bin/omarchy-cmd-present | 7 ++++++ bin/omarchy-migrate | 2 +- bin/omarchy-pkg-add | 7 ++++++ bin/omarchy-pkg-drop | 7 ++++++ bin/omarchy-pkg-missing | 9 +++++++ bin/omarchy-pkg-present | 7 ++++++ default/bash/functions | 51 ---------------------------------------- migrations/1751134562.sh | 3 --- migrations/1751135253.sh | 2 +- migrations/1751510848.sh | 2 +- migrations/1751667620.sh | 6 ++--- migrations/1751672984.sh | 2 +- migrations/1751679069.sh | 2 +- migrations/1751821819.sh | 2 +- migrations/1751887718.sh | 4 ++-- migrations/1752082381.sh | 2 +- migrations/1752091783.sh | 2 +- migrations/1752292967.sh | 2 +- migrations/1752678932.sh | 2 +- migrations/1752885858.sh | 2 +- migrations/1752896442.sh | 6 ++--- migrations/1752897642.sh | 2 +- migrations/1752955912.sh | 2 +- migrations/1752981883.sh | 6 ++--- migrations/1753138691.sh | 4 ++-- migrations/1753176520.sh | 2 +- migrations/1753495989.sh | 2 +- migrations/1754215533.sh | 4 ++-- migrations/1754221967.sh | 2 +- migrations/1754509222.sh | 2 +- migrations/1754984734.sh | 2 +- migrations/1755164105.sh | 6 ++--- migrations/1755436367.sh | 4 ++-- migrations/1755455095.sh | 2 +- migrations/1755459930.sh | 2 +- migrations/1755548643.sh | 2 +- migrations/1755865046.sh | 4 ++-- migrations/1756060611.sh | 4 ++-- migrations/1756115364.sh | 4 ++-- migrations/1756410649.sh | 2 +- migrations/1756411865.sh | 2 +- migrations/1756507384.sh | 4 ++-- migrations/1756556731.sh | 2 +- 44 files changed, 98 insertions(+), 106 deletions(-) create mode 100755 bin/omarchy-cmd-missing create mode 100755 bin/omarchy-cmd-present create mode 100755 bin/omarchy-pkg-add create mode 100755 bin/omarchy-pkg-drop create mode 100755 bin/omarchy-pkg-missing create mode 100755 bin/omarchy-pkg-present delete mode 100644 migrations/1751134562.sh diff --git a/bin/omarchy-cmd-missing b/bin/omarchy-cmd-missing new file mode 100755 index 0000000..fad91ce --- /dev/null +++ b/bin/omarchy-cmd-missing @@ -0,0 +1,9 @@ +#!/bin/bash + +for cmd in "$@"; do + if ! command -v "$cmd" &>/dev/null; then + return 0 + fi +done + +return 1 diff --git a/bin/omarchy-cmd-present b/bin/omarchy-cmd-present new file mode 100755 index 0000000..7c703b4 --- /dev/null +++ b/bin/omarchy-cmd-present @@ -0,0 +1,7 @@ +#!/bin/bash + +for cmd in "$@"; do + command -v "$cmd" &>/dev/null || return 1 +done + +return 0 diff --git a/bin/omarchy-migrate b/bin/omarchy-migrate index 0f7ba64..45cf1ed 100755 --- a/bin/omarchy-migrate +++ b/bin/omarchy-migrate @@ -14,7 +14,7 @@ for file in ~/.local/share/omarchy/migrations/*.sh; do if [[ ! -f "$STATE_DIR/$filename" && ! -f "$STATE_DIR/skipped/$filename" ]]; then echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m" - if bash -e $file; then + if bash $file; then touch "$STATE_DIR/$filename" else if gum confirm "Migration ${filename%.sh} failed. Skip and continue?"; then diff --git a/bin/omarchy-pkg-add b/bin/omarchy-pkg-add new file mode 100755 index 0000000..1694336 --- /dev/null +++ b/bin/omarchy-pkg-add @@ -0,0 +1,7 @@ +#!/bin/bash + +for pkg in "$@"; do + pacman -Q "$pkg" &>/dev/null || return 1 +done + +return 0 diff --git a/bin/omarchy-pkg-drop b/bin/omarchy-pkg-drop new file mode 100755 index 0000000..fc9da0d --- /dev/null +++ b/bin/omarchy-pkg-drop @@ -0,0 +1,7 @@ +#!/bin/bash + +for pkg in "$@"; do + if pacman -Q "$pkg" &>/dev/null; then + sudo pacman -Rns --noconfirm "$pkg" + fi +done diff --git a/bin/omarchy-pkg-missing b/bin/omarchy-pkg-missing new file mode 100755 index 0000000..9e340af --- /dev/null +++ b/bin/omarchy-pkg-missing @@ -0,0 +1,9 @@ +#!/bin/bash + +for pkg in "$@"; do + if ! pacman -Q "$pkg" &>/dev/null; then + return 0 + fi +done + +return 1 diff --git a/bin/omarchy-pkg-present b/bin/omarchy-pkg-present new file mode 100755 index 0000000..1694336 --- /dev/null +++ b/bin/omarchy-pkg-present @@ -0,0 +1,7 @@ +#!/bin/bash + +for pkg in "$@"; do + pacman -Q "$pkg" &>/dev/null || return 1 +done + +return 0 diff --git a/default/bash/functions b/default/bash/functions index e074f46..152deeb 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -65,54 +65,3 @@ img2png() { -define png:exclude-chunk=all \ "${1%.*}.png" } - - -pkg-present() { - for pkg in "$@"; do - pacman -Q "$pkg" &>/dev/null || return 1 - done - - return 0 -} - -pkg-missing() { - for pkg in "$@"; do - if ! pacman -Q "$pkg" &>/dev/null; then - return 0 - fi - done - - return 1 -} - -pkg-add() { - for pkg in "$@"; do - if ! pacman -Q "$pkg" &>/dev/null; then - sudo pacman -S --noconfirm --needed "$pkg" - fi - done -} - -pkg-remove() { - for pkg in "$@"; do - if pacman -Q "$pkg" &>/dev/null; then - sudo pacman -Rns --noconfirm "$pkg" - fi - done -} - -cmd-present() { - for cmd in "$@"; do - command -v "$cmd" &>/dev/null || return 1 - done - return 0 -} - -cmd-missing() { - for cmd in "$@"; do - if ! command -v "$cmd" &>/dev/null; then - return 0 - fi - done - return 1 -} diff --git a/migrations/1751134562.sh b/migrations/1751134562.sh deleted file mode 100644 index 8291842..0000000 --- a/migrations/1751134562.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Ensure new pkg/cmd functions are available to old-run migrations" - -source $OMARCHY_PATH/default/bash/functions diff --git a/migrations/1751135253.sh b/migrations/1751135253.sh index 821dd6b..c076657 100644 --- a/migrations/1751135253.sh +++ b/migrations/1751135253.sh @@ -1,3 +1,3 @@ echo "Add missing installation of bat (used by the ff alias)" -pkg-add bat +omarchy-pkg-add bat diff --git a/migrations/1751510848.sh b/migrations/1751510848.sh index d1485e9..6b289d4 100644 --- a/migrations/1751510848.sh +++ b/migrations/1751510848.sh @@ -1,3 +1,3 @@ echo "Installing missing fd terminal tool for finding files" -pkg-add fd +omarchy-pkg-add fd diff --git a/migrations/1751667620.sh b/migrations/1751667620.sh index d19aafa..d93c600 100644 --- a/migrations/1751667620.sh +++ b/migrations/1751667620.sh @@ -1,9 +1,9 @@ echo "Switching from vlc to mpv for the default video player" -if cmd-missing mpv; then - pkg-remove vlc +if omarchy-cmd-missing mpv; then + omarchy-pkg-drop vlc rm ~/.local/share/applications/vlc.desktop - pkg-add mpv + omarchy-pkg-add mpv xdg-mime default mpv.desktop video/mp4 xdg-mime default mpv.desktop video/x-msvideo xdg-mime default mpv.desktop video/x-matroska diff --git a/migrations/1751672984.sh b/migrations/1751672984.sh index e423526..b2d9ecb 100644 --- a/migrations/1751672984.sh +++ b/migrations/1751672984.sh @@ -1,3 +1,3 @@ echo "Add LocalSend as new default application" -pkg-add localsend +omarchy-pkg-add localsend diff --git a/migrations/1751679069.sh b/migrations/1751679069.sh index cee3def..abe68a4 100644 --- a/migrations/1751679069.sh +++ b/migrations/1751679069.sh @@ -1,3 +1,3 @@ echo "Install ffmpegthumbnailer for video thumbnails in the file manager" -pkg-add ffmpegthumbnailer +omarchy-pkg-add ffmpegthumbnailer diff --git a/migrations/1751821819.sh b/migrations/1751821819.sh index 0b78cd2..dc282c2 100644 --- a/migrations/1751821819.sh +++ b/migrations/1751821819.sh @@ -1,3 +1,3 @@ echo "Install bash-completion" -pkg-add bash-completion +omarchy-pkg-add bash-completion diff --git a/migrations/1751887718.sh b/migrations/1751887718.sh index a3643ea..3d3f401 100644 --- a/migrations/1751887718.sh +++ b/migrations/1751887718.sh @@ -1,6 +1,6 @@ echo "Install Impala as new wifi selection TUI" -if cmd-missing impala; then - pkg-add impala +if omarchy-cmd-missing impala; then + omarchy-pkg-add impala omarchy-refresh-waybar fi diff --git a/migrations/1752082381.sh b/migrations/1752082381.sh index 3f3a88e..e351fd9 100644 --- a/migrations/1752082381.sh +++ b/migrations/1752082381.sh @@ -1,3 +1,3 @@ echo "Adding gnome-keyring to make 1password work with 2FA codes" -pkg-add gnome-keyring +omarchy-pkg-add gnome-keyring diff --git a/migrations/1752091783.sh b/migrations/1752091783.sh index e0339ea..b8b5306 100644 --- a/migrations/1752091783.sh +++ b/migrations/1752091783.sh @@ -1,4 +1,4 @@ echo "Install Plymouth splash screen" -pkg-add uwsm plymouth +omarchy-pkg-add uwsm plymouth source "$OMARCHY_PATH/install/login/plymouth.sh" diff --git a/migrations/1752292967.sh b/migrations/1752292967.sh index b91bae5..d587fc4 100644 --- a/migrations/1752292967.sh +++ b/migrations/1752292967.sh @@ -1,6 +1,6 @@ echo "Update to use UWSM and seamless login" -if cmd-missing uwsm; then +if omarchy-cmd-missing uwsm; then sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true diff --git a/migrations/1752678932.sh b/migrations/1752678932.sh index 8fdb22a..915a74d 100644 --- a/migrations/1752678932.sh +++ b/migrations/1752678932.sh @@ -1,3 +1,3 @@ echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility" -pkg-add docker-buildx +omarchy-pkg-add docker-buildx diff --git a/migrations/1752885858.sh b/migrations/1752885858.sh index 797af4a..2d2b25a 100644 --- a/migrations/1752885858.sh +++ b/migrations/1752885858.sh @@ -1,3 +1,3 @@ echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder" -pkg-add slurp wl-screenrec +omarchy-pkg-add slurp wl-screenrec diff --git a/migrations/1752896442.sh b/migrations/1752896442.sh index 71df10a..f8fa9a8 100644 --- a/migrations/1752896442.sh +++ b/migrations/1752896442.sh @@ -1,8 +1,8 @@ echo "Replace volume control GUI with a TUI" -if cmd-missing wiremix; then - pkg-add wiremix - pkg-remove pavucontrol +if omarchy-cmd-missing wiremix; then + omarchy-pkg-add wiremix + omarchy-pkg-drop pavucontrol omarchy-refresh-applications omarchy-refresh-waybar fi diff --git a/migrations/1752897642.sh b/migrations/1752897642.sh index 119d419..1b4b1f8 100644 --- a/migrations/1752897642.sh +++ b/migrations/1752897642.sh @@ -1,3 +1,3 @@ echo "Remove needless fcitx5-configtool package" -pkg-remove fcitx5-configtool +omarchy-pkg-drop fcitx5-configtool diff --git a/migrations/1752955912.sh b/migrations/1752955912.sh index f3d3285..fa55477 100644 --- a/migrations/1752955912.sh +++ b/migrations/1752955912.sh @@ -1,3 +1,3 @@ echo "Install satty for the new screenshot flow" -pkg-add satty +omarchy-pkg-add satty diff --git a/migrations/1752981883.sh b/migrations/1752981883.sh index 3bb6b21..34a5395 100644 --- a/migrations/1752981883.sh +++ b/migrations/1752981883.sh @@ -1,9 +1,9 @@ echo "Replace wofi with walker as the default launcher" -if cmd-missing walker; then - pkg-add walker-bin libqalculate +if omarchy-cmd-missing walker; then + omarchy-pkg-add walker-bin libqalculate - pkg-remove wofi + omarchy-pkg-drop wofi rm -rf ~/.config/wofi mkdir -p ~/.config/walker diff --git a/migrations/1753138691.sh b/migrations/1753138691.sh index 79928c9..d9197ba 100644 --- a/migrations/1753138691.sh +++ b/migrations/1753138691.sh @@ -1,6 +1,6 @@ echo "Install swayOSD to show volume status" -if cmd-missing swayosd-server; then - pkg-add swayosd +if omarchy-cmd-missing swayosd-server; then + omarchy-pkg-add swayosd setsid uwsm app -- swayosd-server &>/dev/null & fi diff --git a/migrations/1753176520.sh b/migrations/1753176520.sh index c6ae1dd..186b8a7 100644 --- a/migrations/1753176520.sh +++ b/migrations/1753176520.sh @@ -1,3 +1,3 @@ echo "Install wf-recorder for screen recording for nvidia" -pkg-add wf-recorder +omarchy-pkg-add wf-recorder diff --git a/migrations/1753495989.sh b/migrations/1753495989.sh index 2a25942..09f164a 100644 --- a/migrations/1753495989.sh +++ b/migrations/1753495989.sh @@ -1,6 +1,6 @@ echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" -if cmd-missing tzupdate; then +if omarchy-cmd-missing tzupdate; then $OMARCHY_PATH/install/config/timezones.sh omarchy-refresh-waybar fi diff --git a/migrations/1754215533.sh b/migrations/1754215533.sh index a034dff..2657b62 100644 --- a/migrations/1754215533.sh +++ b/migrations/1754215533.sh @@ -1,7 +1,7 @@ echo "Enable auto-discovery of network printers" if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then - pkg-add avahi nss-mdns + omarchy-pkg-add avahi nss-mdns # Disable multicast dns in resolved. Avahi will provide this for better network printer discovery sudo mkdir -p /etc/systemd/resolved.conf.d @@ -10,7 +10,7 @@ if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then fi if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then - pkg-add cups-browsed + omarchy-pkg-add cups-browsed # Enable automatically adding remote printers echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf sudo systemctl enable --now cups-browsed.service diff --git a/migrations/1754221967.sh b/migrations/1754221967.sh index 24ef64c..b1e42b7 100644 --- a/migrations/1754221967.sh +++ b/migrations/1754221967.sh @@ -1,3 +1,3 @@ echo "Add support for accessing Android phone data via file manager" -pkg-add gvfs-mtp +omarchy-pkg-add gvfs-mtp diff --git a/migrations/1754509222.sh b/migrations/1754509222.sh index b9daaaa..48f3c85 100644 --- a/migrations/1754509222.sh +++ b/migrations/1754509222.sh @@ -1,3 +1,3 @@ echo "Add xmlstarlet needed for updating fonts via Omarchy menu" -pkg-add xmlstarlet +omarchy-pkg-add xmlstarlet diff --git a/migrations/1754984734.sh b/migrations/1754984734.sh index d9f6cf1..843e4a0 100644 --- a/migrations/1754984734.sh +++ b/migrations/1754984734.sh @@ -1,6 +1,6 @@ echo "Configure Docker to use the host's DNS resolver" -if cmd-present docker; then +if omarchy-cmd-present docker; then # If the daemon configuration has been changed since we wrote it, leave it as-is ORIGINAL_CONFIG='{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' diff --git a/migrations/1755164105.sh b/migrations/1755164105.sh index c5e3e10..26ba519 100644 --- a/migrations/1755164105.sh +++ b/migrations/1755164105.sh @@ -9,9 +9,9 @@ set_theme_colors() { fi } -if cmd-present chromium; then - pkg-remove chromium - pkg-add omarchy-chromium +if omarchy-cmd-present chromium; then + omarchy-pkg-drop chromium + omarchy-pkg-add omarchy-chromium if pgrep -x chromium; then if gum confirm "Chromium must be restarted. Ready?"; then diff --git a/migrations/1755436367.sh b/migrations/1755436367.sh index 38fd6f3..e7c8970 100644 --- a/migrations/1755436367.sh +++ b/migrations/1755436367.sh @@ -1,6 +1,6 @@ echo "Add minimal starship prompt to terminal" -if cmd-missing starship; then - pkg-add starship +if omarchy-cmd-missing starship; then + omarchy-pkg-add starship cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml fi diff --git a/migrations/1755455095.sh b/migrations/1755455095.sh index 6246dcf..2a929fe 100644 --- a/migrations/1755455095.sh +++ b/migrations/1755455095.sh @@ -1,3 +1,3 @@ echo "Ensure TTE and dependencies are installed" -pkg-add python-poetry-core python-terminaltexteffects +omarchy-pkg-add python-poetry-core python-terminaltexteffects diff --git a/migrations/1755459930.sh b/migrations/1755459930.sh index 7d04c0c..73af324 100644 --- a/migrations/1755459930.sh +++ b/migrations/1755459930.sh @@ -1,3 +1,3 @@ echo "Add potentially missing dependency for power profile controls" -pkg-add python-gobject +omarchy-pkg-add python-gobject diff --git a/migrations/1755548643.sh b/migrations/1755548643.sh index 051e542..f98b730 100644 --- a/migrations/1755548643.sh +++ b/migrations/1755548643.sh @@ -1,3 +1,3 @@ echo "Install wf-recorder for intel based device" -pkg-add wf-recorder +omarchy-pkg-add wf-recorder diff --git a/migrations/1755865046.sh b/migrations/1755865046.sh index 92a2312..c48962e 100644 --- a/migrations/1755865046.sh +++ b/migrations/1755865046.sh @@ -1,4 +1,4 @@ echo "Switch from lazydocker-bin to lazydocker official" -pkg-remove lazydocker-bin -pkg-add lazydocker +omarchy-pkg-drop lazydocker-bin +omarchy-pkg-add lazydocker diff --git a/migrations/1756060611.sh b/migrations/1756060611.sh index a26039b..b1bc95d 100644 --- a/migrations/1756060611.sh +++ b/migrations/1756060611.sh @@ -1,13 +1,13 @@ echo "Migrate AUR packages to official repos where possible" reinstall_package_opr() { - if pkg-present $1; then + if omarchy-pkg-present $1; then sudo pacman -Rns --noconfirm $1 sudo pacman -S --noconfirm ${2:-$1} fi } -pkg-remove yay-bin-debug +omarchy-pkg-drop yay-bin-debug reinstall_package_opr yay-bin yay reinstall_package_opr obsidian-bin obsidian diff --git a/migrations/1756115364.sh b/migrations/1756115364.sh index dd2ade5..a7c3925 100644 --- a/migrations/1756115364.sh +++ b/migrations/1756115364.sh @@ -1,6 +1,6 @@ echo "Replace buggy native Zoom client with webapp" -if pkg-present zoom; then - pkg-remove zoom +if omarchy-pkg-present zoom; then + omarchy-pkg-drop zoom omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/zoom.png fi diff --git a/migrations/1756410649.sh b/migrations/1756410649.sh index 71f8585..7347f9b 100644 --- a/migrations/1756410649.sh +++ b/migrations/1756410649.sh @@ -1,6 +1,6 @@ echo "Remove any Chaotic-AUR infrastructure packages" -pkg-remove chaotic-keyring chaotic-mirrorlist +omarchy-pkg-drop chaotic-keyring chaotic-mirrorlist if sudo pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1; then sudo pacman-key --delete 3056513887B78AEB diff --git a/migrations/1756411865.sh b/migrations/1756411865.sh index dc26393..8dcf8ef 100644 --- a/migrations/1756411865.sh +++ b/migrations/1756411865.sh @@ -1,3 +1,3 @@ echo "Add back ttf-ia-writer if it was missing" -pkg-add ttf-ia-writer +omarchy-pkg-add ttf-ia-writer diff --git a/migrations/1756507384.sh b/migrations/1756507384.sh index b49888a..77c640e 100755 --- a/migrations/1756507384.sh +++ b/migrations/1756507384.sh @@ -1,4 +1,4 @@ echo "Replace JetBrains Mono font with the Nerd Font edition" -pkg-add ttf-jetbrains-mono-nerd -pkg-remove ttf-jetbrains-mono +omarchy-pkg-add ttf-jetbrains-mono-nerd +omarchy-pkg-drop ttf-jetbrains-mono diff --git a/migrations/1756556731.sh b/migrations/1756556731.sh index 3a772ba..477b754 100644 --- a/migrations/1756556731.sh +++ b/migrations/1756556731.sh @@ -1,3 +1,3 @@ echo "Add Samba network drive support to the file manager" -pkg-add gvfs-smb +omarchy-pkg-add gvfs-smb From 4ee48dd238fa45e09c9692bfbbc9a65de549dbc0 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 09:21:02 +0200 Subject: [PATCH 36/82] Switch from returns to exit codes --- bin/omarchy-cmd-missing | 4 ++-- bin/omarchy-cmd-present | 4 ++-- bin/omarchy-pkg-add | 4 ++-- bin/omarchy-pkg-missing | 4 ++-- bin/omarchy-pkg-present | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bin/omarchy-cmd-missing b/bin/omarchy-cmd-missing index fad91ce..4658d37 100755 --- a/bin/omarchy-cmd-missing +++ b/bin/omarchy-cmd-missing @@ -2,8 +2,8 @@ for cmd in "$@"; do if ! command -v "$cmd" &>/dev/null; then - return 0 + exit 0 fi done -return 1 +exit 1 diff --git a/bin/omarchy-cmd-present b/bin/omarchy-cmd-present index 7c703b4..fecdc94 100755 --- a/bin/omarchy-cmd-present +++ b/bin/omarchy-cmd-present @@ -1,7 +1,7 @@ #!/bin/bash for cmd in "$@"; do - command -v "$cmd" &>/dev/null || return 1 + command -v "$cmd" &>/dev/null || exit 1 done -return 0 +exit 0 diff --git a/bin/omarchy-pkg-add b/bin/omarchy-pkg-add index 1694336..58be1a1 100755 --- a/bin/omarchy-pkg-add +++ b/bin/omarchy-pkg-add @@ -1,7 +1,7 @@ #!/bin/bash for pkg in "$@"; do - pacman -Q "$pkg" &>/dev/null || return 1 + pacman -Q "$pkg" &>/dev/null done -return 0 +exit 0 diff --git a/bin/omarchy-pkg-missing b/bin/omarchy-pkg-missing index 9e340af..2556afe 100755 --- a/bin/omarchy-pkg-missing +++ b/bin/omarchy-pkg-missing @@ -2,8 +2,8 @@ for pkg in "$@"; do if ! pacman -Q "$pkg" &>/dev/null; then - return 0 + exit 0 fi done -return 1 +exit 1 diff --git a/bin/omarchy-pkg-present b/bin/omarchy-pkg-present index 1694336..6afb1f5 100755 --- a/bin/omarchy-pkg-present +++ b/bin/omarchy-pkg-present @@ -1,7 +1,7 @@ #!/bin/bash for pkg in "$@"; do - pacman -Q "$pkg" &>/dev/null || return 1 + pacman -Q "$pkg" &>/dev/null || exit 1 done -return 0 +exit 0 From 35e169e3cc4ac2f9805cf682e65b9cc997663f15 Mon Sep 17 00:00:00 2001 From: Simon Dawson Date: Sun, 31 Aug 2025 08:53:18 +0100 Subject: [PATCH 37/82] chore: Add Emacs to editor install menu (#1323) As well as installing the `emacs-wayland` package, we enable and start the `emacs` systemd service. A GUI Emacs client can then be started using e.g. `emacsclient -c`. --- bin/omarchy-menu | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 1b2bbfa..731738f 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -208,12 +208,13 @@ show_install_service_menu() { } show_install_editor_menu() { - case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix") in + case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix\n Emacs") in *VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;; *Cursor*) aur_install_and_launch "Cursor" "cursor-bin" "cursor" ;; *Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; *Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; *Helix*) install "Helix" "helix" ;; + *Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;; *) show_install_menu ;; esac } From 3d49ced97e0e48049b2fee3baf4324f3993a5322 Mon Sep 17 00:00:00 2001 From: Valberto Enoc Date: Sun, 31 Aug 2025 04:59:28 -0300 Subject: [PATCH 38/82] Change Ollama install from AUR package to official website (#881) * install ollama from the official website * installing ollama-cuda if nvidia-smi exists * add check for rocminfo installation for AMD GPUs --------- Co-authored-by: David Heinemeier Hansson --- bin/omarchy-menu | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 731738f..f471f1a 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -220,11 +220,17 @@ show_install_editor_menu() { } show_install_ai_menu() { + ollama_pkg=$( + (command -v nvidia-smi &>/dev/null && echo ollama-cuda) || + (command -v rocminfo &>/dev/null && echo ollama-rocm) || + echo ollama + ) + case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in *Claude*) aur_install "Claude Code" "claude-code" ;; *Gemini*) install "Gemini" "gemini-cli" ;; *Studio*) aur_install "LM Studio" "lmstudio" ;; - *Ollama*) install "Ollama" "ollama" ;; + *Ollama*) install "Ollama" $ollama_pkg ;; *Crush*) aur_install "Crush" "crush-bin" ;; *opencode*) aur_install "opencode" "opencode-bin" ;; *) show_install_menu ;; From 9293e2ed17d190adc28543fbcfcce94a3b8b6fa2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 10:07:37 +0200 Subject: [PATCH 39/82] Add icons for OS Age and Uptime Closes #1299 Co-authored-by: @theamit-969 --- config/fastfetch/config.jsonc | 4 ++-- migrations/1756363651.sh | 3 --- migrations/1756627168.sh | 3 +++ 3 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 migrations/1756363651.sh create mode 100644 migrations/1756627168.sh diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc index b2cad35..3154272 100644 --- a/config/fastfetch/config.jsonc +++ b/config/fastfetch/config.jsonc @@ -126,13 +126,13 @@ }, { "type": "command", - "key": " OS Age ", + "key": "󱦟 OS Age", "keyColor": "magenta", "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" }, { "type": "uptime", - "key": " Uptime ", + "key": "󱫐 Uptime", "keyColor": "magenta" }, { diff --git a/migrations/1756363651.sh b/migrations/1756363651.sh deleted file mode 100644 index 3df0985..0000000 --- a/migrations/1756363651.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Update About config to include the Omarchy branch name" - -omarchy-refresh-fastfetch diff --git a/migrations/1756627168.sh b/migrations/1756627168.sh new file mode 100644 index 0000000..751cd19 --- /dev/null +++ b/migrations/1756627168.sh @@ -0,0 +1,3 @@ +echo "Include OS Age and Uptime icons in About" + +omarchy-refresh-fastfetch From 792f7827a638ed6bc39d5084c1eb40df1993cd27 Mon Sep 17 00:00:00 2001 From: Rick Date: Sun, 31 Aug 2025 03:11:23 -0500 Subject: [PATCH 40/82] Handle case when no databases are selected (#1259) At least two users were asking for support in Discord due to not selecting DBs to install. This aims to prevent confusion in that scenario. --- bin/omarchy-install-docker-dbs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bin/omarchy-install-docker-dbs b/bin/omarchy-install-docker-dbs index da9090f..ab9b082 100755 --- a/bin/omarchy-install-docker-dbs +++ b/bin/omarchy-install-docker-dbs @@ -13,4 +13,7 @@ if [[ -n "$choices" ]]; then MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;; esac done +else + echo "No databases selected for installation." + sleep 1 fi From 7d2759b80723da7389ef6b936e9aff1fdedf01e7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 10:11:42 +0200 Subject: [PATCH 41/82] Don't need extra sleep --- bin/omarchy-install-docker-dbs | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/omarchy-install-docker-dbs b/bin/omarchy-install-docker-dbs index ab9b082..20a779f 100755 --- a/bin/omarchy-install-docker-dbs +++ b/bin/omarchy-install-docker-dbs @@ -15,5 +15,4 @@ if [[ -n "$choices" ]]; then done else echo "No databases selected for installation." - sleep 1 fi From 0d62a03ae0c106ff4668e315c48a7cd885ac4bf7 Mon Sep 17 00:00:00 2001 From: Oleg Luganskiy <62727407+arcbjorn@users.noreply.github.com> Date: Sun, 31 Aug 2025 05:13:25 -0300 Subject: [PATCH 42/82] feat: add OpenAI Codex to AI installation menu (#1255) Co-authored-by: David Heinemeier Hansson --- bin/omarchy-menu | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index f471f1a..8270317 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -226,8 +226,9 @@ show_install_ai_menu() { echo ollama ) - case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in + case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in *Claude*) aur_install "Claude Code" "claude-code" ;; + *OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;; *Gemini*) install "Gemini" "gemini-cli" ;; *Studio*) aur_install "LM Studio" "lmstudio" ;; *Ollama*) install "Ollama" $ollama_pkg ;; From 2442f774e4fdfb7f29347ee3abda6bea7b534f1d Mon Sep 17 00:00:00 2001 From: robert stringer <62722976+pipetogrep@users.noreply.github.com> Date: Sun, 31 Aug 2025 09:24:54 +0100 Subject: [PATCH 43/82] fix: cleans the output of upower, strips the percentage and decimals, prevents arithmetic syntax error (#1236) Co-authored-by: xz --- bin/omarchy-battery-monitor | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-battery-monitor b/bin/omarchy-battery-monitor index 05f4a44..fd16afb 100755 --- a/bin/omarchy-battery-monitor +++ b/bin/omarchy-battery-monitor @@ -6,7 +6,13 @@ BATTERY_THRESHOLD=10 NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified" get_battery_percentage() { - upower -i $(upower -e | grep 'BAT') | grep -E "percentage" | grep -o '[0-9]\+%' | sed 's/%//' + upower -i "$(upower -e | grep 'BAT')" \ + | awk -F: '/percentage/ { + gsub(/[%[:space:]]/, "", $2); + val=$2; + printf("%d\n", (val+0.5)) + exit + }' } get_battery_state() { From b6896bd58f38a40f0a5b50f86f686d51bdae6180 Mon Sep 17 00:00:00 2001 From: Ramtin Javanmardi Date: Sun, 31 Aug 2025 10:34:09 +0200 Subject: [PATCH 44/82] Quick fix for lazyvim bufferline error when using catppuccin (#1084) * Quick fix for lazyvim bufferline error when using catppuccin * This is a slightly better fix * Adding the fix in theme, actually messed up the theme colors * Adding the migration file --------- Co-authored-by: David Heinemeier Hansson --- config/nvim/lua/plugins/temp-fix.lua | 12 ++++++++++++ migrations/1756234177.sh | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 config/nvim/lua/plugins/temp-fix.lua create mode 100644 migrations/1756234177.sh diff --git a/config/nvim/lua/plugins/temp-fix.lua b/config/nvim/lua/plugins/temp-fix.lua new file mode 100644 index 0000000..cd1eadd --- /dev/null +++ b/config/nvim/lua/plugins/temp-fix.lua @@ -0,0 +1,12 @@ +return { + { + "akinsho/bufferline.nvim", + -- TODO: Remove this once its fixed in lazyvim. This is only a temporary fix, and its onl needed for catppuccin + init = function() + local bufline = require("catppuccin.groups.integrations.bufferline") + function bufline.get() + return bufline.get_theme() + end + end, + }, +} diff --git a/migrations/1756234177.sh b/migrations/1756234177.sh new file mode 100644 index 0000000..29efed6 --- /dev/null +++ b/migrations/1756234177.sh @@ -0,0 +1,3 @@ +echo "Add temp-fix.lua for LazyVim Catppuccin bufferline compatibility" + +omarchy-refresh-config nvim/lua/plugins/temp-fix.lua From 3b0752820e8294b8e4ec6e39f7e80628c5c38570 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 10:34:55 +0200 Subject: [PATCH 45/82] Revert "Quick fix for lazyvim bufferline error when using catppuccin (#1084)" (#1346) This reverts commit b6896bd58f38a40f0a5b50f86f686d51bdae6180. --- config/nvim/lua/plugins/temp-fix.lua | 12 ------------ migrations/1756234177.sh | 3 --- 2 files changed, 15 deletions(-) delete mode 100644 config/nvim/lua/plugins/temp-fix.lua delete mode 100644 migrations/1756234177.sh diff --git a/config/nvim/lua/plugins/temp-fix.lua b/config/nvim/lua/plugins/temp-fix.lua deleted file mode 100644 index cd1eadd..0000000 --- a/config/nvim/lua/plugins/temp-fix.lua +++ /dev/null @@ -1,12 +0,0 @@ -return { - { - "akinsho/bufferline.nvim", - -- TODO: Remove this once its fixed in lazyvim. This is only a temporary fix, and its onl needed for catppuccin - init = function() - local bufline = require("catppuccin.groups.integrations.bufferline") - function bufline.get() - return bufline.get_theme() - end - end, - }, -} diff --git a/migrations/1756234177.sh b/migrations/1756234177.sh deleted file mode 100644 index 29efed6..0000000 --- a/migrations/1756234177.sh +++ /dev/null @@ -1,3 +0,0 @@ -echo "Add temp-fix.lua for LazyVim Catppuccin bufferline compatibility" - -omarchy-refresh-config nvim/lua/plugins/temp-fix.lua From 24b94fde54a6f856b861274198561d126b021995 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 10:49:14 +0200 Subject: [PATCH 46/82] Ensure qt5-wayland has been installed Closes #596 Co-authored-by: @roelandmoors --- install/packages.sh | 1 + migrations/1756629295.sh | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 migrations/1756629295.sh diff --git a/install/packages.sh b/install/packages.sh index 76175b0..f317821 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -83,6 +83,7 @@ sudo pacman -S --noconfirm --needed \ python-gobject \ python-poetry-core \ python-terminaltexteffects \ + qt5-wayland \ ripgrep \ satty \ signal-desktop \ diff --git a/migrations/1756629295.sh b/migrations/1756629295.sh new file mode 100644 index 0000000..8f0bea6 --- /dev/null +++ b/migrations/1756629295.sh @@ -0,0 +1,3 @@ +echo "Ensure qt5-wayland is installed so KeepassXC, Nextcloud, Sqlite Browser, and other apps display correctly" + +omarchy-pkg-add qt5-wayland From 64ec80fb7e763d2202e1b48fad2961e0f39a2be3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20=C3=81lvarez=20Belaustegui?= Date: Sun, 31 Aug 2025 10:51:03 +0200 Subject: [PATCH 47/82] Bitwarden installer and rule to avoid sharing it's window contents (#1044) * Don't share Bitwarden windows content * Install Bitwarden --------- Co-authored-by: David Heinemeier Hansson --- bin/omarchy-menu | 3 ++- default/hypr/apps.conf | 3 ++- default/hypr/apps/bitwarden.conf | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 default/hypr/apps/bitwarden.conf diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 8270317..edf5a8c 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -200,9 +200,10 @@ show_install_menu() { } show_install_service_menu() { - case $(menu "Install" " Dropbox\n Tailscale") in + case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden") in *Dropbox*) present_terminal omarchy-install-dropbox ;; *Tailscale*) present_terminal omarchy-install-tailscale ;; + *Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;; *) show_install_menu ;; esac } diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index 07c7ec5..0db00d3 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -7,4 +7,5 @@ source = ~/.local/share/omarchy/default/hypr/apps/steam.conf source = ~/.local/share/omarchy/default/hypr/apps/system.conf source = ~/.local/share/omarchy/default/hypr/apps/walker.conf source = ~/.local/share/omarchy/default/hypr/apps/1password.conf -source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf +source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf +source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf \ No newline at end of file diff --git a/default/hypr/apps/bitwarden.conf b/default/hypr/apps/bitwarden.conf new file mode 100644 index 0000000..339ddb6 --- /dev/null +++ b/default/hypr/apps/bitwarden.conf @@ -0,0 +1 @@ +windowrule = noscreenshare, class:^(Bitwarden)$ From 256a27ca8e8e8851ae6786704f1ae9af6bb7ca75 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 11:19:01 +0200 Subject: [PATCH 48/82] Apply idle inhibitor just to fullscreen on stream and retroarch for gaming #1303 --- default/hypr/apps/retroarch.conf | 1 + default/hypr/apps/steam.conf | 1 + default/hypr/windows.conf | 3 --- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/default/hypr/apps/retroarch.conf b/default/hypr/apps/retroarch.conf index 2c019de..94be39f 100644 --- a/default/hypr/apps/retroarch.conf +++ b/default/hypr/apps/retroarch.conf @@ -1,3 +1,4 @@ windowrule = fullscreen, class:com.libretro.RetroArch windowrule = opacity 1 1, class:com.libretro.RetroArch +windowrule = idleinhibit fullscreen, class:com.libretro.RetroArch diff --git a/default/hypr/apps/steam.conf b/default/hypr/apps/steam.conf index de91aaa..bd6386c 100644 --- a/default/hypr/apps/steam.conf +++ b/default/hypr/apps/steam.conf @@ -4,3 +4,4 @@ windowrule = center, class:steam, title:Steam windowrule = opacity 1 1, class:steam windowrule = size 1100 700, class:steam, title:Steam windowrule = size 460 800, class:steam, title:Friends List +windowrule = idleinhibit fullscreen, class:steam diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index d66b7bb..bc665b2 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -7,8 +7,5 @@ windowrule = opacity 0.97 0.9, class:.* # Fix some dragging issues with XWayland windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 -# Prevent screensaver/lock while running apps fullscreen -windowrule = idleinhibit fullscreen, class:.* - # App-specific tweaks source = ~/.local/share/omarchy/default/hypr/apps.conf From 927abd86ba43fea89b4aeb71d9c87be87f486625 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 12:41:33 +0200 Subject: [PATCH 49/82] Be more specific This is pacman land! --- install.sh | 2 +- install/preflight/{repositories.sh => pacman.sh} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename install/preflight/{repositories.sh => pacman.sh} (100%) diff --git a/install.sh b/install.sh index 794aad4..0be3aa1 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ source $OMARCHY_INSTALL/preflight/show-env.sh source $OMARCHY_INSTALL/preflight/trap-errors.sh source $OMARCHY_INSTALL/preflight/guard.sh source $OMARCHY_INSTALL/preflight/chroot.sh -source $OMARCHY_INSTALL/preflight/repositories.sh +source $OMARCHY_INSTALL/preflight/pacman.sh source $OMARCHY_INSTALL/preflight/migrations.sh source $OMARCHY_INSTALL/preflight/first-run-mode.sh diff --git a/install/preflight/repositories.sh b/install/preflight/pacman.sh similarity index 100% rename from install/preflight/repositories.sh rename to install/preflight/pacman.sh From eeee49e7026edad2c6912383b9687acb2b55ba1e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 12:42:57 +0200 Subject: [PATCH 50/82] QEMU should not be transparent --- default/hypr/apps.conf | 3 ++- default/hypr/apps/qemu.conf | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 default/hypr/apps/qemu.conf diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index 0db00d3..a4a02ad 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -5,7 +5,8 @@ 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 source = ~/.local/share/omarchy/default/hypr/apps/system.conf +source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf source = ~/.local/share/omarchy/default/hypr/apps/walker.conf source = ~/.local/share/omarchy/default/hypr/apps/1password.conf source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf -source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf \ No newline at end of file +source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf diff --git a/default/hypr/apps/qemu.conf b/default/hypr/apps/qemu.conf new file mode 100644 index 0000000..104442c --- /dev/null +++ b/default/hypr/apps/qemu.conf @@ -0,0 +1 @@ +windowrule = opacity 1 1, class:qemu From 80341b296e91078e3079364ececb80cc5f3b7cc6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 12:43:09 +0200 Subject: [PATCH 51/82] Sort alphabetically --- default/hypr/apps.conf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index a4a02ad..b8360ed 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -1,12 +1,12 @@ # App-specific tweaks -source = ~/.local/share/omarchy/default/hypr/apps/pip.conf +source = ~/.local/share/omarchy/default/hypr/apps/1password.conf +source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.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/jetbrains.conf +source = ~/.local/share/omarchy/default/hypr/apps/pip.conf +source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf source = ~/.local/share/omarchy/default/hypr/apps/steam.conf source = ~/.local/share/omarchy/default/hypr/apps/system.conf -source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf source = ~/.local/share/omarchy/default/hypr/apps/walker.conf -source = ~/.local/share/omarchy/default/hypr/apps/1password.conf -source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf -source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf From fe20e89e0e90bc24cf670bbf82b9307ff31e8152 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:08:40 +0200 Subject: [PATCH 52/82] Set everything under the chromium guard --- migrations/1755164105.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/migrations/1755164105.sh b/migrations/1755164105.sh index 26ba519..e4a3f38 100644 --- a/migrations/1755164105.sh +++ b/migrations/1755164105.sh @@ -1,15 +1,15 @@ echo "Switch to Omarchy Chromium for synchronized theme switching" -set_theme_colors() { - if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]] && command -v chromium &>/dev/null; then - chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)" - else - # Use a default, neutral grey if theme doesn't have a color - chromium --no-startup-window --set-theme-color="28,32,39" - fi -} - if omarchy-cmd-present chromium; then + set_theme_colors() { + if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then + chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)" + else + # Use a default, neutral grey if theme doesn't have a color + chromium --no-startup-window --set-theme-color="28,32,39" + fi + } + omarchy-pkg-drop chromium omarchy-pkg-add omarchy-chromium From 5f94df198fd284dec1bc07e676ca7f973016a4db Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:09:45 +0200 Subject: [PATCH 53/82] Offer instant retry of the installation on failure --- install/preflight/trap-errors.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install/preflight/trap-errors.sh b/install/preflight/trap-errors.sh index de66219..57fbede 100755 --- a/install/preflight/trap-errors.sh +++ b/install/preflight/trap-errors.sh @@ -24,7 +24,11 @@ catch_errors() { echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ " echo " " - echo "You can retry by running: bash ~/.local/share/omarchy/install.sh" + if gum confirm "Retry installation?"; then + bash ~/.local/share/omarchy/install.sh + else + echo "You can retry later by running: bash ~/.local/share/omarchy/install.sh" + fi } trap catch_errors ERR From c0c040f9c01988dbd00378ca8ee407eb55225313 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:21:00 +0200 Subject: [PATCH 54/82] Just install iwd along with everything else so it is always there --- install/config/hardware/network.sh | 8 ++------ install/packages.sh | 1 + 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/install/config/hardware/network.sh b/install/config/hardware/network.sh index ff2e03e..04f2f35 100755 --- a/install/config/hardware/network.sh +++ b/install/config/hardware/network.sh @@ -1,11 +1,7 @@ #!/bin/bash -# Install iwd explicitly if it wasn't included in archinstall -# This can happen if archinstall used ethernet -if ! command -v iwctl &>/dev/null; then - sudo pacman -S --noconfirm --needed iwd - sudo systemctl enable iwd.service -fi +# Ensure iwd service will be started +sudo systemctl enable iwd.service # Prevent systemd-networkd-wait-online timeout on boot sudo systemctl disable systemd-networkd-wait-online.service diff --git a/install/packages.sh b/install/packages.sh index f317821..4a2b014 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -46,6 +46,7 @@ sudo pacman -S --noconfirm --needed \ impala \ imv \ inetutils \ + iwd \ jq \ kdenlive \ kvantum-qt5 \ From cc1f49519e0a69a505767ffa7f97c20696f8d35e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:25:14 +0200 Subject: [PATCH 55/82] Only fetch the ignored package list once and shout about it if necessary --- bin/omarchy-update-system-pkgs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index e3f8be2..42efc75 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -1,13 +1,17 @@ #!/bin/bash +# Used in package emergencies if a bad package has been pushed and we can't revoke. +# Requires manually installing the good package using sudo pacman -U +ignored_packages=$(omarchy-pkg-ignored) + echo -e "\e[32m\nUpdate system packages\e[0m" -echo "sudo pacman -Syu --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" -sudo pacman -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)" +[[ -n $ignored_packages ]] && echo "sudo pacman -Syu --noconfirm --ignore \"$ignored_packages\"" +sudo pacman -Syu --noconfirm --ignore "$ignored_packages" if omarchy-pkg-aur-accessible; then echo -e "\e[32m\nUpdate AUR packages\e[0m" - echo "yay -Sua --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" - yay -Sua --noconfirm --ignore "$(omarchy-pkg-ignored)" + [[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\"" + yay -Sua --noconfirm --ignore "$ignored_packages" echo else echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m" From f643d97211ae221c68172ee50b9f90e426c79fbe Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:27:23 +0200 Subject: [PATCH 56/82] Make sure we have the latest omarchy-chromium available --- migrations/1755164105.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/migrations/1755164105.sh b/migrations/1755164105.sh index e4a3f38..567e4f1 100644 --- a/migrations/1755164105.sh +++ b/migrations/1755164105.sh @@ -10,6 +10,7 @@ if omarchy-cmd-present chromium; then fi } + sudo pacman -Syu omarchy-pkg-drop chromium omarchy-pkg-add omarchy-chromium From a44ea9c23245ea288ca0b182df5234fa31751b31 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:30:57 +0200 Subject: [PATCH 57/82] Ensure new mirrorlist is added as early as possible --- bin/omarchy-refresh-pacman-mirrorlist | 7 +++++++ migrations/1751134561.sh | 2 ++ migrations/1756411333.sh | 6 +----- 3 files changed, 10 insertions(+), 5 deletions(-) create mode 100755 bin/omarchy-refresh-pacman-mirrorlist diff --git a/bin/omarchy-refresh-pacman-mirrorlist b/bin/omarchy-refresh-pacman-mirrorlist new file mode 100755 index 0000000..37d21a9 --- /dev/null +++ b/bin/omarchy-refresh-pacman-mirrorlist @@ -0,0 +1,7 @@ +#!/bin/bash + +sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' +Server = https://mirror.omarchy.org/$repo/os/$arch +Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch +EOF diff --git a/migrations/1751134561.sh b/migrations/1751134561.sh index 5f201ed..46a7ebf 100644 --- a/migrations/1751134561.sh +++ b/migrations/1751134561.sh @@ -1,5 +1,7 @@ echo "Add Omarchy Package Repository" +omarchy-refresh-pacman-mirrorlist + 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 diff --git a/migrations/1756411333.sh b/migrations/1756411333.sh index 220697a..c44e9ce 100644 --- a/migrations/1756411333.sh +++ b/migrations/1756411333.sh @@ -1,7 +1,3 @@ echo "Use new Omarchy mirror as default" -sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' -Server = https://mirror.omarchy.org/$repo/os/$arch -Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch -EOF +omarchy-refresh-pacman-mirrorlist From 3210ec44f5964380e1db83ad399aa5c4cbfe407b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:35:28 +0200 Subject: [PATCH 58/82] Fix pkg-add --- bin/omarchy-pkg-add | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-pkg-add b/bin/omarchy-pkg-add index 58be1a1..efb17e8 100755 --- a/bin/omarchy-pkg-add +++ b/bin/omarchy-pkg-add @@ -1,7 +1,9 @@ #!/bin/bash for pkg in "$@"; do - pacman -Q "$pkg" &>/dev/null + if ! pacman -Q "$pkg" &>/dev/null; then + sudo pacman -S --noconfirm "$pkg" + fi done exit 0 From 1099a44c77476763344ad3a1bbd8caf33a602966 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:35:45 +0200 Subject: [PATCH 59/82] Don't need this --- migrations/1755164105.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/migrations/1755164105.sh b/migrations/1755164105.sh index 567e4f1..e4a3f38 100644 --- a/migrations/1755164105.sh +++ b/migrations/1755164105.sh @@ -10,7 +10,6 @@ if omarchy-cmd-present chromium; then fi } - sudo pacman -Syu omarchy-pkg-drop chromium omarchy-pkg-add omarchy-chromium From e621e41be270a1237b5a14cf34ba1409e8a42af1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:45:47 +0200 Subject: [PATCH 60/82] Only try to update from AUR if there are any AUR packages installed --- bin/omarchy-update-system-pkgs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index 42efc75..aa27558 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -8,7 +8,8 @@ echo -e "\e[32m\nUpdate system packages\e[0m" [[ -n $ignored_packages ]] && echo "sudo pacman -Syu --noconfirm --ignore \"$ignored_packages\"" sudo pacman -Syu --noconfirm --ignore "$ignored_packages" -if omarchy-pkg-aur-accessible; then +# Update AUR packages if any are installed and AUR is available +if pacman -Qem >/dev/null && omarchy-pkg-aur-accessible; then echo -e "\e[32m\nUpdate AUR packages\e[0m" [[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\"" yay -Sua --noconfirm --ignore "$ignored_packages" From db8d81407183d1ad3390f18d97b0d15f58cb2484 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:46:54 +0200 Subject: [PATCH 61/82] Split conditionals --- bin/omarchy-update-system-pkgs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/bin/omarchy-update-system-pkgs b/bin/omarchy-update-system-pkgs index aa27558..28baffd 100755 --- a/bin/omarchy-update-system-pkgs +++ b/bin/omarchy-update-system-pkgs @@ -8,15 +8,17 @@ echo -e "\e[32m\nUpdate system packages\e[0m" [[ -n $ignored_packages ]] && echo "sudo pacman -Syu --noconfirm --ignore \"$ignored_packages\"" sudo pacman -Syu --noconfirm --ignore "$ignored_packages" -# Update AUR packages if any are installed and AUR is available -if pacman -Qem >/dev/null && omarchy-pkg-aur-accessible; then - echo -e "\e[32m\nUpdate AUR packages\e[0m" - [[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\"" - yay -Sua --noconfirm --ignore "$ignored_packages" - echo -else - echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m" - echo +# Update AUR packages if any are installed +if pacman -Qem >/dev/null; then + if omarchy-pkg-aur-accessible; then + echo -e "\e[32m\nUpdate AUR packages\e[0m" + [[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\"" + yay -Sua --noconfirm --ignore "$ignored_packages" + echo + else + echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m" + echo + fi fi orphans=$(pacman -Qtdq) From 763cbcbc027d18a450034d8d256da47362351dab Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:49:54 +0200 Subject: [PATCH 62/82] Use one consistent mirror list --- install/preflight/pacman.sh | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/install/preflight/pacman.sh b/install/preflight/pacman.sh index 907e31e..3134ec7 100755 --- a/install/preflight/pacman.sh +++ b/install/preflight/pacman.sh @@ -19,11 +19,8 @@ EOF fi # Set mirrors to global ones only -sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' -Server = https://mirror.omarchy.org/$repo/os/$arch -Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch -EOF +omarchy-refresh-pacman-mirrorlist # Refresh all repos -sudo pacman -Syu --noconfirm \ No newline at end of file +sudo pacman -Syu --noconfirm + From 8dd7c7a94e883bc87cc931d15e66c1bf24e8867e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:53:06 +0200 Subject: [PATCH 63/82] Make default ENVs available here and reuse --- install.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 0be3aa1..1f55c4f 100755 --- a/install.sh +++ b/install.sh @@ -3,8 +3,9 @@ # Exit immediately if a command exits with a non-zero status set -eE -export PATH="$HOME/.local/share/omarchy/bin:$PATH" -OMARCHY_INSTALL=~/.local/share/omarchy/install +OMARCHY_PATH="$HOME/.local/share/omarchy" +OMARCHY_INSTALL="$OMARCHY_PATH/install" +export PATH="$OMARCHY_PATH/bin:$PATH" # Preparation source $OMARCHY_INSTALL/preflight/show-env.sh From d68a757b7f6786e0ce63a5fa73fe2a97ee449a00 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:53:16 +0200 Subject: [PATCH 64/82] Extract actual list to a file that's easier to maintain --- bin/omarchy-refresh-pacman-mirrorlist | 6 +----- default/pacman/mirrorlist | 3 +++ 2 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 default/pacman/mirrorlist diff --git a/bin/omarchy-refresh-pacman-mirrorlist b/bin/omarchy-refresh-pacman-mirrorlist index 37d21a9..f17faad 100755 --- a/bin/omarchy-refresh-pacman-mirrorlist +++ b/bin/omarchy-refresh-pacman-mirrorlist @@ -1,7 +1,3 @@ #!/bin/bash -sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' -Server = https://mirror.omarchy.org/$repo/os/$arch -Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch -Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch -EOF +sudo cp -f $OMARCHY_PATH/default/pacman/mirrorlist /etc/pacman.d/mirrorlist diff --git a/default/pacman/mirrorlist b/default/pacman/mirrorlist new file mode 100644 index 0000000..2d92d05 --- /dev/null +++ b/default/pacman/mirrorlist @@ -0,0 +1,3 @@ +Server = https://mirror.omarchy.org/$repo/os/$arch +Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch +Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch From 219d2d43e73e4d179824d73d6549ae04ec574530 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:56:40 +0200 Subject: [PATCH 65/82] Gets called too early to rely on the ENV --- bin/omarchy-refresh-pacman-mirrorlist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-refresh-pacman-mirrorlist b/bin/omarchy-refresh-pacman-mirrorlist index f17faad..d029490 100755 --- a/bin/omarchy-refresh-pacman-mirrorlist +++ b/bin/omarchy-refresh-pacman-mirrorlist @@ -1,3 +1,3 @@ #!/bin/bash -sudo cp -f $OMARCHY_PATH/default/pacman/mirrorlist /etc/pacman.d/mirrorlist +sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist From e15caaf7133642eff87462b16b9220ca836391ec Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 13:58:01 +0200 Subject: [PATCH 66/82] Only do a gum offer if we have gum --- install/preflight/trap-errors.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/preflight/trap-errors.sh b/install/preflight/trap-errors.sh index 57fbede..39381f1 100755 --- a/install/preflight/trap-errors.sh +++ b/install/preflight/trap-errors.sh @@ -24,7 +24,7 @@ catch_errors() { echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ " echo " " - if gum confirm "Retry installation?"; then + if command -v gum >/dev/null && gum confirm "Retry installation?"; then bash ~/.local/share/omarchy/install.sh else echo "You can retry later by running: bash ~/.local/share/omarchy/install.sh" From 521de9794a5da0c8379efaa9a9745701250b31ca Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:02:08 +0200 Subject: [PATCH 67/82] Glenn was right, 3 is better! --- bin/omarchy-cmd-screensaver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver index 2fac759..46997e5 100755 --- a/bin/omarchy-cmd-screensaver +++ b/bin/omarchy-cmd-screensaver @@ -15,7 +15,7 @@ while true; do "$effect" & while pgrep -x tte >/dev/null; do - if read -n 1 -t 2; then + if read -n 1 -t 3; then exit_screensaver fi done From 91c8ad36f23ee3e3748c709db3ac2010e679b27e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:18:01 +0200 Subject: [PATCH 68/82] Add hardware restart menu to unblock wifi/bluetooth/audio if stuck --- bin/omarchy-menu | 16 +++++++++++++--- bin/omarchy-restart-amd-audio | 10 ++++++++++ bin/omarchy-restart-bluetooth | 4 ++++ bin/omarchy-restart-wifi | 4 ++++ 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100755 bin/omarchy-restart-amd-audio create mode 100755 bin/omarchy-restart-bluetooth create mode 100755 bin/omarchy-restart-wifi diff --git a/bin/omarchy-menu b/bin/omarchy-menu index edf5a8c..e679ade 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -324,11 +324,12 @@ 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󰇅 Hardware\n Timezone") in *Omarchy*) present_terminal omarchy-update ;; *Config*) show_update_config_menu ;; *Themes*) present_terminal omarchy-theme-update ;; *Process*) show_update_process_menu ;; + *Hardware*) show_update_hardware_menu ;; *Timezone*) omarchy-cmd-tzupdate ;; *) show_main_menu ;; esac @@ -341,7 +342,7 @@ show_update_process_menu() { *Swayosd*) omarchy-restart-swayosd ;; *Walker*) omarchy-restart-walker ;; *Waybar*) omarchy-restart-waybar ;; - *) show_main_menu ;; + *) show_update_menu ;; esac } @@ -355,7 +356,16 @@ show_update_config_menu() { *Swayosd*) present_terminal omarchy-refresh-swayosd ;; *Walker*) present_terminal omarchy-refresh-walker ;; *Waybar*) present_terminal omarchy-refresh-waybar ;; - *) show_main_menu ;; + *) show_update_menu ;; + esac +} + +show_update_hardware_menu() { + case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth\n AMD Audio (F13)") in + *Wi-Fi*) present_terminal omarchy-restart-wifi ;; + *Bluetooth*) present_terminal omarchy-restart-bluetooth ;; + *Audio*) present_terminal omarchy-restart-amd-audio ;; + *) show_update_menu ;; esac } diff --git a/bin/omarchy-restart-amd-audio b/bin/omarchy-restart-amd-audio new file mode 100755 index 0000000..b93f7c1 --- /dev/null +++ b/bin/omarchy-restart-amd-audio @@ -0,0 +1,10 @@ +#!/bin/bash + +CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') + +if [[ -n $CARD ]]; then + pactl set-card-profile "$CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null +else + echo "AMD audio card not found" + exit 1 +fi diff --git a/bin/omarchy-restart-bluetooth b/bin/omarchy-restart-bluetooth new file mode 100755 index 0000000..432e002 --- /dev/null +++ b/bin/omarchy-restart-bluetooth @@ -0,0 +1,4 @@ +#!/bin/bash + +rfkill unblock bluetooth +rfkill list bluetooth diff --git a/bin/omarchy-restart-wifi b/bin/omarchy-restart-wifi new file mode 100755 index 0000000..b8496d9 --- /dev/null +++ b/bin/omarchy-restart-wifi @@ -0,0 +1,4 @@ +#!/bin/bash + +rfkill unblock wifi +rfkill list wifi From 05d5f07cca35af44cadfc186d964b516263de67d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:19:30 +0200 Subject: [PATCH 69/82] Add migration to fix the AMD F13 input audio problem --- migrations/1756642681.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 migrations/1756642681.sh diff --git a/migrations/1756642681.sh b/migrations/1756642681.sh new file mode 100644 index 0000000..2f3dfd4 --- /dev/null +++ b/migrations/1756642681.sh @@ -0,0 +1,3 @@ +echo "Fix audio input on AMD Framework laptops" + +omarchy-restart-amd-audio || true From c6cd49a0aab4faff3ba3cc06bebf515a1d7cf965 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:31:15 +0200 Subject: [PATCH 70/82] Make fixing the F13 AMD audio input just a thing that happens --- bin/omarchy-menu | 3 +-- bin/omarchy-restart-amd-audio | 10 ---------- install.sh | 1 + install/config/hardware/fix-f13-amd-audio-input.sh | 7 +++++++ migrations/1756642681.sh | 2 +- 5 files changed, 10 insertions(+), 13 deletions(-) delete mode 100755 bin/omarchy-restart-amd-audio create mode 100755 install/config/hardware/fix-f13-amd-audio-input.sh diff --git a/bin/omarchy-menu b/bin/omarchy-menu index e679ade..d2cf322 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -361,10 +361,9 @@ show_update_config_menu() { } show_update_hardware_menu() { - case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth\n AMD Audio (F13)") in + case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth") in *Wi-Fi*) present_terminal omarchy-restart-wifi ;; *Bluetooth*) present_terminal omarchy-restart-bluetooth ;; - *Audio*) present_terminal omarchy-restart-amd-audio ;; *) show_update_menu ;; esac } diff --git a/bin/omarchy-restart-amd-audio b/bin/omarchy-restart-amd-audio deleted file mode 100755 index b93f7c1..0000000 --- a/bin/omarchy-restart-amd-audio +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') - -if [[ -n $CARD ]]; then - pactl set-card-profile "$CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null -else - echo "AMD audio card not found" - exit 1 -fi diff --git a/install.sh b/install.sh index 1f55c4f..321c5d6 100755 --- a/install.sh +++ b/install.sh @@ -47,6 +47,7 @@ source $OMARCHY_INSTALL/config/hardware/printer.sh source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh source $OMARCHY_INSTALL/config/hardware/nvidia.sh +source $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh # Login source $OMARCHY_INSTALL/login/plymouth.sh diff --git a/install/config/hardware/fix-f13-amd-audio-input.sh b/install/config/hardware/fix-f13-amd-audio-input.sh new file mode 100755 index 0000000..32ac686 --- /dev/null +++ b/install/config/hardware/fix-f13-amd-audio-input.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +AMD_AUDIO_CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') + +if [[ -n $AMD_AUDIO_CARD ]]; then + pactl set-card-profile "$AMD_AUDIO_CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null || true +fi diff --git a/migrations/1756642681.sh b/migrations/1756642681.sh index 2f3dfd4..d0117d2 100644 --- a/migrations/1756642681.sh +++ b/migrations/1756642681.sh @@ -1,3 +1,3 @@ echo "Fix audio input on AMD Framework laptops" -omarchy-restart-amd-audio || true +source $OMARCHY_PATH/install/config/hardware/fix-f13-amd-audio-input.sh || true From 37d59ca78e198ecac190002432397fdc545fa538 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:46:06 +0200 Subject: [PATCH 71/82] Use our own asdcontrol-git package now --- install.sh | 2 +- install/config/sudoless-asdcontrol.sh | 5 +++++ install/packages.sh | 1 + install/packaging/asdcontrol.sh | 15 --------------- 4 files changed, 7 insertions(+), 16 deletions(-) create mode 100755 install/config/sudoless-asdcontrol.sh delete mode 100755 install/packaging/asdcontrol.sh diff --git a/install.sh b/install.sh index 321c5d6..e3afaf3 100755 --- a/install.sh +++ b/install.sh @@ -18,7 +18,6 @@ source $OMARCHY_INSTALL/preflight/first-run-mode.sh # Packaging source $OMARCHY_INSTALL/packages.sh -source $OMARCHY_INSTALL/packaging/asdcontrol.sh source $OMARCHY_INSTALL/packaging/fonts.sh source $OMARCHY_INSTALL/packaging/lazyvim.sh source $OMARCHY_INSTALL/packaging/webapps.sh @@ -40,6 +39,7 @@ source $OMARCHY_INSTALL/config/mise-ruby.sh source $OMARCHY_INSTALL/config/docker.sh source $OMARCHY_INSTALL/config/mimetypes.sh source $OMARCHY_INSTALL/config/localdb.sh +source $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh source $OMARCHY_INSTALL/config/hardware/network.sh source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh source $OMARCHY_INSTALL/config/hardware/bluetooth.sh diff --git a/install/config/sudoless-asdcontrol.sh b/install/config/sudoless-asdcontrol.sh new file mode 100755 index 0000000..7c678f7 --- /dev/null +++ b/install/config/sudoless-asdcontrol.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# Setup sudo-less controls for controlling brightness on Apple Displays +echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol +sudo chmod 440 /etc/sudoers.d/asdcontrol diff --git a/install/packages.sh b/install/packages.sh index 4a2b014..409073a 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -1,6 +1,7 @@ sudo pacman -S --noconfirm --needed \ 1password-beta \ 1password-cli \ + asdcontrol-git \ alacritty \ avahi \ bash-completion \ diff --git a/install/packaging/asdcontrol.sh b/install/packaging/asdcontrol.sh deleted file mode 100755 index ff950c6..0000000 --- a/install/packaging/asdcontrol.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# Install asdcontrol for controlling brightness on Apple Displays -if ! command -v asdcontrol &>/dev/null; then - git clone https://github.com/nikosdion/asdcontrol.git /tmp/asdcontrol - cd /tmp/asdcontrol - make - sudo make install - cd - - rm -rf /tmp/asdcontrol - - # Setup sudo-less controls - echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol - sudo chmod 440 /etc/sudoers.d/asdcontrol -fi From 3ea45aa995299812a49e75b35552461fbf59965a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:54:44 +0200 Subject: [PATCH 72/82] Convert most of the optional AUR dependencies over to OPR --- bin/omarchy-install-dev-env | 2 +- bin/omarchy-install-dropbox | 6 ++---- bin/omarchy-menu | 14 +++++++------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/bin/omarchy-install-dev-env b/bin/omarchy-install-dev-env index 1865992..bd189b2 100755 --- a/bin/omarchy-install-dev-env +++ b/bin/omarchy-install-dev-env @@ -75,7 +75,7 @@ laravel) symfony) echo -e "Installing PHP and Symfony...\n" install_php - yay -S symfony-cli --noconfirm + omarchy-pkg-add symfony-cli echo -e "\nYou can now run: symfony new --webapp myproject" ;; python) diff --git a/bin/omarchy-install-dropbox b/bin/omarchy-install-dropbox index e80982d..ac5710c 100755 --- a/bin/omarchy-install-dropbox +++ b/bin/omarchy-install-dropbox @@ -1,9 +1,7 @@ #!/bin/bash -# FIXME: Should not use AUR dependencies when we can avoid it -echo "Installing all dependencies [from AUR]..." -yay -S --noconfirm --needed \ - dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox +echo "Installing all dependencies..." +omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox echo "Starting Dropbox..." uwsm app -- dropbox-cli start &>/dev/null & diff --git a/bin/omarchy-menu b/bin/omarchy-menu index d2cf322..7cbbbad 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -209,9 +209,9 @@ show_install_service_menu() { } show_install_editor_menu() { - case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix\n Emacs") in + case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in *VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;; - *Cursor*) aur_install_and_launch "Cursor" "cursor-bin" "cursor" ;; + *Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;; *Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; *Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; *Helix*) install "Helix" "helix" ;; @@ -227,14 +227,14 @@ show_install_ai_menu() { echo ollama ) - case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in - *Claude*) aur_install "Claude Code" "claude-code" ;; + case $(menu "Install" "󱚤 Claude Code\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in + *Claude*) install "Claude Code" "claude-code" ;; *OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;; *Gemini*) install "Gemini" "gemini-cli" ;; - *Studio*) aur_install "LM Studio" "lmstudio" ;; + *Studio*) install "LM Studio" "lmstudio" ;; *Ollama*) install "Ollama" $ollama_pkg ;; - *Crush*) aur_install "Crush" "crush-bin" ;; - *opencode*) aur_install "opencode" "opencode-bin" ;; + *Crush*) install "Crush" "crush-bin" ;; + *opencode*) install "opencode" "opencode-bin" ;; *) show_install_menu ;; esac } From 849628b2885a37c57673ed95303699d2438686f7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 14:57:42 +0200 Subject: [PATCH 73/82] Need fontconfig too --- install/packages.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/packages.sh b/install/packages.sh index 409073a..cec75b9 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -27,6 +27,7 @@ sudo pacman -S --noconfirm --needed \ fcitx5-qt \ fd \ ffmpegthumbnailer \ + fontconfig \ fzf \ gcc14 \ github-cli \ From a4c4b3570c6a7ba5fcbde1a1cbd2a956093c09c4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:07:36 +0200 Subject: [PATCH 74/82] Ship our own pacman.conf --- default/pacman/pacman.conf | 32 ++++++++++++++++++++++++++++++++ install/preflight/pacman.sh | 21 +++------------------ 2 files changed, 35 insertions(+), 18 deletions(-) create mode 100644 default/pacman/pacman.conf diff --git a/default/pacman/pacman.conf b/default/pacman/pacman.conf new file mode 100644 index 0000000..10239f2 --- /dev/null +++ b/default/pacman/pacman.conf @@ -0,0 +1,32 @@ +# See the pacman.conf(5) manpage for option and repository directives + +[options] +Color +ILoveCandy +VerbosePkgLists +HoldPkg = pacman glibc +Architecture = auto +CheckSpace +ParallelDownloads = 5 +DownloadUser = alpm + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional + +# REPOSITORIES +# - pacman will search repositories in the order defined here +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +[omarchy] +SigLevel = Optional TrustAll +Server = https://pkgs.omarchy.org/$arch diff --git a/install/preflight/pacman.sh b/install/preflight/pacman.sh index 3134ec7..4ec80d4 100755 --- a/install/preflight/pacman.sh +++ b/install/preflight/pacman.sh @@ -3,24 +3,9 @@ # Install build tools 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 - sudo sed -i '/^\[options\]/a Color\nILoveCandy\nVerbosePkgLists' /etc/pacman.conf -fi - -# Add the Omarchy repository -if ! grep -q "omarchy" /etc/pacman.conf; then - sudo tee -a /etc/pacman.conf >/dev/null <<'EOF' - -[omarchy] -SigLevel = Optional TrustAll -Server = https://pkgs.omarchy.org/$arch -EOF -fi - -# Set mirrors to global ones only -omarchy-refresh-pacman-mirrorlist +# Configure pacman +sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf +sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist # Refresh all repos sudo pacman -Syu --noconfirm - From 6a5f98cb8e0afa06ed7a12ebc644b2285a576e9d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:09:31 +0200 Subject: [PATCH 75/82] Slim even more --- default/pacman/pacman.conf | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/default/pacman/pacman.conf b/default/pacman/pacman.conf index 10239f2..1d4ab7b 100644 --- a/default/pacman/pacman.conf +++ b/default/pacman/pacman.conf @@ -12,15 +12,10 @@ DownloadUser = alpm # By default, pacman accepts packages signed by keys that its local keyring # trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional +SigLevel = Required DatabaseOptional LocalFileSigLevel = Optional -# REPOSITORIES -# - pacman will search repositories in the order defined here -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture +# pacman searches repositories in the order defined here [core] Include = /etc/pacman.d/mirrorlist From 434265cea2001fbada7bbbd38b38585bccb06477 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:12:01 +0200 Subject: [PATCH 76/82] Include multilib but commented out --- default/pacman/pacman.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/default/pacman/pacman.conf b/default/pacman/pacman.conf index 1d4ab7b..ce84c01 100644 --- a/default/pacman/pacman.conf +++ b/default/pacman/pacman.conf @@ -22,6 +22,9 @@ Include = /etc/pacman.d/mirrorlist [extra] Include = /etc/pacman.d/mirrorlist +# [multilib] +# Include = /etc/pacman.d/mirrorlist + [omarchy] SigLevel = Optional TrustAll Server = https://pkgs.omarchy.org/$arch From a5814e0bfd9124fb87e5533c9e8914acd05f18cd Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:35:43 +0200 Subject: [PATCH 77/82] Revert "Make fixing the F13 AMD audio input just a thing that happens" This reverts commit c6cd49a0aab4faff3ba3cc06bebf515a1d7cf965. --- bin/omarchy-menu | 3 ++- bin/omarchy-restart-amd-audio | 10 ++++++++++ install.sh | 1 - install/config/hardware/fix-f13-amd-audio-input.sh | 7 ------- migrations/1756642681.sh | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) create mode 100755 bin/omarchy-restart-amd-audio delete mode 100755 install/config/hardware/fix-f13-amd-audio-input.sh diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 7cbbbad..a93e159 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -361,9 +361,10 @@ show_update_config_menu() { } show_update_hardware_menu() { - case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth") in + case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth\n AMD Audio (F13)") in *Wi-Fi*) present_terminal omarchy-restart-wifi ;; *Bluetooth*) present_terminal omarchy-restart-bluetooth ;; + *Audio*) present_terminal omarchy-restart-amd-audio ;; *) show_update_menu ;; esac } diff --git a/bin/omarchy-restart-amd-audio b/bin/omarchy-restart-amd-audio new file mode 100755 index 0000000..b93f7c1 --- /dev/null +++ b/bin/omarchy-restart-amd-audio @@ -0,0 +1,10 @@ +#!/bin/bash + +CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') + +if [[ -n $CARD ]]; then + pactl set-card-profile "$CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null +else + echo "AMD audio card not found" + exit 1 +fi diff --git a/install.sh b/install.sh index e3afaf3..9c2d7e4 100755 --- a/install.sh +++ b/install.sh @@ -47,7 +47,6 @@ source $OMARCHY_INSTALL/config/hardware/printer.sh source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh source $OMARCHY_INSTALL/config/hardware/nvidia.sh -source $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh # Login source $OMARCHY_INSTALL/login/plymouth.sh diff --git a/install/config/hardware/fix-f13-amd-audio-input.sh b/install/config/hardware/fix-f13-amd-audio-input.sh deleted file mode 100755 index 32ac686..0000000 --- a/install/config/hardware/fix-f13-amd-audio-input.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -AMD_AUDIO_CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') - -if [[ -n $AMD_AUDIO_CARD ]]; then - pactl set-card-profile "$AMD_AUDIO_CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null || true -fi diff --git a/migrations/1756642681.sh b/migrations/1756642681.sh index d0117d2..2f3dfd4 100644 --- a/migrations/1756642681.sh +++ b/migrations/1756642681.sh @@ -1,3 +1,3 @@ echo "Fix audio input on AMD Framework laptops" -source $OMARCHY_PATH/install/config/hardware/fix-f13-amd-audio-input.sh || true +omarchy-restart-amd-audio || true From 7a9499eb66022faa9bddedbbc4402a2d1a3dafb7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:41:18 +0200 Subject: [PATCH 78/82] Always have the shebang --- install/packages.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/packages.sh b/install/packages.sh index cec75b9..ca9621a 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -1,3 +1,5 @@ +#!/bin/bash + sudo pacman -S --noconfirm --needed \ 1password-beta \ 1password-cli \ From 4bdbb06cfc136e9a241ca54e79de6ae328baddb6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:41:32 +0200 Subject: [PATCH 79/82] Extract the reboot segment into its own file --- install.sh | 13 +------------ install/reboot.sh | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 install/reboot.sh diff --git a/install.sh b/install.sh index 9c2d7e4..dec27fd 100755 --- a/install.sh +++ b/install.sh @@ -54,15 +54,4 @@ source $OMARCHY_INSTALL/login/limine-snapper.sh source $OMARCHY_INSTALL/login/alt-bootloaders.sh # Reboot -clear -tte -i ~/.local/share/omarchy/logo.txt --frame-rate 920 laseretch -echo -echo "You're done! So we're ready to reboot now..." | tte --frame-rate 640 wipe - -if sudo test -f /etc/sudoers.d/99-omarchy-installer; then - sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null - echo -e "\nRemember to remove USB installer!\n\n" -fi - -sleep 5 -reboot +source $OMARCHY_INSTALL/reboot.sh diff --git a/install/reboot.sh b/install/reboot.sh new file mode 100644 index 0000000..d444c14 --- /dev/null +++ b/install/reboot.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +clear +tte -i ~/.local/share/omarchy/logo.txt --frame-rate 920 laseretch +echo +echo "You're done! So we're ready to reboot now..." | tte --frame-rate 640 wipe + +if sudo test -f /etc/sudoers.d/99-omarchy-installer; then + sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null + echo -e "\nRemember to remove USB installer!\n\n" +fi + +sleep 5 +reboot From 8610f4f9da404be15f586b307b9953c886a2264c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:41:55 +0200 Subject: [PATCH 80/82] Explainer --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index dec27fd..29d2225 100755 --- a/install.sh +++ b/install.sh @@ -53,5 +53,5 @@ source $OMARCHY_INSTALL/login/plymouth.sh source $OMARCHY_INSTALL/login/limine-snapper.sh source $OMARCHY_INSTALL/login/alt-bootloaders.sh -# Reboot +# Finishing source $OMARCHY_INSTALL/reboot.sh From 6d832cba42f7eea733358d0f233e332df9f0df3e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:50:24 +0200 Subject: [PATCH 81/82] Reapply "Make fixing the F13 AMD audio input just a thing that happens" This reverts commit a5814e0bfd9124fb87e5533c9e8914acd05f18cd. --- bin/omarchy-menu | 3 +-- bin/omarchy-restart-amd-audio | 10 ---------- install.sh | 1 + install/config/hardware/fix-f13-amd-audio-input.sh | 7 +++++++ migrations/1756642681.sh | 2 +- 5 files changed, 10 insertions(+), 13 deletions(-) delete mode 100755 bin/omarchy-restart-amd-audio create mode 100755 install/config/hardware/fix-f13-amd-audio-input.sh diff --git a/bin/omarchy-menu b/bin/omarchy-menu index a93e159..7cbbbad 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -361,10 +361,9 @@ show_update_config_menu() { } show_update_hardware_menu() { - case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth\n AMD Audio (F13)") in + case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth") in *Wi-Fi*) present_terminal omarchy-restart-wifi ;; *Bluetooth*) present_terminal omarchy-restart-bluetooth ;; - *Audio*) present_terminal omarchy-restart-amd-audio ;; *) show_update_menu ;; esac } diff --git a/bin/omarchy-restart-amd-audio b/bin/omarchy-restart-amd-audio deleted file mode 100755 index b93f7c1..0000000 --- a/bin/omarchy-restart-amd-audio +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') - -if [[ -n $CARD ]]; then - pactl set-card-profile "$CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null -else - echo "AMD audio card not found" - exit 1 -fi diff --git a/install.sh b/install.sh index 29d2225..f13de37 100755 --- a/install.sh +++ b/install.sh @@ -47,6 +47,7 @@ source $OMARCHY_INSTALL/config/hardware/printer.sh source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh source $OMARCHY_INSTALL/config/hardware/nvidia.sh +source $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh # Login source $OMARCHY_INSTALL/login/plymouth.sh diff --git a/install/config/hardware/fix-f13-amd-audio-input.sh b/install/config/hardware/fix-f13-amd-audio-input.sh new file mode 100755 index 0000000..32ac686 --- /dev/null +++ b/install/config/hardware/fix-f13-amd-audio-input.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +AMD_AUDIO_CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}') + +if [[ -n $AMD_AUDIO_CARD ]]; then + pactl set-card-profile "$AMD_AUDIO_CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null || true +fi diff --git a/migrations/1756642681.sh b/migrations/1756642681.sh index 2f3dfd4..d0117d2 100644 --- a/migrations/1756642681.sh +++ b/migrations/1756642681.sh @@ -1,3 +1,3 @@ echo "Fix audio input on AMD Framework laptops" -omarchy-restart-amd-audio || true +source $OMARCHY_PATH/install/config/hardware/fix-f13-amd-audio-input.sh || true From 4409f4478b32e273936c624e2b520b475cb8d236 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 31 Aug 2025 15:55:23 +0200 Subject: [PATCH 82/82] We have to bail if the package couldn't be installed --- bin/omarchy-pkg-add | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-pkg-add b/bin/omarchy-pkg-add index efb17e8..116435b 100755 --- a/bin/omarchy-pkg-add +++ b/bin/omarchy-pkg-add @@ -2,7 +2,7 @@ for pkg in "$@"; do if ! pacman -Q "$pkg" &>/dev/null; then - sudo pacman -S --noconfirm "$pkg" + sudo pacman -S --noconfirm "$pkg" || exit 1 fi done