From cdb8c6ed66ddf9543397240d810bff9e448eaef7 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Thu, 14 Aug 2025 17:26:20 +0200 Subject: [PATCH 01/52] add guard for arm architecture --- install/preflight/guard.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/install/preflight/guard.sh b/install/preflight/guard.sh index 65c26b8000b..60a12035123 100644 --- a/install/preflight/guard.sh +++ b/install/preflight/guard.sh @@ -17,8 +17,13 @@ done # Must not be runnig as root [ "$EUID" -eq 0 ] && abort "Running as user (not root)" -# Must be x86 only to fully work -[ "$(uname -m)" != "x86_64" ] && abort "x86_64 CPU" +# Must be x86 only to fully work, or ARM if OMARCHY_ARM is set +if [ -z "$OMARCHY_ARM" ]; then + [ "$(uname -m)" != "x86_64" ] && abort "x86_64 CPU" +else + arch=$(uname -m) + [[ "$arch" != "aarch64" && "$arch" != "arm64" ]] && abort "ARM CPU" +fi # Must not have Gnome or KDE already install pacman -Qe gnome-shell &>/dev/null && abort "Fresh + Vanilla Arch" From f6c787b4ac874144039d50db8bbcb6f3c136608c Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Thu, 14 Aug 2025 17:50:15 +0200 Subject: [PATCH 02/52] change omarchy repo --- boot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot.sh b/boot.sh index 9005487a597..564787f9b22 100755 --- a/boot.sh +++ b/boot.sh @@ -17,7 +17,7 @@ echo -e "\n$ansi_art\n" sudo pacman -Sy --noconfirm --needed git # Use custom repo if specified, otherwise default to basecamp/omarchy -OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}" +OMARCHY_REPO="${OMARCHY_REPO:-nilszeilon/armarchy}" echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git" rm -rf ~/.local/share/omarchy/ From 55f825dfe52f37fe13185ca33d60fc2850816501 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Thu, 14 Aug 2025 22:19:34 +0200 Subject: [PATCH 03/52] install lazydocker instead of the bin (x86-64 arch only) --- install/development/development.sh | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/install/development/development.sh b/install/development/development.sh index 20d895738d9..8f1d761c1d8 100644 --- a/install/development/development.sh +++ b/install/development/development.sh @@ -1,8 +1,17 @@ #!/bin/bash -yay -S --noconfirm --needed \ - cargo clang llvm mise \ - imagemagick \ - mariadb-libs postgresql-libs \ - github-cli \ - lazygit lazydocker-bin +if [ -z "$OMARCHY_ARM" ]; then + yay -S --noconfirm --needed \ + cargo clang llvm mise \ + imagemagick \ + mariadb-libs postgresql-libs \ + github-cli \ + lazygit lazydocker-bin +else + yay -S --noconfirm --needed \ + cargo clang llvm mise \ + imagemagick \ + mariadb-libs postgresql-libs \ + github-cli \ + lazygit lazydocker +fi From aee212bbf131df2b237bcd15cefe90c2dac0e231 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Thu, 14 Aug 2025 22:24:56 +0200 Subject: [PATCH 04/52] install guide for MacOS dual boot with omarchy --- INSTALL_GUIDE.md | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 INSTALL_GUIDE.md diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md new file mode 100644 index 00000000000..0e938e24c04 --- /dev/null +++ b/INSTALL_GUIDE.md @@ -0,0 +1,84 @@ +# Install guide macbook m-series (m1 & m2) + +## Dual boot Asahi-alarm + + +### installation + +Follow the instructions on how to dual boot your macbook with asahi-alarm here + +https://asahi-alarm.org/ + +**Choose the minimal installation!** + +This will create a new partition on your machine and install arch on it! + +### get internet +Follow these instructions once the installation is complete [manual installation guide](https://github.com/asahi-alarm/asahi-alarm/blob/main/manual-install.md) + +This lets you set up wifi for your laptop. + +### Create a user + +Now we are logged in as root, lets create a user + + ``` + +# Install sudo package +pacman -S sudo + +# Create a new user with home directory +useradd -m youruser # Replace 'youruser' with your desired username + +# Set password for the new user +passwd youruser + +# Add user to the wheel group (for sudo access) +usermod -aG wheel youruser +``` + +run `visudo` and look for the line and uncomment it + + +``` +# %wheel ALL=(ALL:ALL) ALL +``` + + +## Install omarchy + +first we need to install the package wget + +``` +pacman -S wget +``` + +to install omarchy we need to run as the user we just created before, run the command + +``` +su - youruser +``` + + +now lets install omarchy, run the command + + +``` +wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boot.sh | OMARCHY_BARE=true OMARCHY_ARM=true bash +``` + +if nothing happens, check that you typed in the correct url before piping to bash with + +``` +wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boot.sh +``` + +This step will take some time. + + + +# Uninstall + +Uninstall is super easy, big recommend to this guy + +https://youtu.be/nMnWTq2H-N0?si=7RsKKRSC5n9-aboF From bf91e567871d5ab67d7a7155823d706bc0520935 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Thu, 14 Aug 2025 23:46:49 +0200 Subject: [PATCH 05/52] comment out 1password stuff --- default/hypr/apps.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index 69d04f7db28..edcad49dbf5 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -6,4 +6,4 @@ 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/walker.conf -source = ~/.local/share/omarchy/default/hypr/apps/1password.conf +#source = ~/.local/share/omarchy/default/hypr/apps/1password.conf From 67b71dd3899d1dd1a4c3079cadd992a6fd763efa Mon Sep 17 00:00:00 2001 From: nilszeilon Date: Fri, 15 Aug 2025 09:25:16 +0200 Subject: [PATCH 06/52] fix menu commands with vulkan setting --- install/config/config.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/install/config/config.sh b/install/config/config.sh index 2f420e8d597..036ea40ac99 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -15,6 +15,10 @@ if [ -n "$OMARCHY_BARE" ]; then touch ~/.local/state/omarchy/bare.mode fi +if [ -n "$OMARCHY_ARM" ]; then + echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >> ~/.config/hypr/envs.conf +fi + # Setup GPG configuration with multiple keyservers for better reliability sudo mkdir -p /etc/gnupg sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/ From c2a47f1c927e6552300cf77439995640a130fe7b Mon Sep 17 00:00:00 2001 From: nilszeilon Date: Fri, 15 Aug 2025 09:37:36 +0200 Subject: [PATCH 07/52] Autoselect BARE if we install with OMARCHY_ARM --- install/preflight/guard.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/install/preflight/guard.sh b/install/preflight/guard.sh index 60a12035123..f8e0d5d7230 100644 --- a/install/preflight/guard.sh +++ b/install/preflight/guard.sh @@ -25,6 +25,11 @@ else [[ "$arch" != "aarch64" && "$arch" != "arm64" ]] && abort "ARM CPU" fi +# if we install on m1 or m2 macbook then we should install BARE +if [ -n "$OMARCHY_ARM"]; then + export OMARCHY_BARE=true +fi + # Must not have Gnome or KDE already install pacman -Qe gnome-shell &>/dev/null && abort "Fresh + Vanilla Arch" pacman -Qe plasma-desktop &>/dev/null && abort "Fresh + Vanilla Arch" From b4b370f9d49553869098212bcf49ff79b0b5fced Mon Sep 17 00:00:00 2001 From: nilszeilon Date: Fri, 15 Aug 2025 09:52:45 +0200 Subject: [PATCH 08/52] fix typo --- install/preflight/guard.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/preflight/guard.sh b/install/preflight/guard.sh index f8e0d5d7230..7bb4b355ef4 100644 --- a/install/preflight/guard.sh +++ b/install/preflight/guard.sh @@ -26,7 +26,7 @@ else fi # if we install on m1 or m2 macbook then we should install BARE -if [ -n "$OMARCHY_ARM"]; then +if [ -n "$OMARCHY_ARM" ]; then export OMARCHY_BARE=true fi From 58ab8aba5e5931a5693305800ce0a03337477e15 Mon Sep 17 00:00:00 2001 From: nilszeilon Date: Fri, 15 Aug 2025 10:08:39 +0200 Subject: [PATCH 09/52] update docs on how to handle errors installing. --- INSTALL_GUIDE.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md index 0e938e24c04..31679285944 100644 --- a/INSTALL_GUIDE.md +++ b/INSTALL_GUIDE.md @@ -75,6 +75,9 @@ wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boo This step will take some time. +If you run into problems where the AUR is slow, try to enable mirror repositories by editing `sudo vim /etc/pacman.d/mirrorlist` and uncomment a couple of lines starting with `# Server = ...`. + +**If the installation crashes** just run the suggested command but with the `OMARCHY_ARM` flag set like this `OMARCHY_ARM=true bash ~/.local/share/omarchy/install.sh` until it finishes. # Uninstall From ab30f2daf25c6ad301591f841ee0f7e9c6993822 Mon Sep 17 00:00:00 2001 From: nilszeilon Date: Fri, 15 Aug 2025 10:12:59 +0200 Subject: [PATCH 10/52] You only have to spec OMARCHY_ARM --- INSTALL_GUIDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md index 31679285944..38b1907fe7a 100644 --- a/INSTALL_GUIDE.md +++ b/INSTALL_GUIDE.md @@ -64,7 +64,7 @@ now lets install omarchy, run the command ``` -wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boot.sh | OMARCHY_BARE=true OMARCHY_ARM=true bash +wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boot.sh | OMARCHY_ARM=true bash ``` if nothing happens, check that you typed in the correct url before piping to bash with From bac54b76c974e62af2528a2deaf29f3c919497b6 Mon Sep 17 00:00:00 2001 From: nilszeilon Date: Fri, 15 Aug 2025 10:30:20 +0200 Subject: [PATCH 11/52] add considerations to the installation guide --- INSTALL_GUIDE.md | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md index 38b1907fe7a..ed9c5166a74 100644 --- a/INSTALL_GUIDE.md +++ b/INSTALL_GUIDE.md @@ -1,18 +1,31 @@ # Install guide macbook m-series (m1 & m2) -## Dual boot Asahi-alarm +⚠️⚠️⚠️**This is experimental and might leave your machine in an unusuable state.**⚠️⚠️⚠️ +## before we start -### installation +Installation requires a dual boot of your macbook. This means Omarchy will live side by side with your existing macOS. + +If you don't have space on your machine I recommend looking at the top comment on this reddit thread: +https://www.reddit.com/r/MacOS/comments/154rp99/how_to_do_i_clear_system_data_on_mac_os/ -Follow the instructions on how to dual boot your macbook with asahi-alarm here +This and removing a bunch of unused files removed about 100gb of data to available space for omarchy. -https://asahi-alarm.org/ +You should always back up any data or files that you don't want to lose. + +## Dual boot Asahi-alarm + +### installation + +Follow the instructions on how to dual boot your macbook with asahi-alarm **Choose the minimal installation!** This will create a new partition on your machine and install arch on it! +Follow these instructions: https://asahi-alarm.org/ + + ### get internet Follow these instructions once the installation is complete [manual installation guide](https://github.com/asahi-alarm/asahi-alarm/blob/main/manual-install.md) @@ -24,9 +37,6 @@ Now we are logged in as root, lets create a user ``` -# Install sudo package -pacman -S sudo - # Create a new user with home directory useradd -m youruser # Replace 'youruser' with your desired username @@ -75,9 +85,9 @@ wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boo This step will take some time. -If you run into problems where the AUR is slow, try to enable mirror repositories by editing `sudo vim /etc/pacman.d/mirrorlist` and uncomment a couple of lines starting with `# Server = ...`. +If you run into problems where the AUR is slow, try to enable mirror repositories by editing `sudo vim /etc/pacman.d/mirrorlist` and uncomment a couple of lines starting with `# Server = ...`. -**If the installation crashes** just run the suggested command but with the `OMARCHY_ARM` flag set like this `OMARCHY_ARM=true bash ~/.local/share/omarchy/install.sh` until it finishes. +**If the installation crashes** - just run the suggested command but with the `OMARCHY_ARM` flag set like this `OMARCHY_ARM=true bash ~/.local/share/omarchy/install.sh` until it finishes. # Uninstall From 38349a6ca65fb9289f0c2f52f343e7e89f09bfde Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Fri, 15 Aug 2025 14:55:39 +0000 Subject: [PATCH 12/52] install pipewire for audio --- install.sh | 1 + install/desktop/audio.sh | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 install/desktop/audio.sh diff --git a/install.sh b/install.sh index 9b728d0a619..de8b37408fd 100755 --- a/install.sh +++ b/install.sh @@ -63,6 +63,7 @@ source $OMARCHY_INSTALL/desktop/hyprlandia.sh source $OMARCHY_INSTALL/desktop/theme.sh source $OMARCHY_INSTALL/desktop/bluetooth.sh source $OMARCHY_INSTALL/desktop/asdcontrol.sh +source $OMARCHY_INSTALL/desktop/audio.sh source $OMARCHY_INSTALL/desktop/fonts.sh source $OMARCHY_INSTALL/desktop/printer.sh diff --git a/install/desktop/audio.sh b/install/desktop/audio.sh new file mode 100644 index 00000000000..0e8dc9c8656 --- /dev/null +++ b/install/desktop/audio.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# on macbook m-series we need pipewire +if [ -n "$OMARCHY_ARM" ]; then + yay -S --needed pipewire-alsa pipewire-pulse wireplumber pipewire-jack +fi From bad11ee89f40f738508d0270f159f340502ddb1a Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 16 Aug 2025 17:47:02 +0000 Subject: [PATCH 13/52] add noconfirm flag to install of pipewire (conflict with jack) and add asahi-audio for speaker support --- install/desktop/audio.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/desktop/audio.sh b/install/desktop/audio.sh index 0e8dc9c8656..82bc753fa51 100644 --- a/install/desktop/audio.sh +++ b/install/desktop/audio.sh @@ -2,5 +2,5 @@ # on macbook m-series we need pipewire if [ -n "$OMARCHY_ARM" ]; then - yay -S --needed pipewire-alsa pipewire-pulse wireplumber pipewire-jack + yay -S --needed --noconfirm pipewire-alsa pipewire-pulse wireplumber pipewire-jack asahi-audio fi From e3c00ebebe2d249195097c0408e1070cec767a1d Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 16 Aug 2025 21:35:25 +0000 Subject: [PATCH 14/52] fix typo --- INSTALL_GUIDE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md index ed9c5166a74..f768745c550 100644 --- a/INSTALL_GUIDE.md +++ b/INSTALL_GUIDE.md @@ -74,13 +74,13 @@ now lets install omarchy, run the command ``` -wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boot.sh | OMARCHY_ARM=true bash +wget -qO- https://githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh | OMARCHY_ARM=true bash ``` if nothing happens, check that you typed in the correct url before piping to bash with ``` -wget -qO- https://githubusercontent.com/nilszeion/armarchy/refs/heads/master/boot.sh +wget -qO- https://githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh ``` This step will take some time. From 136390dffe5c48b979b9310f36c143b5545ed00a Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 13:28:17 +0200 Subject: [PATCH 15/52] fix install url --- INSTALL_GUIDE.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md index f768745c550..41d1812105e 100644 --- a/INSTALL_GUIDE.md +++ b/INSTALL_GUIDE.md @@ -74,13 +74,13 @@ now lets install omarchy, run the command ``` -wget -qO- https://githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh | OMARCHY_ARM=true bash +wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh | OMARCHY_ARM=true bash ``` if nothing happens, check that you typed in the correct url before piping to bash with ``` -wget -qO- https://githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh +wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh ``` This step will take some time. From 1bb6ce8875393da2e36b1713729b2ede28846d05 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 20:13:14 +0200 Subject: [PATCH 16/52] auto-detect ARM arch --- install/preflight/guard.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/install/preflight/guard.sh b/install/preflight/guard.sh index 7bb4b355ef4..4c5fd3a8523 100644 --- a/install/preflight/guard.sh +++ b/install/preflight/guard.sh @@ -17,19 +17,22 @@ done # Must not be runnig as root [ "$EUID" -eq 0 ] && abort "Running as user (not root)" -# Must be x86 only to fully work, or ARM if OMARCHY_ARM is set +# Auto-detect ARM architecture and set flags +arch=$(uname -m) +if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then + export OMARCHY_ARM=true + export OMARCHY_BARE=true + echo "Auto-detected ARM architecture: $arch" + echo "Setting OMARCHY_ARM=true and OMARCHY_BARE=true" +fi + +# Must be x86 or ARM architecture if [ -z "$OMARCHY_ARM" ]; then [ "$(uname -m)" != "x86_64" ] && abort "x86_64 CPU" else - arch=$(uname -m) [[ "$arch" != "aarch64" && "$arch" != "arm64" ]] && abort "ARM CPU" fi -# if we install on m1 or m2 macbook then we should install BARE -if [ -n "$OMARCHY_ARM" ]; then - export OMARCHY_BARE=true -fi - # Must not have Gnome or KDE already install pacman -Qe gnome-shell &>/dev/null && abort "Fresh + Vanilla Arch" pacman -Qe plasma-desktop &>/dev/null && abort "Fresh + Vanilla Arch" From d24a803e433d8fbdb3e908820d5d386270356577 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 22:08:03 +0200 Subject: [PATCH 17/52] add arm to state for exclusions --- install/config/config.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/install/config/config.sh b/install/config/config.sh index 036ea40ac99..e5fc6140211 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -15,9 +15,15 @@ if [ -n "$OMARCHY_BARE" ]; then touch ~/.local/state/omarchy/bare.mode fi +# If arm arch, allow a way for its exclusions to not get added in updates & configs if [ -n "$OMARCHY_ARM" ]; then - echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >> ~/.config/hypr/envs.conf -fi + mkdir -p ~/.local/state/omarchy + touch ~/.local/state/omarchy/arm.mode +fi + +if [ -n "$OMARCHY_ARM" ]; then + echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >>~/.config/hypr/envs.conf +fi # Setup GPG configuration with multiple keyservers for better reliability sudo mkdir -p /etc/gnupg From 884783307c54c22c8920c9af8c3d287a00681b15 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 22:09:06 +0200 Subject: [PATCH 18/52] source 1password configs only on x86 --- default/hypr/apps.conf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index edcad49dbf5..fadf9980829 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -6,4 +6,7 @@ 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/walker.conf -#source = ~/.local/share/omarchy/default/hypr/apps/1password.conf + +if [[ ! -f ~/.local/state/omarchy/arm.mode ]]; then + source = ~/.local/share/omarchy/default/hypr/apps/1password.conf +fi From d2f5cc4e4da443e9098cd7bd855401d2494907e4 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 22:13:51 +0200 Subject: [PATCH 19/52] migrate state for arm users --- migrations/1755244361.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 migrations/1755244361.sh diff --git a/migrations/1755244361.sh b/migrations/1755244361.sh new file mode 100644 index 00000000000..8011a7f3fd6 --- /dev/null +++ b/migrations/1755244361.sh @@ -0,0 +1,8 @@ +# Add state for arm achitecture +if [[ $(uname -m) == "arm"* || $(uname -m) == "aarch64" || -n "$OMARCHY_ARM" ]]; then + # Do something for ARM + echo "Running on ARM architecture" + + mkdir -p ~/.local/state/omarchy + touch ~/.local/state/omarchy/arm.mode +fi From 7b66f5a85a41f92a11a687cf78d0df8b62a312ce Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 22:56:12 +0200 Subject: [PATCH 20/52] change back to the omarchy repo --- boot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot.sh b/boot.sh index 564787f9b22..9005487a597 100755 --- a/boot.sh +++ b/boot.sh @@ -17,7 +17,7 @@ echo -e "\n$ansi_art\n" sudo pacman -Sy --noconfirm --needed git # Use custom repo if specified, otherwise default to basecamp/omarchy -OMARCHY_REPO="${OMARCHY_REPO:-nilszeilon/armarchy}" +OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}" echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git" rm -rf ~/.local/share/omarchy/ From 876375c9efb69e5de15c284bf6b8a1e31c8535f2 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 23:04:21 +0200 Subject: [PATCH 21/52] update installation guide --- INSTALL_GUIDE.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md index 41d1812105e..596ed2e679d 100644 --- a/INSTALL_GUIDE.md +++ b/INSTALL_GUIDE.md @@ -74,13 +74,7 @@ now lets install omarchy, run the command ``` -wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh | OMARCHY_ARM=true bash -``` - -if nothing happens, check that you typed in the correct url before piping to bash with - -``` -wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/refs/heads/master/boot.sh +wget -qO- https://omarchy.org/install ``` This step will take some time. From 61bbadd33e5f4cb6742f90083357ad214bb31cba Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 17 Aug 2025 23:26:23 +0200 Subject: [PATCH 22/52] remove comment --- migrations/1755244361.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/migrations/1755244361.sh b/migrations/1755244361.sh index 8011a7f3fd6..f65bc683413 100644 --- a/migrations/1755244361.sh +++ b/migrations/1755244361.sh @@ -1,8 +1,5 @@ # Add state for arm achitecture if [[ $(uname -m) == "arm"* || $(uname -m) == "aarch64" || -n "$OMARCHY_ARM" ]]; then - # Do something for ARM - echo "Running on ARM architecture" - mkdir -p ~/.local/state/omarchy touch ~/.local/state/omarchy/arm.mode fi From 920f65d9ff6b7dfad1b3604c4ed577d319c20b94 Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Fri, 22 Aug 2025 23:16:20 +0000 Subject: [PATCH 23/52] combine conditional --- install/config/config.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install/config/config.sh b/install/config/config.sh index f19df4a4a81..9fceca1733f 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -19,9 +19,6 @@ fi if [ -n "$OMARCHY_ARM" ]; then mkdir -p ~/.local/state/omarchy touch ~/.local/state/omarchy/arm.mode -fi - -if [ -n "$OMARCHY_ARM" ]; then echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >>~/.config/hypr/envs.conf fi From 82d8e35a68801d2f918a008d0eeb143243754502 Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Fri, 22 Aug 2025 23:21:18 +0000 Subject: [PATCH 24/52] remove architecture guard --- install/preflight/guard.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/install/preflight/guard.sh b/install/preflight/guard.sh index bc2b4117a69..b9208ee1616 100644 --- a/install/preflight/guard.sh +++ b/install/preflight/guard.sh @@ -26,13 +26,6 @@ if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then echo "Setting OMARCHY_ARM=true and OMARCHY_BARE=true" fi -# Must be x86 or ARM architecture -if [ -z "$OMARCHY_ARM" ]; then - [ "$(uname -m)" != "x86_64" ] && abort "x86_64 CPU" -else - [[ "$arch" != "aarch64" && "$arch" != "arm64" ]] && abort "ARM CPU" -fi - # Must not have Gnome or KDE already install pacman -Qe gnome-shell &>/dev/null && abort "Fresh + Vanilla Arch" pacman -Qe plasma-desktop &>/dev/null && abort "Fresh + Vanilla Arch" From 8ef66dbb80c8b671b78384d909ec6bf4fc8aa2bd Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 23 Aug 2025 00:53:31 +0000 Subject: [PATCH 25/52] preflight setup script for asahi-alarm users --- install.sh | 14 +++++++ install/preflight/asahi.sh | 79 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 install/preflight/asahi.sh diff --git a/install.sh b/install.sh index bca6107feeb..72139a9bb0f 100755 --- a/install.sh +++ b/install.sh @@ -56,6 +56,20 @@ source $OMARCHY_INSTALL/log/before-install.sh source $OMARCHY_INSTALL/preflight/chroot.sh source $OMARCHY_INSTALL/preflight/mirrorlist.sh source $OMARCHY_INSTALL/preflight/gum.sh + +# Check if we're on Asahi Linux and need initial setup +if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then + # Check for Asahi indicators + if grep -qi "asahi" /etc/os-release 2>/dev/null || + uname -r | grep -qi "asahi" || + pacman -Q linux-asahi &>/dev/null || + pacman -Q asahi-scripts &>/dev/null; then + echo "Detected Asahi Linux - running initial setup..." + # using exec instead of source to continue the installation after switching user + exec $OMARCHY_INSTALL/preflight/asahi.sh + fi +fi + source $OMARCHY_INSTALL/preflight/guard.sh source $OMARCHY_INSTALL/preflight/aur.sh source $OMARCHY_INSTALL/preflight/tte.sh diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh new file mode 100644 index 00000000000..4781a4bd0ee --- /dev/null +++ b/install/preflight/asahi.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# Asahi Linux ARM setup script for Omarchy +# This script automates the post-Asahi installation steps for MacBook M-series + +set -e + +# Check if running as root (required for initial setup) +if [ "$EUID" -ne 0 ]; then + echo "This script must be run as root for initial setup" + echo "Please run: sudo bash $0" + exit 1 +fi + +echo "==================================" +echo "Omarchy Asahi Linux Setup" +echo "==================================" +echo + +# Check if user already exists +echo "Setting up user account..." +existing_users=$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd) + +if [ -n "$existing_users" ]; then + echo "Found existing users: $existing_users" + use_existing=$(gum confirm "Use an existing user account?" && echo "yes" || echo "no") + + if [ "$use_existing" = "yes" ]; then + username=$(echo "$existing_users" | gum choose --header "Select user:") + else + username=$(gum input --placeholder "Enter new username") + fi +else + username=$(gum input --placeholder "Enter username for Omarchy") +fi + +# Create user if doesn't exist +if ! id "$username" &>/dev/null; then + echo "Creating user $username..." + useradd -m "$username" + + echo "Setting password for $username..." + while true; do + password=$(gum input --password --placeholder "Enter password for $username") + password_confirm=$(gum input --password --placeholder "Confirm password") + + if [ "$password" = "$password_confirm" ]; then + echo "$username:$password" | chpasswd + break + else + echo "Passwords don't match. Please try again." + fi + done + + # Add to wheel group for sudo access + usermod -aG wheel "$username" + echo "Added $username to wheel group" +fi + +# Enable sudo for wheel group +echo "Configuring sudo access..." +if grep -q "^# %wheel ALL=(ALL:ALL) ALL" /etc/sudoers; then + sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers + echo "Enabled sudo for wheel group" +elif ! grep -q "^%wheel ALL=(ALL:ALL) ALL" /etc/sudoers; then + echo "%wheel ALL=(ALL:ALL) ALL" >>/etc/sudoers + echo "Added wheel group to sudoers" +fi + +echo +echo "==================================" +echo "Asahi setup complete!" +echo "==================================" +echo +echo "Switching to user $username..." +echo + +# Switch to the created/selected user +exec su - "$username" -c "$OMARCHY_INSTALL/../install.sh" From 700d41d8568b8f2986bd102ac4ecfed312d782b3 Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 23 Aug 2025 01:03:24 +0000 Subject: [PATCH 26/52] add prerequisites for Omarchy on asahi linux --- INSTALL_GUIDE.md | 91 -------------------------------------- install/preflight/asahi.sh | 7 +++ 2 files changed, 7 insertions(+), 91 deletions(-) delete mode 100644 INSTALL_GUIDE.md diff --git a/INSTALL_GUIDE.md b/INSTALL_GUIDE.md deleted file mode 100644 index 596ed2e679d..00000000000 --- a/INSTALL_GUIDE.md +++ /dev/null @@ -1,91 +0,0 @@ -# Install guide macbook m-series (m1 & m2) - -⚠️⚠️⚠️**This is experimental and might leave your machine in an unusuable state.**⚠️⚠️⚠️ - -## before we start - -Installation requires a dual boot of your macbook. This means Omarchy will live side by side with your existing macOS. - -If you don't have space on your machine I recommend looking at the top comment on this reddit thread: -https://www.reddit.com/r/MacOS/comments/154rp99/how_to_do_i_clear_system_data_on_mac_os/ - -This and removing a bunch of unused files removed about 100gb of data to available space for omarchy. - -You should always back up any data or files that you don't want to lose. - -## Dual boot Asahi-alarm - -### installation - -Follow the instructions on how to dual boot your macbook with asahi-alarm - -**Choose the minimal installation!** - -This will create a new partition on your machine and install arch on it! - -Follow these instructions: https://asahi-alarm.org/ - - -### get internet -Follow these instructions once the installation is complete [manual installation guide](https://github.com/asahi-alarm/asahi-alarm/blob/main/manual-install.md) - -This lets you set up wifi for your laptop. - -### Create a user - -Now we are logged in as root, lets create a user - - ``` - -# Create a new user with home directory -useradd -m youruser # Replace 'youruser' with your desired username - -# Set password for the new user -passwd youruser - -# Add user to the wheel group (for sudo access) -usermod -aG wheel youruser -``` - -run `visudo` and look for the line and uncomment it - - -``` -# %wheel ALL=(ALL:ALL) ALL -``` - - -## Install omarchy - -first we need to install the package wget - -``` -pacman -S wget -``` - -to install omarchy we need to run as the user we just created before, run the command - -``` -su - youruser -``` - - -now lets install omarchy, run the command - - -``` -wget -qO- https://omarchy.org/install -``` - -This step will take some time. - -If you run into problems where the AUR is slow, try to enable mirror repositories by editing `sudo vim /etc/pacman.d/mirrorlist` and uncomment a couple of lines starting with `# Server = ...`. - -**If the installation crashes** - just run the suggested command but with the `OMARCHY_ARM` flag set like this `OMARCHY_ARM=true bash ~/.local/share/omarchy/install.sh` until it finishes. - - -# Uninstall - -Uninstall is super easy, big recommend to this guy - -https://youtu.be/nMnWTq2H-N0?si=7RsKKRSC5n9-aboF diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 4781a4bd0ee..072eafcb63a 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -1,5 +1,12 @@ #!/bin/bash +# Prerequisites for installing Omarchy on a m-series macbook +# +# 1. Follow these instructions: https://asahi-alarm.org/ +# 2. choose the minimal installation. +# 3. Set up wifi and install wget +# 4. Run the omarchy install command + # Asahi Linux ARM setup script for Omarchy # This script automates the post-Asahi installation steps for MacBook M-series From 43ee89b8d8c431dacccec2cc4dba8ada9be2dc0f Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 23 Aug 2025 08:53:37 +0000 Subject: [PATCH 27/52] add comment on use of correct shaders for aarch64 --- install/config/config.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/install/config/config.sh b/install/config/config.sh index 9fceca1733f..152bd2451eb 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -19,6 +19,8 @@ fi if [ -n "$OMARCHY_ARM" ]; then mkdir -p ~/.local/state/omarchy touch ~/.local/state/omarchy/arm.mode + + # make use of the right shaders for walker to work correctly echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >>~/.config/hypr/envs.conf fi From f69b50a7deac0e51dc3f3cfcacda3781d74d1272 Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 23 Aug 2025 08:59:15 +0000 Subject: [PATCH 28/52] move arm check from guard --- install.sh | 1 + install/preflight/arm.sh | 8 ++++++++ install/preflight/guard.sh | 9 --------- 3 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 install/preflight/arm.sh diff --git a/install.sh b/install.sh index 72139a9bb0f..613109d84af 100755 --- a/install.sh +++ b/install.sh @@ -56,6 +56,7 @@ source $OMARCHY_INSTALL/log/before-install.sh source $OMARCHY_INSTALL/preflight/chroot.sh source $OMARCHY_INSTALL/preflight/mirrorlist.sh source $OMARCHY_INSTALL/preflight/gum.sh +source $OMARCHY_INSTALL/preflight/arm.sh # Check if we're on Asahi Linux and need initial setup if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then diff --git a/install/preflight/arm.sh b/install/preflight/arm.sh new file mode 100644 index 00000000000..0a112bec68d --- /dev/null +++ b/install/preflight/arm.sh @@ -0,0 +1,8 @@ +# Auto-detect ARM architecture and set flags +arch=$(uname -m) +if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then + export OMARCHY_ARM=true + export OMARCHY_BARE=true + echo "Auto-detected ARM architecture: $arch" + echo "Setting OMARCHY_ARM=true and OMARCHY_BARE=true" +fi diff --git a/install/preflight/guard.sh b/install/preflight/guard.sh index b9208ee1616..6f7eceac473 100644 --- a/install/preflight/guard.sh +++ b/install/preflight/guard.sh @@ -17,15 +17,6 @@ done # Must not be running as root [ "$EUID" -eq 0 ] && abort "Running as user (not root)" -# Auto-detect ARM architecture and set flags -arch=$(uname -m) -if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then - export OMARCHY_ARM=true - export OMARCHY_BARE=true - echo "Auto-detected ARM architecture: $arch" - echo "Setting OMARCHY_ARM=true and OMARCHY_BARE=true" -fi - # Must not have Gnome or KDE already install pacman -Qe gnome-shell &>/dev/null && abort "Fresh + Vanilla Arch" pacman -Qe plasma-desktop &>/dev/null && abort "Fresh + Vanilla Arch" From 40c562c32b5580014ac6f01a66269ac4c454e71f Mon Sep 17 00:00:00 2001 From: "Nils Barr Zeilon@gmail.com" Date: Sat, 23 Aug 2025 09:08:06 +0000 Subject: [PATCH 29/52] move check to asahi preflight --- install.sh | 15 +---- install/preflight/asahi.sh | 131 +++++++++++++++++++------------------ 2 files changed, 70 insertions(+), 76 deletions(-) diff --git a/install.sh b/install.sh index 613109d84af..4356324ba50 100755 --- a/install.sh +++ b/install.sh @@ -57,20 +57,7 @@ source $OMARCHY_INSTALL/preflight/chroot.sh source $OMARCHY_INSTALL/preflight/mirrorlist.sh source $OMARCHY_INSTALL/preflight/gum.sh source $OMARCHY_INSTALL/preflight/arm.sh - -# Check if we're on Asahi Linux and need initial setup -if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then - # Check for Asahi indicators - if grep -qi "asahi" /etc/os-release 2>/dev/null || - uname -r | grep -qi "asahi" || - pacman -Q linux-asahi &>/dev/null || - pacman -Q asahi-scripts &>/dev/null; then - echo "Detected Asahi Linux - running initial setup..." - # using exec instead of source to continue the installation after switching user - exec $OMARCHY_INSTALL/preflight/asahi.sh - fi -fi - +source $OMARCHY_INSTALL/preflight/asahi.sh source $OMARCHY_INSTALL/preflight/guard.sh source $OMARCHY_INSTALL/preflight/aur.sh source $OMARCHY_INSTALL/preflight/tte.sh diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 072eafcb63a..8749e52e7c9 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -10,77 +10,84 @@ # Asahi Linux ARM setup script for Omarchy # This script automates the post-Asahi installation steps for MacBook M-series -set -e +# Check if we're on Asahi Linux and need initial setup +if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then + # Check for Asahi indicators + if grep -qi "asahi" /etc/os-release 2>/dev/null || + uname -r | grep -qi "asahi" || + pacman -Q linux-asahi &>/dev/null || + pacman -Q asahi-scripts &>/dev/null; then + echo "Detected Asahi Linux - running initial setup..." + # using exec instead of source to continue the installation after switching user + exec $OMARCHY_INSTALL/preflight/asahi.sh -# Check if running as root (required for initial setup) -if [ "$EUID" -ne 0 ]; then - echo "This script must be run as root for initial setup" - echo "Please run: sudo bash $0" - exit 1 -fi - -echo "==================================" -echo "Omarchy Asahi Linux Setup" -echo "==================================" -echo + set -e -# Check if user already exists -echo "Setting up user account..." -existing_users=$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd) - -if [ -n "$existing_users" ]; then - echo "Found existing users: $existing_users" - use_existing=$(gum confirm "Use an existing user account?" && echo "yes" || echo "no") + # Check if running as root (required for initial setup) + if [ "$EUID" -ne 0 ]; then + echo "This script must be run as root for initial setup" + echo "Please run: sudo bash $0" + exit 1 + fi - if [ "$use_existing" = "yes" ]; then - username=$(echo "$existing_users" | gum choose --header "Select user:") - else - username=$(gum input --placeholder "Enter new username") - fi -else - username=$(gum input --placeholder "Enter username for Omarchy") -fi + echo "==================================" + echo "Omarchy Asahi Linux Setup" + echo "==================================" + echo -# Create user if doesn't exist -if ! id "$username" &>/dev/null; then - echo "Creating user $username..." - useradd -m "$username" + # Check if user already exists + echo "Setting up user account..." + existing_users=$(awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwd) - echo "Setting password for $username..." - while true; do - password=$(gum input --password --placeholder "Enter password for $username") - password_confirm=$(gum input --password --placeholder "Confirm password") + if [ -n "$existing_users" ]; then + echo "Found existing users: $existing_users" + use_existing=$(gum confirm "Use an existing user account?" && echo "yes" || echo "no") - if [ "$password" = "$password_confirm" ]; then - echo "$username:$password" | chpasswd - break + if [ "$use_existing" = "yes" ]; then + username=$(echo "$existing_users" | gum choose --header "Select user:") + else + username=$(gum input --placeholder "Enter new username") + fi else - echo "Passwords don't match. Please try again." + username=$(gum input --placeholder "Enter username for Omarchy") fi - done - # Add to wheel group for sudo access - usermod -aG wheel "$username" - echo "Added $username to wheel group" -fi + # Create user if doesn't exist + if ! id "$username" &>/dev/null; then + echo "Creating user $username..." + useradd -m "$username" -# Enable sudo for wheel group -echo "Configuring sudo access..." -if grep -q "^# %wheel ALL=(ALL:ALL) ALL" /etc/sudoers; then - sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers - echo "Enabled sudo for wheel group" -elif ! grep -q "^%wheel ALL=(ALL:ALL) ALL" /etc/sudoers; then - echo "%wheel ALL=(ALL:ALL) ALL" >>/etc/sudoers - echo "Added wheel group to sudoers" -fi + echo "Setting password for $username..." + while true; do + password=$(gum input --password --placeholder "Enter password for $username") + password_confirm=$(gum input --password --placeholder "Confirm password") -echo -echo "==================================" -echo "Asahi setup complete!" -echo "==================================" -echo -echo "Switching to user $username..." -echo + if [ "$password" = "$password_confirm" ]; then + echo "$username:$password" | chpasswd + break + else + echo "Passwords don't match. Please try again." + fi + done -# Switch to the created/selected user -exec su - "$username" -c "$OMARCHY_INSTALL/../install.sh" + # Add to wheel group for sudo access + usermod -aG wheel "$username" + echo "Added $username to wheel group" + fi + + # Enable sudo for wheel group + echo "Configuring sudo access..." + if grep -q "^# %wheel ALL=(ALL:ALL) ALL" /etc/sudoers; then + sed -i 's/^# %wheel ALL=(ALL:ALL) ALL/%wheel ALL=(ALL:ALL) ALL/' /etc/sudoers + echo "Enabled sudo for wheel group" + elif ! grep -q "^%wheel ALL=(ALL:ALL) ALL" /etc/sudoers; then + echo "%wheel ALL=(ALL:ALL) ALL" >>/etc/sudoers + echo "Added wheel group to sudoers" + fi + + # Switch to the created/selected user + # Requires complete rerun since we change user + exec su - "$username" -c "$OMARCHY_INSTALL/../install.sh" + + fi +fi From 724b210937036f8e5797bed30fc0898987a567ad Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 14:29:49 +0200 Subject: [PATCH 30/52] set the repo to boot correctly --- boot.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boot.sh b/boot.sh index 9005487a597..564787f9b22 100755 --- a/boot.sh +++ b/boot.sh @@ -17,7 +17,7 @@ echo -e "\n$ansi_art\n" sudo pacman -Sy --noconfirm --needed git # Use custom repo if specified, otherwise default to basecamp/omarchy -OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}" +OMARCHY_REPO="${OMARCHY_REPO:-nilszeilon/armarchy}" echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git" rm -rf ~/.local/share/omarchy/ From 55b0ada86f4ec5a52c12a57116f79f09ee5aa8e0 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 14:54:04 +0200 Subject: [PATCH 31/52] symlink the aarch64 conf file --- default/hypr/aarch64_apps.conf | 10 ++++++++++ install/config/config.sh | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 default/hypr/aarch64_apps.conf diff --git a/default/hypr/aarch64_apps.conf b/default/hypr/aarch64_apps.conf new file mode 100644 index 00000000000..56e9bd79d19 --- /dev/null +++ b/default/hypr/aarch64_apps.conf @@ -0,0 +1,10 @@ +# App-specific tweaks +source = ~/.local/share/omarchy/default/hypr/apps/pip.conf +source = ~/.local/share/omarchy/default/hypr/apps/chromium.conf +source = ~/.local/share/omarchy/default/hypr/apps/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/walker.conf +source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf +source = ~/.local/share/omarchy/default/hypr/apps/zoom.conf diff --git a/install/config/config.sh b/install/config/config.sh index 152bd2451eb..c685e9f4c42 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -22,6 +22,9 @@ if [ -n "$OMARCHY_ARM" ]; then # make use of the right shaders for walker to work correctly echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >>~/.config/hypr/envs.conf + + # ARM/aarch64 architecture + ln -sf ~/.local/share/omarchy/default/hypr/aarch64_apps.conf ~/.local/share/omarchy/default/hypr/apps.conf fi # Setup GPG configuration with multiple keyservers for better reliability From deba58479e82234e4a5bbe88ece7ad357a204065 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 15:11:28 +0200 Subject: [PATCH 32/52] remove noconfirm, fails install --- install/desktop/audio.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/desktop/audio.sh b/install/desktop/audio.sh index 82bc753fa51..dee5ad960ef 100644 --- a/install/desktop/audio.sh +++ b/install/desktop/audio.sh @@ -2,5 +2,5 @@ # on macbook m-series we need pipewire if [ -n "$OMARCHY_ARM" ]; then - yay -S --needed --noconfirm pipewire-alsa pipewire-pulse wireplumber pipewire-jack asahi-audio + yay -S --needed pipewire-alsa pipewire-pulse wireplumber pipewire-jack asahi-audio fi From 9f1829b2682aa0365aae7bd3090e8df1e114b71f Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 15:45:15 +0200 Subject: [PATCH 33/52] add bash --- install/preflight/asahi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 8749e52e7c9..093f2955a89 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -19,7 +19,7 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then pacman -Q asahi-scripts &>/dev/null; then echo "Detected Asahi Linux - running initial setup..." # using exec instead of source to continue the installation after switching user - exec $OMARCHY_INSTALL/preflight/asahi.sh + exec bash $OMARCHY_INSTALL/preflight/asahi.sh set -e From 4d2210a0ab942c3d721e99f69aba0ac70a340c5a Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 15:48:03 +0200 Subject: [PATCH 34/52] pass env --- install/preflight/asahi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 093f2955a89..2d5fb59f7a8 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -19,7 +19,7 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then pacman -Q asahi-scripts &>/dev/null; then echo "Detected Asahi Linux - running initial setup..." # using exec instead of source to continue the installation after switching user - exec bash $OMARCHY_INSTALL/preflight/asahi.sh + exec env OMARCHY_INSTALL="$OMARCHY_INSTALL" bash $OMARCHY_INSTALL/preflight/asahi.sh set -e From f9e213acf2476b74a1ee9f812c3c4934ef6d1119 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 15:50:01 +0200 Subject: [PATCH 35/52] remove inf loop --- install/preflight/asahi.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 2d5fb59f7a8..90650977434 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -19,7 +19,6 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then pacman -Q asahi-scripts &>/dev/null; then echo "Detected Asahi Linux - running initial setup..." # using exec instead of source to continue the installation after switching user - exec env OMARCHY_INSTALL="$OMARCHY_INSTALL" bash $OMARCHY_INSTALL/preflight/asahi.sh set -e @@ -87,6 +86,8 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then # Switch to the created/selected user # Requires complete rerun since we change user + # + # exec su - "$username" -c "$OMARCHY_INSTALL/../install.sh" fi From f3881ef1c801c6d3d75fdc90e287417ec5c73380 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 15:56:36 +0200 Subject: [PATCH 36/52] append the mirror instead of replacing --- install/preflight/mirrorlist.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/install/preflight/mirrorlist.sh b/install/preflight/mirrorlist.sh index cb2cd4c96a6..b61331a7e61 100644 --- a/install/preflight/mirrorlist.sh +++ b/install/preflight/mirrorlist.sh @@ -1,6 +1,11 @@ -# Set mirror to single geo setup -echo 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' | - sudo tee /etc/pacman.d/mirrorlist >/dev/null +# Add geo mirror to the top of mirrorlist (preserve existing mirrors) +# This way ARM/Asahi systems keep their working mirrors as fallback +if ! grep -q "geo.mirror.pkgbuild.com" /etc/pacman.d/mirrorlist 2>/dev/null; then + echo 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' | + sudo tee /tmp/mirrorlist.tmp >/dev/null + sudo cat /etc/pacman.d/mirrorlist >> /tmp/mirrorlist.tmp + sudo mv /tmp/mirrorlist.tmp /etc/pacman.d/mirrorlist +fi # Update indexes if online if ping -c5 omarchy.org &>/dev/null; then From 6cbe4d91ebd87affaa60a3552b44f2aa6c64ef78 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 17:44:45 +0200 Subject: [PATCH 37/52] pass full path --- install/preflight/asahi.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 90650977434..1c425ffd414 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -87,8 +87,14 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then # Switch to the created/selected user # Requires complete rerun since we change user # - # - exec su - "$username" -c "$OMARCHY_INSTALL/../install.sh" + # Pass the full path directly since environment variables won't be preserved + # This script is at /path/to/omarchy/install/preflight/asahi.sh + # We need /path/to/omarchy/install.sh + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + INSTALL_PATH="$(cd "$SCRIPT_DIR/../.." && pwd)/install.sh" + echo "Switching to user $username to continue installation..." + echo "Running: $INSTALL_PATH" + exec su - "$username" -c "bash '$INSTALL_PATH'" fi fi From 2f64f5790c4e93cd633276459598d8d5ddabedf1 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 17:50:56 +0200 Subject: [PATCH 38/52] run install script again --- install/preflight/asahi.sh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 1c425ffd414..5bfef848cbd 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -87,14 +87,15 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then # Switch to the created/selected user # Requires complete rerun since we change user # - # Pass the full path directly since environment variables won't be preserved - # This script is at /path/to/omarchy/install/preflight/asahi.sh - # We need /path/to/omarchy/install.sh - SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - INSTALL_PATH="$(cd "$SCRIPT_DIR/../.." && pwd)/install.sh" + # The new user needs to download Omarchy in their own home directory echo "Switching to user $username to continue installation..." - echo "Running: $INSTALL_PATH" - exec su - "$username" -c "bash '$INSTALL_PATH'" + echo "The user will need to download and run Omarchy installer..." + + # Create a command that will download and run Omarchy as the new user + INSTALL_CMD='wget -qO- https://omarchy.org/install | bash' + + echo "Running Omarchy installer as $username..." + exec su - "$username" -c "$INSTALL_CMD" fi fi From 9102af3c3dcd5c9aa6b6ecf1a98b502f72ec75b9 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 17:54:42 +0200 Subject: [PATCH 39/52] reboot from new user --- install/preflight/asahi.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 5bfef848cbd..e6ab9bb5c7b 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -90,10 +90,10 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then # The new user needs to download Omarchy in their own home directory echo "Switching to user $username to continue installation..." echo "The user will need to download and run Omarchy installer..." - + # Create a command that will download and run Omarchy as the new user - INSTALL_CMD='wget -qO- https://omarchy.org/install | bash' - + INSTALL_CMD='wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/refs/master/boot.sh | bash' + echo "Running Omarchy installer as $username..." exec su - "$username" -c "$INSTALL_CMD" From 5ff21b8a25a9c7806325b286aa4aad5563720307 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 17:58:38 +0200 Subject: [PATCH 40/52] instructions to continue --- install/preflight/asahi.sh | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index e6ab9bb5c7b..8e3500fcfaa 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -84,18 +84,28 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then echo "Added wheel group to sudoers" fi - # Switch to the created/selected user - # Requires complete rerun since we change user - # - # The new user needs to download Omarchy in their own home directory - echo "Switching to user $username to continue installation..." - echo "The user will need to download and run Omarchy installer..." - - # Create a command that will download and run Omarchy as the new user - INSTALL_CMD='wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/refs/master/boot.sh | bash' - - echo "Running Omarchy installer as $username..." - exec su - "$username" -c "$INSTALL_CMD" + # User setup complete - provide instructions for continuing + echo + echo "==================================" + echo "Initial setup complete!" + echo "==================================" + echo + echo "Please follow these steps to continue:" + echo + echo "1. Exit this root session (type 'exit' or press Ctrl+D)" + echo "2. Log in as user: $username" + echo "3. Run the following command to continue installation:" + echo + echo " wget -qO- https://omarchy.org/install | bash" + echo + echo "Or for testing with the GitHub repo:" + echo " wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/master/boot.sh | bash" + echo + echo "==================================" + echo + + # Exit the script here so it doesn't continue with the rest of install.sh + exit 0 fi fi From 2e6f0628f35e7804caa6a4e8f0076523b1ace0b2 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 18:22:29 +0200 Subject: [PATCH 41/52] install audio first to mitigate conflict --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 4356324ba50..38040db081e 100755 --- a/install.sh +++ b/install.sh @@ -88,12 +88,12 @@ source $OMARCHY_INSTALL/development/docker.sh source $OMARCHY_INSTALL/development/firewall.sh # Desktop +source $OMARCHY_INSTALL/desktop/audio.sh source $OMARCHY_INSTALL/desktop/desktop.sh source $OMARCHY_INSTALL/desktop/hyprlandia.sh source $OMARCHY_INSTALL/desktop/theme.sh source $OMARCHY_INSTALL/desktop/bluetooth.sh source $OMARCHY_INSTALL/desktop/asdcontrol.sh -source $OMARCHY_INSTALL/desktop/audio.sh source $OMARCHY_INSTALL/desktop/fonts.sh source $OMARCHY_INSTALL/desktop/printer.sh From c2d08d3bd195a990e4da7e8e68b6a7fc8687d2cf Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 18:57:30 +0200 Subject: [PATCH 42/52] add noconfirm on pipewire things --- install/desktop/audio.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/desktop/audio.sh b/install/desktop/audio.sh index dee5ad960ef..82bc753fa51 100644 --- a/install/desktop/audio.sh +++ b/install/desktop/audio.sh @@ -2,5 +2,5 @@ # on macbook m-series we need pipewire if [ -n "$OMARCHY_ARM" ]; then - yay -S --needed pipewire-alsa pipewire-pulse wireplumber pipewire-jack asahi-audio + yay -S --needed --noconfirm pipewire-alsa pipewire-pulse wireplumber pipewire-jack asahi-audio fi From bd832953b8a4291659d50dd9e3abf2a59838e0c5 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 21:57:10 +0000 Subject: [PATCH 43/52] complete automation of asahi setup of omarchy --- boot.sh | 2 +- install/config/config.sh | 2 +- install/preflight/asahi.sh | 25 ++++++++++++------------- install/preflight/mirrorlist.sh | 5 ++--- 4 files changed, 16 insertions(+), 18 deletions(-) diff --git a/boot.sh b/boot.sh index 564787f9b22..9005487a597 100755 --- a/boot.sh +++ b/boot.sh @@ -17,7 +17,7 @@ echo -e "\n$ansi_art\n" sudo pacman -Sy --noconfirm --needed git # Use custom repo if specified, otherwise default to basecamp/omarchy -OMARCHY_REPO="${OMARCHY_REPO:-nilszeilon/armarchy}" +OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}" echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git" rm -rf ~/.local/share/omarchy/ diff --git a/install/config/config.sh b/install/config/config.sh index c685e9f4c42..c571eef2900 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -23,7 +23,7 @@ if [ -n "$OMARCHY_ARM" ]; then # make use of the right shaders for walker to work correctly echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >>~/.config/hypr/envs.conf - # ARM/aarch64 architecture + # ARM/aarch64 architecture needs its own config file for excluded apps ln -sf ~/.local/share/omarchy/default/hypr/aarch64_apps.conf ~/.local/share/omarchy/default/hypr/apps.conf fi diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 8e3500fcfaa..b17ddd6805f 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -2,23 +2,23 @@ # Prerequisites for installing Omarchy on a m-series macbook # -# 1. Follow these instructions: https://asahi-alarm.org/ -# 2. choose the minimal installation. -# 3. Set up wifi and install wget -# 4. Run the omarchy install command +# 1. Follow these instructions: https://asahi-alarm.org/ and choose the minimal installation (1) +# 2. Set up wifi and install wget +# 3. Run the omarchy install command # Asahi Linux ARM setup script for Omarchy # This script automates the post-Asahi installation steps for MacBook M-series # Check if we're on Asahi Linux and need initial setup if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then + # Check for Asahi indicators if grep -qi "asahi" /etc/os-release 2>/dev/null || uname -r | grep -qi "asahi" || pacman -Q linux-asahi &>/dev/null || pacman -Q asahi-scripts &>/dev/null; then + echo "Detected Asahi Linux - running initial setup..." - # using exec instead of source to continue the installation after switching user set -e @@ -84,7 +84,7 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then echo "Added wheel group to sudoers" fi - # User setup complete - provide instructions for continuing + # User setup complete - provide instructions to continue the Omarchy installation echo echo "==================================" echo "Initial setup complete!" @@ -92,18 +92,17 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then echo echo "Please follow these steps to continue:" echo - echo "1. Exit this root session (type 'exit' or press Ctrl+D)" - echo "2. Log in as user: $username" - echo "3. Run the following command to continue installation:" + echo "1. Log in as user: $username" echo - echo " wget -qO- https://omarchy.org/install | bash" + echo " su - $username" echo - echo "Or for testing with the GitHub repo:" - echo " wget -qO- https://raw.githubusercontent.com/nilszeilon/armarchy/master/boot.sh | bash" + echo "2. Run the following command to continue installation:" + echo + echo " wget -qO- https://omarchy.org/install | bash" echo echo "==================================" echo - + # Exit the script here so it doesn't continue with the rest of install.sh exit 0 diff --git a/install/preflight/mirrorlist.sh b/install/preflight/mirrorlist.sh index b61331a7e61..a90dab7347e 100644 --- a/install/preflight/mirrorlist.sh +++ b/install/preflight/mirrorlist.sh @@ -1,9 +1,8 @@ -# Add geo mirror to the top of mirrorlist (preserve existing mirrors) -# This way ARM/Asahi systems keep their working mirrors as fallback +# Add geo mirror to the top of mirrorlist if ! grep -q "geo.mirror.pkgbuild.com" /etc/pacman.d/mirrorlist 2>/dev/null; then echo 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' | sudo tee /tmp/mirrorlist.tmp >/dev/null - sudo cat /etc/pacman.d/mirrorlist >> /tmp/mirrorlist.tmp + sudo cat /etc/pacman.d/mirrorlist >>/tmp/mirrorlist.tmp sudo mv /tmp/mirrorlist.tmp /etc/pacman.d/mirrorlist fi From 7b08c504fc462e40632368dc23521bc2cddd9bc5 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 22:38:23 +0000 Subject: [PATCH 44/52] override conf files with symlink --- default/hypr/aarch64_envs.conf | 27 +++++++++++++++++++++++++++ install/preflight/arm.sh | 7 +++---- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 default/hypr/aarch64_envs.conf diff --git a/default/hypr/aarch64_envs.conf b/default/hypr/aarch64_envs.conf new file mode 100644 index 00000000000..073712da4ef --- /dev/null +++ b/default/hypr/aarch64_envs.conf @@ -0,0 +1,27 @@ +# Cursor size +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +# Force all apps to use Wayland +env = GDK_BACKEND,wayland,x11,* +env = QT_QPA_PLATFORM,wayland;xcb +env = QT_STYLE_OVERRIDE,kvantum +env = SDL_VIDEODRIVER,wayland +env = MOZ_ENABLE_WAYLAND,1 +env = ELECTRON_OZONE_PLATFORM_HINT,wayland +env = OZONE_PLATFORM,wayland + +# without setting the shaders here walker will not work on aarch64 +env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json + +xwayland { + force_zero_scaling = true +} + +# Use XCompose file +env = XCOMPOSEFILE,~/.XCompose + +# Don't show update on first launch +ecosystem { + no_update_news = true +} diff --git a/install/preflight/arm.sh b/install/preflight/arm.sh index 40fee55d09f..00a16e0ccb4 100644 --- a/install/preflight/arm.sh +++ b/install/preflight/arm.sh @@ -1,3 +1,4 @@ +#!/bin/bash # Auto-detect ARM architecture and set flags arch=$(uname -m) if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then @@ -9,9 +10,7 @@ if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then mkdir -p ~/.local/state/omarchy touch ~/.local/state/omarchy/arm.mode - # make use of the right shaders for walker to work correctly - echo "env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" >>~/.config/hypr/envs.conf - - # ARM/aarch64 architecture needs its own config file for excluded apps + # ARM/aarch64 architecture override conf files + ln -sf ~/.local/share/omarchy/default/hypr/aarch64_envs.conf ~/.local/share/omarchy/default/hypr/envs.conf ln -sf ~/.local/share/omarchy/default/hypr/aarch64_apps.conf ~/.local/share/omarchy/default/hypr/apps.conf fi From 53665ee216cd4d202cc6551867a30b874dec3d2c Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 24 Aug 2025 22:56:45 +0000 Subject: [PATCH 45/52] move asahi package to asahi pre-flight --- install/desktop/audio.sh | 3 +-- install/preflight/asahi.sh | 5 +++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install/desktop/audio.sh b/install/desktop/audio.sh index 82bc753fa51..034d33a287b 100644 --- a/install/desktop/audio.sh +++ b/install/desktop/audio.sh @@ -1,6 +1,5 @@ #!/bin/bash -# on macbook m-series we need pipewire if [ -n "$OMARCHY_ARM" ]; then - yay -S --needed --noconfirm pipewire-alsa pipewire-pulse wireplumber pipewire-jack asahi-audio + yay -S --needed --noconfirm pipewire-alsa pipewire-pulse wireplumber pipewire-jack fi diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index c4d51a96ac2..579ac1299ac 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -12,8 +12,6 @@ # Check if we're on Asahi Linux and need initial setup if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then - yay -S --needed --noconfirm gum - # Check for Asahi indicators if grep -qi "asahi" /etc/os-release 2>/dev/null || uname -r | grep -qi "asahi" || @@ -22,6 +20,9 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then echo "Detected Asahi Linux - running initial setup..." + # install gum and asahi specific packages + yay -S --needed --noconfirm gum asahi-audio + set -e # Check if running as root (required for initial setup) From 1dc79fa9371be684319f75756842bbb681a9ab8c Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Mon, 25 Aug 2025 18:40:10 +0200 Subject: [PATCH 46/52] use pacman here --- install/preflight/asahi.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 579ac1299ac..5d3d5a8639e 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -21,7 +21,7 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then echo "Detected Asahi Linux - running initial setup..." # install gum and asahi specific packages - yay -S --needed --noconfirm gum asahi-audio + pacman -S --needed --noconfirm gum asahi-audio set -e From ad2ddb80122d90d7f93af932d5741c933cea1118 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Fri, 29 Aug 2025 09:45:41 +0200 Subject: [PATCH 47/52] remove mirror list and unused arm state --- install/preflight/arm.sh | 8 ++------ install/preflight/mirrorlist.sh | 13 ------------- migrations/1755244361.sh | 5 ----- 3 files changed, 2 insertions(+), 24 deletions(-) delete mode 100644 install/preflight/mirrorlist.sh delete mode 100644 migrations/1755244361.sh diff --git a/install/preflight/arm.sh b/install/preflight/arm.sh index 00a16e0ccb4..6eadd75a346 100644 --- a/install/preflight/arm.sh +++ b/install/preflight/arm.sh @@ -1,14 +1,10 @@ #!/bin/bash -# Auto-detect ARM architecture and set flags +# Auto-detect ARM architecture and set flag arch=$(uname -m) if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then export OMARCHY_ARM=true - export OMARCHY_BARE=true echo "Auto-detected ARM architecture: $arch" - echo "Setting OMARCHY_ARM=true and OMARCHY_BARE=true" - - mkdir -p ~/.local/state/omarchy - touch ~/.local/state/omarchy/arm.mode + echo "Setting OMARCHY_ARM=true" # ARM/aarch64 architecture override conf files ln -sf ~/.local/share/omarchy/default/hypr/aarch64_envs.conf ~/.local/share/omarchy/default/hypr/envs.conf diff --git a/install/preflight/mirrorlist.sh b/install/preflight/mirrorlist.sh deleted file mode 100644 index 584ce5b57af..00000000000 --- a/install/preflight/mirrorlist.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# Add geo mirror to the top of mirrorlist -if ! grep -q "geo.mirror.pkgbuild.com" /etc/pacman.d/mirrorlist 2>/dev/null; then - echo 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch' | - sudo tee /tmp/mirrorlist.tmp >/dev/null - sudo cat /etc/pacman.d/mirrorlist >>/tmp/mirrorlist.tmp - sudo mv /tmp/mirrorlist.tmp /etc/pacman.d/mirrorlist -fi - -# Update indexes if online -if ping -c5 omarchy.org &>/dev/null; then - sudo pacman -Syy -fi diff --git a/migrations/1755244361.sh b/migrations/1755244361.sh deleted file mode 100644 index f65bc683413..00000000000 --- a/migrations/1755244361.sh +++ /dev/null @@ -1,5 +0,0 @@ -# Add state for arm achitecture -if [[ $(uname -m) == "arm"* || $(uname -m) == "aarch64" || -n "$OMARCHY_ARM" ]]; then - mkdir -p ~/.local/state/omarchy - touch ~/.local/state/omarchy/arm.mode -fi From b65570c4a8e4bd5ef9f04be594c663667dfe0712 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Fri, 29 Aug 2025 09:48:41 +0200 Subject: [PATCH 48/52] remove separate audio install file --- install/config/hardware/audio.sh | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 install/config/hardware/audio.sh diff --git a/install/config/hardware/audio.sh b/install/config/hardware/audio.sh deleted file mode 100644 index 034d33a287b..00000000000 --- a/install/config/hardware/audio.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -if [ -n "$OMARCHY_ARM" ]; then - yay -S --needed --noconfirm pipewire-alsa pipewire-pulse wireplumber pipewire-jack -fi From e4b2082815d92ca68f836b0b4529fdf2c1ab8fe3 Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Fri, 29 Aug 2025 09:51:51 +0200 Subject: [PATCH 49/52] add pipewire packages --- install/packages.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install/packages.sh b/install/packages.sh index 7800d2382d8..b64c342eccb 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -73,6 +73,9 @@ sudo pacman -S --noconfirm --needed \ omarchy-chromium \ pamixer \ pinta \ + pipewire-alsa \ + pipewire-jack \ + pipewire-pulse \ playerctl \ plocate \ plymouth \ From 5d345d5581bebfb8791ac8e85683e742af9ac32e Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Fri, 29 Aug 2025 09:52:44 +0200 Subject: [PATCH 50/52] remove ref to audio.sh --- install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sh b/install.sh index 6cd563fe497..f236083c4dc 100755 --- a/install.sh +++ b/install.sh @@ -40,7 +40,6 @@ source $OMARCHY_INSTALL/config/xcompose.sh source $OMARCHY_INSTALL/config/mise-ruby.sh source $OMARCHY_INSTALL/config/docker.sh source $OMARCHY_INSTALL/config/mimetypes.sh -source $OMARCHY_INSTALL/config/hardware/audio.sh source $OMARCHY_INSTALL/config/hardware/network.sh source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh source $OMARCHY_INSTALL/config/hardware/bluetooth.sh From c2eed6fcf0c24fdf2d362ca25edc4087e6c2c7dc Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 31 Aug 2025 21:36:12 +0200 Subject: [PATCH 51/52] remove previous logic of overriding files, add patch hypr envs for aarch64 --- default/hypr/aarch64_apps.conf | 10 ---------- default/hypr/aarch64_envs.conf | 27 --------------------------- install/preflight/arm.sh | 17 ++++++++++++++--- 3 files changed, 14 insertions(+), 40 deletions(-) delete mode 100644 default/hypr/aarch64_apps.conf delete mode 100644 default/hypr/aarch64_envs.conf diff --git a/default/hypr/aarch64_apps.conf b/default/hypr/aarch64_apps.conf deleted file mode 100644 index 56e9bd79d19..00000000000 --- a/default/hypr/aarch64_apps.conf +++ /dev/null @@ -1,10 +0,0 @@ -# App-specific tweaks -source = ~/.local/share/omarchy/default/hypr/apps/pip.conf -source = ~/.local/share/omarchy/default/hypr/apps/chromium.conf -source = ~/.local/share/omarchy/default/hypr/apps/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/walker.conf -source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf -source = ~/.local/share/omarchy/default/hypr/apps/zoom.conf diff --git a/default/hypr/aarch64_envs.conf b/default/hypr/aarch64_envs.conf deleted file mode 100644 index 073712da4ef..00000000000 --- a/default/hypr/aarch64_envs.conf +++ /dev/null @@ -1,27 +0,0 @@ -# Cursor size -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_SIZE,24 - -# Force all apps to use Wayland -env = GDK_BACKEND,wayland,x11,* -env = QT_QPA_PLATFORM,wayland;xcb -env = QT_STYLE_OVERRIDE,kvantum -env = SDL_VIDEODRIVER,wayland -env = MOZ_ENABLE_WAYLAND,1 -env = ELECTRON_OZONE_PLATFORM_HINT,wayland -env = OZONE_PLATFORM,wayland - -# without setting the shaders here walker will not work on aarch64 -env = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json - -xwayland { - force_zero_scaling = true -} - -# Use XCompose file -env = XCOMPOSEFILE,~/.XCompose - -# Don't show update on first launch -ecosystem { - no_update_news = true -} diff --git a/install/preflight/arm.sh b/install/preflight/arm.sh index 6eadd75a346..930867da574 100644 --- a/install/preflight/arm.sh +++ b/install/preflight/arm.sh @@ -5,8 +5,19 @@ if [[ "$arch" == "aarch64" || "$arch" == "arm64" ]]; then export OMARCHY_ARM=true echo "Auto-detected ARM architecture: $arch" echo "Setting OMARCHY_ARM=true" + + # Patch envs.conf for aarch64 - add Vulkan ICD for walker + envs_file="$HOME/.local/share/omarchy/default/hypr/envs.conf" + if [[ -f "$envs_file" ]]; then + # Check if the Vulkan ICD line already exists + if ! grep -q "VK_ICD_FILENAMES" "$envs_file"; then + echo "Patching envs.conf for aarch64..." + # Find the last env line and add the Vulkan ICD after it + last_env_line=$(grep -n "^env = " "$envs_file" | tail -1 | cut -d: -f1) + if [[ -n "$last_env_line" ]]; then + sed -i "${last_env_line}a\\\\n# Required for walker on aarch64\\nenv = VK_ICD_FILENAMES,/usr/share/vulkan/icd.d/lvp_icd.aarch64.json" "$envs_file" + fi + fi + fi - # ARM/aarch64 architecture override conf files - ln -sf ~/.local/share/omarchy/default/hypr/aarch64_envs.conf ~/.local/share/omarchy/default/hypr/envs.conf - ln -sf ~/.local/share/omarchy/default/hypr/aarch64_apps.conf ~/.local/share/omarchy/default/hypr/apps.conf fi From 51b69eb3cd89ef007b1a01ce9981e0a81123252e Mon Sep 17 00:00:00 2001 From: Nils Barr Zeilon Date: Sun, 31 Aug 2025 21:42:22 +0200 Subject: [PATCH 52/52] add pipewire packages to asahi --- install/packages.sh | 3 --- install/preflight/asahi.sh | 7 ++++++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/install/packages.sh b/install/packages.sh index 7b52e709f79..f50233aefc3 100644 --- a/install/packages.sh +++ b/install/packages.sh @@ -73,9 +73,6 @@ sudo pacman -S --noconfirm --needed \ omarchy-chromium \ pamixer \ pinta \ - pipewire-alsa \ - pipewire-jack \ - pipewire-pulse \ playerctl \ plocate \ plymouth \ diff --git a/install/preflight/asahi.sh b/install/preflight/asahi.sh index 5d3d5a8639e..9320f8182f4 100644 --- a/install/preflight/asahi.sh +++ b/install/preflight/asahi.sh @@ -21,7 +21,12 @@ if [ "$EUID" -eq 0 ] && [ "$(uname -m)" = "aarch64" ]; then echo "Detected Asahi Linux - running initial setup..." # install gum and asahi specific packages - pacman -S --needed --noconfirm gum asahi-audio + pacman -S --needed --noconfirm \ + gum \ + asahi-audio \ + pipewire-alsa \ + pipewire-jack \ + pipewire-pulse set -e