Make setup ISO-only

Remove legacy online installer entrypoints, collapse migrations for 4.0, and move setup responsibilities into target-side system, hardware, and user commands.
This commit is contained in:
Ryan Hughes
2026-06-04 18:37:32 -04:00
parent b45e8464ef
commit 75cb4f7195
440 changed files with 790 additions and 4922 deletions
-28
View File
@@ -1,28 +0,0 @@
echo "Add UWSM env"
export OMARCHY_PATH="$HOME/.local/share/omarchy"
export PATH="$OMARCHY_PATH/bin:$PATH"
mkdir -p "$HOME/.config/uwsm/"
cat <<EOF | tee "$HOME/.config/uwsm/env"
export OMARCHY_PATH=$HOME/.local/share/omarchy
export PATH=$OMARCHY_PATH/bin/:$PATH
EOF
# Ensure we have the latest repos and are ready to pull
omarchy-update-keyring
omarchy-refresh-pacman
sudo systemctl restart systemd-timesyncd
sudo pacman -Sy # Normally not advisable, but we'll do a full -Syu before finishing
mkdir -p ~/.local/state/omarchy/migrations
touch ~/.local/state/omarchy/migrations/1751134560.sh
# Remove old AUR packages to prevent a super lengthy build on old Omarchy installs
omarchy-pkg-drop zoom qt5-remoteobjects wf-recorder wl-screenrec
# Get rid of old AUR packages
bash $OMARCHY_PATH/migrations/1756060611.sh
touch ~/.local/state/omarchy/migrations/1756060611.sh
bash omarchy-update-perform
-5
View File
@@ -1,5 +0,0 @@
echo "Ensure all indexes and packages are up to date"
omarchy-update-keyring
omarchy-refresh-pacman
sudo pacman -Syu --noconfirm
-3
View File
@@ -1,3 +0,0 @@
echo "Remove obsolete gcc14 AUR package that takes eons to update"
omarchy-pkg-drop gcc14
-3
View File
@@ -1,3 +0,0 @@
echo "Ensure the Arch keyring is up to date"
omarchy-update-keyring
-8
View File
@@ -1,8 +0,0 @@
# Turn on bluetooth service so blueberry works out the box
echo "Let's turn on Bluetooth service so the controls work"
if systemctl is-enabled --quiet bluetooth.service && systemctl is-active --quiet bluetooth.service; then
# Bluetooth is already enabled, nothing to change
:
else
sudo systemctl enable --now bluetooth.service
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Add missing installation of bat (used by the ff alias)"
omarchy-pkg-add bat
-3
View File
@@ -1,3 +0,0 @@
echo "Installing missing fd terminal tool for finding files"
omarchy-pkg-add fd
-22
View File
@@ -1,22 +0,0 @@
echo "Switching from vlc to mpv for the default video player"
if omarchy-cmd-missing mpv; then
omarchy-pkg-drop vlc
rm ~/.local/share/applications/vlc.desktop
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
xdg-mime default mpv.desktop video/x-flv
xdg-mime default mpv.desktop video/x-ms-wmv
xdg-mime default mpv.desktop video/mpeg
xdg-mime default mpv.desktop video/ogg
xdg-mime default mpv.desktop video/webm
xdg-mime default mpv.desktop video/quicktime
xdg-mime default mpv.desktop video/3gpp
xdg-mime default mpv.desktop video/3gpp2
xdg-mime default mpv.desktop video/x-ms-asf
xdg-mime default mpv.desktop video/x-ogm+ogg
xdg-mime default mpv.desktop video/x-theora+ogg
xdg-mime default mpv.desktop application/ogg
fi
-5
View File
@@ -1,5 +0,0 @@
echo "Ensure Docker config is set"
if [[ ! -f /etc/docker/daemon.json ]]; then
sudo mkdir -p /etc/docker
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json
fi
-4
View File
@@ -1,4 +0,0 @@
echo "Add LocalSend as new default application"
omarchy-pkg-drop localsend-bin
omarchy-pkg-add localsend
-3
View File
@@ -1,3 +0,0 @@
echo "Install ffmpegthumbnailer for video thumbnails in the file manager"
omarchy-pkg-add ffmpegthumbnailer
-3
View File
@@ -1,3 +0,0 @@
echo "Install bash-completion"
omarchy-pkg-add bash-completion
-3
View File
@@ -1,3 +0,0 @@
echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)"
source $OMARCHY_PATH/install/config/hardware/fix-fkeys.sh
-3
View File
@@ -1,3 +0,0 @@
echo "Adding gnome-keyring to make 1password work with 2FA codes"
omarchy-pkg-add gnome-keyring
-4
View File
@@ -1,4 +0,0 @@
echo "Install Plymouth splash screen"
omarchy-pkg-add uwsm plymouth
source "$OMARCHY_PATH/install/login/plymouth.sh"
-9
View File
@@ -1,9 +0,0 @@
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
systemctl --user disable hyprpolkitagent
sudo pacman -Rns --noconfirm hyprpolkitagent
setsid /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
fi
-5
View File
@@ -1,5 +0,0 @@
echo "Update chromium.desktop to ensure we are always using wayland"
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
-19
View File
@@ -1,19 +0,0 @@
echo "Update to use UWSM and seamless login"
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
if [[ -f $HOME/.bash_profile ]]; then
# Remove the specific line
sed -i '/^\[\[ -z \$DISPLAY && \$(tty) == \/dev\/tty1 \]\] && exec Hyprland$/d' "$HOME/.bash_profile"
echo "Cleaned up .bash_profile"
fi
if [[ -f $HOME/.config/environment.d/fcitx.conf ]]; then
echo "Removing GTK_IM_MODULE from fcitx config for Wayland..."
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
fi
source $OMARCHY_PATH/install/login/plymouth.sh
fi
-7
View File
@@ -1,7 +0,0 @@
echo "Set a default fontconfig"
if [[ ! -f $HOME/.config/fontconfig/fonts.conf ]]; then
mkdir -p ~/.config/fontconfig
cp ~/.local/share/omarchy/config/fontconfig/fonts.conf ~/.config/fontconfig/
fc-cache -fv
fi
-9
View File
@@ -1,9 +0,0 @@
echo "Setting up GPG configuration with multiple keyservers for better reliability"
if [[ ! -f /etc/gnupg/dirmngr.conf ]]; then
sudo mkdir -p /etc/gnupg
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true
fi
-4
View File
@@ -1,4 +0,0 @@
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
-5
View File
@@ -1,5 +0,0 @@
echo "Add new matte black theme"
if [[ ! -L $HOME/.config/omarchy/themes/matte-black ]]; then
ln -snf ~/.local/share/omarchy/themes/matte-black ~/.config/omarchy/themes/
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility"
omarchy-pkg-add docker-buildx
-14
View File
@@ -1,14 +0,0 @@
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
update-desktop-database ~/.local/share/applications/
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
fi
if [[ ! -L $HOME/.config/omarchy/themes/rose-pine ]]; then
ln -snf ~/.local/share/omarchy/themes/rose-pine ~/.config/omarchy/themes/
fi
-18
View File
@@ -1,18 +0,0 @@
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'
[Unit]
DefaultDependencies=no
EOF
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d/
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
[Unit]
After=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl mask plymouth-quit-wait.service
fi
-5
View File
@@ -1,5 +0,0 @@
echo "Add Catppuccin Latte light theme"
if [[ ! -L $HOME/.config/omarchy/themes/catppuccin-latte ]]; then
ln -snf ~/.local/share/omarchy/themes/catppuccin-latte ~/.config/omarchy/themes/
fi
-6
View File
@@ -1,6 +0,0 @@
echo "Remove old PulseAudio volume control GUI"
if omarchy-pkg-present pavucontrol; then
omarchy-pkg-drop pavucontrol
omarchy-refresh-applications
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Remove needless fcitx5-configtool package"
omarchy-pkg-drop fcitx5-configtool
-3
View File
@@ -1,3 +0,0 @@
echo "Install satty for the new screenshot flow"
omarchy-pkg-add satty
-5
View File
@@ -1,5 +0,0 @@
echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)"
if omarchy-cmd-missing tzupdate; then
bash "$OMARCHY_PATH/install/config/timezones.sh"
fi
-5
View File
@@ -1,5 +0,0 @@
echo "Add the new ristretto theme as an option"
if [[ ! -L ~/.config/omarchy/themes/ristretto ]]; then
ln -nfs ~/.local/share/omarchy/themes/ristretto ~/.config/omarchy/themes/
fi
-12
View File
@@ -1,12 +0,0 @@
echo "Migrate from manually downloaded fonts to font packages"
if ! pacman -Q ttf-cascadia-mono-nerd &>/dev/null; then
sudo pacman -S --noconfirm ttf-cascadia-mono-nerd
rm -rf ~/.local/share/fonts/Caskaydia*
fc-cache
fi
if ! pacman -Q ttf-ia-writer &>/dev/null; then
sudo pacman -S --noconfirm ttf-ia-writer
rm -rf ~/.local/share/fonts/iAWriterMonoS*
fc-cache
fi
-9
View File
@@ -1,9 +0,0 @@
echo "Add icon theme coloring"
if ! pacman -Q yaru-icon-theme &>/dev/null; then
sudo pacman -S --noconfirm yaru-icon-theme
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
fi
fi
-6
View File
@@ -1,6 +0,0 @@
echo "Add hyprsunset blue light filter"
if ! command -v hyprsunset &>/dev/null; then
sudo pacman -S --noconfirm --needed hyprsunset
fi
omarchy-refresh-hyprsunset
-17
View File
@@ -1,17 +0,0 @@
echo "Enable auto-discovery of network printers"
if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then
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
echo "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf
sudo systemctl enable --now avahi-daemon.service
fi
if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
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
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Add support for accessing Android phone data via file manager"
omarchy-pkg-add gvfs-mtp
-3
View File
@@ -1,3 +0,0 @@
echo "Remove old Omarchy TUI app now that we have the Omarchy Menu"
rm -f ~/.local/share/applications/omarchy.desktop
-3
View File
@@ -1,3 +0,0 @@
echo "Add xmlstarlet needed for updating fonts via Omarchy menu"
omarchy-pkg-add xmlstarlet
-3
View File
@@ -1,3 +0,0 @@
echo "Fix multicast dns config for printers"
echo -e "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf
-7
View File
@@ -1,7 +0,0 @@
echo "Make new Osaka Jade theme available as new default"
if [[ ! -L ~/.config/omarchy/themes/osaka-jade ]]; then
rm -rf ~/.config/omarchy/themes/osaka-jade
git -C ~/.local/share/omarchy checkout -f themes/osaka-jade
ln -nfs ~/.local/share/omarchy/themes/osaka-jade ~/.config/omarchy/themes/osaka-jade
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Tune MTU probing for more reliable SSH"
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf
-5
View File
@@ -1,5 +0,0 @@
echo "Disable systemd-networkd-wait-online"
sudo rm -rf /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf
sudo systemctl disable systemd-networkd-wait-online.service
sudo systemctl mask systemd-networkd-wait-online.service
-27
View File
@@ -1,27 +0,0 @@
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'
auth sufficient pam_fprintd.so
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
# If fido2 is in sudo, it won't be in polkit either way
if grep -q pam_u2f.so /etc/pam.d/sudo && [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_u2f.so' /etc/pam.d/polkit-1; then
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/polkit-1
elif grep -q pam_u2f.so /etc/pam.d/sudo && [[ ! -f /etc/pam.d/polkit-1 ]]; then
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
-23
View File
@@ -1,23 +0,0 @@
echo "Configure Docker to use the host's DNS resolver"
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"}}'
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
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
-3
View File
@@ -1,3 +0,0 @@
echo "Increase sudo attempts limit to 10"
source $OMARCHY_PATH/install/config/increase-sudo-tries.sh
-31
View File
@@ -1,31 +0,0 @@
echo "Reset DNS configuration to DHCP (remove forced Cloudflare DNS)"
# Reset DNS to use DHCP by default instead of forcing Cloudflare
# This preserves local development environments (.local domains, etc.)
# Users can still opt-in to Cloudflare DNS using: omarchy-dns Cloudflare
if [[ -f /etc/systemd/resolved.conf ]]; then
# Backup current config with timestamp
backup_timestamp=$(date +"%Y%m%d%H%M%S")
sudo cp /etc/systemd/resolved.conf "/etc/systemd/resolved.conf.bak.${backup_timestamp}"
# Remove explicit DNS entries to use DHCP
sudo sed -i '/^DNS=/d' /etc/systemd/resolved.conf
sudo sed -i '/^FallbackDNS=/d' /etc/systemd/resolved.conf
# Add empty DNS entries to ensure DHCP is used
echo "DNS=" | sudo tee -a /etc/systemd/resolved.conf >/dev/null
echo "FallbackDNS=" | sudo tee -a /etc/systemd/resolved.conf >/dev/null
# Remove any forced DNS config from systemd-networkd
if [[ -f /etc/systemd/network/99-omarchy-dns.network ]]; then
sudo rm -f /etc/systemd/network/99-omarchy-dns.network
sudo systemctl restart systemd-networkd
fi
# Restart systemd-resolved to apply changes
sudo systemctl restart systemd-resolved
echo "DNS configuration reset to use DHCP (router DNS)"
echo "To use Cloudflare DNS, run: omarchy-dns Cloudflare"
fi
-9
View File
@@ -1,9 +0,0 @@
echo "Ensure fcitx5 does not overwrite xkb layout"
FCITX5_CONF_DIR="$HOME/.config/fcitx5/conf"
FCITX5_XCB_CONF="$FCITX5_CONF_DIR/xcb.conf"
if [[ ! -f $FCITX5_XCB_CONF ]]; then
mkdir -p "$FCITX5_CONF_DIR"
cp "$OMARCHY_PATH/config/fcitx5/conf/xcb.conf" "$FCITX5_XCB_CONF"
fi
-4
View File
@@ -1,4 +0,0 @@
echo "Change behaviour of XF86PowerOff button to show omarchy system menu insead of shutting down immediately"
source $OMARCHY_PATH/install/config/hardware/ignore-power-button.sh
setsid systemd-inhibit --what=handle-power-key --why="Temporary disable power button before restart" sleep infinity &
-6
View File
@@ -1,6 +0,0 @@
echo "Add minimal starship prompt to terminal"
if omarchy-cmd-missing starship; then
omarchy-pkg-add starship
cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Ensure TTE and dependencies are installed"
omarchy-pkg-add python-poetry-core python-terminaltexteffects
-3
View File
@@ -1,3 +0,0 @@
echo "Add potentially missing dependency for power profile controls"
omarchy-pkg-add python-gobject
-3
View File
@@ -1,3 +0,0 @@
echo "Disable USB autosuspend"
bash "$OMARCHY_PATH/install/config/hardware/usb-autosuspend.sh"
-14
View File
@@ -1,14 +0,0 @@
#!/bin/bash
echo "Migrating to use omarchy-launch-webapp and omarchy-launch-browser"
for desktop_file in ~/.local/share/applications/*.desktop; do
if grep -q 'Exec=chromium --new-window --ozone-platform=wayland --app=' "$desktop_file"; then
url=$(grep '^Exec=' "$desktop_file" | sed -n 's/.*--app="\?\([^"]*\)"\?.*/\1/p')
if [[ -n $url ]]; then
sed -i "s|^Exec=.*|Exec=omarchy-launch-webapp \"$url\"|" "$desktop_file"
fi
fi
done
-3
View File
@@ -1,3 +0,0 @@
echo "Ensure latest uwsm is installed"
sudo pacman -Syu --noconfirm uwsm
-4
View File
@@ -1,4 +0,0 @@
echo "Switch from lazydocker-bin to lazydocker official"
omarchy-pkg-drop lazydocker-bin
omarchy-pkg-add lazydocker
-4
View File
@@ -1,4 +0,0 @@
echo "Copy Omarchy logo to ~/.config/omarchy/branding/screensaver.txt so screensaver can be personalized"
mkdir -p ~/.config/omarchy/branding
cp $OMARCHY_PATH/logo.txt ~/.config/omarchy/branding/screensaver.txt
-6
View File
@@ -1,6 +0,0 @@
echo "Update fastfetch config with new Omarchy logo"
omarchy-refresh-config fastfetch/config.jsonc
mkdir -p ~/.config/omarchy/branding
cp $OMARCHY_PATH/icon.txt ~/.config/omarchy/branding/about.txt
-3
View File
@@ -1,3 +0,0 @@
echo "Use verbose package lists for pacman"
sudo sed -i '/^ILoveCandy$/a VerbosePkgLists' /etc/pacman.conf
-5
View File
@@ -1,5 +0,0 @@
echo "Add new Omarchy Menu icon to Waybar"
mkdir -p ~/.local/share/fonts
cp ~/.local/share/omarchy/config/omarchy.ttf ~/.local/share/fonts/
fc-cache
-19
View File
@@ -1,19 +0,0 @@
echo "Migrate AUR packages to official repos where possible"
reinstall_package_opr() {
if omarchy-pkg-present $1; then
sudo pacman -Rns --noconfirm $1
sudo pacman -S --noconfirm ${2:-$1}
fi
}
omarchy-pkg-drop yay-bin-debug
reinstall_package_opr yay-bin yay
reinstall_package_opr obsidian-bin obsidian
reinstall_package_opr localsend-bin localsend
reinstall_package_opr omarchy-chromium-bin omarchy-chromium
reinstall_package_opr python-terminaltexteffects
reinstall_package_opr tzupdate
reinstall_package_opr typora
reinstall_package_opr ttf-ia-writer
-6
View File
@@ -1,6 +0,0 @@
echo "Replace buggy native Zoom client with webapp"
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
-4
View File
@@ -1,4 +0,0 @@
echo "Remove old About and Activity apps that are in Omarchy Menu or hotkey"
rm -f ~/.local/share/applications/About.desktop
rm -f ~/.local/share/applications/Activity.desktop
-7
View File
@@ -1,7 +0,0 @@
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
-3
View File
@@ -1,3 +0,0 @@
echo "Remove no-longer-needed sudoless package listing updates"
sudo rm -f /etc/sudoers.d/repositories
-4
View File
@@ -1,4 +0,0 @@
echo "Move Omarchy Package Repository after Arch core/extra/multilib and remove AUR"
omarchy-refresh-pacman
sudo pacman -Syu --noconfirm
-7
View File
@@ -1,7 +0,0 @@
echo "Remove any Chaotic-AUR infrastructure packages"
omarchy-pkg-drop chaotic-keyring chaotic-mirrorlist
if sudo pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1; then
sudo pacman-key --delete 3056513887B78AEB
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Use new Omarchy mirror as default"
omarchy-refresh-pacman
-3
View File
@@ -1,3 +0,0 @@
echo "Add back ttf-ia-writer if it was missing"
omarchy-pkg-add ttf-ia-writer
-6
View File
@@ -1,6 +0,0 @@
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
-5
View File
@@ -1,5 +0,0 @@
echo "Remove opacity from alacritty.toml so Hyprland can control fully"
if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
sed -i '/opacity = 0.98/d' ~/.config/alacritty/alacritty.toml
fi
-4
View File
@@ -1,4 +0,0 @@
echo "Replace JetBrains Mono font with the Nerd Font edition"
omarchy-pkg-add ttf-jetbrains-mono-nerd
omarchy-pkg-drop ttf-jetbrains-mono
-3
View File
@@ -1,3 +0,0 @@
echo "Add Samba network drive support to the file manager"
omarchy-pkg-add gvfs-smb
-3
View File
@@ -1,3 +0,0 @@
echo "Ensure qt5-wayland is installed so KeepassXC, Nextcloud, Sqlite Browser, and other apps display correctly"
omarchy-pkg-add qt5-wayland
-3
View File
@@ -1,3 +0,0 @@
echo "Fix audio input on AMD Framework laptops"
source $OMARCHY_PATH/install/config/hardware/framework/fix-f13-amd-audio-input.sh || true
-5
View File
@@ -1,5 +0,0 @@
echo "Fix JetBrains font setting"
if [[ $(omarchy-font-current) == JetBrains* ]]; then
omarchy-font-set "JetBrainsMono Nerd Font"
fi
-11
View File
@@ -1,11 +0,0 @@
echo "Enable UFW systemd service for existing installations"
if omarchy-cmd-present ufw; then
if sudo ufw status | grep -q "Status: active\|22/tcp\|53317"; then
if ! systemctl is-enabled ufw >/dev/null 2>&1; then
sudo systemctl enable ufw --now
echo "UFW systemd service enabled"
fi
fi
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Install Copy URL extension for Chromium"
omarchy-refresh-chromium
-7
View File
@@ -1,7 +0,0 @@
echo "Create managed policy directories for Chromium and Brave for theme switching"
sudo mkdir -p /etc/chromium/policies/managed
sudo chmod a+rw /etc/chromium/policies/managed
sudo mkdir -p /etc/brave/policies/managed
sudo chmod a+rw /etc/brave/policies/managed
-8
View File
@@ -1,8 +0,0 @@
echo "Fix DHCP DNS to allow VPN DNS override"
if [[ -f /etc/systemd/resolved.conf ]]; then
if grep -q "^DNS=$" /etc/systemd/resolved.conf && grep -q "^FallbackDNS=$" /etc/systemd/resolved.conf; then
sudo sed -i '/^DNS=$/d; /^FallbackDNS=$/d' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved
fi
fi
-7
View File
@@ -1,7 +0,0 @@
echo "Enable mDNS resolution for existing Avahi installations"
if systemctl is-enabled avahi-daemon.service >/dev/null 2>&1; then
if ! grep -q "mdns_minimal" /etc/nsswitch.conf; then
sudo sed -i 's/^hosts:.*/hosts: mymachines mdns_minimal [NOTFOUND=return] resolve files myhostname dns/' /etc/nsswitch.conf
fi
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Copy Omarchy default app icons to .local/share/icons"
source $OMARCHY_PATH/install/packaging/icons.sh
-6
View File
@@ -1,6 +0,0 @@
echo "Update Zoom webapp to handle zoommtg:// and zoomus:// protocol links"
if [[ -f ~/.local/share/applications/Zoom.desktop ]]; then
omarchy-webapp-remove Zoom
omarchy-webapp-install Zoom https://app.zoom.us/wc/home Zoom.png "omarchy-webapp-handler-zoom %u" "x-scheme-handler/zoommtg;x-scheme-handler/zoomus"
fi
-4
View File
@@ -1,4 +0,0 @@
echo "6Ghz Wi-Fi + Intel graphics acceleration for existing installations"
bash "$OMARCHY_PATH/install/config/hardware/set-wireless-regdom.sh"
bash "$OMARCHY_PATH/install/config/hardware/intel/video-acceleration.sh"
-9
View File
@@ -1,9 +0,0 @@
echo "Enabling vim keys in btop"
CONFIG_FILE=~/.config/btop/btop.conf
if [[ -f $CONFIG_FILE ]]; then
if grep -q "^vim_keys = " "$CONFIG_FILE"; then
sed -i 's/^vim_keys = False/vim_keys = True/' "$CONFIG_FILE"
fi
fi
-9
View File
@@ -1,9 +0,0 @@
echo "Create ~/Work with ./bin in the path for contained projects"
mise_config="$HOME/Work/.mise.toml"
if [[ -f $mise_config ]]; then
cp $mise_config "$mise_config.bak.$(date +%s)"
fi
source "$OMARCHY_PATH/install/config/mise-work.sh"
-5
View File
@@ -1,5 +0,0 @@
echo "Ensure .config/hypr/looknfeel.lua is available"
if [[ ! -f ~/.config/hypr/looknfeel.lua ]]; then
cp "$OMARCHY_PATH/config/hypr/looknfeel.lua" ~/.config/hypr/looknfeel.lua
fi
-6
View File
@@ -1,6 +0,0 @@
echo "Set \$TERMINAL and \$EDITOR in ~/.config/uwsm/default so entire system can rely on it"
# Set terminal and editor default in uwsm
omarchy-refresh-config uwsm/default
omarchy-refresh-config uwsm/env
omarchy-state set reboot-required
-11
View File
@@ -1,11 +0,0 @@
echo "Copy configs for ghostty + kitty so they're available as alternative terminal options"
if [[ ! -f ~/.config/ghostty/config ]]; then
mkdir -p ~/.config/ghostty
cp -Rpf $OMARCHY_PATH/config/ghostty/config ~/.config/ghostty/config
fi
if [[ ! -f ~/.config/kitty/kitty.conf ]]; then
mkdir -p ~/.config/kitty
cp -Rpf $OMARCHY_PATH/config/kitty/kitty.conf ~/.config/kitty/kitty.conf
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Prevent powerprofilesctl from using Mise python and not working"
bash $OMARCHY_PATH/install/config/fix-powerprofilesctl-shebang.sh
-3
View File
@@ -1,3 +0,0 @@
echo "Remove Ruby build options to force GCC14 now that GCC15 is compatible"
mise settings unset ruby.ruby_build_opts
-21
View File
@@ -1,21 +0,0 @@
echo "Turn off VSCode's own auto-update feature (we rely on pacman)"
# Note: We cannot use `jq` to update settings.json because its JSONC (allows comments),
# which jq doesnt support.
VS_CODE_SETTINGS="$HOME/.config/Code/User/settings.json"
# If VSCode is installed, ensure that the "update.mode" setting is set to "none"
if omarchy-cmd-present code; then
mkdir -p "$(dirname "$VS_CODE_SETTINGS")"
if [[ ! -f $VS_CODE_SETTINGS ]]; then
# If settings.json doesn't exist, create it with just the update.mode setting
printf '{\n "update.mode": "none"\n}\n' > "$VS_CODE_SETTINGS"
elif ! grep -q '"update.mode"' "$VS_CODE_SETTINGS"; then
# Insert "update.mode": "none", immediately after the first "{"
# Use sed's first-match range (0,/{/) to only replace the first "{
sed -i --follow-symlinks -E '0,/\{/{s/\{/{\
"update.mode": "none",/}' "$VS_CODE_SETTINGS"
fi
fi
-16
View File
@@ -1,16 +0,0 @@
echo "Fix Disk Usage and Docker TUIs"
APP_DIR="$HOME/.local/share/applications"
ICON_DIR="$APP_DIR/icons"
# Don't use omarchy-tui-remove to preserve icons
if [[ -f $APP_DIR/Docker.desktop ]]; then
rm "$APP_DIR/Docker.desktop"
omarchy-tui-install "Docker" "lazydocker" tile "$ICON_DIR/Docker.png"
fi
if [[ -f $APP_DIR/"Disk Usage.desktop" ]]; then
rm "$APP_DIR/Disk Usage.desktop"
omarchy-tui-install "Disk Usage" "bash -c 'dust -r; read -n 1 -s'" float "$ICON_DIR/Disk Usage.png"
fi
-13
View File
@@ -1,13 +0,0 @@
echo "Add thunderbolt support to boot image"
omarchy-pkg-add bolt
if [[ ! -f /etc/mkinitcpio.conf.d/thunderbolt_module.conf ]]; then
sudo tee /etc/mkinitcpio.conf.d/thunderbolt_module.conf <<EOF >/dev/null
MODULES+=(thunderbolt)
EOF
fi
if omarchy-cmd-present limine-update; then
sudo limine-update
fi
@@ -1,55 +0,0 @@
#!/bin/bash
set -e
error_exit() {
echo -e "\033[31mERROR: Migration failed! Manual intervention required.\033[0m" >&2
echo -e "\033[31mDO NOT REBOOT - System may be in inconsistent state until the error is fixed.\033[0m" >&2
exit 1
}
trap error_exit ERR
echo "Change display manager to SDDM"
omarchy-pkg-add sddm libsecret gnome-keyring || error_exit
sudo mkdir -p /etc/sddm.conf.d
cat <<EOF | sudo tee /etc/sddm.conf.d/autologin.conf
[Autologin]
User=$USER
Session=hyprland-uwsm
[Theme]
Current=breeze
EOF
sudo systemctl disable omarchy-seamless-login.service
sudo systemctl unmask plymouth-quit-wait.service
sudo systemctl enable getty@tty1.service
sudo systemctl enable sddm.service
sudo systemctl daemon-reload
if systemctl is-enabled omarchy-seamless-login.service >/dev/null 2>&1; then
echo -e "\033[31mError: omarchy-seamless-login.service is still enabled\033[0m" >&2
error_exit
fi
if systemctl is-masked plymouth-quit-wait.service >/dev/null 2>&1; then
echo -e "\033[31mError: plymouth-quit-wait.service is still masked\033[0m" >&2
error_exit
fi
if ! systemctl is-enabled getty@tty1.service >/dev/null 2>&1; then
echo -e "\033[31mError: getty@tty1.service is not enabled\033[0m" >&2
error_exit
fi
if ! systemctl is-enabled sddm.service >/dev/null 2>&1; then
echo -e "\033[31mError: sddm.service is not enabled\033[0m" >&2
error_exit
fi
sudo rm -f /usr/local/bin/seamless-login
sudo rm -f /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf
sudo rm -f /etc/systemd/system/omarchy-seamless-login.service
@@ -1,38 +0,0 @@
echo "Update UKI to custom named entry"
if command -v limine &>/dev/null && [[ -f /etc/default/limine ]]; then
if grep -q "^ENABLE_UKI=yes" /etc/default/limine; then
if ! grep -q "^CUSTOM_UKI_NAME=" /etc/default/limine; then
sudo sed -i '/^ENABLE_UKI=yes/a CUSTOM_UKI_NAME="omarchy"' /etc/default/limine
fi
# Remove the archinstall-created Limine entry
while IFS= read -r bootnum; do
sudo efibootmgr -b "$bootnum" -B >/dev/null 2>&1
done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Arch Linux Limine" | sed 's/^Boot\([0-9]\{4\}\).*/\1/')
sudo limine-update
uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)
if [[ -n $uki_file ]]; then
while IFS= read -r bootnum; do
sudo efibootmgr -b "$bootnum" -B >/dev/null 2>&1
done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Omarchy" | sed 's/^Boot\([0-9]\{4\}\).*/\1/')
# Skip EFI entry creation on Apple hardware
if ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then
sudo efibootmgr --create \
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
--label "Omarchy" \
--loader "\\EFI\\Linux\\$uki_file"
fi
fi
else
echo "Not using UKI. Not making any changes."
fi
else
echo "Boot config is non-standard. Not making any changes."
fi
-5
View File
@@ -1,5 +0,0 @@
echo "Fix Tailscale split DNS compatibility by removing [!UNAVAIL=return] from nsswitch.conf"
if grep -q '\[!UNAVAIL=return\]' /etc/nsswitch.conf; then
sudo sed -i 's/resolve \[!UNAVAIL=return\]/resolve/g' /etc/nsswitch.conf
fi
-3
View File
@@ -1,3 +0,0 @@
echo "Install tesseract OCR and language data files"
omarchy-pkg-add tesseract tesseract-data-eng
-21
View File
@@ -1,21 +0,0 @@
echo "Symlink systemd-resolved to /etc/resolv.conf"
# Backup if /etc/resolv.conf was modified after system birth
system_birth=$(stat -c %W /)
resolvconf_modified=$(stat -c %Y /etc/resolv.conf)
# Run a backup if resolv.conf isn't a symlink and was modified after install
if [[ -s /etc/resolv.conf ]] && [[ ! -L /etc/resolv.conf ]] && [[ $resolvconf_modified > $system_birth ]]; then
# Backup the destination file (with timestamp) to avoid clobbering (Ex: resolv.conf.bak.1753817951)
backup_file="/etc/resolv.conf.bak.$(date +%s)"
# Create backup
sudo cp -f /etc/resolv.conf "$backup_file" 2>/dev/null
# Inform users
echo -e "\e[31mReplaced /etc/resolv.conf with symlink to systemd-resolved. \nSaved backup as ${backup_file}.\e[0m"
echo -e "\e[31mSee https://wiki.archlinux.org/title/Systemd-resolved.\e[0m"
fi
# Write the symlink
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
-5
View File
@@ -1,5 +0,0 @@
echo "Correct path for sudoless asdcontrol for working Apple Display hotkeys"
if [[ $(command -v asdcontrol) == "/usr/bin/asdcontrol" ]]; then
echo "$USER ALL=(ALL) NOPASSWD: /usr/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
fi
-10
View File
@@ -1,10 +0,0 @@
echo "Make shift+insert paste and ctrl+insert copy from clipboard in terminal"
# Add keybindings to Alacritty
sed -i 's/{ key = "F11", action = "ToggleFullscreen" }/{ key = "F11", action = "ToggleFullscreen" },\n{ key = "Insert", mods = "Shift", action = "Paste" },\n{ key = "Insert", mods = "Control", action = "Copy" }/' ~/.config/alacritty/alacritty.toml
# Add keybindings to Ghostty
sed -i '/keybind = f11=toggle_fullscreen/a keybind = shift+insert=paste_from_clipboard\nkeybind = control+insert=copy_to_clipboard' ~/.config/ghostty/config
# Add keybindings to Kitty
sed -i '/map F11 toggle_fullscreen/a map ctrl+insert copy_to_clipboard' ~/.config/kitty/kitty.conf

Some files were not shown because too many files have changed in this diff Show More