Compare commits

..

2 Commits

Author SHA1 Message Date
David Heinemeier Hansson
968078c6e0 Merge branch 'dev' into pinned-packages 2025-08-27 12:03:16 +02:00
David Heinemeier Hansson
9a5f3f9cee Add system to pin and ignore bad packages
To deal with the abseil-cpp issue
2025-08-27 12:02:34 +02:00
131 changed files with 292 additions and 356 deletions

View File

@@ -6,13 +6,7 @@ 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')" \ upower -i $(upower -e | grep 'BAT') | grep -E "percentage" | grep -o '[0-9]\+%' | sed 's/%//'
| awk -F: '/percentage/ {
gsub(/[%[:space:]]/, "", $2);
val=$2;
printf("%d\n", (val+0.5))
exit
}'
} }
get_battery_state() { get_battery_state() {

View File

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

View File

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

View File

@@ -1,13 +1,5 @@
#!/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 \
@@ -15,8 +7,10 @@ while true; do
"$effect" & "$effect" &
while pgrep -x tte >/dev/null; do while pgrep -x tte >/dev/null; do
if read -n 1 -t 2; then if read -n 1 -t 0.01; then
exit_screensaver pkill -x tte 2>/dev/null
pkill -f "alacritty --class Screensaver" 2>/dev/null
exit 0
fi fi
done done
done done

View File

@@ -6,7 +6,7 @@ if [[ -z "$1" ]]; then
fi fi
install_php() { install_php() {
sudo pacman -S php composer php-sqlite --noconfirm sudo pacman -Sy php composer php-sqlite --noconfirm
# Install Path for Composer # Install Path for Composer
if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then
@@ -33,11 +33,6 @@ install_php() {
done done
} }
install_node() {
echo -e "Installing Node.js...\n"
mise use --global node@lts
}
case "$1" in case "$1" in
ruby) ruby)
echo -e "Installing Ruby on Rails...\n" echo -e "Installing Ruby on Rails...\n"
@@ -47,7 +42,8 @@ ruby)
echo -e "\nYou can now run: rails new myproject" echo -e "\nYou can now run: rails new myproject"
;; ;;
node) node)
install_node echo -e "Installing Node.js...\n"
mise use --global node@lts
;; ;;
bun) bun)
echo -e "Installing Bun...\n" echo -e "Installing Bun...\n"
@@ -68,7 +64,6 @@ php)
laravel) laravel)
echo -e "Installing PHP and Laravel...\n" echo -e "Installing PHP and Laravel...\n"
install_php install_php
install_node
composer global require laravel/installer composer global require laravel/installer
echo -e "\nYou can now run: laravel new myproject" echo -e "\nYou can now run: laravel new myproject"
;; ;;

View File

@@ -13,6 +13,4 @@ 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

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

View File

@@ -1,4 +0,0 @@
#!/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() { present_terminal() {
omarchy-launch-floating-terminal-with-presentation $1 alacritty --class Omarchy -e bash -c "omarchy-show-logo; eval \"$1\"; omarchy-show-done;"
} }
edit_in_nvim() { edit_in_nvim() {
@@ -35,23 +35,23 @@ edit_in_nvim() {
} }
install() { install() {
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm $2" present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2"
} }
install_and_launch() { install_and_launch() {
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm $2 && setsid gtk-launch $3" present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm $2 && setsid gtk-launch $3"
} }
install_font() { install_font() {
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'" present_terminal "echo 'Installing $1...'; sudo pacman -Sy --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
} }
aur_install() { aur_install() {
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2" present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2"
} }
aur_install_and_launch() { aur_install_and_launch() {
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2 && setsid gtk-launch $3" present_terminal "echo 'Installing $1 from AUR...'; yay -Sy --noconfirm $2 && setsid gtk-launch $3"
} }
show_learn_menu() { show_learn_menu() {
@@ -208,30 +208,22 @@ show_install_service_menu() {
} }
show_install_editor_menu() { show_install_editor_menu() {
case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix\n Emacs") in case $(menu "Install" " VSCode\n Cursor [AUR]\n Zed\n Sublime Text\n Helix") 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*) aur_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() {
ollama_pkg=$( case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in
(command -v nvidia-smi &>/dev/null && echo ollama-cuda) ||
(command -v rocminfo &>/dev/null && echo ollama-rocm) ||
echo ollama
)
case $(menu "Install" "󱚤 Claude Code [AUR]\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio [AUR]\n󱚤 Ollama\n󱚤 Crush [AUR]\n󱚤 opencode [AUR]") in
*Claude*) aur_install "Claude Code" "claude-code" ;; *Claude*) aur_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*) aur_install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" $ollama_pkg ;; *Ollama*) install "Ollama" "ollama" ;;
*Crush*) aur_install "Crush" "crush-bin" ;; *Crush*) aur_install "Crush" "crush-bin" ;;
*opencode*) aur_install "opencode" "opencode-bin" ;; *opencode*) aur_install "opencode" "opencode-bin" ;;
*) show_install_menu ;; *) show_install_menu ;;
@@ -385,12 +377,11 @@ go_to_menu() {
*screenrecord*) show_screenrecord_menu ;; *screenrecord*) show_screenrecord_menu ;;
*toggle*) show_toggle_menu ;; *toggle*) show_toggle_menu ;;
*setup*) show_setup_menu ;; *setup*) show_setup_menu ;;
*power*) show_setup_power_menu ;;
*install*) show_install_menu ;; *install*) show_install_menu ;;
*remove*) show_remove_menu ;; *remove*) show_remove_menu ;;
*update*) show_update_menu ;; *update*) show_update_menu ;;
*about*) alacritty --class Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' ;;
*system*) show_system_menu ;; *system*) show_system_menu ;;
*about*) alacritty --class Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' ;;
esac esac
} }

View File

@@ -1,27 +1,18 @@
#!/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" && ! -f "$STATE_DIR/skipped/$filename" ]]; then if [[ ! -f "$STATE_DIR/$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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
# Resetting sudo lockout for user echo "Resetting sudo lockout for user: $USER"
su -c "faillock --reset --user $USER" su -c "faillock --reset --user $USER"

View File

@@ -16,15 +16,9 @@ case "$COMMAND" in
create) create)
DESC="$(omarchy-version)" DESC="$(omarchy-version)"
echo -e "\e[32mCreate system snapshot\e[0m" for config in root home; do
# Get existing snapper config names from CSV output
mapfile -t CONFIGS < <(sudo snapper --csvout list-configs | awk -F, 'NR>1 {print $1}')
for config in "${CONFIGS[@]}"; do
sudo snapper -c "$config" create -c number -d "$DESC" sudo snapper -c "$config" create -c number -d "$DESC"
done done
echo
;; ;;
restore) restore)
sudo limine-snapper-restore sudo limine-snapper-restore

View File

@@ -1,18 +1,13 @@
#!/bin/bash #!/bin/bash
# Get remote tag # Ensure remote is reachable
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 ! git -C "$OMARCHY_PATH" ls-remote &>/dev/null; then
if [[ -z "$latest_tag" ]]; then echo "Error: Unable to reach remote repository."
echo "Error: Could not retrieve latest tag."
exit 1 exit 1
fi fi
# Get local 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)
current_tag=$(git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1)) 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 if [[ "$current_tag" != "$latest_tag" ]]; then
echo "Omarchy update available ($latest_tag)" echo "Omarchy update available ($latest_tag)"

View File

@@ -6,8 +6,7 @@ sudo pacman -Syu --noconfirm --ignore "$(omarchy-pkg-ignored)"
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 -Sua --noconfirm --ignore \"$(omarchy-pkg-ignored)\"" yay -Syu --noconfirm
yay -Sua --noconfirm --ignore "$(omarchy-pkg-ignored)"
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"

View File

@@ -1,3 +0,0 @@
#!/bin/bash
echo $(git -C "$OMARCHY_PATH" rev-parse --abbrev-ref HEAD)

View File

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

View File

@@ -13,6 +13,7 @@ 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

@@ -66,13 +66,7 @@
"type": "command", "type": "command",
"key": "\ue900 OS", "key": "\ue900 OS",
"keyColor": "blue", "keyColor": "blue",
"text": "version=$(omarchy-version); echo \"Omarchy $version\"" "text": "version=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null); echo \"Omarchy $version\""
},
{
"type": "command",
"key": "│ ├󰘬",
"keyColor": "blue",
"text": "branch=$(omarchy-version-branch); echo \"$branch\""
}, },
{ {
"type": "kernel", "type": "kernel",
@@ -126,13 +120,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

@@ -2,7 +2,7 @@
$terminal = uwsm app -- alacritty $terminal = uwsm app -- alacritty
$browser = omarchy-launch-browser $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, F, File manager, exec, uwsm app -- nautilus --new-window
bindd = SUPER, B, Browser, exec, $browser bindd = SUPER, B, Browser, exec, $browser
bindd = SUPER, M, Music, exec, uwsm app -- spotify bindd = SUPER, M, Music, exec, uwsm app -- spotify
@@ -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

@@ -2,6 +2,7 @@ general {
lock_cmd = omarchy-lock-screen # lock screen and 1password lock_cmd = omarchy-lock-screen # lock screen and 1password
before_sleep_cmd = loginctl lock-session # lock before suspend. before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking
inhibit_sleep = 3 # wait until screen is locked inhibit_sleep = 3 # wait until screen is locked
} }

View File

@@ -46,7 +46,7 @@
"custom/update": { "custom/update": {
"format": "", "format": "",
"exec": "omarchy-update-available", "exec": "omarchy-update-available",
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-update", "on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update",
"tooltip-format": "Omarchy update available", "tooltip-format": "Omarchy update available",
"interval": 3600 "interval": 3600
}, },
@@ -88,7 +88,6 @@
"tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%", "tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
"tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%", "tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
"interval": 5, "interval": 5,
"on-click": "omarchy-menu power",
"states": { "states": {
"warning": 20, "warning": 20,
"critical": 10 "critical": 10

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,3 +65,4 @@ img2png() {
-define png:exclude-chunk=all \ -define png:exclude-chunk=all \
"${1%.*}.png" "${1%.*}.png"
} }

View File

@@ -1,6 +1,10 @@
# 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

@@ -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|org.gnome.Nautilus), title:^(Open.*Files?|Open Folder|Save.*Files?|Save.*As|Save|All Files) windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors), title:^(Open.*Files?|Save.*Files?|Save.*As|All Files|Save)
# Fullscreen screensaver # Fullscreen screensaver
windowrule = fullscreen, class:Screensaver windowrule = fullscreen, class:Screensaver

View File

@@ -7,8 +7,5 @@ windowrule = opacity 0.97 0.9, class:.*
# Fix some dragging issues with XWayland # Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# Prevent screensaver/lock while running apps fullscreen
windowrule = idleinhibit fullscreen, class:.*
# App-specific tweaks # App-specific tweaks
source = ~/.local/share/omarchy/default/hypr/apps.conf source = ~/.local/share/omarchy/default/hypr/apps.conf

View File

@@ -22,6 +22,7 @@ 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
source $OMARCHY_INSTALL/packaging/tuis.sh source $OMARCHY_INSTALL/packaging/tuis.sh
source $OMARCHY_INSTALL/packaging/pins.sh
# Configuration # Configuration
source $OMARCHY_INSTALL/config/config.sh source $OMARCHY_INSTALL/config/config.sh

View File

@@ -2,7 +2,7 @@
# Copy over the keyboard layout that's been set in Arch during install to Hyprland # Copy over the keyboard layout that's been set in Arch during install to Hyprland
conf="/etc/vconsole.conf" conf="/etc/vconsole.conf"
hyprconf="$HOME/.config/hypr/input.conf" hyprconf="$HOME/.config/hypr/hyprland.conf"
layout=$(grep '^XKBLAYOUT=' "$conf" | cut -d= -f2 | tr -d '"') layout=$(grep '^XKBLAYOUT=' "$conf" | cut -d= -f2 | tr -d '"')
variant=$(grep '^XKBVARIANT=' "$conf" | cut -d= -f2 | tr -d '"') variant=$(grep '^XKBVARIANT=' "$conf" | cut -d= -f2 | tr -d '"')

View File

@@ -4,7 +4,7 @@
# This can happen if archinstall used ethernet # This can happen if archinstall used ethernet
if ! command -v iwctl &>/dev/null; then if ! command -v iwctl &>/dev/null; then
sudo pacman -S --noconfirm --needed iwd sudo pacman -S --noconfirm --needed iwd
sudo systemctl enable iwd.service chrootable_systemctl_enable iwd.service
fi fi
# Prevent systemd-networkd-wait-online timeout on boot # Prevent systemd-networkd-wait-online timeout on boot

View File

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

0
install/config/localdb.sh Executable file → Normal file
View File

View File

@@ -4,11 +4,6 @@ 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

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

View File

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

View File

@@ -34,7 +34,6 @@ 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 \
@@ -96,8 +95,9 @@ sudo pacman -S --noconfirm --needed \
tldr \ tldr \
tree-sitter-cli \ tree-sitter-cli \
ttf-cascadia-mono-nerd \ ttf-cascadia-mono-nerd \
ttf-font-awesome \
ttf-ia-writer \ ttf-ia-writer \
ttf-jetbrains-mono-nerd \ ttf-jetbrains-mono \
typora \ typora \
tzupdate \ tzupdate \
ufw \ ufw \
@@ -113,7 +113,6 @@ sudo pacman -S --noconfirm --needed \
wl-clip-persist \ wl-clip-persist \
wl-clipboard \ wl-clipboard \
wl-screenrec \ wl-screenrec \
woff2-font-awesome \
xdg-desktop-portal-gtk \ xdg-desktop-portal-gtk \
xdg-desktop-portal-hyprland \ xdg-desktop-portal-hyprland \
xmlstarlet \ xmlstarlet \

0
install/packaging/pins.sh Executable file → Normal file
View File

View File

@@ -1,29 +1,45 @@
#!/bin/bash #!/bin/bash
# Install build tools # Install build tools
sudo pacman -S --needed --noconfirm base-devel sudo pacman -Sy --needed --noconfirm base-devel
# Add fun and color and verbosity to the pacman installer # Add fun and color and verbosity to the pacman installer
if ! grep -q "ILoveCandy" /etc/pacman.conf; then if ! grep -q "ILoveCandy" /etc/pacman.conf; then
sudo sed -i '/^\[options\]/a Color\nILoveCandy\nVerbosePkgLists' /etc/pacman.conf sudo sed -i '/^\[options\]/a Color\nILoveCandy\nVerbosePkgLists' /etc/pacman.conf
fi fi
# Add the Omarchy repository # Add the Omarchy repository as first choice
if ! grep -q "omarchy" /etc/pacman.conf; then if ! grep -q "omarchy" /etc/pacman.conf; then
sudo tee -a /etc/pacman.conf >/dev/null <<'EOF' sudo sed -i '/^\[core\]/i [omarchy]\nSigLevel = Optional TrustAll\nServer = https:\/\/pkgs.omarchy.org\/$arch\/\n' /etc/pacman.conf
[omarchy]
SigLevel = Optional TrustAll
Server = https://pkgs.omarchy.org/$arch
EOF
fi fi
# Set mirrors to global ones only # Set mirrors to global ones only
sudo tee /etc/pacman.d/mirrorlist >/dev/null <<'EOF' echo -e "Server = https://geo.mirror.pkgbuild.com/\$repo/os/\$arch\nServer = https://mirror.rackspace.com/archlinux/\$repo/os/\$arch" |
Server = https://mirror.omarchy.org/$repo/os/$arch sudo tee /etc/pacman.d/mirrorlist >/dev/null
Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch
EOF
# Refresh all repos # Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages
sudo pacman -Syu --noconfirm 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
# 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

View File

@@ -1,7 +1,7 @@
echo "Add Omarchy Package Repository" echo "Add Omarchy Package Repository"
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 -Sy
fi fi

View File

@@ -1,3 +1,5 @@
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
omarchy-pkg-add bat # Add missing installation of bat
sudo pacman -S --noconfirm --needed bat
fi

View File

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

View File

@@ -1,9 +1,8 @@
echo "Switching from vlc to mpv for the default video player" echo "Switching from vlc to mpv for the default video player"
if omarchy-cmd-missing mpv; then if ! command -v mpv &>/dev/null; then
omarchy-pkg-drop vlc sudo pacman -Rns --noconfirm 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,3 +1,5 @@
echo "Add LocalSend as new default application" echo "Add LocalSend as new default application"
omarchy-pkg-add localsend if ! command -v localsend &>/dev/null; then
sudo pacman -S --noconfirm --needed localsend
fi

View File

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

View File

@@ -1,3 +1,5 @@
echo "Install bash-completion" echo "Install bash-completion"
omarchy-pkg-add bash-completion if ! pacman -Q bash-completion &>/dev/null; then
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
if omarchy-cmd-missing impala; then sudo pacman -S --noconfirm --needed impala
omarchy-pkg-add impala echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar."
omarchy-refresh-waybar omarchy-refresh-waybar
fi fi

View File

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

View File

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

View File

@@ -1,5 +1,4 @@
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,5 +1,4 @@
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,5 +1,7 @@
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
xdg-settings set default-web-browser chromium.desktop cp ~/.local/share/omarchy/applications/chromium.desktop ~/.local/share/applications/
xdg-mime default chromium.desktop x-scheme-handler/http xdg-settings set default-web-browser chromium.desktop
xdg-mime default chromium.desktop x-scheme-handler/https xdg-mime default chromium.desktop x-scheme-handler/http
xdg-mime default chromium.desktop x-scheme-handler/https
fi

View File

@@ -1,5 +1,4 @@
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,6 +1,5 @@
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
@@ -15,5 +14,5 @@ if omarchy-cmd-missing uwsm; 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 $OMARCHY_PATH/install/login/plymouth.sh source ~/.local/share/omarchy/install/login/plymouth.sh
fi fi

View File

@@ -1,4 +1,3 @@
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,3 +1,5 @@
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"
omarchy-pkg-add docker-buildx if ! docker buildx version &>/dev/null; then
sudo pacman -S --noconfirm --needed docker-buildx
fi

View File

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

View File

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

View File

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

View File

@@ -1,3 +1,2 @@
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,3 +1,5 @@
echo "Install satty for the new screenshot flow" echo "Install satty for the new screenshot flow"
omarchy-pkg-add satty if ! command -v satty &>/dev/null; then
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 omarchy-cmd-missing walker; then if ! command -v walker &>/dev/null; then
omarchy-pkg-add walker-bin libqalculate sudo pacman -Sy --noconfirm --needed walker-bin libqalculate
omarchy-pkg-drop wofi sudo pacman -Rns --noconfirm 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 omarchy-cmd-missing swayosd-server; then if ! command -v swayosd-server &>/dev/null; then
omarchy-pkg-add swayosd sudo pacman -S --noconfirm --needed swayosd
setsid uwsm app -- swayosd-server &>/dev/null & setsid uwsm app -- swayosd-server &>/dev/null &
fi fi

View File

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

18
migrations/1753352057.sh Executable file
View File

@@ -0,0 +1,18 @@
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 -Sy
else
echo "Failed to install Chaotic-AUR, so won't include it in pacman config!"
fi
fi

5
migrations/1753468218.sh Normal file
View File

@@ -0,0 +1,5 @@
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,6 +1,5 @@
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
if omarchy-cmd-missing tzupdate; then bash ~/.local/share/omarchy/install/config/timezones.sh
$OMARCHY_PATH/install/config/timezones.sh
omarchy-refresh-waybar omarchy-refresh-waybar
fi fi

4
migrations/1753558374.sh Normal file
View File

@@ -0,0 +1,4 @@
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

4
migrations/1753998861.sh Normal file
View File

@@ -0,0 +1,4 @@
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

5
migrations/1754208139.sh Normal file
View File

@@ -0,0 +1,5 @@
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

5
migrations/1754215439.sh Normal file
View File

@@ -0,0 +1,5 @@
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
omarchy-pkg-add avahi nss-mdns sudo pacman -S --noconfirm 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
omarchy-pkg-add cups-browsed sudo pacman -S --noconfirm 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,3 +1,2 @@
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

2
migrations/1754228679.sh Normal file
View File

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

View File

@@ -1,3 +1,2 @@
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,5 +1,4 @@
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

2
migrations/1754305112.sh Normal file
View File

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

View File

@@ -1,3 +1,2 @@
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"
omarchy-pkg-add xmlstarlet sudo pacman -Sy --noconfirm --needed xmlstarlet

View File

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

3
migrations/1754666868.sh Normal file
View File

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

View File

@@ -1,3 +1,4 @@
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

5
migrations/1754679822.sh Normal file
View File

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

2
migrations/1754828680.sh Normal file
View File

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

View File

@@ -1,5 +1,4 @@
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,5 +1,4 @@
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,3 +1,2 @@
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,23 +1,21 @@
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"}}'
NEW_CONFIG='{ NEW_CONFIG='{
"log-driver": "json-file", "log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "5" }, "log-opts": { "max-size": "10m", "max-file": "5" },
"dns": ["172.17.0.1"], "dns": ["172.17.0.1"],
"bip": "172.17.0.1/16" "bip": "172.17.0.1/16"
}' }'
if grep -Fq "$ORIGINAL_CONFIG" /etc/docker/daemon.json 2>/dev/null; then if grep -Fq "$ORIGINAL_CONFIG" /etc/docker/daemon.json 2>/dev/null; then
echo "$NEW_CONFIG" | sudo tee /etc/docker/daemon.json >/dev/null 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 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

View File

@@ -28,4 +28,5 @@ 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

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