Merge pull request #500 from basecamp/dev

Omarchy v1.11.0
This commit is contained in:
David Heinemeier Hansson 2025-08-05 17:23:23 +02:00 committed by GitHub
commit 1746c7556c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
84 changed files with 644 additions and 404 deletions

View File

@ -1,10 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Omarchy
Comment=Omarchy TUI
Exec=alacritty --class=Omarchy --title=Omarchy -e bash -c '$HOME/.local/share/omarchy/bin/omarchy'
Icon=Arch
Terminal=false
Categories=System;Utility;
StartupNotify=false

View File

@ -1,132 +0,0 @@
#!/bin/bash
OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null)
PATH="$PATH:$HOME/.local/share/omarchy/bin"
show_ascii_art() {
clear
tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand
echo " $OMARCHY_VERSION"
}
main_menu() {
show_ascii_art
local options=("Theme" "Font" "Setup" "Update" "Manual" "Exit")
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "") || exit 0
case "$choice" in
Theme) theme_menu ;;
Font)
omarchy-font-menu
ack_command
main_menu
;;
Update)
omarchy-update
main_menu
;;
Setup) setup_menu ;;
Manual) open_manual ;;
Exit) clear && exit 0 ;;
esac
}
theme_menu() {
show_ascii_art
local menu=("Pick" "Install" "Update" "Remove" "Back")
local commands=(
"omarchy-theme-menu"
"install_theme_prompt"
"omarchy-theme-update"
"remove_theme_prompt"
"main_menu"
)
local choice
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Theme") || main_menu
for i in "${!menu[@]}"; do
if [[ "${menu[$i]}" == "$choice" ]]; then
if [[ "$choice" == "Back" ]]; then
main_menu
else
eval "${commands[$i]}"
ack_command
main_menu
fi
break
fi
done
}
install_theme_prompt() {
local url
url=$(gum input --placeholder="Git repo URL for theme" --header="")
if [[ -n "$url" ]]; then
omarchy-theme-install "$url"
fi
theme_menu
}
remove_theme_prompt() {
local theme
theme=$(gum input --placeholder="Theme name" --header="")
if [[ -n "$theme" ]]; then
omarchy-theme-remove "$theme"
fi
theme_menu
}
setup_menu() {
show_ascii_art
local menu=("Dropbox" "Steam" "Docker DBs" "Fingerprint sensor" "Fido2 device" "Back")
local commands=(
"omarchy-setup-dropbox"
"omarchy-setup-steam"
"setup_docker_dbs"
"omarchy-setup-fingerprint"
"omarchy-setup-fido2"
"main_menu"
)
local choice
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Setup") || main_menu
for i in "${!menu[@]}"; do
if [[ "${menu[$i]}" == "$choice" ]]; then
if [[ "$choice" == "Back" ]]; then
main_menu
else
eval "${commands[$i]}"
ack_command
main_menu
fi
break
fi
done
}
setup_docker_dbs() {
options=("MariaDB" "MySQL" "Redis" "PostgreSQL")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
if [[ -n "$choices" ]]; then
for db in $choices; do
case $db in
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
esac
done
fi
main_menu
}
open_manual() {
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
clear
}
ack_command() {
gum spin --spinner "globe" --title "Done!" -- sleep 1
}
main_menu

View File

@ -1,7 +1,5 @@
#!/bin/bash #!/bin/bash
# Set recorder based on GPU
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs [[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}"

View File

@ -4,4 +4,3 @@ cd ~/.local/share/omarchy
migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh" migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh"
touch $migration_file touch $migration_file
nvim $migration_file nvim $migration_file
echo -e "Run with:\nsource $migration_file"

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
font=$( font=$(
fc-list :spacing=100 -f "%{family[0]}\n" | fc-list :spacing=100 -f "%{family[0]}\n" |
grep -v -i -E 'emoji|signwriting' | grep -v -i -E 'emoji|signwriting' |
@ -10,3 +12,5 @@ font=$(
if [[ -n "$font" ]]; then if [[ -n "$font" ]]; then
sed -i "s/family = \".*\"/family = \"$font\"/g" ~/.config/alacritty/alacritty.toml sed -i "s/family = \".*\"/family = \"$font\"/g" ~/.config/alacritty/alacritty.toml
fi fi
~/.local/share/omarchy/bin/omarchy-show-done

208
bin/omarchy-menu Executable file
View File

@ -0,0 +1,208 @@
#!/bin/bash
OMARCHY_BIN_PATH=~/.local/share/omarchy/bin
menu() {
echo -e "$2" | walker --dmenu --theme dmenu_250 -p "$1…"
}
terminal() {
alacritty --class Omarchy -e $1
}
present_terminal() {
alacritty --class Omarchy -e bash -c "~/.local/share/omarchy/bin/omarchy-show-logo; eval \"$1\"; ~/.local/share/omarchy/bin/omarchy-show-done;"
}
edit_in_nvim() {
notify-send "Editing config file" "$1"
alacritty -e nvim "$1"
}
show_learn_menu() {
case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n Neovim\n󱆃 Bash") in
*Keybindings*) $OMARCHY_BIN_PATH/omarchy-menu-keybindings ;;
*Omarchy*) setsid chromium --new-window --app="https://manuals.omamix.org/2/the-omarchy-manual" & ;;
*Hyprland*) setsid chromium --new-window --app="https://wiki.hypr.land/" & ;;
*Arch*) setsid chromium --new-window --app="https://wiki.archlinux.org/title/Main_page" & ;;
*Bash*) setsid chromium --new-window --app="https://devhints.io/bash" & ;;
*Neovim*) setsid chromium --new-window --app="https://www.lazyvim.org/keymaps" & ;;
*) show_main_menu ;;
esac
}
show_style_menu() {
case $(menu "Style" "󰸌 Theme\n Font\n Background") in
*Theme*) show_theme_menu ;;
*Font*) terminal $OMARCHY_BIN_PATH/omarchy-font-menu ;;
*Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;;
*) show_main_menu ;;
esac
}
show_theme_menu() {
theme=$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
else
$OMARCHY_BIN_PATH/omarchy-theme-set "$theme"
fi
}
show_capture_menu() {
case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in
*Screenshot*) show_screenshot_menu ;;
*Screenrecord*) show_screenrecord_menu ;;
*Color*) pkill hyprpicker || hyprpicker -a ;;
*) show_main_menu ;;
esac
}
show_screenshot_menu() {
case $(menu "Screenshot" " Region\n Window\n Display") in
*Region*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot ;;
*Window*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot window ;;
*Display*) $OMARCHY_BIN_PATH/omarchy-cmd-screenshot output ;;
*) show_capture_menu ;;
esac
}
show_screenrecord_menu() {
case $(menu "Screenrecord" " Region\n Display") in
*Region*) $OMARCHY_BIN_PATH/omarchy-cmd-screenrecord ;;
*Display*) $OMARCHY_BIN_PATH/omarchy-cmd-screenrecord output ;;
*) show_capture_menu ;;
esac
}
show_toggle_menu() {
case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar") in
*Screensaver*) $OMARCHY_BIN_PATH/omarchy-launch-screensaver ;;
*Nightlight*) $OMARCHY_BIN_PATH/omarchy-toggle-nightlight ;;
*Idle*) $OMARCHY_BIN_PATH/omarchy-toggle-idle ;;
*Bar*) pkill -SIGUSR1 waybar ;;
*) show_main_menu ;;
esac
}
show_setup_menu() {
local options=" Audio\n Wifi\n󰂯 Bluetooth\n󰍹 Monitors"
[ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings"
[ -f ~/.config/hypr/input.conf ] && options="$options\n Input"
options="$options\n Configs\n󰈷 Fingerprint\n Fido2"
case $(menu "Setup" "$options") in
*Audio*) alacritty --class=Wiremix -e wiremix ;;
*Wifi*) alacritty --class=Impala -e impala ;;
*Bluetooth*) blueberry ;;
*Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;;
*Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;;
*Input*) edit_in_nvim ~/.config/hypr/input.conf ;;
*Configs*) show_setup_configs_menu ;;
*Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;;
*Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;;
*) show_main_menu ;;
esac
}
show_setup_configs_menu() {
case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar\n󰞅 XCompose") in
*Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;;
*Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && ~/.local/share/omarchy/bin/omarchy-restart-hypridle ;;
*Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;;
*Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && ~/.local/share/omarchy/bin/omarchy-restart-hyprsunset ;;
*Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && ~/.local/share/omarchy/bin/omarchy-restart-swayosd ;;
*Walker*) edit_in_nvim ~/.config/walker/config.toml && ~/.local/share/omarchy/bin/omarchy-restart-walker ;;
*Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && ~/.local/share/omarchy/bin/omarchy-restart-waybar ;;
*XCompose*) edit_in_nvim ~/.XCompose && ~/.local/share/omarchy/bin/omarchy-restart-xcompose ;;
*) show_main_menu ;;
esac
}
show_install_menu() {
case $(menu "Install" "󰣇 Package\n Web App\n󰸌 Theme\n Background\n Dropbox\n Steam\n Docker DBs") in
*Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-install ;;
*Web*) terminal $OMARCHY_BIN_PATH/omarchy-webapp-install ;;
*Theme*) terminal $OMARCHY_BIN_PATH/omarchy-theme-install ;;
*Background*) nautilus ~/.config/omarchy/current/theme/backgrounds ;;
*Dropbox*) terminal $OMARCHY_BIN_PATH/omarchy-setup-dropbox ;;
*Steam*) terminal $OMARCHY_BIN_PATH/omarchy-setup-steam ;;
*Docker*) terminal $OMARCHY_BIN_PATH/omarchy-setup-docker-dbs ;;
*) show_main_menu ;;
esac
}
show_remove_menu() {
case $(menu "Remove" "󰣇 Package\n Web App\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in
*Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-remove ;;
*Web*) terminal $OMARCHY_BIN_PATH/omarchy-webapp-remove ;;
*Theme*) present_terminal $OMARCHY_BIN_PATH/omarchy-theme-remove ;;
*Fingerprint*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fingerprint --remove" ;;
*Fido2*) terminal "$OMARCHY_BIN_PATH/omarchy-setup-fido2 --remove" ;;
*) show_main_menu ;;
esac
}
show_update_menu() {
case $(menu "Update" "󰣇 Omarchy\n Configs\n󰸌 Themes\n Timezone") in
*Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;;
*Configs*) show_update_configs_menu ;;
*Themes*) terminal $OMARCHY_BIN_PATH/omarchy-theme-update ;;
*Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;;
*) show_main_menu ;;
esac
}
show_update_configs_menu() {
case $(menu "Use default config" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n󱣴 Plymouth\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in
*Hyprland*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprland ;;
*Hypridle*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hypridle ;;
*Hyprlock*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprlock ;;
*Hyprsunset*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-hyprsunset ;;
*Plymouth*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-plymouth ;;
*Swayosd*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-swayosd ;;
*Walker*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-walker ;;
*Waybar*) present_terminal $OMARCHY_BIN_PATH/omarchy-refresh-waybar ;;
*) show_main_menu ;;
esac
}
show_system_menu() {
case $(menu "System" " Lock\n󰤄 Suspend\n Relaunch\n󰜉 Restart\n󰐥 Shutdown") in
*Lock*) hyprlock ;;
*Suspend*) systemctl suspend ;;
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;;
*) show_main_menu ;;
esac
}
show_main_menu() {
go_to_menu "$(menu "Start" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n About\n System")"
}
go_to_menu() {
case "${1,,}" in
*apps*) walker -p "Launch…" ;;
*learn*) show_learn_menu ;;
*style*) show_style_menu ;;
*theme*) show_theme_menu ;;
*capture*) show_capture_menu ;;
*screenshot*) show_screenshot_menu ;;
*screenrecord*) show_screenrecord_menu ;;
*toggle*) show_toggle_menu ;;
*setup*) show_setup_menu ;;
*install*) show_install_menu ;;
*remove*) show_remove_menu ;;
*update*) show_update_menu ;;
*system*) show_system_menu ;;
*about*) gtk-launch About.desktop ;;
esac
}
if [[ -n "$1" ]]; then
go_to_menu "$1"
else
show_main_menu
fi

View File

@ -1,23 +0,0 @@
#!/bin/bash
show_power_menu() {
# The first characters are invisible sort keys.
local menu_options=" Lock
󱄄 Save
󰤄 Suspend
 Relaunch
󰜉 Restart
󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150)
case "$selection" in
*Lock*) hyprlock ;;
*Save*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;;
*Suspend*) systemctl suspend ;;
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;;
esac
}
show_power_menu

5
bin/omarchy-pkg-install Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75% | xargs -ro yay -S --noconfirm
~/.local/share/omarchy/bin/omarchy-show-done

5
bin/omarchy-pkg-remove Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
yay -Qqe | fzf --multi --preview 'yay -Qi {1}' --preview-window=down:75% | xargs -ro yay -Rns --noconfirm
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -20,16 +20,21 @@ user_config_file="${HOME}/.config/$config_file"
default_config_file="${HOME}/.local/share/omarchy/config/$config_file" default_config_file="${HOME}/.local/share/omarchy/config/$config_file"
backup_config_file="$user_config_file.bak.$(date +%s)" backup_config_file="$user_config_file.bak.$(date +%s)"
# Create preliminary backup if [[ -f "$user_config_file" ]]; then
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null # Create preliminary backup
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null
# Replace config with new default # Replace config with new default
cp -f "$default_config_file" "$user_config_file" 2>/dev/null cp -f "$default_config_file" "$user_config_file" 2>/dev/null
# Compare and delete/inform accordingly # Compare and delete/inform accordingly
if cmp -s "$user_config_file" "$backup_config_file"; then if cmp -s "$user_config_file" "$backup_config_file"; then
rm "$backup_config_file" rm "$backup_config_file"
else
echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m"
diff "$user_config_file" "$backup_config_file"
fi
else else
echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m" # Config file did not exist already
diff "$user_config_file" "$backup_config_file" cp -f "$default_config_file" "$user_config_file" 2>/dev/null
fi fi

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
omarchy-refresh-config hypr/hypridle.conf ~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hypridle.conf
omarchy-restart-hypridle ~/.local/share/omarchy/bin/omarchy-restart-hypridle

7
bin/omarchy-refresh-hyprland Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
~/.local/share/omarchy/bin/omarchy-refresh-config hypr/autostart.conf
~/.local/share/omarchy/bin/omarchy-refresh-config hypr/bindings.conf
~/.local/share/omarchy/bin/omarchy-refresh-config hypr/envs.conf
~/.local/share/omarchy/bin/omarchy-refresh-config hypr/input.conf
~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprland.conf

View File

@ -1,4 +1,3 @@
#!/bin/bash #!/bin/bash
omarchy-refresh-config hypr/hyprlock.conf ~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprlock.conf

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
omarchy-refresh-config hypr/hyprsunset.conf ~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprsunset.conf
omarchy-restart-hyprsunset ~/.local/share/omarchy/bin/omarchy-restart-hyprsunset

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
omarchy-refresh-config swayosd/config.toml ~/.local/share/omarchy/bin/omarchy-refresh-config swayosd/config.toml
omarchy-refresh-config swayosd/style.css ~/.local/share/omarchy/bin/omarchy-refresh-config swayosd/style.css
omarchy-restart-swayosd ~/.local/share/omarchy/bin/omarchy-restart-swayosd

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
omarchy-refresh-config walker/config.toml ~/.local/share/omarchy/bin/omarchy-refresh-config walker/config.toml
omarchy-restart-walker ~/.local/share/omarchy/bin/omarchy-restart-walker

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
omarchy-refresh-config waybar/config.jsonc ~/.local/share/omarchy/bin/omarchy-refresh-config waybar/config.jsonc
omarchy-refresh-config waybar/style.css ~/.local/share/omarchy/bin/omarchy-refresh-config waybar/style.css
omarchy-restart-waybar ~/.local/share/omarchy/bin/omarchy-restart-waybar

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
omarchy-restart-app hypridle ~/.local/share/omarchy/bin/omarchy-restart-app hypridle

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
omarchy-restart-app hyprsunset ~/.local/share/omarchy/bin/omarchy-restart-app hyprsunset

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
omarchy-restart-app swayosd-server ~/.local/share/omarchy/bin/omarchy-restart-app swayosd-server

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
omarchy-restart-app waybar ~/.local/share/omarchy/bin/omarchy-restart-app waybar

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
omarchy-restart-app fcitx5 ~/.local/share/omarchy/bin/omarchy-restart-app fcitx5

19
bin/omarchy-setup-docker-dbs Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
options=("MariaDB" "MySQL" "Redis" "PostgreSQL")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
if [[ -n "$choices" ]]; then
for db in $choices; do
case $db in
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
esac
done
fi
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
echo "Installing all dependencies..." echo "Installing all dependencies..."
yay -S --noconfirm --needed \ yay -S --noconfirm --needed \
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
@ -7,3 +9,5 @@ yay -S --noconfirm --needed \
echo "Starting Dropbox..." echo "Starting Dropbox..."
uwsm app -- dropbox-cli start &>/dev/null & uwsm app -- dropbox-cli start &>/dev/null &
echo "See Dropbox icon behind  hover tray in top right and right-click for setup." echo "See Dropbox icon behind  hover tray in top right and right-click for setup."
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -1,11 +1,15 @@
#!/bin/bash #!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
if [[ "--remove" == "$1" ]]; then if [[ "--remove" == "$1" ]]; then
echo -e "\e[32mLet's remove your Fido2 device from sudo authentication.\n\e[0m"
yay -Rns --noconfirm libfido2 pam-u2f yay -Rns --noconfirm libfido2 pam-u2f
sudo rm -rf /etc/fido2 sudo rm -rf /etc/fido2
sudo sed -i '\|^auth[[:space:]]\+sufficient[[:space:]]\+pam_u2f\.so[[:space:]]\+cue[[:space:]]\+authfile=/etc/fido2/fido2$|d' /etc/pam.d/sudo sudo sed -i '\|^auth[[:space:]]\+sufficient[[:space:]]\+pam_u2f\.so[[:space:]]\+cue[[:space:]]\+authfile=/etc/fido2/fido2$|d' /etc/pam.d/sudo
echo -e "\e[32m\nYou've successfully removed the fido2 device setup.\e[0m" echo -e "\e[32m\nYou've successfully removed the fido2 device setup.\e[0m"
else else
echo -e "\e[32mLet's setup your Fido2 device for sudo authentication.\n\e[0m"
yay -S --noconfirm --needed libfido2 pam-u2f yay -S --noconfirm --needed libfido2 pam-u2f
tokens=$(fido2-token -L) tokens=$(fido2-token -L)
@ -18,6 +22,10 @@ else
sudo mkdir -p /etc/fido2 sudo mkdir -p /etc/fido2
echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m" echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m"
pamu2fcfg >/tmp/fido2 # This needs to run as the user pamu2fcfg >/tmp/fido2 # This needs to run as the user
if [ $? -ne 0 ]; then
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
exit 1
fi
sudo mv /tmp/fido2 /etc/fido2/fido2 sudo mv /tmp/fido2 /etc/fido2/fido2
fi fi
@ -31,3 +39,5 @@ else
fi fi
fi fi
fi fi
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -1,11 +1,15 @@
#!/bin/bash #!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
if [[ "--remove" == "$1" ]]; then if [[ "--remove" == "$1" ]]; then
echo -e "\e[32mLet's remove your fingerprint scanner from authentication.\n\e[0m"
yay -Rns --noconfirm fprintd yay -Rns --noconfirm fprintd
sudo rm -rf /etc/pam.d/polkit-1 sudo rm -rf /etc/pam.d/polkit-1
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m" echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m"
else else
echo -e "\e[32mLet's setup your fingerprint scanner for authentication.\n\e[0m"
yay -S --noconfirm --needed fprintd usbutils yay -S --noconfirm --needed fprintd usbutils
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then
@ -41,3 +45,5 @@ EOF
fi fi
fi fi
fi fi
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -1,5 +1,7 @@
#!/bin/bash #!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
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 sudo pacman -Sy
@ -7,3 +9,5 @@ sudo pacman -Sy
echo "Now pick dependencies matching your graphics card" echo "Now pick dependencies matching your graphics card"
yay -S steam yay -S steam
gtk-launch steam >/dev/null 2>&1 & gtk-launch steam >/dev/null 2>&1 &
~/.local/share/omarchy/bin/omarchy-show-done

5
bin/omarchy-show-done Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
echo
gum spin --spinner "globe" --title "Done!" -- sleep 2
clear

7
bin/omarchy-show-logo Executable file
View File

@ -0,0 +1,7 @@
#!/bin/bash
clear
echo -e "\033[32m"
cat <~/.local/share/omarchy/logo.txt
echo -e "\033[0m"
echo

View File

@ -4,11 +4,17 @@
# Usage: omarchy-theme-install <git-repo-url> # Usage: omarchy-theme-install <git-repo-url>
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Usage: omarchy-theme-install <git-repo-url>" ~/.local/share/omarchy/bin/omarchy-show-logo
echo -e "\e[32mSee extra themes on https://manuals.omamix.org/2/the-omarchy-manual/90/extra-themes\n\e[0m"
REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="")
else
REPO_URL="$1"
fi
if [ -z "$REPO_URL" ]; then
exit 1 exit 1
fi fi
REPO_URL="$1"
THEMES_DIR="$HOME/.config/omarchy/themes" THEMES_DIR="$HOME/.config/omarchy/themes"
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//') THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
THEME_PATH="$THEMES_DIR/$THEME_NAME" THEME_PATH="$THEMES_DIR/$THEME_NAME"
@ -25,4 +31,4 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then
fi fi
# Apply the new theme with omarchy-theme-set # Apply the new theme with omarchy-theme-set
omarchy-theme-set $THEME_NAME ~/.local/share/omarchy/bin/omarchy-theme-set $THEME_NAME

View File

@ -18,14 +18,4 @@ mapfile -t themes < <(
done done
) )
# Show Walker menu printf '%s\n' "${themes[@]}"
selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 2>/dev/null)
# Remove any Pango markup before converting back to filename
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')
# Convert to lowercase and dash-separated: "Tokyo Night" -> "tokyo-night"
selected_theme=$(echo "$clean_selection" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
# Apply the selected theme
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" "$selected_theme"

View File

@ -30,5 +30,5 @@ NEXT_INDEX=$(((INDEX + 1) % TOTAL))
NEW_THEME=${THEMES[$NEXT_INDEX]} NEW_THEME=${THEMES[$NEXT_INDEX]}
NEW_THEME_NAME=$(basename "$NEW_THEME") NEW_THEME_NAME=$(basename "$NEW_THEME")
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" $NEW_THEME_NAME ~/.local/share/omarchy/bin/omarchy-theme-set $NEW_THEME_NAME
notify-send "Theme changed to $NEW_THEME_NAME" -t 2000 notify-send "Theme changed to $NEW_THEME_NAME" -t 2000

View File

@ -4,17 +4,26 @@
# Usage: omarchy-theme-remove <theme-name> # Usage: omarchy-theme-remove <theme-name>
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Usage: omarchy-theme-remove <theme-name>" extra_themes=$(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n')
exit 1
if [[ -n "$extra_themes" ]]; then
THEME_NAME=$(gum choose --header="Remove extra theme" "$extra_themes")
else
echo "No extra themes installed."
exit 1
fi
else
THEME_NAME="$1"
fi fi
THEME_NAME="$1"
THEMES_DIR="$HOME/.config/omarchy/themes" THEMES_DIR="$HOME/.config/omarchy/themes"
BACKGROUND_DIR="$HOME/.config/omarchy/backgrounds"
CURRENT_DIR="$HOME/.config/omarchy/current" CURRENT_DIR="$HOME/.config/omarchy/current"
THEME_PATH="$THEMES_DIR/$THEME_NAME" THEME_PATH="$THEMES_DIR/$THEME_NAME"
BACKGROUND_PATH="$BACKGROUND_DIR/$THEME_NAME"
# Ensure a theme was set
if [ -z "$THEME_NAME" ]; then
exit 1
fi
# Check if theme exists before attempting removal # Check if theme exists before attempting removal
if [ ! -d "$THEME_PATH" ]; then if [ ! -d "$THEME_PATH" ]; then
@ -22,12 +31,10 @@ if [ ! -d "$THEME_PATH" ]; then
exit 1 exit 1
fi fi
# Use readlink -f to resolve symlinks and get the absolute path # Move to the next theme if the current theme is the one being removed
if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then
"$HOME/.local/share/omarchy/bin/omarchy-theme-next" ~/.local/share/omarchy/bin/omarchy-theme-next
fi fi
# Now remove the theme directory and backgrounds for THEME_NAME # Now remove the theme directory for THEME_NAME
rm -rf "$THEME_PATH" rm -rf "$THEME_PATH"
rm -rf "$BACKGROUND_PATH"

View File

@ -3,7 +3,7 @@
# omarchy-theme-set: Set a theme, specified by its name. # omarchy-theme-set: Set a theme, specified by its name.
# Usage: omarchy-theme-set <theme-name> # Usage: omarchy-theme-set <theme-name>
if [[ -z "$1" ]]; then if [[ -z "$1" && "$1" != "CNCLD" ]]; then
echo "Usage: omarchy-theme-set <theme-name>" >&2 echo "Usage: omarchy-theme-set <theme-name>" >&2
exit 1 exit 1
fi fi
@ -11,7 +11,7 @@ fi
THEMES_DIR="$HOME/.config/omarchy/themes/" THEMES_DIR="$HOME/.config/omarchy/themes/"
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
THEME_NAME="$1" THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
THEME_PATH="$THEMES_DIR/$THEME_NAME" THEME_PATH="$THEMES_DIR/$THEME_NAME"
# Check if the theme entered exists # Check if the theme entered exists
@ -44,11 +44,11 @@ touch "$HOME/.config/alacritty/alacritty.toml"
# Restart components to apply new theme # Restart components to apply new theme
pkill -SIGUSR2 btop pkill -SIGUSR2 btop
"$HOME/.local/share/omarchy/bin/omarchy-restart-waybar" ~/.local/share/omarchy/bin/omarchy-restart-waybar
pkill swayosd-server pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null & setsid uwsm app -- swayosd-server &>/dev/null &
makoctl reload makoctl reload
hyprctl reload hyprctl reload
# Set new background # Set new background
"$HOME/.local/share/omarchy/bin/omarchy-theme-bg-next" ~/.local/share/omarchy/bin/omarchy-theme-bg-next

View File

@ -1,4 +1,9 @@
#!/bin/bash #!/bin/bash
~/.local/share/omarchy/bin/omarchy-show-logo
for dir in ~/.config/omarchy/themes/*/; do for dir in ~/.config/omarchy/themes/*/; do
[ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull
done done
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -2,7 +2,13 @@
# Default temperature values # Default temperature values
ON_TEMP=4000 ON_TEMP=4000
OFF_TEMP=6500 OFF_TEMP=6000
# Ensure hyprsunset is running
if ! pgrep -x hyprsunset; then
setsid uwsm app -- hyprsunset &
sleep 1 # Give it time to register
fi
# Query the current temperature # Query the current temperature
CURRENT_TEMP=$(hyprctl hyprsunset temperature 2>/dev/null | grep -oE '[0-9]+') CURRENT_TEMP=$(hyprctl hyprsunset temperature 2>/dev/null | grep -oE '[0-9]+')
@ -22,4 +28,3 @@ else
notify-send " Daylight screen temperature" notify-send " Daylight screen temperature"
restart_nightlighted_waybar restart_nightlighted_waybar
fi fi

View File

@ -13,7 +13,7 @@ git -C $omarchy_path pull --autostash
git -C $omarchy_path diff --check || git -C $omarchy_path reset --merge git -C $omarchy_path diff --check || git -C $omarchy_path reset --merge
# Run migrations # Run migrations
"$HOME/.local/share/omarchy/bin/omarchy-migrate" ~/.local/share/omarchy/bin/omarchy-migrate
# Update system packages # Update system packages
echo -e "\e[32m\nUpdate system packages\e[0m" echo -e "\e[32m\nUpdate system packages\e[0m"
@ -23,3 +23,5 @@ yay -Syu --noconfirm
if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then
gum confirm "Linux kernel has been updated. Reboot?" && sudo reboot now gum confirm "Linux kernel has been updated. Reboot?" && sudo reboot now
fi fi
~/.local/share/omarchy/bin/omarchy-show-done

View File

@ -1,8 +1,15 @@
#!/bin/bash #!/bin/bash
omarchy_path="$HOME/.local/share/omarchy" omarchy_path="$HOME/.local/share/omarchy"
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)) # Ensure remote is reachable
if ! git -C "$omarchy_path" ls-remote &>/dev/null; then
echo "Error: Unable to reach remote repository."
exit 1
fi
latest_tag=$(git -C "$omarchy_path" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1)
current_tag=$(git -C "$omarchy_path" describe --tags $(git -C "$omarchy_path" rev-list --tags --max-count=1))
if [[ "$current_tag" != "$latest_tag" ]]; then if [[ "$current_tag" != "$latest_tag" ]]; then
echo "Omarchy update available ($latest_tag)" echo "Omarchy update available ($latest_tag)"

48
bin/omarchy-webapp-install Executable file
View File

@ -0,0 +1,48 @@
#!/bin/bash
if [ "$#" -ne 3 ]; then
~/.local/share/omarchy/bin/omarchy-show-logo
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
else
APP_NAME="$1"
APP_URL="$2"
ICON_URL="$3"
fi
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then
echo "You must set app name, app URL, and icon URL!"
exit 1
fi
ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
ICON_PATH="$ICON_DIR/$APP_NAME.png"
mkdir -p "$ICON_DIR"
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
echo "Error: Failed to download icon."
return 1
fi
cat >"$DESKTOP_FILE" <<EOF
[Desktop Entry]
Version=1.0
Name=$APP_NAME
Comment=$APP_NAME
Exec=chromium --new-window --ozone-platform=wayland --app="$APP_URL" --name="$APP_NAME" --class="$APP_NAME"
Terminal=false
Type=Application
Icon=$ICON_PATH
StartupNotify=true
EOF
chmod +x "$DESKTOP_FILE"
if [ "$#" -ne 3 ]; then
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
~/.local/share/omarchy/bin/omarchy-show-done
fi

39
bin/omarchy-webapp-remove Executable file
View File

@ -0,0 +1,39 @@
#!/bin/bash
ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -ne 1 ]; then
~/.local/share/omarchy/bin/omarchy-show-logo
# Find all web apps
while IFS= read -r -d '' file; do
if grep -q '^Exec=.*chromium.*--app' "$file"; then
WEB_APPS+=("$(basename "${file%.desktop}")")
fi
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
if ((${#WEB_APPS[@]})); then
IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}"))
unset IFS
APP_NAME=$(gum choose --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}")
else
echo "No web apps to remove."
exit 1
fi
else
APP_NAME="$1"
fi
if [[ -z "$APP_NAME" ]]; then
echo "You must provide web app name."
exit 1
fi
rm "$DESKTOP_DIR/$APP_NAME.desktop"
rm "$ICON_DIR/$APP_NAME.png"
if [ "$#" -ne 1 ]; then
echo -e "Removed $APP_NAME\n"
~/.local/share/omarchy/bin/omarchy-show-done
fi

View File

@ -0,0 +1,3 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation

View File

@ -0,0 +1,2 @@
# Extra autostart processes
# exec-once = uwsm app -- my-service

25
config/hypr/bindings.conf Normal file
View File

@ -0,0 +1,25 @@
# Application bindings
$terminal = uwsm app -- alacritty
$browser = uwsm app -- chromium --new-window --ozone-platform=wayland
$webapp = $browser --app
bindd = SUPER, return, Terminal, exec, $terminal
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
bindd = SUPER, B, Browser, exec, $browser
bindd = SUPER, M, Music, exec, uwsm app -- spotify
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
bindd = SUPER, T, Activity, exec, $terminal -e btop
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop
bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
bindd = SUPER, A, ChatGPT, exec, $webapp="https://chatgpt.com"
bindd = SUPER SHIFT, A, Grok, exec, $webapp="https://grok.com"
bindd = SUPER, C, Calendar, exec, $webapp="https://app.hey.com/calendar/weeks/"
bindd = SUPER, E, Email, exec, $webapp="https://app.hey.com"
bindd = SUPER, Y, YouTube, exec, $webapp="https://youtube.com/"
bindd = SUPER SHIFT, G, WhatsApp, exec, $webapp="https://web.whatsapp.com/"
bindd = SUPER ALT, G, Google Messages, exec, $webapp="https://messages.google.com/web/conversations"
bindd = SUPER, X, X, exec, $webapp="https://x.com/"
bindd = SUPER SHIFT, X, X Post, exec, $webapp="https://x.com/compose/post"

3
config/hypr/envs.conf Normal file
View File

@ -0,0 +1,3 @@
# Extra env variables
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
# env = MY_GLOBAL_ENV,setting

View File

@ -7,7 +7,7 @@ general {
} }
listener { listener {
timeout = 180 # 2.5min timeout = 150 # 2.5min
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already) on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
} }

View File

@ -1,13 +1,6 @@
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/ # Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
# You're encouraged to tailor your Hyprland config in this file by adding or overwriting any settings. # Use defaults Omarchy defaults (but don't edit these directly!)
# But don't change anything that lives in ~/.local/share/omarchy, if you can help it!
# Those files are overwritten when Omarchy is updated.
# Change your personal monitor setup in here to keep the main config portable
source = ~/.config/hypr/monitors.conf
# Use defaults Omarchy defaults
source = ~/.local/share/omarchy/default/hypr/autostart.conf source = ~/.local/share/omarchy/default/hypr/autostart.conf
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf
@ -18,64 +11,9 @@ source = ~/.local/share/omarchy/default/hypr/input.conf
source = ~/.local/share/omarchy/default/hypr/windows.conf source = ~/.local/share/omarchy/default/hypr/windows.conf
source = ~/.config/omarchy/current/theme/hyprland.conf source = ~/.config/omarchy/current/theme/hyprland.conf
# Application bindings # Change your own setup in these files (and overwrite any settings from defaults!)
$terminal = uwsm app -- alacritty source = ~/.config/hypr/monitors.conf
$browser = uwsm app -- chromium --new-window --ozone-platform=wayland source = ~/.config/hypr/input.conf
$webapp = $browser --app source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/envs.conf
bindd = SUPER, return, Terminal, exec, $terminal source = ~/.config/hypr/autostart.conf
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
bindd = SUPER, B, Browser, exec, $browser
bindd = SUPER, M, Music, exec, uwsm app -- spotify
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
bindd = SUPER, T, Activity, exec, $terminal -e btop
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop
bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
bindd = SUPER, A, ChatGPT, exec, $webapp="https://chatgpt.com"
bindd = SUPER SHIFT, A, Grok, exec, $webapp="https://grok.com"
bindd = SUPER, C, Calendar, exec, $webapp="https://app.hey.com/calendar/weeks/"
bindd = SUPER, E, Email, exec, $webapp="https://app.hey.com"
bindd = SUPER, Y, YouTube, exec, $webapp="https://youtube.com/"
bindd = SUPER SHIFT, G, WhatsApp, exec, $webapp="https://web.whatsapp.com/"
bindd = SUPER ALT, G, Google Messages, exec, $webapp="https://messages.google.com/web/conversations"
bindd = SUPER, X, X, exec, $webapp="https://x.com/"
bindd = SUPER SHIFT, X, X Post, exec, $webapp="https://x.com/compose/post"
# Extra autostart processes
# exec-once = uwsm app -- my-service
# Extra env variables
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
# env = MY_GLOBAL_ENV,setting
# Control your input devices
# See https://wiki.hypr.land/Configuring/Variables/#input
input {
# Use multiple keyboard layouts and switch between them with Alt + Space
# kb_layout = us,dk
kb_options = compose:caps # ,grp:alt_space_toggle
# Change speed of keyboard repeat
repeat_rate = 40
repeat_delay = 600
# Increase sensitity for mouse/trackpack (default: 0)
# sensitivity = 0.35
touchpad {
# Use natural (inverse) scrolling
# natural_scroll = true
# Use two-finger clicks for right-click instead of lower-right corner
# clickfinger_behavior = true
# Control the speed of your scrolling
scroll_factor = 0.4
}
}
# Scroll faster in the terminal
windowrule = scrolltouchpad 1.5, class:Alacritty

28
config/hypr/input.conf Normal file
View File

@ -0,0 +1,28 @@
# Control your input devices
# See https://wiki.hypr.land/Configuring/Variables/#input
input {
# Use multiple keyboard layouts and switch between them with Alt + Space
# kb_layout = us,dk
kb_options = compose:caps # ,grp:alt_space_toggle
# Change speed of keyboard repeat
repeat_rate = 40
repeat_delay = 600
# Increase sensitity for mouse/trackpack (default: 0)
# sensitivity = 0.35
touchpad {
# Use natural (inverse) scrolling
# natural_scroll = true
# Use two-finger clicks for right-click instead of lower-right corner
# clickfinger_behavior = true
# Control the speed of your scrolling
scroll_factor = 0.4
}
}
# Scroll faster in the terminal
windowrule = scrolltouchpad 1.5, class:Alacritty

View File

@ -1,4 +1,4 @@
[server] [server]
show_percentage = true show_percentage = true
max_volume = 150 max_volume = 100
style = "./style.css" style = "./style.css"

View File

@ -5,6 +5,7 @@
"spacing": 0, "spacing": 0,
"height": 26, "height": 26,
"modules-left": [ "modules-left": [
"custom/omarchy",
"hyprland/workspaces" "hyprland/workspaces"
], ],
"modules-center": [ "modules-center": [
@ -43,8 +44,13 @@
"5": [] "5": []
} }
}, },
"custom/omarchy": {
"format": "",
"on-click": "~/.local/share/omarchy/bin/omarchy-menu",
"tooltip-format": "SUPER + ALT + SPACE"
},
"custom/update": { "custom/update": {
"format": "", "format": "",
"exec": "~/.local/share/omarchy/bin/omarchy-update-available", "exec": "~/.local/share/omarchy/bin/omarchy-update-available",
"on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update", "on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update",
"interval": 3600 "interval": 3600

View File

@ -37,7 +37,7 @@
#bluetooth, #bluetooth,
#pulseaudio, #pulseaudio,
#clock, #clock,
#custom-power-menu { #custom-omarchy {
min-width: 12px; min-width: 12px;
margin: 0 7.5px; margin: 0 7.5px;
} }

View File

@ -15,53 +15,23 @@ iso2sd() {
fi fi
} }
# Create a desktop launcher for a web app # Format an entire drive for a single partition using ext4
web2app() { format-drive() {
if [ "$#" -ne 3 ]; then if [ $# -ne 2 ]; then
echo "Usage: web2app <AppName> <AppURL> <IconURL> (IconURL must be in PNG -- use https://dashboardicons.com)" echo "Usage: format-drive <device> <name>"
return 1 echo "Example: format-drive /dev/sda 'My Stuff'"
echo -e "\nAvailable drives:"
lsblk -d -o NAME -n | awk '{print "/dev/"$1}'
else
echo "WARNING: This will completely erase all data on $1 and label it '$2'."
read -rp "Are you sure you want to continue? (y/N): " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
sudo wipefs -a "$1"
sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress
sudo parted -s "$1" mklabel gpt
sudo parted -s "$1" mkpart primary ext4 1MiB 100%
sudo mkfs.ext4 -L "$2" "$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")"
echo "Drive $1 formatted and labeled '$2'."
fi
fi fi
local APP_NAME="$1"
local APP_URL="$2"
local ICON_URL="$3"
local ICON_DIR="$HOME/.local/share/applications/icons"
local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop"
local ICON_PATH="${ICON_DIR}/${APP_NAME}.png"
mkdir -p "$ICON_DIR"
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
echo "Error: Failed to download icon."
return 1
fi
cat > "$DESKTOP_FILE" <<EOF
[Desktop Entry]
Version=1.0
Name=$APP_NAME
Comment=$APP_NAME
Exec=chromium --new-window --ozone-platform=wayland --app="$APP_URL" --name="$APP_NAME" --class="$APP_NAME"
Terminal=false
Type=Application
Icon=$ICON_PATH
StartupNotify=true
EOF
chmod +x "$DESKTOP_FILE"
}
web2app-remove() {
if [ "$#" -ne 1 ]; then
echo "Usage: web2app-remove <AppName>"
return 1
fi
local APP_NAME="$1"
local ICON_DIR="$HOME/.local/share/applications/icons"
local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop"
local ICON_PATH="${ICON_DIR}/${APP_NAME}.png"
rm "$DESKTOP_FILE"
rm "$ICON_PATH"
} }

View File

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

View File

@ -0,0 +1,9 @@
# Picture-in-picture overlays
windowrule = tag +pip, title:(Picture.{0,1}in.{0,1}[Pp]icture)
windowrule = float, tag:pip
windowrule = pin, tag:pip
windowrule = size 600 338, tag:pip
windowrule = keepaspectratio, tag:pip
windowrule = noborder, tag:pip
windowrule = opacity 1 1, tag:pip
windowrule = move 100%-w-40 4%, tag:pip

View File

@ -2,7 +2,6 @@ exec-once = uwsm app -- hypridle
exec-once = uwsm app -- mako exec-once = uwsm app -- mako
exec-once = uwsm app -- waybar exec-once = uwsm app -- waybar
exec-once = uwsm app -- fcitx5 exec-once = uwsm app -- fcitx5
exec-once = uwsm app -- hyprsunset
exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill
exec-once = uwsm app -- swayosd-server exec-once = uwsm app -- swayosd-server
exec-once = uwsm app -- walker --gapplication-service exec-once = uwsm app -- walker --gapplication-service

View File

@ -1,19 +1,18 @@
# Launching # Menus
bindd = SUPER, space, Launch apps, exec, walker bindd = SUPER, SPACE, Launch apps, exec, walker -p "Start…"
bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu
bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu system
bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings
# Aesthetics # Aesthetics
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, pkill -SIGUSR1 waybar bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, pkill -SIGUSR1 waybar
bindd = SUPER CTRL, SPACE, Next background in theme, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next bindd = SUPER CTRL, SPACE, Next background in theme, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next
bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, ~/.local/share/omarchy/bin/omarchy-theme-menu bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, ~/.local/share/omarchy/bin/omarchy-menu theme
# Notifications # Notifications
bindd = SUPER, comma, Dismiss last notification, exec, makoctl dismiss bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
bindd = SUPER SHIFT, comma, Dismiss all notifications, exec, makoctl dismiss --all bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all
bindd = SUPER CTRL, comma, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications" bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
# Power menu controls lock, suspend, relaunch, restart, shutdown
bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu-power
# Toggle idling # Toggle idling
bindd = SUPER CTRL, I, Toggle locking on idle, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle bindd = SUPER CTRL, I, Toggle locking on idle, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
@ -35,8 +34,5 @@ bindd = CTRL, PRINT, Screenshot of display, exec, ~/.local/share/omarchy/bin/oma
bindd = ALT, PRINT, Screen record a region, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord bindd = ALT, PRINT, Screen record a region, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord
bindd = CTRL ALT, PRINT, Screen record display, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord output bindd = CTRL ALT, PRINT, Screen record display, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord output
# Screensaver
bindd = SUPER ALT, SPACE, Screensaver, exec, ~/.local/share/omarchy/bin/omarchy-launch-screensaver
# Color picker # Color picker
bindd = SUPER, PRINT, Color picker, exec, hyprpicker -a bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a

View File

@ -7,4 +7,4 @@ min_width = 150
width = 150 width = 150
[ui.window.box.search] [ui.window.box.search]
hide = true hide = false

View File

@ -8,4 +8,4 @@ width = 250
max_height = 600 max_height = 600
[ui.window.box.search] [ui.window.box.search]
hide = true hide = false

View File

@ -1,15 +1,15 @@
#!/bin/bash #!/bin/bash
if [ -z "$OMARCHY_BARE" ]; then if [ -z "$OMARCHY_BARE" ]; then
source ~/.local/share/omarchy/default/bash/functions ~/.local/share/omarchy/bin/omarchy-webapp-install "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png
web2app "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png ~/.local/share/omarchy/bin/omarchy-webapp-install "Basecamp" https://launchpad.37signals.com https://basecamp.com/assets/images/general/basecamp.png
web2app "Basecamp" https://launchpad.37signals.com https://basecamp.com/assets/images/general/basecamp.png ~/.local/share/omarchy/bin/omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png
web2app "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png ~/.local/share/omarchy/bin/omarchy-webapp-install "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png
web2app "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png ~/.local/share/omarchy/bin/omarchy-webapp-install "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png
web2app "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png ~/.local/share/omarchy/bin/omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png
web2app "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png ~/.local/share/omarchy/bin/omarchy-webapp-install "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png
web2app "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png ~/.local/share/omarchy/bin/omarchy-webapp-install "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png
web2app "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png ~/.local/share/omarchy/bin/omarchy-webapp-install "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png
web2app "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png ~/.local/share/omarchy/bin/omarchy-webapp-install "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png
web2app "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png ~/.local/share/omarchy/bin/omarchy-webapp-install "Figma" https://figma.com/ https://www.veryicon.com/download/png/application/app-icon-7/figma-1?s=256
fi fi

View File

@ -2,5 +2,5 @@ echo "Fixing persistent workspaces in waybar config"
if [[ -f ~/.config/waybar/config ]]; then if [[ -f ~/.config/waybar/config ]]; then
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
omarchy-restart-waybar ~/.local/share/omarchy/bin/omarchy-restart-waybar
fi fi

View File

@ -2,5 +2,5 @@ echo "Install Impala as new wifi selection TUI"
if ! command -v impala &>/dev/null; then if ! command -v impala &>/dev/null; then
yay -S --noconfirm --needed impala yay -S --noconfirm --needed impala
echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar." echo "You need to update the Waybar config to use Impala Wi-Fi selector in top bar."
omarchy-refresh-waybar ~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi fi

View File

@ -1,2 +0,0 @@
echo "Copy desktop file for new Omarchy TUI"
cp ~/.local/share/omarchy/applications/omarchy.desktop ~/.local/share/applications/

View File

@ -7,7 +7,7 @@ if [[ -f ~/.local/share/applications/blueberry.desktop ]]; then
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 gtk-theme "Adwaita-dark" gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
omarchy-refresh-waybar ~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi fi
if [[ ! -L "~/.config/omarchy/themes/rose-pine" ]]; then if [[ ! -L "~/.config/omarchy/themes/rose-pine" ]]; then

View File

@ -4,6 +4,6 @@ if ! command -v wiremix &>/dev/null; then
yay -S --noconfirm --needed wiremix yay -S --noconfirm --needed wiremix
yay -Rns --noconfirm pavucontrol yay -Rns --noconfirm pavucontrol
omarchy-refresh-applications ~/.local/share/omarchy/bin/omarchy-refresh-applications
omarchy-refresh-waybar ~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi fi

View File

@ -1,2 +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 ~/.local/share/omarchy/bin/omarchy-refresh-hyprlock

View File

@ -1,5 +1,5 @@
echo "Fix dancing workspace numbers in Waybar" echo "Fix dancing workspace numbers in Waybar"
if ! grep -q 'min-width: 9px' ~/.config/waybar/style.css; then if ! grep -q 'min-width: 9px' ~/.config/waybar/style.css; then
omarchy-refresh-waybar ~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi fi

View File

@ -1,5 +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 ! command -v tzupdate &>/dev/null; then
bash ~/.local/share/omarchy/install/config/timezones.sh bash ~/.local/share/omarchy/install/config/timezones.sh
omarchy-refresh-waybar ~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi fi

View File

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

View File

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

View File

@ -1,2 +1,2 @@
echo "Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing" echo "Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing"
omarchy-refresh-plymouth ~/.local/share/omarchy/bin/omarchy-refresh-plymouth

View File

@ -3,4 +3,4 @@ if ! command -v hyprsunset &>/dev/null; then
yay -S --noconfirm --needed hyprsunset yay -S --noconfirm --needed hyprsunset
fi fi
omarchy-refresh-hyprsunset ~/.local/share/omarchy/bin/omarchy-refresh-hyprsunset

View File

@ -6,5 +6,5 @@ if ! grep -q 'on_unlock_cmd *= *omarchy-restart-waybar' ~/.config/hypr/hypridle.
on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking' \ on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking' \
~/.config/hypr/hypridle.conf ~/.config/hypr/hypridle.conf
omarchy-restart-waybar ~/.local/share/omarchy/bin/omarchy-restart-waybar
fi fi

View File

@ -1,6 +1,6 @@
echo "Update Waybar CSS to dim unused workspaces" echo "Update Waybar CSS to dim unused workspaces"
if ! grep -q "#workspaces button\.empty" ~/.config/waybar/style.css; then if ! grep -q "#workspaces button\.empty" ~/.config/waybar/style.css; then
omarchy-refresh-config waybar/style.css ~/.local/share/omarchy/bin/omarchy-refresh-config waybar/style.css
omarchy-restart-waybar ~/.local/share/omarchy/bin/omarchy-restart-waybar
fi fi

View File

@ -1,6 +1,6 @@
echo "Start screensaver automatically after 1 minute and stop before locking" echo "Start screensaver automatically after 1 minute and stop before locking"
if ! grep -q "omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then if ! grep -q "omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then
omarchy-refresh-hypridle ~/.local/share/omarchy/bin/omarchy-refresh-hypridle
omarchy-refresh-hyprlock ~/.local/share/omarchy/bin/omarchy-refresh-hyprlock
fi fi

View File

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

View File

@ -1,5 +1,5 @@
echo "Update app launcher config to allow enough entries to show all keybindings on SUPER+K" 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 if ! grep "max_entries = 200" ~/.config/walker/config.toml; then
omarchy-refresh-walker ~/.local/share/omarchy/bin/omarchy-refresh-walker
fi fi

View File

@ -1,5 +1,5 @@
echo "Add auto-update icon to waybar when update available" echo "Add auto-update icon to waybar when update available"
if ! grep -q "custom/update" ~/.config/waybar/config.jsonc; then if ! grep -q "custom/update" ~/.config/waybar/config.jsonc; then
omarchy-refresh-waybar ~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi fi

View File

@ -1,2 +1,2 @@
echo "Increase time before screensaver starts to 2.5 minutes (from 1 minute)" echo "Increase time before screensaver starts to 2.5 minutes (from 1 minute)"
omarchy-refresh-hypridle ~/.local/share/omarchy/bin/omarchy-refresh-hypridle

2
migrations/1754265453.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Add chromium-flags.conf"
~/.local/share/omarchy/bin/omarchy-refresh-config chromium-flags.conf

4
migrations/1754302123.sh Normal file
View File

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

2
migrations/1754305112.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Restart Walker to pick up menu selections"
~/.local/share/omarchy/bin/omarchy-restart-walker

5
migrations/1754331529.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Update Waybar for new Omarchy menu"
if ! grep -q "" ~/.config/waybar/config.jsonc; then
~/.local/share/omarchy/bin/omarchy-refresh-waybar
fi

2
migrations/1754332200.sh Normal file
View File

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

11
migrations/1754389057.sh Normal file
View File

@ -0,0 +1,11 @@
echo "Offer to reorganize hyprland.conf as per new defaults"
if [[ ! -f ~/.config/hypr/autostarts.conf ]]; then
echo -e "\nOmarchy now splits default .config/hypr/hyprland.conf into sub-configs."
echo -e "Resetting to defaults will overwrite your configuration, but save it as .bak.\n"
if gum confirm "Use new default hyprland.conf config?"; then
~/.local/share/omarchy/bin/omarchy-refresh-hyprland || true
else
echo "Left your existing configuration in place!"
fi
fi

6
migrations/1754390772.sh Normal file
View File

@ -0,0 +1,6 @@
echo "Set SwayOSD max volume back to 100"
if ! grep -q "max_volume = 100" ~/.config/swayosd/config.toml; then
sed -i 's/max_volume = 150/max_volume = 100/' ~/.config/swayosd/config.toml
~/.local/share/omarchy/bin/omarchy-restart-swayosd
fi