Compare commits

...

30 Commits

Author SHA1 Message Date
David Heinemeier Hansson
fc82476f24 We have already added the Omarchy repo before getting to here
So fine to just do a straight install
2025-08-27 15:23:48 +02:00
David Heinemeier Hansson
dd719051cb No longer need the sudoless pacman runs 2025-08-27 15:22:23 +02:00
David Heinemeier Hansson
18aef9fd86 Does not warrant a full system update 2025-08-27 15:19:00 +02:00
David Heinemeier Hansson
3d1e9ced81 Need to refresh even just for Omarchy repository 2025-08-27 15:18:30 +02:00
David Heinemeier Hansson
c677098165 Does not need a full system update 2025-08-27 15:17:26 +02:00
David Heinemeier Hansson
ca455c434a Combine 2025-08-27 15:16:34 +02:00
David Heinemeier Hansson
2e8a57fac4 Don't need a full system update for this 2025-08-27 15:16:28 +02:00
David Heinemeier Hansson
20ab2ee81e Get rid of all naked -Sy usage 2025-08-27 14:52:38 +02:00
David Heinemeier Hansson
4cbc8eef43 Get rid of -Sy and -Syy 2025-08-27 14:45:59 +02:00
David Heinemeier Hansson
e5927fc1b2 Fix ghostty compatibility here too 2025-08-27 14:38:14 +02:00
David Heinemeier Hansson
175066ecba Fix migration not to add working-directory if already there
And make command line compatible with Ghostty too
2025-08-27 14:38:00 +02:00
David Heinemeier Hansson
cf4e1c0eb7 Better resilience for fetching the tags 2025-08-27 14:26:30 +02:00
David Heinemeier Hansson
b264c6540a Use floating terminal 2025-08-27 14:19:07 +02:00
David Heinemeier Hansson
90cdbd5504 Run the omarchy-update in a terminal process not owned by waybar so it'll survive being restarted 2025-08-27 14:14:03 +02:00
David Heinemeier Hansson
147242cbba Same permissions as everything 2025-08-27 14:13:23 +02:00
David Heinemeier Hansson
c09ac13f90 Add refresh fastfetch config 2025-08-27 12:59:31 +02:00
David Heinemeier Hansson
ec85068c67 Use omarchy-version 2025-08-27 12:59:21 +02:00
David Heinemeier Hansson
8cbd6be687 Merge pull request #1166 from basecamp/dev
Omarchy v2.0.2
2025-08-27 12:50:36 +02:00
David Heinemeier Hansson
aef9a3dc0f Merge branch 'master' into dev 2025-08-27 12:49:31 +02:00
David Heinemeier Hansson
2294393d71 Just force it for now 2025-08-27 12:39:36 +02:00
David Heinemeier Hansson
2b0d2e4751 Should be exe 2025-08-27 12:35:48 +02:00
David Heinemeier Hansson
0f8a94aa50 Pin at the end 2025-08-27 12:26:03 +02:00
David Heinemeier Hansson
4eb2fab33d Ignore for yay too 2025-08-27 12:21:25 +02:00
David Heinemeier Hansson
a43edcde7d Quote it 2025-08-27 12:14:03 +02:00
David Heinemeier Hansson
742e601baf Pinning packages when one goes bad (#1162)
* Don't update system packages to prevent issues from something too new at the wrong time

* Add system to pin and ignore bad packages

To deal with the abseil-cpp issue
2025-08-27 12:06:08 +02:00
David Heinemeier Hansson
710bb023cd Don't update system packages to prevent issues from something too new at the wrong time 2025-08-27 10:54:23 +02:00
David Heinemeier Hansson
a7df6c0941 Move updatedb into its own config file with better explanation 2025-08-27 10:53:47 +02:00
David Heinemeier Hansson
2d12085eb1 Merge pull request #1119 from tahayvr/fastfetch-config
Update Fastfetch config
2025-08-26 15:51:54 +02:00
Taha
9a2cdc2bc4 Update fastfetch info 2025-08-26 06:28:25 -07:00
David Heinemeier Hansson
66818266ff Force font size 9 for the about screen
We had this but lost it
2025-08-26 12:46:19 +02:00
35 changed files with 116 additions and 98 deletions

View File

@@ -6,7 +6,7 @@ if [[ -z "$1" ]]; then
fi
install_php() {
sudo pacman -Sy php composer php-sqlite --noconfirm
sudo pacman -S php composer php-sqlite --noconfirm
# Install Path for Composer
if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then

View File

@@ -2,8 +2,7 @@
echo "Adding multilib repository for 32-bit compatibility"
sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf
sudo pacman -Sy
echo "Now pick dependencies matching your graphics card"
sudo pacman -S steam
sudo pacman -Syu steam
setsid gtk-launch steam >/dev/null 2>&1 &

View File

@@ -0,0 +1,4 @@
#!/bin/bash
cmd="$*"
setsid alacritty --class Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"

View File

@@ -26,7 +26,7 @@ terminal() {
}
present_terminal() {
alacritty --class Omarchy -e bash -c "omarchy-show-logo; eval \"$1\"; omarchy-show-done;"
omarchy-launch-floating-terminal-with-presentation $1
}
edit_in_nvim() {
@@ -35,23 +35,23 @@ edit_in_nvim() {
}
install() {
present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2"
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm $2"
}
install_and_launch() {
present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2 && setsid gtk-launch $3"
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm $2 && setsid gtk-launch $3"
}
install_font() {
present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
}
aur_install() {
present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2"
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2"
}
aur_install_and_launch() {
present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2 && setsid gtk-launch $3"
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2 && setsid gtk-launch $3"
}
show_learn_menu() {
@@ -381,7 +381,7 @@ go_to_menu() {
*remove*) show_remove_menu ;;
*update*) show_update_menu ;;
*system*) show_system_menu ;;
*about*) terminal bash -c 'fastfetch; read -n 1 -s' ;;
*about*) alacritty --class Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' ;;
esac
}

View File

@@ -18,7 +18,7 @@ pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}")
if [[ -n "$pkg_names" ]]; then
# Convert newline-separated selections to space-separated for yay
echo "$pkg_names" | tr '\n' ' ' | xargs yay -Sy --noconfirm
echo "$pkg_names" | tr '\n' ' ' | xargs yay -S --noconfirm
sudo updatedb
omarchy-show-done
fi

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

@@ -0,0 +1,7 @@
#!/bin/bash
IGNORED_PACKAGES_FILE="$OMARCHY_PATH/install/packages.ignored"
if [[ -f $IGNORED_PACKAGES_FILE ]]; then
tr '\r\n' ',' <"$IGNORED_PACKAGES_FILE" | sed 's/,$//'
fi

View File

@@ -14,12 +14,11 @@ fzf_args=(
--color 'pointer:green,marker:green'
)
sudo pacman -Sy
pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}")
if [[ -n "$pkg_names" ]]; then
# Convert newline-separated selections to space-separated for yay
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -Sy --noconfirm
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -S --noconfirm
sudo updatedb
omarchy-show-done
fi

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

@@ -0,0 +1,7 @@
#!/bin/bash
PINNED_PACKAGES_FILE="$OMARCHY_PATH/install/packages.pinned"
if [[ -f $PINNED_PACKAGES_FILE ]]; then
tr '\r\n' ',' <"$PINNED_PACKAGES_FILE" | sed 's/,$//'
fi

3
bin/omarchy-refresh-fastfetch Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-refresh-config fastfetch/config.jsonc

View File

@@ -1,13 +1,18 @@
#!/bin/bash
# Ensure remote is reachable
if ! git -C "$OMARCHY_PATH" ls-remote &>/dev/null; then
echo "Error: Unable to reach remote repository."
# Get remote tag
latest_tag=$(git -C "$OMARCHY_PATH" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1)
if [[ -z "$latest_tag" ]]; then
echo "Error: Could not retrieve latest tag."
exit 1
fi
latest_tag=$(git -C "$OMARCHY_PATH" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1)
# Get local tag
current_tag=$(git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1))
if [[ -z "$current_tag" ]]; then
echo "Error: Could not retrieve current tag."
exit 1
fi
if [[ "$current_tag" != "$latest_tag" ]]; then
echo "Omarchy update available ($latest_tag)"

View File

@@ -1,12 +1,13 @@
#!/bin/bash
echo -e "\e[32m\nUpdate system packages\e[0m"
sudo pacman -Syu --noconfirm
echo
echo "sudo pacman -Syu --noconfirm --ignore \"$(omarchy-pkg-ignored)\""
sudo pacman -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)"
if omarchy-pkg-aur-accessible; then
echo -e "\e[32m\nUpdate AUR packages\e[0m"
yay -Syu --noconfirm
echo "yay -Syu --noconfirm --ignore \"$(omarchy-pkg-ignored)\""
yay -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)"
echo
else
echo -e "\e[31m\nAUR is unavailable (so skipping updates)\e[0m"

View File

@@ -14,7 +14,7 @@ ansi_art=' ▄▄▄
clear
echo -e "\n$ansi_art\n"
sudo pacman -Sy --noconfirm --needed git
sudo pacman -Syu --noconfirm --needed git
# Use custom repo if specified, otherwise default to basecamp/omarchy
OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}"

View File

@@ -63,41 +63,14 @@
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
},
{
"type": "os",
"key": "󰣇 OS",
"keyColor": "yellow"
"type": "command",
"key": "\ue900 OS",
"keyColor": "blue",
"text": "version=$(omarchy-version); echo \"Omarchy $version\""
},
{
"type": "kernel",
"key": "│ ├",
"keyColor": "yellow"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "yellow"
},
{
"type": "shell",
"key": "└ └",
"keyColor": "yellow"
},
"break",
{
"type": "command",
"key": "Ø Omarchy",
"keyColor": "blue",
"text": "version=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null); echo \"$version\""
},
{
"type": "command",
"key": "│ ├󰸌",
"keyColor": "blue",
"text": "theme=$(omarchy-theme-current); echo -e \"$theme \\e[38m●\\e[37m●\\e[36m●\\e[35m●\\e[34m●\\e[33m●\\e[32m●\\e[31m●\""
},
{
"type": "de",
"key": " DE",
"keyColor": "blue"
},
{
@@ -105,29 +78,35 @@
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "de",
"key": " DE",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "packages",
"key": "│ ├󰏖",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue"
},
{
"type": "cursor",
"key": "│ ├",
"keyColor": "blue"
"type": "command",
"key": "│ ├󰸌",
"keyColor": "blue",
"text": "theme=$(omarchy-theme-current); echo -e \"$theme \\e[38m●\\e[37m●\\e[36m●\\e[35m●\\e[34m●\\e[33m●\\e[32m●\\e[31m●\""
},
{
"type": "terminalfont",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "└ └",
"key": "└ └",
"keyColor": "blue"
},
{

View File

@@ -2,7 +2,7 @@
$terminal = uwsm app -- alacritty
$browser = omarchy-launch-browser
bindd = SUPER, return, Terminal, exec, $terminal --working-directory $(omarchy-cmd-terminal-cwd)
bindd = SUPER, return, Terminal, exec, $terminal --working-directory=$(omarchy-cmd-terminal-cwd)
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
bindd = SUPER, B, Browser, exec, $browser
bindd = SUPER, M, Music, exec, uwsm app -- spotify

View File

@@ -46,7 +46,7 @@
"custom/update": {
"format": "",
"exec": "omarchy-update-available",
"on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update",
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update",
"tooltip-format": "Omarchy update available",
"interval": 3600
},

View File

@@ -38,6 +38,7 @@ source $OMARCHY_INSTALL/config/xcompose.sh
source $OMARCHY_INSTALL/config/mise-ruby.sh
source $OMARCHY_INSTALL/config/docker.sh
source $OMARCHY_INSTALL/config/mimetypes.sh
source $OMARCHY_INSTALL/config/localdb.sh
source $OMARCHY_INSTALL/config/hardware/network.sh
source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
source $OMARCHY_INSTALL/config/hardware/bluetooth.sh
@@ -51,11 +52,8 @@ source $OMARCHY_INSTALL/login/plymouth.sh
source $OMARCHY_INSTALL/login/limine-snapper.sh
source $OMARCHY_INSTALL/login/alt-bootloaders.sh
# Updates
sudo updatedb
# Update system packages
sudo pacman -Syu --noconfirm
# Pin bad packages
sudo pacman -U --noconfirm https://pkgs.omarchy.org/x86_64/abseil-cpp-20250512.1-1-x86_64.pkg.tar.zst
# Reboot
clear

View File

@@ -36,7 +36,7 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
fi
# force package database refresh
sudo pacman -Syy
sudo pacman -Syu
# Install packages
PACKAGES_TO_INSTALL=(

2
install/config/localdb.sh Executable file
View File

@@ -0,0 +1,2 @@
# Update localdb so that locate will find everything installed
sudo updatedb

1
install/packages.ignored Normal file
View File

@@ -0,0 +1 @@
abseil-cpp

1
install/packages.pinned Normal file
View File

@@ -0,0 +1 @@
https://pkgs.omarchy.org/x86_64/abseil-cpp-20250512.1-1-x86_64.pkg.tar.zst

13
install/packaging/pins.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/bin/bash
# We pin explicit packages that are bad upstream here
pinned_packages=$(omarchy-pkg-pinned)
if [[ -n $pinned_packages ]]; then
echo -e "\e[32m\nInstall pinned system packages\e[0m"
for pinned in $pinned_packages; do
echo "sudo pacman -U --noconfirm $pinned"
sudo pacman -U --noconfirm $pinned
done
fi

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# Install build tools
sudo pacman -Sy --needed --noconfirm base-devel
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
@@ -30,16 +30,10 @@ if [[ "$(uname -m)" == "x86_64" ]] && [ -z "$DISABLE_CHAOTIC" ]; then
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
# Refresh all repos
sudo pacman -Sy
else
echo -e "Failed to install Chaotic-AUR, so won't include it in pacman config!"
fi
fi
# Allow repository index updates without sudo
sudo tee /etc/sudoers.d/repositories >/dev/null <<EOF
$USER ALL=(ALL) NOPASSWD: /usr/bin/pacman -Sy
EOF
sudo chmod 440 /etc/sudoers.d/repositories
# Refresh all repos
sudo pacman -Syu

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
echo "Replace wofi with walker as the default launcher"
if ! command -v walker &>/dev/null; then
sudo pacman -Sy --noconfirm --needed walker-bin libqalculate
sudo pacman -S --noconfirm --needed walker-bin libqalculate
sudo pacman -Rns --noconfirm wofi
rm -rf ~/.config/wofi

View File

@@ -11,7 +11,7 @@ if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.c
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 -Sy
sudo pacman -Syu
else
echo "Failed to install Chaotic-AUR, so won't include it in pacman config!"
fi

View File

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

View File

@@ -1,4 +1,4 @@
echo "Update and restart Walker to resolve stuck Omarchy menu"
sudo pacman -Sy --noconfirm walker-bin
sudo pacman -Syu --noconfirm walker-bin
omarchy-restart-walker

View File

@@ -11,7 +11,7 @@ set_theme_colors() {
if command -v chromium &>/dev/null; then
sudo pacman -Rns --noconfirm chromium || true
sudo pacman -Sy --noconfirm omarchy-chromium
sudo pacman -S --noconfirm omarchy-chromium
if pgrep -x chromium; then
if gum confirm "Chromium must be restarted. Ready?"; then

View File

@@ -1,3 +1,3 @@
echo "Ensure latest uwsm is installed"
sudo pacman -Sy --noconfirm uwsm
sudo pacman -Syu --noconfirm uwsm

View File

@@ -1,3 +1,5 @@
echo "Use current terminal shell cwd for new terminal working directories"
sed -i 's|bindd = SUPER, return, Terminal, exec, \$terminal|bindd = SUPER, return, Terminal, exec, $terminal --working-directory $(omarchy-cmd-terminal-cwd)|' ~/.config/hypr/bindings.conf
if ! grep -q "working-directory" ~/.config/hypr/bindings.conf; then
sed -i '/bindd = SUPER, return, Terminal, exec, \$terminal/ s|$| --working-directory=$(omarchy-cmd-terminal-cwd)|' ~/.config/hypr/bindings.conf
fi

View File

@@ -1,6 +0,0 @@
echo "Allow pacman -Sy without sudo to easier installs"
sudo tee /etc/sudoers.d/repositories >/dev/null <<EOF
$USER ALL=(ALL) NOPASSWD: /usr/bin/pacman -Sy
EOF
sudo chmod 440 /etc/sudoers.d/repositories

3
migrations/1756208867.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Update fastfetch config"
omarchy-refresh-config fastfetch/config.jsonc

3
migrations/1756284863.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Pin abseil-cpp as the latest package is broken"
sudo pacman -U --noconfirm https://archive.archlinux.org/packages/u/uwsm/uwsm-0.23.0-1-any.pkg.tar.zst

3
migrations/1756300740.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Remove no-longer-needed sudoless package listing updates"
sudo rm -f /etc/sudoers.d/repositories