Compare commits

..

89 Commits

Author SHA1 Message Date
David Heinemeier Hansson
57a9a1aed0 Merge pull request #1348 from basecamp/dev
Omarchy 2.1.0
2025-08-31 16:09:53 +02:00
David Heinemeier Hansson
4409f4478b We have to bail if the package couldn't be installed 2025-08-31 15:55:23 +02:00
David Heinemeier Hansson
6d832cba42 Reapply "Make fixing the F13 AMD audio input just a thing that happens"
This reverts commit a5814e0bfd.
2025-08-31 15:50:24 +02:00
David Heinemeier Hansson
8610f4f9da Explainer 2025-08-31 15:41:55 +02:00
David Heinemeier Hansson
4bdbb06cfc Extract the reboot segment into its own file 2025-08-31 15:41:32 +02:00
David Heinemeier Hansson
7a9499eb66 Always have the shebang 2025-08-31 15:41:18 +02:00
David Heinemeier Hansson
a5814e0bfd Revert "Make fixing the F13 AMD audio input just a thing that happens"
This reverts commit c6cd49a0aa.
2025-08-31 15:35:43 +02:00
David Heinemeier Hansson
434265cea2 Include multilib but commented out 2025-08-31 15:12:01 +02:00
David Heinemeier Hansson
6a5f98cb8e Slim even more 2025-08-31 15:09:31 +02:00
David Heinemeier Hansson
a4c4b3570c Ship our own pacman.conf 2025-08-31 15:07:36 +02:00
David Heinemeier Hansson
849628b288 Need fontconfig too 2025-08-31 14:57:42 +02:00
David Heinemeier Hansson
3ea45aa995 Convert most of the optional AUR dependencies over to OPR 2025-08-31 14:54:44 +02:00
David Heinemeier Hansson
37d59ca78e Use our own asdcontrol-git package now 2025-08-31 14:46:06 +02:00
David Heinemeier Hansson
c6cd49a0aa Make fixing the F13 AMD audio input just a thing that happens 2025-08-31 14:31:15 +02:00
David Heinemeier Hansson
05d5f07cca Add migration to fix the AMD F13 input audio problem 2025-08-31 14:19:30 +02:00
David Heinemeier Hansson
91c8ad36f2 Add hardware restart menu to unblock wifi/bluetooth/audio if stuck 2025-08-31 14:18:01 +02:00
David Heinemeier Hansson
521de9794a Glenn was right, 3 is better! 2025-08-31 14:02:08 +02:00
David Heinemeier Hansson
e15caaf713 Only do a gum offer if we have gum 2025-08-31 13:58:01 +02:00
David Heinemeier Hansson
219d2d43e7 Gets called too early to rely on the ENV 2025-08-31 13:56:40 +02:00
David Heinemeier Hansson
d68a757b7f Extract actual list to a file that's easier to maintain 2025-08-31 13:53:16 +02:00
David Heinemeier Hansson
8dd7c7a94e Make default ENVs available here and reuse 2025-08-31 13:53:06 +02:00
David Heinemeier Hansson
763cbcbc02 Use one consistent mirror list 2025-08-31 13:49:54 +02:00
David Heinemeier Hansson
db8d814071 Split conditionals 2025-08-31 13:46:54 +02:00
David Heinemeier Hansson
e621e41be2 Only try to update from AUR if there are any AUR packages installed 2025-08-31 13:45:47 +02:00
David Heinemeier Hansson
1099a44c77 Don't need this 2025-08-31 13:35:45 +02:00
David Heinemeier Hansson
3210ec44f5 Fix pkg-add 2025-08-31 13:35:28 +02:00
David Heinemeier Hansson
a44ea9c232 Ensure new mirrorlist is added as early as possible 2025-08-31 13:30:57 +02:00
David Heinemeier Hansson
f643d97211 Make sure we have the latest omarchy-chromium available 2025-08-31 13:27:23 +02:00
David Heinemeier Hansson
cc1f49519e Only fetch the ignored package list once and shout about it if necessary 2025-08-31 13:25:14 +02:00
David Heinemeier Hansson
c0c040f9c0 Just install iwd along with everything else so it is always there 2025-08-31 13:21:00 +02:00
David Heinemeier Hansson
5f94df198f Offer instant retry of the installation on failure 2025-08-31 13:09:45 +02:00
David Heinemeier Hansson
fe20e89e0e Set everything under the chromium guard 2025-08-31 13:08:40 +02:00
David Heinemeier Hansson
80341b296e Sort alphabetically 2025-08-31 12:43:09 +02:00
David Heinemeier Hansson
eeee49e702 QEMU should not be transparent 2025-08-31 12:42:57 +02:00
David Heinemeier Hansson
927abd86ba Be more specific
This is pacman land!
2025-08-31 12:41:33 +02:00
David Heinemeier Hansson
256a27ca8e Apply idle inhibitor just to fullscreen on stream and retroarch for gaming
#1303
2025-08-31 11:19:05 +02:00
Cristian Álvarez Belaustegui
64ec80fb7e Bitwarden installer and rule to avoid sharing it's window contents (#1044)
* Don't share Bitwarden windows content

* Install Bitwarden

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-31 10:51:03 +02:00
David Heinemeier Hansson
24b94fde54 Ensure qt5-wayland has been installed
Closes #596
Co-authored-by: @roelandmoors
2025-08-31 10:49:14 +02:00
David Heinemeier Hansson
3b0752820e Revert "Quick fix for lazyvim bufferline error when using catppuccin (#1084)" (#1346)
This reverts commit b6896bd58f.
2025-08-31 10:34:55 +02:00
Ramtin Javanmardi
b6896bd58f Quick fix for lazyvim bufferline error when using catppuccin (#1084)
* Quick fix for lazyvim bufferline error when using catppuccin

* This is a slightly better fix

* Adding the fix in theme, actually messed up the theme colors

* Adding the migration file

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-31 10:34:09 +02:00
robert stringer
2442f774e4 fix: cleans the output of upower, strips the percentage and decimals, prevents arithmetic syntax error (#1236)
Co-authored-by: xz <xz>
2025-08-31 10:24:54 +02:00
Oleg Luganskiy
0d62a03ae0 feat: add OpenAI Codex to AI installation menu (#1255)
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-31 10:13:25 +02:00
David Heinemeier Hansson
7d2759b807 Don't need extra sleep 2025-08-31 10:11:42 +02:00
Rick
792f7827a6 Handle case when no databases are selected (#1259)
At least two users were asking for support in Discord due to not selecting DBs to install. This aims to prevent confusion in that scenario.
2025-08-31 10:11:23 +02:00
David Heinemeier Hansson
9293e2ed17 Add icons for OS Age and Uptime
Closes #1299
Co-authored-by: @theamit-969
2025-08-31 10:07:37 +02:00
Valberto Enoc
3d49ced97e Change Ollama install from AUR package to official website (#881)
* install ollama from the official website

* installing ollama-cuda if nvidia-smi exists

* add check for rocminfo installation for AMD GPUs

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-31 09:59:28 +02:00
Simon Dawson
35e169e3cc chore: Add Emacs to editor install menu (#1323)
As well as installing the `emacs-wayland` package, we enable and start
the `emacs` systemd service. A GUI Emacs client can then be started
using e.g. `emacsclient -c`.
2025-08-31 09:53:18 +02:00
David Heinemeier Hansson
4ee48dd238 Switch from returns to exit codes 2025-08-31 09:21:02 +02:00
David Heinemeier Hansson
9e5b4fc871 Turn pkg and cmd functions into bins to avoid PATH issues in subshells 2025-08-31 09:18:06 +02:00
robert stringer
94ad5d4d37 fix: symlinks to default icons to prevent text chevron fallbacks (#1114)
* fix: symlinks to default icons to prevent text chevron fallbacks

* consistent symlink syntax

* Needs sudo and had extra quotes

* Add migration

* added gtk-update-icon-cache for symlinked files

* pkill any running Files windows

* Cleanup and ensure successful exit so as not to halt migrations

* Excess CR

---------

Co-authored-by: xz <xz>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: robert stringer <bitmap+github@gmail.com>
2025-08-31 09:08:32 +02:00
Gary Rennie
0a3ce5c393 Allow failed migrations to be skipped (#1124)
* Allow failed migrations to be skipped

Failed migrations can be now be skipped by a prompt. This means that if
a migration is "stuck" then a user can opt to store it in a separate
skipped directory. Skipped migrations will be considered for the
purposes of running the pending migrations, however in future, we can
allow the user to run their skipped migrations with a flag.

To allow the script to continue and prompt for failed migrations, the
`set -e` has been removed. A manual check on the exit code is used
instead.

* Cleanup implementation a bit

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-31 09:03:25 +02:00
David Heinemeier Hansson
9f5975b717 Only configure Docker if it is present on the system 2025-08-31 08:50:32 +02:00
chan
29c2233399 Add gvfs-smb so GNOME Files (Nautilus) can handle smb:// URIs. (#1327)
* add gvfs-smb to packages

gvfs-smb and its dependencies (smbclient, samba, and cifs-utils) afford access to Samba servers in Nautilus/Files.

* Add migration

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-31 08:07:42 +02:00
David Heinemeier Hansson
98db40fd0d This is preventing Android Studio from working correctly
Closes #1300
2025-08-31 07:54:16 +02:00
Glenn Oppegard
a35055e562 Give the screensaver time to breathe (#1184)
Add a three second delay between screensaver effects

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-30 20:53:10 +02:00
David Heinemeier Hansson
3ce7849c89 Group git together 2025-08-30 11:48:32 +02:00
Jarek
59c70fdd46 Fix DNS migration to handle UseDNS=no in network files (#1314)
* Fix DNS migration to handle UseDNS=no in network files

Issue #1246: Migration 1755109182.sh only fixes resolved.conf but doesn't
remove UseDNS=no from network files. When UseDNS=no persists, it blocks
DHCP DNS and forces fallback to Cloudflare after reboot.

Fix: Remove UseDNS=no from all network files, matching omarchy-setup-dns DHCP behavior.

* Add new migration 1756491748.sh for existing users

Fixes DNS issue for users who already ran migration 1755109182.sh.
Removes UseDNS=no from network files to enable DHCP DNS.

* Apply requested changes

- Revert 1755109182.sh to original state
- Consolidate all fixes in new migration 1756491748.sh
- Follow migration style guidelines
2025-08-30 09:41:14 +02:00
David Heinemeier Hansson
effae1e7f2 Include nautilus dialogs as floating windows 2025-08-30 08:51:15 +02:00
David Heinemeier Hansson
a3c5e589f6 Extract pkg cmd abstractions and clean up all migrations (#1291)
* No using custom chromium.desktop any more

* Spacing

* Rely on $OMARCHY_PATH

* Add common pkg and cmd functions for use in migrations and elsewhere

* Simple pkg-adds

* Later migration does it

* Ensure running migrations on older installs have the new pkg/cmds available

* Spacing

* Use new abstractions

* Installed in later migration

* Needless comment

* Use new commands

* Fix package name from 'batt' to 'bat'
2025-08-30 07:41:05 +02:00
Ankur Kotwal
4f6f92b2cc Use ttf-jetbrains-mono-nerd font instead of the non-nerd variant. (#1308)
* Use ttf-jetbrains-mono-nerd font instead of the non-nerd variant.

* Update font installation script for JetBrains Mono

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-30 07:37:25 +02:00
Cosmin Popovici
b388d95d4b Fix comment formatting for key unbinding example (#1245)
`unbind = SUPER, Space` will not work, but `unbind = SUPER, SPACE` will
2025-08-29 21:46:39 +02:00
Jordan King
ed3e1f901b Set hypridle exception for fullscreen apps (#1303) 2025-08-29 21:43:26 +02:00
David Heinemeier Hansson
07c072cf21 Spacing 2025-08-29 21:42:02 +02:00
Alexandre Perreault
3266a18897 fix screensaver exit behavior on multiple monitors (#1249) 2025-08-29 21:38:46 +02:00
David Heinemeier Hansson
94eeba4849 Just tweak Alacritty 2025-08-29 21:24:31 +02:00
David Heinemeier Hansson
d755de4042 Tweak Kanagawa opacity to more closely match the other themes in appearance 2025-08-29 21:22:17 +02:00
David Heinemeier Hansson
ace0fb1cd5 Migrate away the alacritty default override of opacity so Hyprland has full control 2025-08-29 21:19:12 +02:00
David Heinemeier Hansson
2647ea7745 Let Hyprland control the opacity
And reduce it a bit this way
2025-08-29 21:16:38 +02:00
David Heinemeier Hansson
defe63a91c No trailing slash 2025-08-29 19:44:07 +02:00
Charles Ji
4e8afd7ad6 fix: remove extra slash (#1141) 2025-08-29 19:43:07 +02:00
David Heinemeier Hansson
37699e80e4 Bring back ttf-ia-writer now that it is safe 2025-08-28 22:23:38 +02:00
David Heinemeier Hansson
0b276c4f49 Improve readability here too 2025-08-28 22:11:05 +02:00
David Heinemeier Hansson
8350355a20 Easier to read 2025-08-28 22:09:21 +02:00
David Heinemeier Hansson
c5fffc2f1d Use new Omarchy mirror as primary mirror 2025-08-28 22:04:32 +02:00
David Heinemeier Hansson
d9c69b8d02 Silence errors if they are missing 2025-08-28 22:02:13 +02:00
David Heinemeier Hansson
3e29949745 Only remove the key if it exists 2025-08-28 22:00:41 +02:00
David Heinemeier Hansson
bb9fbceca2 Only update AUR packages in the AUR step 2025-08-28 21:59:10 +02:00
David Heinemeier Hansson
615aa64f01 Remove lingering Chaotic-AUR packages 2025-08-28 21:55:52 +02:00
David Heinemeier Hansson
a21ace2ee7 Drop Chaotic-AUR repository now that we have OPR (#1264)
* Drop Chaotic AUR repo

Now that we have the AUR packages we need on the OPR, we don't need this
as a default.

* Fix escape issue and rename so it will run again
2025-08-28 21:50:49 +02:00
David Heinemeier Hansson
f16908d701 Busted 2025-08-28 21:46:14 +02:00
David Heinemeier Hansson
1fd5966bd9 Merge branch 'master' into dev 2025-08-28 21:41:19 +02:00
David Heinemeier Hansson
94006b5bb1 Duplicate 2025-08-28 21:38:59 +02:00
David Heinemeier Hansson
bc94bb2d6c We should not be pinning this 2025-08-28 21:37:50 +02:00
David Heinemeier Hansson
305e799581 Was a consequence of the escaping bug 2025-08-28 21:35:55 +02:00
David Heinemeier Hansson
43ee2cf4e0 Fix escaping bug as hotfix 2025-08-28 21:34:31 +02:00
David Heinemeier Hansson
48e5aa5e91 Include Open Folder from VSCode 2025-08-28 18:47:58 +02:00
David Heinemeier Hansson
c5290ee970 Add Omarchy mirror first 2025-08-28 15:53:56 +02:00
David Heinemeier Hansson
ba4f1f20fc Upgrade the system after the potentially missing omarchy repo has been added 2025-08-28 15:40:45 +02:00
David Heinemeier Hansson
005d286f92 Pull borked package as a hotfix 2025-08-28 15:16:32 +02:00
126 changed files with 417 additions and 343 deletions

View File

@@ -6,7 +6,13 @@ BATTERY_THRESHOLD=10
NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified" NOTIFICATION_FLAG="/run/user/$UID/omarchy_battery_notified"
get_battery_percentage() { get_battery_percentage() {
upower -i $(upower -e | grep 'BAT') | grep -E "percentage" | grep -o '[0-9]\+%' | sed 's/%//' upower -i "$(upower -e | grep 'BAT')" \
| awk -F: '/percentage/ {
gsub(/[%[:space:]]/, "", $2);
val=$2;
printf("%d\n", (val+0.5))
exit
}'
} }
get_battery_state() { get_battery_state() {

9
bin/omarchy-cmd-missing Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
for cmd in "$@"; do
if ! command -v "$cmd" &>/dev/null; then
exit 0
fi
done
exit 1

7
bin/omarchy-cmd-present Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
for cmd in "$@"; do
command -v "$cmd" &>/dev/null || exit 1
done
exit 0

View File

@@ -1,5 +1,13 @@
#!/bin/bash #!/bin/bash
function exit_screensaver {
pkill -x tte 2>/dev/null
pkill -f "alacritty --class Screensaver" 2>/dev/null
exit 0
}
trap exit_screensaver SIGINT SIGTERM SIGHUP SIGQUIT
while true; do while true; do
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1) effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
tte -i ~/.config/omarchy/branding/screensaver.txt \ tte -i ~/.config/omarchy/branding/screensaver.txt \
@@ -7,10 +15,8 @@ while true; do
"$effect" & "$effect" &
while pgrep -x tte >/dev/null; do while pgrep -x tte >/dev/null; do
if read -n 1 -t 0.01; then if read -n 1 -t 3; then
pkill -x tte 2>/dev/null exit_screensaver
pkill -f "alacritty --class Screensaver" 2>/dev/null
exit 0
fi fi
done done
done done

View File

@@ -75,7 +75,7 @@ laravel)
symfony) symfony)
echo -e "Installing PHP and Symfony...\n" echo -e "Installing PHP and Symfony...\n"
install_php install_php
yay -S symfony-cli --noconfirm omarchy-pkg-add symfony-cli
echo -e "\nYou can now run: symfony new --webapp myproject" echo -e "\nYou can now run: symfony new --webapp myproject"
;; ;;
python) python)

View File

@@ -13,4 +13,6 @@ if [[ -n "$choices" ]]; then
MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;; MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;;
esac esac
done done
else
echo "No databases selected for installation."
fi fi

View File

@@ -1,9 +1,7 @@
#!/bin/bash #!/bin/bash
# FIXME: Should not use AUR dependencies when we can avoid it echo "Installing all dependencies..."
echo "Installing all dependencies [from AUR]..." omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
yay -S --noconfirm --needed \
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
echo "Starting Dropbox..." echo "Starting Dropbox..."
uwsm app -- dropbox-cli start &>/dev/null & uwsm app -- dropbox-cli start &>/dev/null &

View File

@@ -200,32 +200,41 @@ show_install_menu() {
} }
show_install_service_menu() { show_install_service_menu() {
case $(menu "Install" " Dropbox\n Tailscale") in case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden") in
*Dropbox*) present_terminal omarchy-install-dropbox ;; *Dropbox*) present_terminal omarchy-install-dropbox ;;
*Tailscale*) present_terminal omarchy-install-tailscale ;; *Tailscale*) present_terminal omarchy-install-tailscale ;;
*Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;;
*) show_install_menu ;; *) show_install_menu ;;
esac esac
} }
show_install_editor_menu() { show_install_editor_menu() {
case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix") in case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in
*VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;; *VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;;
*Cursor*) aur_install_and_launch "Cursor" "cursor-bin" "cursor" ;; *Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; *Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
*Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; *Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
*Helix*) install "Helix" "helix" ;; *Helix*) install "Helix" "helix" ;;
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
*) show_install_menu ;; *) show_install_menu ;;
esac esac
} }
show_install_ai_menu() { show_install_ai_menu() {
case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in ollama_pkg=$(
*Claude*) aur_install "Claude Code" "claude-code" ;; (command -v nvidia-smi &>/dev/null && echo ollama-cuda) ||
(command -v rocminfo &>/dev/null && echo ollama-rocm) ||
echo ollama
)
case $(menu "Install" "󱚤 Claude Code\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
*Claude*) install "Claude Code" "claude-code" ;;
*OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;;
*Gemini*) install "Gemini" "gemini-cli" ;; *Gemini*) install "Gemini" "gemini-cli" ;;
*Studio*) aur_install "LM Studio" "lmstudio" ;; *Studio*) install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" "ollama" ;; *Ollama*) install "Ollama" $ollama_pkg ;;
*Crush*) aur_install "Crush" "crush-bin" ;; *Crush*) install "Crush" "crush-bin" ;;
*opencode*) aur_install "opencode" "opencode-bin" ;; *opencode*) install "opencode" "opencode-bin" ;;
*) show_install_menu ;; *) show_install_menu ;;
esac esac
} }
@@ -315,11 +324,12 @@ show_remove_menu() {
} }
show_update_menu() { show_update_menu() {
case $(menu "Update" " Omarchy\n Config\n󰸌 Themes\n Process\n Timezone") in case $(menu "Update" " Omarchy\n Config\n󰸌 Themes\n Process\n󰇅 Hardware\n Timezone") in
*Omarchy*) present_terminal omarchy-update ;; *Omarchy*) present_terminal omarchy-update ;;
*Config*) show_update_config_menu ;; *Config*) show_update_config_menu ;;
*Themes*) present_terminal omarchy-theme-update ;; *Themes*) present_terminal omarchy-theme-update ;;
*Process*) show_update_process_menu ;; *Process*) show_update_process_menu ;;
*Hardware*) show_update_hardware_menu ;;
*Timezone*) omarchy-cmd-tzupdate ;; *Timezone*) omarchy-cmd-tzupdate ;;
*) show_main_menu ;; *) show_main_menu ;;
esac esac
@@ -332,7 +342,7 @@ show_update_process_menu() {
*Swayosd*) omarchy-restart-swayosd ;; *Swayosd*) omarchy-restart-swayosd ;;
*Walker*) omarchy-restart-walker ;; *Walker*) omarchy-restart-walker ;;
*Waybar*) omarchy-restart-waybar ;; *Waybar*) omarchy-restart-waybar ;;
*) show_main_menu ;; *) show_update_menu ;;
esac esac
} }
@@ -346,7 +356,15 @@ show_update_config_menu() {
*Swayosd*) present_terminal omarchy-refresh-swayosd ;; *Swayosd*) present_terminal omarchy-refresh-swayosd ;;
*Walker*) present_terminal omarchy-refresh-walker ;; *Walker*) present_terminal omarchy-refresh-walker ;;
*Waybar*) present_terminal omarchy-refresh-waybar ;; *Waybar*) present_terminal omarchy-refresh-waybar ;;
*) show_main_menu ;; *) show_update_menu ;;
esac
}
show_update_hardware_menu() {
case $(menu "Restart" "󱚾 Wi-Fi\n󰂯 Bluetooth") in
*Wi-Fi*) present_terminal omarchy-restart-wifi ;;
*Bluetooth*) present_terminal omarchy-restart-bluetooth ;;
*) show_update_menu ;;
esac esac
} }

View File

@@ -1,18 +1,27 @@
#!/bin/bash #!/bin/bash
set -e
# Where we store an empty file for each migration that has already been performed. # Where we store an empty file for each migration that has already been performed.
STATE_DIR="$HOME/.local/state/omarchy/migrations" STATE_DIR="$HOME/.local/state/omarchy/migrations"
mkdir -p "$STATE_DIR" mkdir -p "$STATE_DIR"
# Skipped migrations are tracked separately
mkdir -p "$STATE_DIR/skipped"
# Run any pending migrations # Run any pending migrations
for file in ~/.local/share/omarchy/migrations/*.sh; do for file in ~/.local/share/omarchy/migrations/*.sh; do
filename=$(basename "$file") filename=$(basename "$file")
if [[ ! -f "$STATE_DIR/$filename" ]]; then if [[ ! -f "$STATE_DIR/$filename" && ! -f "$STATE_DIR/skipped/$filename" ]]; then
echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m" echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m"
source $file
if bash $file; then
touch "$STATE_DIR/$filename" touch "$STATE_DIR/$filename"
else
if gum confirm "Migration ${filename%.sh} failed. Skip and continue?"; then
touch "$STATE_DIR/skipped/$filename"
else
exit 1
fi
fi
fi fi
done done

9
bin/omarchy-pkg-add Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
for pkg in "$@"; do
if ! pacman -Q "$pkg" &>/dev/null; then
sudo pacman -S --noconfirm "$pkg" || exit 1
fi
done
exit 0

7
bin/omarchy-pkg-drop Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
for pkg in "$@"; do
if pacman -Q "$pkg" &>/dev/null; then
sudo pacman -Rns --noconfirm "$pkg"
fi
done

9
bin/omarchy-pkg-missing Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
for pkg in "$@"; do
if ! pacman -Q "$pkg" &>/dev/null; then
exit 0
fi
done
exit 1

7
bin/omarchy-pkg-present Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
for pkg in "$@"; do
pacman -Q "$pkg" &>/dev/null || exit 1
done
exit 0

View File

@@ -0,0 +1,3 @@
#!/bin/bash
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist

4
bin/omarchy-restart-bluetooth Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
rfkill unblock bluetooth
rfkill list bluetooth

4
bin/omarchy-restart-wifi Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
rfkill unblock wifi
rfkill list wifi

View File

@@ -1,18 +1,25 @@
#!/bin/bash #!/bin/bash
echo -e "\e[32m\nUpdate system packages\e[0m" # Used in package emergencies if a bad package has been pushed and we can't revoke.
echo "sudo pacman -Syu --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" # Requires manually installing the good package using sudo pacman -U <url>
sudo pacman -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)" ignored_packages=$(omarchy-pkg-ignored)
echo -e "\e[32m\nUpdate system packages\e[0m"
[[ -n $ignored_packages ]] && echo "sudo pacman -Syu --noconfirm --ignore \"$ignored_packages\""
sudo pacman -Syu --noconfirm --ignore "$ignored_packages"
# Update AUR packages if any are installed
if pacman -Qem >/dev/null; then
if omarchy-pkg-aur-accessible; then if omarchy-pkg-aur-accessible; then
echo -e "\e[32m\nUpdate AUR packages\e[0m" echo -e "\e[32m\nUpdate AUR packages\e[0m"
echo "yay -Syu --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" [[ -n $ignored_packages ]] && echo "yay -Sua --noconfirm --ignore \"$ignored_packages\""
yay -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)" yay -Sua --noconfirm --ignore "$ignored_packages"
echo echo
else else
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m" echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"
echo echo
fi fi
fi
orphans=$(pacman -Qtdq) orphans=$(pacman -Qtdq)
if [[ -n $orphans ]]; then if [[ -n $orphans ]]; then

View File

@@ -13,7 +13,6 @@ size = 9
padding.x = 14 padding.x = 14
padding.y = 14 padding.y = 14
decorations = "None" decorations = "None"
opacity = 0.98
[keyboard] [keyboard]
bindings = [ bindings = [

View File

@@ -126,13 +126,13 @@
}, },
{ {
"type": "command", "type": "command",
"key": " OS Age ", "key": "󱦟 OS Age",
"keyColor": "magenta", "keyColor": "magenta",
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
}, },
{ {
"type": "uptime", "type": "uptime",
"key": " Uptime ", "key": "󱫐 Uptime",
"keyColor": "magenta" "keyColor": "magenta"
}, },
{ {

View File

@@ -25,5 +25,5 @@ bindd = SUPER, X, X, exec, omarchy-launch-webapp "https://x.com/"
bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post" bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
# Overwrite existing bindings, like putting Omarchy Menu on Super + Space # Overwrite existing bindings, like putting Omarchy Menu on Super + Space
# unbind = SUPER, Space # unbind = SUPER, SPACE
# bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu # bindd = SUPER, SPACE, Omarchy menu, exec, omarchy-menu

View File

@@ -24,12 +24,12 @@ alias ...='cd ../..'
alias ....='cd ../../..' alias ....='cd ../../..'
# Tools # Tools
alias g='git'
alias d='docker' alias d='docker'
alias r='rails' alias r='rails'
n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; } n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; }
# Git # Git
alias g='git'
alias gcm='git commit -m' alias gcm='git commit -m'
alias gcam='git commit -a -m' alias gcam='git commit -a -m'
alias gcad='git commit -a --amend' alias gcad='git commit -a --amend'

View File

@@ -65,4 +65,3 @@ img2png() {
-define png:exclude-chunk=all \ -define png:exclude-chunk=all \
"${1%.*}.png" "${1%.*}.png"
} }

View File

@@ -1,10 +1,12 @@
# App-specific tweaks # App-specific tweaks
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf source = ~/.local/share/omarchy/default/hypr/apps/1password.conf
source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf
source = ~/.local/share/omarchy/default/hypr/apps/browser.conf source = ~/.local/share/omarchy/default/hypr/apps/browser.conf
source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf
source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf
source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf
source = ~/.local/share/omarchy/default/hypr/apps/steam.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/system.conf
source = ~/.local/share/omarchy/default/hypr/apps/walker.conf source = ~/.local/share/omarchy/default/hypr/apps/walker.conf
source = ~/.local/share/omarchy/default/hypr/apps/1password.conf
source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf

View File

@@ -0,0 +1 @@
windowrule = noscreenshare, class:^(Bitwarden)$

View File

@@ -1,10 +1,6 @@
# Fixing popup size issue # Fixing popup size issue
windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1 windowrule = size 50% 50%, class:(.*jetbrains.*)$, title:^$,floating:1
# Fix tooltips (always have a title of `win.<id>`)
windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^(win.*)$
windowrule = nofocus, class:^(.*jetbrains.*)$, title:^(win.*)$
# Fix tab dragging (always have a single space character as their title) # Fix tab dragging (always have a single space character as their title)
windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$ windowrule = noinitialfocus, class:^(.*jetbrains.*)$, title:^\\s$
windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$ windowrule = nofocus, class:^(.*jetbrains.*)$, title:^\\s$

View File

@@ -0,0 +1 @@
windowrule = opacity 1 1, class:qemu

View File

@@ -1,3 +1,4 @@
windowrule = fullscreen, class:com.libretro.RetroArch windowrule = fullscreen, class:com.libretro.RetroArch
windowrule = opacity 1 1, class:com.libretro.RetroArch windowrule = opacity 1 1, class:com.libretro.RetroArch
windowrule = idleinhibit fullscreen, class:com.libretro.RetroArch

View File

@@ -4,3 +4,4 @@ windowrule = center, class:steam, title:Steam
windowrule = opacity 1 1, class:steam windowrule = opacity 1 1, class:steam
windowrule = size 1100 700, class:steam, title:Steam windowrule = size 1100 700, class:steam, title:Steam
windowrule = size 460 800, class:steam, title:Friends List windowrule = size 460 800, class:steam, title:Friends List
windowrule = idleinhibit fullscreen, class:steam

View File

@@ -4,7 +4,7 @@ windowrule = center, tag:floating-window
windowrule = size 800 600, tag:floating-window windowrule = size 800 600, tag:floating-window
windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float)
windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors), title:^(Open.*Files?|Save.*Files?|Save.*As|All Files|Save) windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open Folder|Save.*Files?|Save.*As|Save|All Files)
# Fullscreen screensaver # Fullscreen screensaver
windowrule = fullscreen, class:Screensaver windowrule = fullscreen, class:Screensaver

View File

@@ -0,0 +1,3 @@
Server = https://mirror.omarchy.org/$repo/os/$arch
Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch

View File

@@ -0,0 +1,30 @@
# See the pacman.conf(5) manpage for option and repository directives
[options]
Color
ILoveCandy
VerbosePkgLists
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
ParallelDownloads = 5
DownloadUser = alpm
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
# pacman searches repositories in the order defined here
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
# [multilib]
# Include = /etc/pacman.d/mirrorlist
[omarchy]
SigLevel = Optional TrustAll
Server = https://pkgs.omarchy.org/$arch

View File

@@ -3,21 +3,21 @@
# Exit immediately if a command exits with a non-zero status # Exit immediately if a command exits with a non-zero status
set -eE set -eE
export PATH="$HOME/.local/share/omarchy/bin:$PATH" OMARCHY_PATH="$HOME/.local/share/omarchy"
OMARCHY_INSTALL=~/.local/share/omarchy/install OMARCHY_INSTALL="$OMARCHY_PATH/install"
export PATH="$OMARCHY_PATH/bin:$PATH"
# Preparation # Preparation
source $OMARCHY_INSTALL/preflight/show-env.sh source $OMARCHY_INSTALL/preflight/show-env.sh
source $OMARCHY_INSTALL/preflight/trap-errors.sh source $OMARCHY_INSTALL/preflight/trap-errors.sh
source $OMARCHY_INSTALL/preflight/guard.sh source $OMARCHY_INSTALL/preflight/guard.sh
source $OMARCHY_INSTALL/preflight/chroot.sh source $OMARCHY_INSTALL/preflight/chroot.sh
source $OMARCHY_INSTALL/preflight/repositories.sh source $OMARCHY_INSTALL/preflight/pacman.sh
source $OMARCHY_INSTALL/preflight/migrations.sh source $OMARCHY_INSTALL/preflight/migrations.sh
source $OMARCHY_INSTALL/preflight/first-run-mode.sh source $OMARCHY_INSTALL/preflight/first-run-mode.sh
# Packaging # Packaging
source $OMARCHY_INSTALL/packages.sh source $OMARCHY_INSTALL/packages.sh
source $OMARCHY_INSTALL/packaging/asdcontrol.sh
source $OMARCHY_INSTALL/packaging/fonts.sh source $OMARCHY_INSTALL/packaging/fonts.sh
source $OMARCHY_INSTALL/packaging/lazyvim.sh source $OMARCHY_INSTALL/packaging/lazyvim.sh
source $OMARCHY_INSTALL/packaging/webapps.sh source $OMARCHY_INSTALL/packaging/webapps.sh
@@ -39,6 +39,7 @@ source $OMARCHY_INSTALL/config/mise-ruby.sh
source $OMARCHY_INSTALL/config/docker.sh source $OMARCHY_INSTALL/config/docker.sh
source $OMARCHY_INSTALL/config/mimetypes.sh source $OMARCHY_INSTALL/config/mimetypes.sh
source $OMARCHY_INSTALL/config/localdb.sh source $OMARCHY_INSTALL/config/localdb.sh
source $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
source $OMARCHY_INSTALL/config/hardware/network.sh source $OMARCHY_INSTALL/config/hardware/network.sh
source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
source $OMARCHY_INSTALL/config/hardware/bluetooth.sh source $OMARCHY_INSTALL/config/hardware/bluetooth.sh
@@ -46,22 +47,12 @@ source $OMARCHY_INSTALL/config/hardware/printer.sh
source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
source $OMARCHY_INSTALL/config/hardware/nvidia.sh source $OMARCHY_INSTALL/config/hardware/nvidia.sh
source $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
# Login # Login
source $OMARCHY_INSTALL/login/plymouth.sh source $OMARCHY_INSTALL/login/plymouth.sh
source $OMARCHY_INSTALL/login/limine-snapper.sh source $OMARCHY_INSTALL/login/limine-snapper.sh
source $OMARCHY_INSTALL/login/alt-bootloaders.sh source $OMARCHY_INSTALL/login/alt-bootloaders.sh
# Reboot # Finishing
clear source $OMARCHY_INSTALL/reboot.sh
tte -i ~/.local/share/omarchy/logo.txt --frame-rate 920 laseretch
echo
echo "You're done! So we're ready to reboot now..." | tte --frame-rate 640 wipe
if sudo test -f /etc/sudoers.d/99-omarchy-installer; then
sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null
echo -e "\nRemember to remove USB installer!\n\n"
fi
sleep 5
reboot

View File

@@ -0,0 +1,7 @@
#!/bin/bash
AMD_AUDIO_CARD=$(pactl list cards | grep -B20 "Family 17h/19h" | grep "Name: " | awk '{print $2}')
if [[ -n $AMD_AUDIO_CARD ]]; then
pactl set-card-profile "$AMD_AUDIO_CARD" "HiFi (Mic1, Mic2, Speaker)" 2>/dev/null || true
fi

View File

@@ -1,11 +1,7 @@
#!/bin/bash #!/bin/bash
# Install iwd explicitly if it wasn't included in archinstall # Ensure iwd service will be started
# This can happen if archinstall used ethernet
if ! command -v iwctl &>/dev/null; then
sudo pacman -S --noconfirm --needed iwd
sudo systemctl enable iwd.service sudo systemctl enable iwd.service
fi
# Prevent systemd-networkd-wait-online timeout on boot # Prevent systemd-networkd-wait-online timeout on boot
sudo systemctl disable systemd-networkd-wait-online.service sudo systemctl disable systemd-networkd-wait-online.service

View File

@@ -0,0 +1,5 @@
#!/bin/bash
# Setup sudo-less controls for controlling brightness on Apple Displays
echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
sudo chmod 440 /etc/sudoers.d/asdcontrol

View File

@@ -4,6 +4,11 @@ gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue" gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
# Set links for Nautilius action icons
sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-previous-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-previous-symbolic.svg
sudo ln -snf /usr/share/icons/Adwaita/symbolic/actions/go-next-symbolic.svg /usr/share/icons/Yaru/scalable/actions/go-next-symbolic.svg
sudo gtk-update-icon-cache /usr/share/icons/Yaru
# Setup theme links # Setup theme links
mkdir -p ~/.config/omarchy/themes mkdir -p ~/.config/omarchy/themes
for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done

View File

@@ -1,6 +1,9 @@
#!/bin/bash
sudo pacman -S --noconfirm --needed \ sudo pacman -S --noconfirm --needed \
1password-beta \ 1password-beta \
1password-cli \ 1password-cli \
asdcontrol-git \
alacritty \ alacritty \
avahi \ avahi \
bash-completion \ bash-completion \
@@ -26,6 +29,7 @@ sudo pacman -S --noconfirm --needed \
fcitx5-qt \ fcitx5-qt \
fd \ fd \
ffmpegthumbnailer \ ffmpegthumbnailer \
fontconfig \
fzf \ fzf \
gcc14 \ gcc14 \
github-cli \ github-cli \
@@ -34,6 +38,7 @@ sudo pacman -S --noconfirm --needed \
gnome-themes-extra \ gnome-themes-extra \
gum \ gum \
gvfs-mtp \ gvfs-mtp \
gvfs-smb \
hypridle \ hypridle \
hyprland \ hyprland \
hyprland-qtutils \ hyprland-qtutils \
@@ -45,6 +50,7 @@ sudo pacman -S --noconfirm --needed \
impala \ impala \
imv \ imv \
inetutils \ inetutils \
iwd \
jq \ jq \
kdenlive \ kdenlive \
kvantum-qt5 \ kvantum-qt5 \
@@ -82,6 +88,7 @@ sudo pacman -S --noconfirm --needed \
python-gobject \ python-gobject \
python-poetry-core \ python-poetry-core \
python-terminaltexteffects \ python-terminaltexteffects \
qt5-wayland \
ripgrep \ ripgrep \
satty \ satty \
signal-desktop \ signal-desktop \
@@ -96,7 +103,7 @@ sudo pacman -S --noconfirm --needed \
tree-sitter-cli \ tree-sitter-cli \
ttf-cascadia-mono-nerd \ ttf-cascadia-mono-nerd \
ttf-ia-writer \ ttf-ia-writer \
ttf-jetbrains-mono \ ttf-jetbrains-mono-nerd \
typora \ typora \
tzupdate \ tzupdate \
ufw \ ufw \

View File

@@ -1,15 +0,0 @@
#!/bin/bash
# Install asdcontrol for controlling brightness on Apple Displays
if ! command -v asdcontrol &>/dev/null; then
git clone https://github.com/nikosdion/asdcontrol.git /tmp/asdcontrol
cd /tmp/asdcontrol
make
sudo make install
cd -
rm -rf /tmp/asdcontrol
# Setup sudo-less controls
echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
sudo chmod 440 /etc/sudoers.d/asdcontrol
fi

11
install/preflight/pacman.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
# Install build tools
sudo pacman -S --needed --noconfirm base-devel
# Configure pacman
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist
# Refresh all repos
sudo pacman -Syu --noconfirm

View File

@@ -1,39 +0,0 @@
#!/bin/bash
# Install build tools
sudo pacman -S --needed --noconfirm base-devel
# Add fun and color and verbosity to the pacman installer
if ! grep -q "ILoveCandy" /etc/pacman.conf; then
sudo sed -i '/^\[options\]/a Color\nILoveCandy\nVerbosePkgLists' /etc/pacman.conf
fi
# Add the Omarchy repository
if ! grep -q "omarchy" /etc/pacman.conf; then
echo -e "\n[omarchy]\nSigLevel = Optional TrustAll\nServer = https://pkgs.omarchy.org/\$arch/\n" | sudo tee -a /etc/pacman.conf >/dev/null
fi
# Set mirrors to global ones only
echo -e "Server = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch" |
sudo tee /etc/pacman.d/mirrorlist >/dev/null
# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages
if [[ "$(uname -m)" == "x86_64" ]] && [ -z "$DISABLE_CHAOTIC" ]; then
# Try installing Chaotic-AUR keyring and mirrorlist
if ! pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1 &&
sudo pacman-key --recv-key 3056513887B78AEB &&
sudo pacman-key --lsign-key 3056513887B78AEB &&
sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' &&
sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then
# Add Chaotic-AUR repo to pacman config
if ! grep -q "chaotic-aur" /etc/pacman.conf; then
echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null
fi
else
echo -e "Failed to install Chaotic-AUR, so won't include it in pacman config!"
fi
fi
# Refresh all repos
sudo pacman -Syu --noconfirm

View File

@@ -24,7 +24,11 @@ catch_errors() {
echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ " echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ "
echo " " echo " "
echo "You can retry by running: bash ~/.local/share/omarchy/install.sh" if command -v gum >/dev/null && gum confirm "Retry installation?"; then
bash ~/.local/share/omarchy/install.sh
else
echo "You can retry later by running: bash ~/.local/share/omarchy/install.sh"
fi
} }
trap catch_errors ERR trap catch_errors ERR

14
install/reboot.sh Normal file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
clear
tte -i ~/.local/share/omarchy/logo.txt --frame-rate 920 laseretch
echo
echo "You're done! So we're ready to reboot now..." | tte --frame-rate 640 wipe
if sudo test -f /etc/sudoers.d/99-omarchy-installer; then
sudo rm -f /etc/sudoers.d/99-omarchy-installer &>/dev/null
echo -e "\nRemember to remove USB installer!\n\n"
fi
sleep 5
reboot

View File

@@ -1,7 +1,9 @@
echo "Add Omarchy Package Repository" echo "Add Omarchy Package Repository"
omarchy-refresh-pacman-mirrorlist
if ! grep -q "omarchy" /etc/pacman.conf; then if ! grep -q "omarchy" /etc/pacman.conf; then
sudo sed -i '/^\[core\]/i [omarchy]\nSigLevel = Optional TrustAll\nServer = https:\/\/pkgs.omarchy.org\/$arch\/\n' /etc/pacman.conf sudo sed -i '/^\[core\]/i [omarchy]\nSigLevel = Optional TrustAll\nServer = https:\/\/pkgs.omarchy.org\/$arch\n' /etc/pacman.conf
sudo systemctl restart systemd-timesyncd sudo systemctl restart systemd-timesyncd
sudo pacman -Syu --noconfirm sudo pacman -Syu --noconfirm
fi fi

View File

@@ -1,5 +1,3 @@
echo "Add missing installation of bat (used by the ff alias)" echo "Add missing installation of bat (used by the ff alias)"
if ! command -v bat &>/dev/null; then
# Add missing installation of bat omarchy-pkg-add bat
sudo pacman -S --noconfirm --needed bat
fi

View File

@@ -1,5 +1,3 @@
echo "Installing missing fd terminal tool for finding files" echo "Installing missing fd terminal tool for finding files"
if ! command -v fd &>/dev/null; then omarchy-pkg-add fd
sudo pacman -S --noconfirm --needed fd
fi

View File

@@ -1,8 +1,9 @@
echo "Switching from vlc to mpv for the default video player" echo "Switching from vlc to mpv for the default video player"
if ! command -v mpv &>/dev/null; then if omarchy-cmd-missing mpv; then
sudo pacman -Rns --noconfirm vlc omarchy-pkg-drop vlc
rm ~/.local/share/applications/vlc.desktop rm ~/.local/share/applications/vlc.desktop
sudo pacman -S --noconfirm mpv
omarchy-pkg-add mpv
xdg-mime default mpv.desktop video/mp4 xdg-mime default mpv.desktop video/mp4
xdg-mime default mpv.desktop video/x-msvideo xdg-mime default mpv.desktop video/x-msvideo
xdg-mime default mpv.desktop video/x-matroska xdg-mime default mpv.desktop video/x-matroska

View File

@@ -1,5 +1,3 @@
echo "Add LocalSend as new default application" echo "Add LocalSend as new default application"
if ! command -v localsend &>/dev/null; then omarchy-pkg-add localsend
sudo pacman -S --noconfirm --needed localsend
fi

View File

@@ -1,5 +1,3 @@
echo "Install ffmpegthumbnailer for video thumbnails in the file manager" echo "Install ffmpegthumbnailer for video thumbnails in the file manager"
if ! command -v ffmpegthumbnailer &>/dev/null; then omarchy-pkg-add ffmpegthumbnailer
sudo pacman -S --noconfirm --needed ffmpegthumbnailer
fi

View File

@@ -1,5 +1,3 @@
echo "Install bash-completion" echo "Install bash-completion"
if ! pacman -Q bash-completion &>/dev/null; then omarchy-pkg-add bash-completion
sudo pacman -S --noconfirm --needed bash-completion
fi

View File

@@ -1,6 +1,6 @@
echo "Install Impala as new wifi selection TUI" echo "Install Impala as new wifi selection TUI"
if ! command -v impala &>/dev/null; then
sudo pacman -S --noconfirm --needed impala if omarchy-cmd-missing impala; then
echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar." omarchy-pkg-add impala
omarchy-refresh-waybar omarchy-refresh-waybar
fi fi

View File

@@ -1,2 +1,3 @@
echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)" echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)"
source ~/.local/share/omarchy/install/config/hardware/fix-fkeys.sh
source $OMARCHY_PATH/install/config/hardware/fix-fkeys.sh

View File

@@ -1,5 +1,3 @@
echo "Adding gnome-keyring to make 1password work with 2FA codes" echo "Adding gnome-keyring to make 1password work with 2FA codes"
if ! command -v gnome-keyring &>/dev/null; then omarchy-pkg-add gnome-keyring
sudo pacman -S --noconfirm --needed gnome-keyring
fi

View File

@@ -1,4 +1,4 @@
echo "Install Plymouth splash screen" echo "Install Plymouth splash screen"
sudo pacman -S --needed --noconfirm uwsm plymouth omarchy-pkg-add uwsm plymouth
source "$HOME/.local/share/omarchy/install/login/plymouth.sh" source "$OMARCHY_PATH/install/login/plymouth.sh"

View File

@@ -1,4 +1,5 @@
echo "Switching to polkit-gnome for better fingerprint authentication compatibility" 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 if ! command -v /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &>/dev/null; then
sudo pacman -S --noconfirm --needed polkit-gnome sudo pacman -S --noconfirm --needed polkit-gnome
systemctl --user stop hyprpolkitagent systemctl --user stop hyprpolkitagent

View File

@@ -1,4 +1,5 @@
echo "Migrate to the modular implementation of hyprlock" echo "Migrate to the modular implementation of hyprlock"
if [ -L ~/.config/hypr/hyprlock.conf ]; then if [ -L ~/.config/hypr/hyprlock.conf ]; then
rm ~/.config/hypr/hyprlock.conf rm ~/.config/hypr/hyprlock.conf
cp ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf cp ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf

View File

@@ -1,7 +1,5 @@
echo "Update chromium.desktop to ensure we are always using wayland" echo "Update chromium.desktop to ensure we are always using wayland"
if [[ ! -f ~/.local/share/applications/chromium.desktop ]]; then
cp ~/.local/share/omarchy/applications/chromium.desktop ~/.local/share/applications/
xdg-settings set default-web-browser chromium.desktop xdg-settings set default-web-browser chromium.desktop
xdg-mime default chromium.desktop x-scheme-handler/http xdg-mime default chromium.desktop x-scheme-handler/http
xdg-mime default chromium.desktop x-scheme-handler/https xdg-mime default chromium.desktop x-scheme-handler/https
fi

View File

@@ -1,4 +1,5 @@
echo "Migrate to the modular, variable-based implementation of waybar style.css" echo "Migrate to the modular, variable-based implementation of waybar style.css"
if [ -L ~/.config/waybar/style.css ]; then if [ -L ~/.config/waybar/style.css ]; then
rm ~/.config/waybar/style.css rm ~/.config/waybar/style.css
cp ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/style.css cp ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/style.css

View File

@@ -1,5 +1,6 @@
echo "Update to use UWSM and seamless login" echo "Update to use UWSM and seamless login"
if ! command -v uwsm &>/dev/null; then
if omarchy-cmd-missing uwsm; then
sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf 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 sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
@@ -14,5 +15,5 @@ if ! command -v uwsm &>/dev/null; then
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf" sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
fi fi
source ~/.local/share/omarchy/install/login/plymouth.sh source $OMARCHY_PATH/install/login/plymouth.sh
fi fi

View File

@@ -1,3 +1,4 @@
echo "Add color and animation to pacman installs" 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 '^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 grep -q '^ILoveCandy' /etc/pacman.conf || sudo sed -i '/^\[options\]/a ILoveCandy' /etc/pacman.conf

View File

@@ -1,5 +1,3 @@
echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility" echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility"
if ! docker buildx version &>/dev/null; then omarchy-pkg-add docker-buildx
sudo pacman -S --noconfirm --needed docker-buildx
fi

View File

@@ -1,4 +1,5 @@
echo "Make light themes possible" echo "Make light themes possible"
if [[ -f ~/.local/share/applications/blueberry.desktop ]]; then if [[ -f ~/.local/share/applications/blueberry.desktop ]]; then
rm -f ~/.local/share/applications/blueberry.desktop rm -f ~/.local/share/applications/blueberry.desktop
rm -f ~/.local/share/applications/org.pulseaudio.pavucontrol.desktop rm -f ~/.local/share/applications/org.pulseaudio.pavucontrol.desktop

View File

@@ -1,4 +1,5 @@
echo "Rename waybar config file for syntax highlighting" echo "Rename waybar config file for syntax highlighting"
if [[ -f ~/.config/waybar/config ]]; then if [[ -f ~/.config/waybar/config ]]; then
mv ~/.config/waybar/config ~/.config/waybar/config.jsonc mv ~/.config/waybar/config ~/.config/waybar/config.jsonc
fi fi

View File

@@ -1,4 +1,5 @@
echo "Prevent docker from requiring network readiness on boot" echo "Prevent docker from requiring network readiness on boot"
if [[ ! -f /etc/systemd/system/docker.service.d/no-block-boot.conf ]]; then if [[ ! -f /etc/systemd/system/docker.service.d/no-block-boot.conf ]]; then
sudo mkdir -p /etc/systemd/system/docker.service.d/ sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF' sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'

View File

@@ -1,4 +1,5 @@
echo "Add Catppuccin Latte light theme" echo "Add Catppuccin Latte light theme"
if [[ ! -L "~/.config/omarchy/themes/catppuccin-latte" ]]; then if [[ ! -L "~/.config/omarchy/themes/catppuccin-latte" ]]; then
ln -snf ~/.local/share/omarchy/themes/catppuccin-latte ~/.config/omarchy/themes/ ln -snf ~/.local/share/omarchy/themes/catppuccin-latte ~/.config/omarchy/themes/
fi fi

View File

@@ -1,5 +1,3 @@
echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder" echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder"
if ! command -v wl-screenrec &>/dev/null || ! command -v slurp &>/dev/null; then omarchy-pkg-add slurp wl-screenrec
sudo pacman -S --noconfirm --needed slurp wl-screenrec
fi

View File

@@ -1,9 +1,8 @@
echo "Replace volume control GUI with a TUI" echo "Replace volume control GUI with a TUI"
if ! command -v wiremix &>/dev/null; then if omarchy-cmd-missing wiremix; then
sudo pacman -S --noconfirm --needed wiremix omarchy-pkg-add wiremix
sudo pacman -Rns --noconfirm pavucontrol omarchy-pkg-drop pavucontrol
omarchy-refresh-applications omarchy-refresh-applications
omarchy-refresh-waybar omarchy-refresh-waybar
fi fi

View File

@@ -1,4 +1,3 @@
echo "Remove needless fcitx5-configtool package" echo "Remove needless fcitx5-configtool package"
if pacman -Qe fcitx5-configtool &>/dev/null; then
sudo pacman -Rns --noconfirm fcitx5-configtool omarchy-pkg-drop fcitx5-configtool
fi

View File

@@ -1,2 +1,3 @@
echo "Update .config/hypr/hyprlock.conf to include failed attempt counter" echo "Update .config/hypr/hyprlock.conf to include failed attempt counter"
omarchy-refresh-hyprlock omarchy-refresh-hyprlock

View File

@@ -1,5 +1,3 @@
echo "Install satty for the new screenshot flow" echo "Install satty for the new screenshot flow"
if ! command -v satty &>/dev/null; then omarchy-pkg-add satty
sudo pacman -S --noconfirm --needed satty
fi

View File

@@ -1,9 +1,9 @@
echo "Replace wofi with walker as the default launcher" echo "Replace wofi with walker as the default launcher"
if ! command -v walker &>/dev/null; then if omarchy-cmd-missing walker; then
sudo pacman -S --noconfirm --needed walker-bin libqalculate omarchy-pkg-add walker-bin libqalculate
sudo pacman -Rns --noconfirm wofi omarchy-pkg-drop wofi
rm -rf ~/.config/wofi rm -rf ~/.config/wofi
mkdir -p ~/.config/walker mkdir -p ~/.config/walker

View File

@@ -1,6 +1,6 @@
echo "Install swayOSD to show volume status" echo "Install swayOSD to show volume status"
if ! command -v swayosd-server &>/dev/null; then if omarchy-cmd-missing swayosd-server; then
sudo pacman -S --noconfirm --needed swayosd omarchy-pkg-add swayosd
setsid uwsm app -- swayosd-server &>/dev/null & setsid uwsm app -- swayosd-server &>/dev/null &
fi fi

View File

@@ -1,7 +1,3 @@
echo "Install wf-recorder for screen recording for nvidia" echo "Install wf-recorder for screen recording for nvidia"
if lspci | grep -qi 'nvidia'; then omarchy-pkg-add wf-recorder
if ! command -v wf-recorder &>/dev/null; then
sudo pacman -S --noconfirm --needed wf-recorder
fi
fi

View File

@@ -1,18 +0,0 @@
echo "Add Chaotic-AUR to get compiled binaries"
if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then
# Try installing Chaotic-AUR keyring and mirrorlist
if sudo pacman-key --recv-key 3056513887B78AEB &&
sudo pacman-key --lsign-key 3056513887B78AEB &&
sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' &&
sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then
# Add Chaotic-AUR repo to pacman config
echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null
# Refresh pacman package databases
sudo pacman -Syu --noconfirm
else
echo "Failed to install Chaotic-AUR, so won't include it in pacman config!"
fi
fi

View File

@@ -1,5 +0,0 @@
echo "Add Terminal Text Effects for rizzing Omarchy"
if ! pacman -Q python-terminaltexteffects &>/dev/null; then
sudo pacman -S --noconfirm python-terminaltexteffects
fi

View File

@@ -1,5 +1,6 @@
echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)"
if ! command -v tzupdate &>/dev/null; then
bash ~/.local/share/omarchy/install/config/timezones.sh if omarchy-cmd-missing tzupdate; then
$OMARCHY_PATH/install/config/timezones.sh
omarchy-refresh-waybar omarchy-refresh-waybar
fi fi

View File

@@ -1,4 +0,0 @@
echo "Update Walker config to include = as the leader key for the calculator"
if ! grep -q 'prefix = "="' ~/.config/walker/config.toml; then
omarchy-refresh-walker
fi

View File

@@ -1,4 +0,0 @@
echo "Update Walker config to include . as the leader key for the finder"
if ! grep -q 'prefix = "\."' ~/.config/walker/config.toml; then
omarchy-refresh-walker
fi

View File

@@ -1,5 +0,0 @@
echo "Ensure screensaver doesn't start while the computer is locked"
if ! grep -q "pidof hyprlock || omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then
omarchy-refresh-hypridle
fi

View File

@@ -1,5 +0,0 @@
echo "Update app launcher config to allow enough entries to show all keybindings on SUPER+K"
if ! grep "max_entries = 200" ~/.config/walker/config.toml; then
omarchy-refresh-walker
fi

View File

@@ -1,7 +1,7 @@
echo "Enable auto-discovery of network printers" echo "Enable auto-discovery of network printers"
if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then
sudo pacman -S --noconfirm avahi nss-mdns omarchy-pkg-add avahi nss-mdns
# Disable multicast dns in resolved. Avahi will provide this for better network printer discovery # Disable multicast dns in resolved. Avahi will provide this for better network printer discovery
sudo mkdir -p /etc/systemd/resolved.conf.d sudo mkdir -p /etc/systemd/resolved.conf.d
@@ -10,7 +10,7 @@ if [[ ! -f /etc/systemd/resolved.conf.d/10-disable-multicast.conf ]]; then
fi fi
if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
sudo pacman -S --noconfirm cups-browsed omarchy-pkg-add cups-browsed
# Enable automatically adding remote printers # Enable automatically adding remote printers
echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf
sudo systemctl enable --now cups-browsed.service sudo systemctl enable --now cups-browsed.service

View File

@@ -1,2 +1,3 @@
echo "Add support for accessing Android phone data via file manager" echo "Add support for accessing Android phone data via file manager"
sudo pacman -S --noconfirm --needed gvfs-mtp
omarchy-pkg-add gvfs-mtp

View File

@@ -1,2 +0,0 @@
echo "Increase time before screensaver starts to 2.5 minutes (from 1 minute)"
omarchy-refresh-hypridle

View File

@@ -1,2 +1,3 @@
echo "Add chromium-flags.conf" echo "Add chromium-flags.conf"
omarchy-refresh-config chromium-flags.conf omarchy-refresh-config chromium-flags.conf

View File

@@ -1,4 +1,5 @@
echo "Change update-available icon in top bar from  to " echo "Change update-available icon in top bar from  to "
if grep -q '"format": "",' ~/.config/waybar/config.jsonc; then if grep -q '"format": "",' ~/.config/waybar/config.jsonc; then
sed -i 's/"format": ""/"format": ""/' ~/.config/waybar/config.jsonc sed -i 's/"format": ""/"format": ""/' ~/.config/waybar/config.jsonc
fi fi

View File

@@ -1,2 +0,0 @@
echo "Restart Walker to pick up menu selections"
omarchy-restart-walker

View File

@@ -1,2 +1,3 @@
echo "Remove old Omarchy TUI app now that we have the Omarchy Menu" echo "Remove old Omarchy TUI app now that we have the Omarchy Menu"
rm -rf ~/.local/share/applications/omarchy.desktop
rm -f ~/.local/share/applications/omarchy.desktop

View File

@@ -1,3 +1,3 @@
echo "Add xmlstarlet needed for updating fonts via Omarchy menu" echo "Add xmlstarlet needed for updating fonts via Omarchy menu"
sudo pacman -S --noconfirm --needed xmlstarlet omarchy-pkg-add xmlstarlet

View File

@@ -1,3 +0,0 @@
echo "Update OS icon in About from Windows to Arch"
omarchy-refresh-config fastfetch/config.jsonc

View File

@@ -1,4 +1,3 @@
echo "Tune MTU probing for more reliable SSH" echo "Tune MTU probing for more reliable SSH"
# Solve common flakiness with SSH
echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf echo "net.ipv4.tcp_mtu_probing=1" | sudo tee -a /etc/sysctl.d/99-sysctl.conf

View File

@@ -1,5 +0,0 @@
echo "Lock 1password on screen lock"
if ! grep -q "omarchy-lock-screen" ~/.config/hypr/hypridle.conf; then
omarchy-refresh-hypridle
fi

View File

@@ -1,2 +0,0 @@
echo "Update Walker config"
omarchy-refresh-walker

View File

@@ -1,4 +1,5 @@
echo "Update polkit policy to yield to fingerprint and fido2" echo "Update polkit policy to yield to fingerprint and fido2"
# If fprint exists in polkit, it was wrong and needs reset # 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 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' sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'

View File

@@ -1,4 +1,5 @@
echo "Add start burst limit to login" echo "Add start burst limit to login"
if [ -f /etc/systemd/system/omarchy-seamless-login.service ]; then if [ -f /etc/systemd/system/omarchy-seamless-login.service ]; then
cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service
[Unit] [Unit]

View File

@@ -1,2 +1,3 @@
echo "Update Walker config to add 60s timeout such that it won't conflict with screensaver" echo "Update Walker config to add 60s timeout such that it won't conflict with screensaver"
omarchy-refresh-walker omarchy-refresh-walker

View File

@@ -1,5 +1,6 @@
echo "Configure Docker to use the host's DNS resolver" 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 # 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"}}' ORIGINAL_CONFIG='{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}'
@@ -19,3 +20,4 @@ echo -e '[Resolve]\nDNSStubListenerExtra=172.17.0.1' | sudo tee /etc/systemd/res
sudo systemctl restart systemd-resolved sudo systemctl restart systemd-resolved
sudo systemctl restart docker sudo systemctl restart docker
fi

View File

@@ -29,4 +29,3 @@ if [ -f /etc/systemd/resolved.conf ]; then
echo "DNS configuration reset to use DHCP (router DNS)" echo "DNS configuration reset to use DHCP (router DNS)"
echo "To use Cloudflare DNS, run: omarchy-setup-dns Cloudflare" echo "To use Cloudflare DNS, run: omarchy-setup-dns Cloudflare"
fi fi

View File

@@ -1,7 +1,8 @@
echo "Switch to Omarchy Chromium for synchronized theme switching" echo "Switch to Omarchy Chromium for synchronized theme switching"
if omarchy-cmd-present chromium; then
set_theme_colors() { set_theme_colors() {
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]] && command -v chromium &>/dev/null; then if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)" chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)"
else else
# Use a default, neutral grey if theme doesn't have a color # Use a default, neutral grey if theme doesn't have a color
@@ -9,9 +10,8 @@ set_theme_colors() {
fi fi
} }
if command -v chromium &>/dev/null; then omarchy-pkg-drop chromium
sudo pacman -Rns --noconfirm chromium || true omarchy-pkg-add omarchy-chromium
sudo pacman -S --noconfirm omarchy-chromium
if pgrep -x chromium; then if pgrep -x chromium; then
if gum confirm "Chromium must be restarted. Ready?"; then if gum confirm "Chromium must be restarted. Ready?"; then

View File

@@ -1,6 +1,6 @@
echo "Add minimal starship prompt to terminal" echo "Add minimal starship prompt to terminal"
if ! command -v starship &>/dev/null; then if omarchy-cmd-missing starship; then
sudo pacman -S --noconfirm starship omarchy-pkg-add starship
cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml cp $OMARCHY_PATH/config/starship.toml ~/.config/starship.toml
fi fi

View File

@@ -1,9 +1,3 @@
echo "Ensure TTE and dependencies are installed" echo "Ensure TTE and dependencies are installed"
if ! pacman -Q python-poetry-core &>/dev/null; then omarchy-pkg-add python-poetry-core python-terminaltexteffects
sudo pacman -S --noconfirm python-poetry-core
fi
if ! pacman -Q python-terminaltexteffects &>/dev/null; then
sudo pacman -S --noconfirm python-terminaltexteffects
fi

View File

@@ -1,5 +1,3 @@
echo "Add potentially missing dependency for power profile controls" echo "Add potentially missing dependency for power profile controls"
if ! pacman -Q python-gobject &>/dev/null; then omarchy-pkg-add python-gobject
sudo pacman -S --noconfirm python-gobject
fi

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