Compare commits

..

1 Commits

Author SHA1 Message Date
David Heinemeier Hansson
1da249fef6 Suddenly the status indicators were busted on new installations
Don't have time to debug this now, so will have to wait until next
release
2025-08-25 13:27:54 +02:00
160 changed files with 473 additions and 612 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 3; 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

@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting|omarchy' | sort -u fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | sort -u

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,14 +64,13 @@ 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"
;; ;;
symfony) symfony)
echo -e "Installing PHP and Symfony...\n" echo -e "Installing PHP and Symfony...\n"
install_php install_php
omarchy-pkg-add symfony-cli yay -S symfony-cli --noconfirm
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,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

@@ -1,7 +1,8 @@
#!/bin/bash #!/bin/bash
echo "Installing all dependencies..." echo "Installing all dependencies..."
omarchy-pkg-add dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox sudo pacman -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

@@ -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,3 +1,3 @@
#!/bin/bash #!/bin/bash
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@ exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@

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

@@ -7,4 +7,4 @@ google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi*) ;;
*) browser="chromium.desktop" ;; *) browser="chromium.desktop" ;;
esac esac
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}" exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"

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() {
@@ -200,41 +200,32 @@ show_install_menu() {
} }
show_install_service_menu() { show_install_service_menu() {
case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden") in case $(menu "Install" " Dropbox\n Tailscale") 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\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*) 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\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\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
*Claude*) install "Claude Code" "claude-code" ;; *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*) install "LM Studio" "lmstudio" ;; *Studio*) aur_install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" $ollama_pkg ;; *Ollama*) install "Ollama" "ollama" ;;
*Crush*) install "Crush" "crush-bin" ;; *Crush*) aur_install "Crush" "crush-bin" ;;
*opencode*) install "opencode" "opencode-bin" ;; *opencode*) aur_install "opencode" "opencode-bin" ;;
*) show_install_menu ;; *) show_install_menu ;;
esac esac
} }
@@ -324,12 +315,11 @@ show_remove_menu() {
} }
show_update_menu() { show_update_menu() {
case $(menu "Update" " Omarchy\n Config\n󰸌 Themes\n Process\n󰇅 Hardware\n Timezone") in case $(menu "Update" "󰣇 Omarchy\n Config\n󰸌 Themes\n Process\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
@@ -342,7 +332,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_update_menu ;; *) show_main_menu ;;
esac esac
} }
@@ -356,15 +346,7 @@ 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_update_menu ;; *) show_main_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
} }
@@ -395,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*) terminal 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,9 +0,0 @@
#!/bin/bash
for pkg in "$@"; do
if ! pacman -Q "$pkg" &>/dev/null; then
sudo pacman -S --noconfirm "$pkg" || exit 1
fi
done
exit 0

View File

@@ -14,11 +14,12 @@ fzf_args=(
--color 'pointer:green,marker:green' --color 'pointer:green,marker:green'
) )
yay -Sy
pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}") 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

@@ -1,7 +0,0 @@
#!/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,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,7 +0,0 @@
#!/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

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,3 +0,0 @@
#!/bin/bash
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist

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

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

View File

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

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

@@ -3,8 +3,8 @@
ICON_DIR="$HOME/.local/share/applications/icons" ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_DIR="$HOME/.local/share/applications/" DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -eq 0 ]; then if [ "$#" -ne 1 ]; then
# Find all TUIs # Find all web apps
while IFS= read -r -d '' file; do while IFS= read -r -d '' file; do
if grep -q '^Exec=.*alacritty.*-e' "$file"; then if grep -q '^Exec=.*alacritty.*-e' "$file"; then
TUIS+=("$(basename "${file%.desktop}")") TUIS+=("$(basename "${file%.desktop}")")
@@ -14,28 +14,23 @@ if [ "$#" -eq 0 ]; then
if ((${#TUIS[@]})); then if ((${#TUIS[@]})); then
IFS=$'\n' SORTED_TUIS=($(sort <<<"${TUIS[*]}")) IFS=$'\n' SORTED_TUIS=($(sort <<<"${TUIS[*]}"))
unset IFS unset IFS
APP_NAMES_STRING=$(gum choose --no-limit --header "Select TUI to remove..." --selected-prefix="✗ " "${SORTED_TUIS[@]}") APP_NAME=$(gum choose --header "Select TUI to remove..." "${SORTED_TUIS[@]}")
# Convert newline-separated string to array
APP_NAMES=()
while IFS= read -r line; do
[[ -n "$line" ]] && APP_NAMES+=("$line")
done <<< "$APP_NAMES_STRING"
else else
echo "No TUIs to remove." echo "No TUIs to remove."
exit 1 exit 1
fi fi
else else
# Use array to preserve spaces in app names APP_NAME="$1"
APP_NAMES=("$@")
fi fi
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then if [[ -z "$APP_NAME" ]]; then
echo "You must provide TUI names." echo "You must provide TUI name."
exit 1 exit 1
fi fi
for APP_NAME in "${APP_NAMES[@]}"; do rm "$DESKTOP_DIR/$APP_NAME.desktop"
rm -f "$DESKTOP_DIR/$APP_NAME.desktop" rm "$ICON_DIR/$APP_NAME.png"
rm -f "$ICON_DIR/$APP_NAME.png"
echo "Removed $APP_NAME" if [ "$#" -ne 1 ]; then
done echo -e "Removed $APP_NAME\n"
fi

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

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

View File

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

View File

@@ -3,7 +3,7 @@
ICON_DIR="$HOME/.local/share/applications/icons" ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_DIR="$HOME/.local/share/applications/" DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -eq 0 ]; then if [ "$#" -ne 1 ]; then
# Find all web apps # Find all web apps
while IFS= read -r -d '' file; do while IFS= read -r -d '' file; do
if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then
@@ -14,28 +14,23 @@ if [ "$#" -eq 0 ]; then
if ((${#WEB_APPS[@]})); then if ((${#WEB_APPS[@]})); then
IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}")) IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}"))
unset IFS unset IFS
APP_NAMES_STRING=$(gum choose --no-limit --header "Select web app to remove..." --selected-prefix="✗ " "${SORTED_WEB_APPS[@]}") APP_NAME=$(gum choose --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}")
# Convert newline-separated string to array
APP_NAMES=()
while IFS= read -r line; do
[[ -n "$line" ]] && APP_NAMES+=("$line")
done <<< "$APP_NAMES_STRING"
else else
echo "No web apps to remove." echo "No web apps to remove."
exit 1 exit 1
fi fi
else else
# Use array to preserve spaces in app names APP_NAME="$1"
APP_NAMES=("$@")
fi fi
if [[ ${#APP_NAMES[@]} -eq 0 ]]; then if [[ -z "$APP_NAME" ]]; then
echo "You must provide web app names." echo "You must provide web app name."
exit 1 exit 1
fi fi
for APP_NAME in "${APP_NAMES[@]}"; do rm "$DESKTOP_DIR/$APP_NAME.desktop"
rm -f "$DESKTOP_DIR/$APP_NAME.desktop" rm "$ICON_DIR/$APP_NAME.png"
rm -f "$ICON_DIR/$APP_NAME.png"
echo "Removed $APP_NAME" if [ "$#" -ne 1 ]; then
done echo -e "Removed $APP_NAME\n"
fi

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

@@ -63,46 +63,31 @@
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐" "format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
}, },
{ {
"type": "command", "type": "os",
"key": "\ue900 OS", "key": "󰣇 OS",
"keyColor": "blue", "keyColor": "yellow"
"text": "version=$(omarchy-version); echo \"Omarchy $version\""
},
{
"type": "command",
"key": "│ ├󰘬",
"keyColor": "blue",
"text": "branch=$(omarchy-version-branch); echo \"$branch\""
}, },
{ {
"type": "kernel", "type": "kernel",
"key": "│ ├", "key": "│ ├",
"keyColor": "blue" "keyColor": "yellow"
},
{
"type": "wm",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "de",
"key": " DE",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "│ ├",
"keyColor": "blue"
}, },
{ {
"type": "packages", "type": "packages",
"key": "│ ├󰏖", "key": "│ ├󰏖",
"keyColor": "blue" "keyColor": "yellow"
}, },
{ {
"type": "wmtheme", "type": "shell",
"key": "│ ├󰉼", "key": "└ └",
"keyColor": "blue" "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", "type": "command",
@@ -110,9 +95,39 @@
"keyColor": "blue", "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●\"" "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"
},
{
"type": "wm",
"key": "│ ├",
"keyColor": "blue"
},
{
"type": "wmtheme",
"key": "│ ├󰉼",
"keyColor": "blue"
},
{
"type": "icons",
"key": "│ ├󰀻",
"keyColor": "blue"
},
{
"type": "cursor",
"key": "│ ├",
"keyColor": "blue"
},
{ {
"type": "terminalfont", "type": "terminalfont",
"key": "└ └", "key": "│ ├",
"keyColor": "blue"
},
{
"type": "terminal",
"key": "└ └",
"keyColor": "blue" "keyColor": "blue"
}, },
{ {
@@ -126,13 +141,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

@@ -5,7 +5,7 @@
"spacing": 0, "spacing": 0,
"height": 26, "height": 26,
"modules-left": ["custom/omarchy", "hyprland/workspaces"], "modules-left": ["custom/omarchy", "hyprland/workspaces"],
"modules-center": ["clock", "custom/update"], "modules-center": ["group/status-cluster", "clock", "custom/update"],
"modules-right": [ "modules-right": [
"group/tray-expander", "group/tray-expander",
"bluetooth", "bluetooth",
@@ -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
}, },
@@ -72,7 +72,7 @@
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}", "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
"tooltip-format-disconnected": "Disconnected", "tooltip-format-disconnected": "Disconnected",
"interval": 3, "interval": 3,
"spacing": 1, "nospacing": 1,
"on-click": "alacritty --class=Impala -e impala" "on-click": "alacritty --class=Impala -e impala"
}, },
"battery": { "battery": {
@@ -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

@@ -58,6 +58,24 @@ tooltip {
margin-left: 8.75px; margin-left: 8.75px;
} }
#group-status-cluster {
margin-right: 8.75px;
}
#custom-status-dnd,
#custom-status-nightlight,
#custom-status-idle {
min-width: 12px;
margin: 0 2px;
font-size: 10px;
}
#custom-status-dnd.status-dnd,
#custom-status-nightlight.status-nightlight,
#custom-status-idle.status-idle {
opacity: 1;
}
.hidden { .hidden {
opacity: 0; opacity: 0;
} }

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,12 +1,10 @@
# App-specific tweaks # App-specific tweaks
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/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/pip.conf
source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf source = ~/.local/share/omarchy/default/hypr/apps/chromium.conf
source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.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

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

View File

@@ -1,13 +0,0 @@
# Browser types
windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable)
windowrule = tag +firefox-based-browser, class:(Firefox|zen|librewolf)
# Force chromium-based browsers into a tile to deal with --app bug
windowrule = tile, tag:chromium-based-browser
# Only a subtle opacity change, but not for video sites
windowrule = opacity 1 0.97, tag:chromium-based-browser
windowrule = opacity 1 0.97, tag:firefox-based-browser
# Some video sites should never have opacity applied to them
windowrule = opacity 1.0 1.0, initialTitle:(youtube\.com_/|app\.zoom\.us_/wc/home)

View File

@@ -0,0 +1,6 @@
# Force chromium into a tile to deal with --app bug
windowrule = tile, class:^(Chromium)$
# Only slight opacity when unfocused
windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable|Brave-browser|brave-browser)$
windowrule = opacity 1 1, initialTitle:(youtube.com_/|app.zoom.us_/wc/home)

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

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

View File

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

@@ -39,8 +39,8 @@ bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9
bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10
# Tab between workspaces # Tab between workspaces
bindd = SUPER, TAB, Next workspace, workspace, e+1 bind = SUPER, TAB, workspace, e+1
bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 bind = SUPER SHIFT, TAB, workspace, e-1
# Swap active window with the one next to it with SUPER + SHIFT + arrow keys # Swap active window with the one next to it with SUPER + SHIFT + arrow keys
bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l bindd = SUPER SHIFT, left, Swap window to the left, swapwindow, l

View File

@@ -1,6 +1,6 @@
# Menus # Menus
bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…" bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…"
bindd = SUPER CTRL, E, Emoji picker, exec, walker -m Emojis bindd = SUPER CTRL, E, Show clipboard, exec, walker -m Emojis
bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system

View File

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

@@ -1,30 +0,0 @@
# 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
OMARCHY_PATH="$HOME/.local/share/omarchy" export PATH="$HOME/.local/share/omarchy/bin:$PATH"
OMARCHY_INSTALL="$OMARCHY_PATH/install" OMARCHY_INSTALL=~/.local/share/omarchy/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/pacman.sh source $OMARCHY_INSTALL/preflight/repositories.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
@@ -38,8 +38,6 @@ source $OMARCHY_INSTALL/config/xcompose.sh
source $OMARCHY_INSTALL/config/mise-ruby.sh 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/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
@@ -47,12 +45,28 @@ 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
# Finishing # Updates
source $OMARCHY_INSTALL/reboot.sh sudo updatedb
# Update system packages
sudo pacman -Syu --noconfirm
# Reboot
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

@@ -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

@@ -1,7 +0,0 @@
#!/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,7 +1,11 @@
#!/bin/bash #!/bin/bash
# Ensure iwd service will be started # Install iwd explicitly if it wasn't included in archinstall
sudo systemctl enable iwd.service # This can happen if archinstall used ethernet
if ! command -v iwctl &>/dev/null; then
sudo pacman -S --noconfirm --needed iwd
chrootable_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

@@ -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=(

View File

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

View File

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

@@ -85,8 +85,7 @@ EOF
fi fi
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot # Add UKI entry to UEFI machines to skip bootloader showing on normal boot
if [ -n "$EFI" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy && if [ -n "$EFI" ] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy; then
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends"; then
sudo efibootmgr --create \ sudo efibootmgr --create \
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \ --disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \ --part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \

View File

@@ -1,9 +1,6 @@
#!/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 \
@@ -29,7 +26,6 @@ sudo pacman -S --noconfirm --needed \
fcitx5-qt \ fcitx5-qt \
fd \ fd \
ffmpegthumbnailer \ ffmpegthumbnailer \
fontconfig \
fzf \ fzf \
gcc14 \ gcc14 \
github-cli \ github-cli \
@@ -38,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 \
@@ -50,7 +45,6 @@ sudo pacman -S --noconfirm --needed \
impala \ impala \
imv \ imv \
inetutils \ inetutils \
iwd \
jq \ jq \
kdenlive \ kdenlive \
kvantum-qt5 \ kvantum-qt5 \
@@ -88,7 +82,6 @@ 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 \
@@ -102,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 \
@@ -119,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 \

15
install/packaging/asdcontrol.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/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

View File

@@ -1,13 +0,0 @@
#!/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,11 +0,0 @@
#!/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

@@ -0,0 +1,45 @@
#!/bin/bash
# Install build tools
sudo pacman -Sy --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 as first choice
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
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
# 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/binpacman -Sy
EOF
sudo chmod 440 /etc/sudoers.d/repositories

View File

@@ -24,11 +24,7 @@ catch_errors() {
echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ " echo " ▀▀▀▀▀▀▀ ▀ ▀ ▀▀▀ ▀ ▀▀▀▀▀▀ "
echo " " echo " "
if command -v gum >/dev/null && gum confirm "Retry installation?"; then echo "You can retry by running: bash ~/.local/share/omarchy/install.sh"
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

View File

@@ -1,14 +0,0 @@
#!/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,9 +1,7 @@
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 -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

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