From bee9c892fb31b3d690afa3579df31e19938d0523 Mon Sep 17 00:00:00 2001 From: Diogo Ferreira Date: Mon, 12 Jan 2026 16:53:12 +0000 Subject: [PATCH 01/10] kernel: Keep modules functional after a kernel upgrade When a kernel upgrade is taken in, we replace current modules with new ones and they are not available until we reboot. This can cause the system to appear broken, especially when plugging new hardwaare like a pen drive or odd input device. This patch adds kernel-modules-hook which keeps the current modules even if the package is replaced. A one-off clean-up service runs on startup to remove older modules. --- install/config/all.sh | 1 + install/config/kernel-modules-hook.sh | 1 + install/omarchy-base.packages | 1 + migrations/1768236764.sh | 4 ++++ 4 files changed, 7 insertions(+) create mode 100644 install/config/kernel-modules-hook.sh create mode 100644 migrations/1768236764.sh diff --git a/install/config/all.sh b/install/config/all.sh index 7ba72f71..b08f57e1 100644 --- a/install/config/all.sh +++ b/install/config/all.sh @@ -19,6 +19,7 @@ run_logged $OMARCHY_INSTALL/config/fast-shutdown.sh run_logged $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh run_logged $OMARCHY_INSTALL/config/input-group.sh run_logged $OMARCHY_INSTALL/config/omarchy-ai-skill.sh +run_logged $OMARCHY_INSTALL/config/kernel-modules-hook.sh run_logged $OMARCHY_INSTALL/config/hardware/network.sh run_logged $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh run_logged $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh diff --git a/install/config/kernel-modules-hook.sh b/install/config/kernel-modules-hook.sh new file mode 100644 index 00000000..29d0ec4d --- /dev/null +++ b/install/config/kernel-modules-hook.sh @@ -0,0 +1 @@ +chrootable_systemctl_enable linux-modules-cleanup.service diff --git a/install/omarchy-base.packages b/install/omarchy-base.packages index d91ed9ad..e76d0185 100644 --- a/install/omarchy-base.packages +++ b/install/omarchy-base.packages @@ -61,6 +61,7 @@ inxi iwd jq kdenlive +kernel-modules-hook kvantum-qt5 lazydocker lazygit diff --git a/migrations/1768236764.sh b/migrations/1768236764.sh new file mode 100644 index 00000000..cfe6ba56 --- /dev/null +++ b/migrations/1768236764.sh @@ -0,0 +1,4 @@ +echo "Install kernel-modules-hook" + +omarchy-pkg-add kernel-modules-hook +sudo systemctl enable --now linux-modules-cleanup.service From 2915572bcaf70d7350d6d4375cc72f8845dc1462 Mon Sep 17 00:00:00 2001 From: Paul Repin Date: Sat, 17 Jan 2026 16:23:27 +0300 Subject: [PATCH 02/10] Sets partition type to msftdata --- default/bash/functions | 1 + 1 file changed, 1 insertion(+) diff --git a/default/bash/functions b/default/bash/functions index 1839e242..a5f2ee41 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -31,6 +31,7 @@ format-drive() { sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress sudo parted -s "$1" mklabel gpt sudo parted -s "$1" mkpart primary 1MiB 100% + sudo parted -s "$1" set 1 msftdata on partition="$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")" sudo partprobe "$1" || true From d8660fd2c80688f6c4be5a3d24fb60e7ad51c726 Mon Sep 17 00:00:00 2001 From: Jamer Rebolledo Date: Sun, 1 Feb 2026 23:59:00 -0500 Subject: [PATCH 03/10] feat: add NordVPN to installable services with optional GUI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add omarchy-install-nordvpn script that: - Installs nordvpn-bin from AUR - Enables nordvpnd daemon - Adds user to nordvpn group - Optionally installs NordVPN GUI with TUI entry - Detects existing GUI installation to avoid conflicts - Add NordVPN option to Install > Service menu with 󱇱 icon --- bin/omarchy-install-nordvpn | 31 +++++++++++++++++++++++++++++++ bin/omarchy-menu | 3 ++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100755 bin/omarchy-install-nordvpn diff --git a/bin/omarchy-install-nordvpn b/bin/omarchy-install-nordvpn new file mode 100755 index 00000000..3d2819d5 --- /dev/null +++ b/bin/omarchy-install-nordvpn @@ -0,0 +1,31 @@ +#!/bin/bash + +# Install the NordVPN service with optional GUI. + +echo "Installing NordVPN..." +yay -S --noconfirm nordvpn-bin + +# Enable and start the NordVPN daemon +echo "Enabling NordVPN daemon..." +sudo systemctl enable --now nordvpnd + +# Add user to nordvpn group for unprivileged access +echo "Adding user to nordvpn group..." +sudo usermod -aG nordvpn $USER + +# Ask if user wants to install the GUI (if not already installed) +if ! pacman -Qi nordvpn-gui &>/dev/null && ! pacman -Qi nordvpn-gui-bin &>/dev/null; then + if gum confirm "Would you like to install the NordVPN GUI?"; then + echo "Installing NordVPN GUI..." + yay -S --noconfirm nordvpn-gui + omarchy-tui-install "NordVPN" "nordvpn-gui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nordvpn.png + fi +else + echo "NordVPN GUI is already installed." + # Ensure TUI entry exists + omarchy-tui-install "NordVPN" "nordvpn-gui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nordvpn.png +fi + +echo "" +echo "NordVPN installed! Please log out and back in for group changes to take effect." +echo "Then run 'nordvpn login' to authenticate with your NordVPN account." diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 96e62b01..5b921b79 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -295,10 +295,11 @@ show_install_menu() { } show_install_service_menu() { - case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden\n Chromium Account") in + case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden\n󱇱 NordVPN\n Chromium Account") in *Dropbox*) present_terminal omarchy-install-dropbox ;; *Tailscale*) present_terminal omarchy-install-tailscale ;; *Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;; + *NordVPN*) present_terminal omarchy-install-nordvpn ;; *Chromium*) present_terminal omarchy-install-chromium-google-account ;; *) show_install_menu ;; esac From 864df215bba877ff80d159cc6fe5f2929cea93bc Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 21:58:00 +0100 Subject: [PATCH 04/10] Improve description --- migrations/1768236764.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1768236764.sh b/migrations/1768236764.sh index cfe6ba56..38e02bd6 100644 --- a/migrations/1768236764.sh +++ b/migrations/1768236764.sh @@ -1,4 +1,4 @@ -echo "Install kernel-modules-hook" +echo "Prevent kernel upgrades from making current modules unavailable" omarchy-pkg-add kernel-modules-hook sudo systemctl enable --now linux-modules-cleanup.service From 91470cb31f13df485aaf76d5a00f5d4948562ea1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 22:08:49 +0100 Subject: [PATCH 05/10] Switch from push-to-talk to toggle Works around the fact that push to talk is just inconsistent regarding the precise timing of letting go of buttons. Closes #4178 --- default/hypr/bindings/utilities.conf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index f9128e08..1c88e25a 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -58,8 +58,7 @@ bindd = SUPER CTRL, W, Wifi controls, exec, omarchy-launch-wifi bindd = SUPER CTRL, T, Activity, exec, omarchy-launch-tui btop # Dictation -bindd = SUPER CTRL, X, Start dictation, exec, voxtype record start -binddr = SUPER CTRL, X, Stop dictation, exec, voxtype record stop +bindd = SUPER CTRL, X, Toggle dictation, exec, voxtype record toggle # Zoom bindd = SUPER CTRL, Z, Zoom in, exec, hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1') From 9f561e0123b0a2266ca35442fefa5a9290d1e898 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 22:19:20 +0100 Subject: [PATCH 06/10] Ensure /home is indexed on Btrfs Closes #4292 Co-authored-by: @jorge-campo --- install/config/localdb.sh | 3 ++- migrations/1771622309 | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 migrations/1771622309 diff --git a/install/config/localdb.sh b/install/config/localdb.sh index 73721488..027128fb 100644 --- a/install/config/localdb.sh +++ b/install/config/localdb.sh @@ -1,2 +1,3 @@ -# Update localdb so that locate will find everything installed +# Ensure /home is indexed on Btrfs (subvolumes look like bind mounts) +sudo sed -i 's/PRUNE_BIND_MOUNTS.*=.*/PRUNE_BIND_MOUNTS = "no"/' /etc/updatedb.conf sudo updatedb diff --git a/migrations/1771622309 b/migrations/1771622309 new file mode 100644 index 00000000..7573323a --- /dev/null +++ b/migrations/1771622309 @@ -0,0 +1,3 @@ +echo "Fix locate not indexing home on Btrfs" +sudo sed -i 's/PRUNE_BIND_MOUNTS.*=.*/PRUNE_BIND_MOUNTS = "no"/' /etc/updatedb.conf +sudo updatedb From c3f36281850ba9c388fbf76521bca8d31ced8360 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 22:21:05 +0100 Subject: [PATCH 07/10] Slim down and use existing services --- bin/omarchy-install-nordvpn | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/bin/omarchy-install-nordvpn b/bin/omarchy-install-nordvpn index 3d2819d5..426e850b 100755 --- a/bin/omarchy-install-nordvpn +++ b/bin/omarchy-install-nordvpn @@ -3,28 +3,17 @@ # Install the NordVPN service with optional GUI. echo "Installing NordVPN..." -yay -S --noconfirm nordvpn-bin +omarchy-pkg-aur-add nordvpn-bin -# Enable and start the NordVPN daemon echo "Enabling NordVPN daemon..." sudo systemctl enable --now nordvpnd -# Add user to nordvpn group for unprivileged access echo "Adding user to nordvpn group..." -sudo usermod -aG nordvpn $USER +sudo usermod -aG nordvpn "$USER" -# Ask if user wants to install the GUI (if not already installed) -if ! pacman -Qi nordvpn-gui &>/dev/null && ! pacman -Qi nordvpn-gui-bin &>/dev/null; then - if gum confirm "Would you like to install the NordVPN GUI?"; then - echo "Installing NordVPN GUI..." - yay -S --noconfirm nordvpn-gui - omarchy-tui-install "NordVPN" "nordvpn-gui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nordvpn.png - fi -else - echo "NordVPN GUI is already installed." - # Ensure TUI entry exists - omarchy-tui-install "NordVPN" "nordvpn-gui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nordvpn.png -fi +echo "Installing NordVPN GUI..." +omarchy-pkg-aur-add nordvpn-gui +omarchy-tui-install "NordVPN" "nordvpn-gui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nordvpn.png echo "" echo "NordVPN installed! Please log out and back in for group changes to take effect." From 9a7bf34fcc6076d1ea0a482d6a757a9af383837c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 22:22:02 +0100 Subject: [PATCH 08/10] Order --- bin/omarchy-menu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 5b921b79..505bc800 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -295,11 +295,11 @@ show_install_menu() { } show_install_service_menu() { - case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden\n󱇱 NordVPN\n Chromium Account") in + case $(menu "Install" " Dropbox\n Tailscale\n󱇱 NordVPN\n󰟵 Bitwarden\n Chromium Account") in *Dropbox*) present_terminal omarchy-install-dropbox ;; *Tailscale*) present_terminal omarchy-install-tailscale ;; - *Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;; *NordVPN*) present_terminal omarchy-install-nordvpn ;; + *Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;; *Chromium*) present_terminal omarchy-install-chromium-google-account ;; *) show_install_menu ;; esac From 79fb802e34e817f9a0b820f3db1f1db93c4a577e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 22:25:58 +0100 Subject: [PATCH 09/10] The nordvpn gui is just too heavy with too many dependencies --- bin/omarchy-install-nordvpn | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bin/omarchy-install-nordvpn b/bin/omarchy-install-nordvpn index 426e850b..b4c373e4 100755 --- a/bin/omarchy-install-nordvpn +++ b/bin/omarchy-install-nordvpn @@ -11,10 +11,6 @@ sudo systemctl enable --now nordvpnd echo "Adding user to nordvpn group..." sudo usermod -aG nordvpn "$USER" -echo "Installing NordVPN GUI..." -omarchy-pkg-aur-add nordvpn-gui -omarchy-tui-install "NordVPN" "nordvpn-gui" float https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/nordvpn.png - echo "" echo "NordVPN installed! Please log out and back in for group changes to take effect." echo "Then run 'nordvpn login' to authenticate with your NordVPN account." From 7d4cc63d20464d1ab3c43c86c89aa0f7e34572e5 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 20 Feb 2026 22:28:14 +0100 Subject: [PATCH 10/10] Clean up and offer reboot --- bin/omarchy-install-nordvpn | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bin/omarchy-install-nordvpn b/bin/omarchy-install-nordvpn index b4c373e4..5811af74 100755 --- a/bin/omarchy-install-nordvpn +++ b/bin/omarchy-install-nordvpn @@ -11,6 +11,7 @@ sudo systemctl enable --now nordvpnd echo "Adding user to nordvpn group..." sudo usermod -aG nordvpn "$USER" -echo "" -echo "NordVPN installed! Please log out and back in for group changes to take effect." -echo "Then run 'nordvpn login' to authenticate with your NordVPN account." +echo -e "\nNordVPN installed! After reboot, run 'nordvpn login' to authenticate." + +echo +gum confirm "Reboot now to make NordVPN usable?" && sudo reboot now