From fc911e16e6f4b415a649f7cc2efd9826561dcd19 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 3 Aug 2025 16:57:53 +0200 Subject: [PATCH 01/85] Add script to update hyprland itself Nice if you don't make any adjustments yourself --- bin/omarchy-refresh-hyprland | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 bin/omarchy-refresh-hyprland diff --git a/bin/omarchy-refresh-hyprland b/bin/omarchy-refresh-hyprland new file mode 100755 index 00000000..6524a057 --- /dev/null +++ b/bin/omarchy-refresh-hyprland @@ -0,0 +1,3 @@ +#!/bin/bash + +omarchy-refresh-config hypr/hyprland.conf From 5a29322bf83696ce2529d7382d38991f29d73357 Mon Sep 17 00:00:00 2001 From: Richard Macklin Date: Sun, 3 Aug 2025 10:23:08 -0700 Subject: [PATCH 02/85] Fix hypridle timeout to actually be 2.5min The intent was for this to be 2.5 minutes but 180s is 3 minutes. --- config/hypr/hypridle.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf index 64b9d241..2c568e37 100644 --- a/config/hypr/hypridle.conf +++ b/config/hypr/hypridle.conf @@ -7,7 +7,7 @@ general { } listener { - timeout = 180 # 2.5min + timeout = 150 # 2.5min on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already) } From 63179c7d80a8e86f1438d7128360b6908b5141b2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 3 Aug 2025 19:59:25 +0200 Subject: [PATCH 03/85] Add format-drive function to wipe drives --- default/bash/functions | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/default/bash/functions b/default/bash/functions index 8061f71d..73dc991d 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -15,6 +15,26 @@ iso2sd() { fi } +format-drive() { + if [ $# -ne 2 ]; then + echo "Usage: format-drive " + 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 +} + # Create a desktop launcher for a web app web2app() { if [ "$#" -ne 3 ]; then From 755633cd95907677ee5eb91c554c4c015a79355e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 3 Aug 2025 20:07:46 +0200 Subject: [PATCH 04/85] Documentation --- default/bash/functions | 1 + 1 file changed, 1 insertion(+) diff --git a/default/bash/functions b/default/bash/functions index 73dc991d..66c3c049 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -15,6 +15,7 @@ iso2sd() { fi } +# Format an entire drive for a single partition using ext4 format-drive() { if [ $# -ne 2 ]; then echo "Usage: format-drive " From 43d1b7304a0532ae947a678192bae830e9328ce8 Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Sun, 3 Aug 2025 19:57:33 -0400 Subject: [PATCH 05/85] Add touchpad gestures --- config/chromium-flags.conf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 config/chromium-flags.conf diff --git a/config/chromium-flags.conf b/config/chromium-flags.conf new file mode 100644 index 00000000..d6d120e6 --- /dev/null +++ b/config/chromium-flags.conf @@ -0,0 +1,3 @@ +--ozone-platform=wayland +--ozone-platform-hint=wayland +--enable-features=TouchpadOverscrollHistoryNavigation From 6478f8b9f87ee669470fe59abe6f7b66dfe3ba93 Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Sun, 3 Aug 2025 20:03:31 -0400 Subject: [PATCH 06/85] Add migration --- migrations/1754265453.sh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 migrations/1754265453.sh diff --git a/migrations/1754265453.sh b/migrations/1754265453.sh new file mode 100644 index 00000000..412d75e0 --- /dev/null +++ b/migrations/1754265453.sh @@ -0,0 +1,2 @@ +echo "Add chromium-flags.conf" +omarchy-refresh-config chromium-flags.conf From 92e62ac26deede7511407b5ff7741694abdf30b7 Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Mon, 4 Aug 2025 02:00:06 -0400 Subject: [PATCH 07/85] Add appropriate colors to tui --- bin/omarchy | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bin/omarchy b/bin/omarchy index d3074eb1..066058e7 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -3,9 +3,21 @@ OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null) PATH="$PATH:$HOME/.local/share/omarchy/bin" +# Set colors to use for gum theme +export GUM_CHOOSE_CURSOR_FOREGROUND="4" # Blue +export GUM_CHOOSE_SELECTED_FOREGROUND="12" # Bright blue +export GUM_CHOOSE_HEADER_FOREGROUND="5" # Magenta +export GUM_CHOOSE_ITEM_FOREGROUND="7" # White +export GUM_INPUT_CURSOR_FOREGROUND="7" # White +export GUM_INPUT_PROMPT_FOREGROUND="4" # Blue +export GUM_SPIN_SPINNER_FOREGROUND="5" # Magenta +export GUM_SPIN_TITLE_FOREGROUND="5" # Magenta + show_ascii_art() { clear + echo -e "\033[32m" tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand + echo -e "\033[0m" echo " $OMARCHY_VERSION" } From 9855693eb1561dfb8415af5d4c25f6a93fac0acc Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 11:32:59 +0200 Subject: [PATCH 08/85] Position picture-in-picture windows correctly (closes #260) Co-authored-by: @ElFitaFlores --- default/hypr/apps.conf | 1 + default/hypr/apps/pip.conf | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 default/hypr/apps/pip.conf diff --git a/default/hypr/apps.conf b/default/hypr/apps.conf index 48c0edf6..faf14486 100644 --- a/default/hypr/apps.conf +++ b/default/hypr/apps.conf @@ -1,4 +1,5 @@ # 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/hyprshot.conf source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf diff --git a/default/hypr/apps/pip.conf b/default/hypr/apps/pip.conf new file mode 100644 index 00000000..186489eb --- /dev/null +++ b/default/hypr/apps/pip.conf @@ -0,0 +1,8 @@ +# 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 = keepaspectratio, tag:pip +windowrule = noborder, tag:pip +windowrule = opacity 1 1, tag:pip +windowrule = move 100%-w-40 4%, tag:pip From b358990a70421cb9a6c1e459d34b2d603396314c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 11:42:04 +0200 Subject: [PATCH 09/85] Set default size --- default/hypr/apps/pip.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/default/hypr/apps/pip.conf b/default/hypr/apps/pip.conf index 186489eb..363c1ed2 100644 --- a/default/hypr/apps/pip.conf +++ b/default/hypr/apps/pip.conf @@ -2,6 +2,7 @@ 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 From 7540bddee1503a79c213bb667cdf749bb55608cd Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 11:54:04 +0200 Subject: [PATCH 10/85] Toggle instead of stack hyprpicker --- default/hypr/bindings/utilities.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index 50f3cc13..ea00805b 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -39,4 +39,4 @@ bindd = CTRL ALT, PRINT, Screen record display, exec, ~/.local/share/omarchy/bin bindd = SUPER ALT, SPACE, Screensaver, exec, ~/.local/share/omarchy/bin/omarchy-launch-screensaver # Color picker -bindd = SUPER, PRINT, Color picker, exec, hyprpicker -a +bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a From f223bbcb9845c369b2cee1ff76fe6b1408636486 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:08:43 +0200 Subject: [PATCH 11/85] Use more conventional icon for "updates available" --- config/waybar/config.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 663a4a6e..4431a81e 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -44,7 +44,7 @@ } }, "custom/update": { - "format": "", + "format": "", "exec": "~/.local/share/omarchy/bin/omarchy-update-available", "on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update", "interval": 3600 From 93980e6138a8e569cc4317f17c8d259a03dba854 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:17:42 +0200 Subject: [PATCH 12/85] No backup if user config doesn't already exist --- bin/omarchy-refresh-config | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/bin/omarchy-refresh-config b/bin/omarchy-refresh-config index 73996fa6..b60df74a 100755 --- a/bin/omarchy-refresh-config +++ b/bin/omarchy-refresh-config @@ -20,16 +20,21 @@ user_config_file="${HOME}/.config/$config_file" default_config_file="${HOME}/.local/share/omarchy/config/$config_file" backup_config_file="$user_config_file.bak.$(date +%s)" -# Create preliminary backup -cp -f "$user_config_file" "$backup_config_file" 2>/dev/null +if [[ -f "$user_config_file" ]]; then + # Create preliminary backup + cp -f "$user_config_file" "$backup_config_file" 2>/dev/null -# Replace config with new default -cp -f "$default_config_file" "$user_config_file" 2>/dev/null + # Replace config with new default + cp -f "$default_config_file" "$user_config_file" 2>/dev/null -# Compare and delete/inform accordingly -if cmp -s "$user_config_file" "$backup_config_file"; then - rm "$backup_config_file" + # Compare and delete/inform accordingly + if cmp -s "$user_config_file" "$backup_config_file"; then + 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 - 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" + # Config file did not exist already + cp -f "$default_config_file" "$user_config_file" 2>/dev/null fi From 5e092c92ce96888c0ee9cc0de53324ba3ab39d5c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:19:17 +0200 Subject: [PATCH 13/85] Migration to update update-available icon in the waybar --- migrations/1754302123.sh | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 migrations/1754302123.sh diff --git a/migrations/1754302123.sh b/migrations/1754302123.sh new file mode 100644 index 00000000..5e7ff598 --- /dev/null +++ b/migrations/1754302123.sh @@ -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 From d16c178eb4cdd4fde85ff58a89eb92aeab451a76 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:43:21 +0200 Subject: [PATCH 14/85] Excess CR --- bin/omarchy-toggle-nightlight | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/omarchy-toggle-nightlight b/bin/omarchy-toggle-nightlight index e2371e1b..bd2db5b8 100755 --- a/bin/omarchy-toggle-nightlight +++ b/bin/omarchy-toggle-nightlight @@ -22,4 +22,3 @@ else notify-send " Daylight screen temperature" restart_nightlighted_waybar fi - From 02043fa6312382c8bd6ea91c6b6b3af03dc16208 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:44:19 +0200 Subject: [PATCH 15/85] Turn screensaver binding into a full cmd menu --- bin/omarchy-menu-cmd | 30 ++++++++++++++++++++++++++++ bin/omarchy-menu-power | 3 --- default/hypr/bindings/utilities.conf | 13 +++++------- 3 files changed, 35 insertions(+), 11 deletions(-) create mode 100755 bin/omarchy-menu-cmd diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd new file mode 100755 index 00000000..8051e523 --- /dev/null +++ b/bin/omarchy-menu-cmd @@ -0,0 +1,30 @@ +#!/bin/bash + +show_cmd_menu() { + local menu_options="󱄄 Start Screensaver + Take Screenshot + Start Screenrecord +󰃉 Pick color +󰍜 Toggle Top Bar +󱫖 Toggle Idle Lock +󰔎 Toggle Nightlight +󰸌 Pick Theme + Next Background + Show Keybindings" + local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250) + + case "$selection" in + *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; + *Screenshot*) ~/.local/share/omarchy/bin/omarchy-cmd-screenshot ;; + *Screenrecord*) ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord ;; + *Color*) pkill hyprpicker || hyprpicker -a ;; + *Bar*) pkill -SIGUSR1 waybar ;; + *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; + *Nightlight*) ~/.local/share/omarchy/bin/omarchy-toggle-nightlight ;; + *Theme*) ~/.local/share/omarchy/bin/omarchy-theme-menu ;; + *Background*) ~/.local/share/omarchy/bin/omarchy-theme-bg-next ;; + *Keybindings*) ~/.local/share/omarchy/bin/omarchy-menu-keybindings ;; + esac +} + +show_cmd_menu diff --git a/bin/omarchy-menu-power b/bin/omarchy-menu-power index f10f8998..70094981 100755 --- a/bin/omarchy-menu-power +++ b/bin/omarchy-menu-power @@ -1,9 +1,7 @@ #!/bin/bash show_power_menu() { - # The first characters are invisible sort keys. local menu_options=" Lock -󱄄 Save 󰤄 Suspend  Relaunch 󰜉 Restart @@ -12,7 +10,6 @@ show_power_menu() { case "$selection" in *Lock*) hyprlock ;; - *Save*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; *Suspend*) systemctl suspend ;; *Relaunch*) uwsm stop ;; *Restart*) systemctl reboot ;; diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index ea00805b..67b67107 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,5 +1,6 @@ # Launching -bindd = SUPER, space, Launch apps, exec, walker +bindd = SUPER, SPACE, Launch apps, exec, walker +bindd = SUPER ALT, SPACE, Launch commands, exec, ~/.local/share/omarchy/bin/omarchy-menu-cmd bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings # Aesthetics @@ -8,9 +9,9 @@ bindd = SUPER CTRL, SPACE, Next background in theme, exec, ~/.local/share/omarch bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, ~/.local/share/omarchy/bin/omarchy-theme-menu # Notifications -bindd = SUPER, comma, Dismiss last notification, exec, makoctl dismiss -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, COMMA, Dismiss last notification, exec, makoctl dismiss +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" # Power menu controls lock, suspend, relaunch, restart, shutdown bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu-power @@ -32,11 +33,7 @@ bindd = SHIFT, PRINT, Screenshot of window, exec, ~/.local/share/omarchy/bin/oma bindd = CTRL, PRINT, Screenshot of display, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenshot output # Screen recordings -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 -# Screensaver -bindd = SUPER ALT, SPACE, Screensaver, exec, ~/.local/share/omarchy/bin/omarchy-launch-screensaver - # Color picker bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a From 4c0d38616e3f8eb33796077eaf25b875669dd3ae Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:50:05 +0200 Subject: [PATCH 16/85] Better grouping --- default/hypr/bindings/utilities.conf | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index 67b67107..d6ba0e00 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,6 +1,7 @@ -# Launching +# Menus bindd = SUPER, SPACE, Launch apps, exec, walker -bindd = SUPER ALT, SPACE, Launch commands, exec, ~/.local/share/omarchy/bin/omarchy-menu-cmd +bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu-cmd +bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu-power bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings # Aesthetics @@ -13,9 +14,6 @@ bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss 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" -# Power menu controls lock, suspend, relaunch, restart, shutdown -bindd = SUPER, ESCAPE, Power menu, exec, ~/.local/share/omarchy/bin/omarchy-menu-power - # Toggle idling bindd = SUPER CTRL, I, Toggle locking on idle, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle From 256ce145bacd0cadbc283d7c7386d56336a7194d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:50:09 +0200 Subject: [PATCH 17/85] Better ordering --- bin/omarchy-menu-cmd | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd index 8051e523..69692764 100755 --- a/bin/omarchy-menu-cmd +++ b/bin/omarchy-menu-cmd @@ -2,28 +2,28 @@ show_cmd_menu() { local menu_options="󱄄 Start Screensaver + Show Keybindings  Take Screenshot  Start Screenrecord -󰃉 Pick color -󰍜 Toggle Top Bar -󱫖 Toggle Idle Lock -󰔎 Toggle Nightlight -󰸌 Pick Theme +󰸌 Choose Theme  Next Background - Show Keybindings" +󰃉 Pick Color +󰔎 Toggle Nightlight +󱫖 Toggle Idle Lock +󰍜 Toggle Top Bar" local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250) case "$selection" in *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; + *Keybindings*) ~/.local/share/omarchy/bin/omarchy-menu-keybindings ;; *Screenshot*) ~/.local/share/omarchy/bin/omarchy-cmd-screenshot ;; *Screenrecord*) ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord ;; - *Color*) pkill hyprpicker || hyprpicker -a ;; - *Bar*) pkill -SIGUSR1 waybar ;; - *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; - *Nightlight*) ~/.local/share/omarchy/bin/omarchy-toggle-nightlight ;; *Theme*) ~/.local/share/omarchy/bin/omarchy-theme-menu ;; *Background*) ~/.local/share/omarchy/bin/omarchy-theme-bg-next ;; - *Keybindings*) ~/.local/share/omarchy/bin/omarchy-menu-keybindings ;; + *Color*) pkill hyprpicker || hyprpicker -a ;; + *Nightlight*) ~/.local/share/omarchy/bin/omarchy-toggle-nightlight ;; + *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; + *Bar*) pkill -SIGUSR1 waybar ;; esac } From 45b6d96be0be462d6ea78d6010fb30fe21ba5f2e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:55:05 +0200 Subject: [PATCH 18/85] Allow the wide menu to be filtered --- bin/omarchy-menu-cmd | 2 +- bin/omarchy-theme-menu | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd index 69692764..ceb2a4d9 100755 --- a/bin/omarchy-menu-cmd +++ b/bin/omarchy-menu-cmd @@ -11,7 +11,7 @@ show_cmd_menu() { 󰔎 Toggle Nightlight 󱫖 Toggle Idle Lock 󰍜 Toggle Top Bar" - local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250) + local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Run command") case "$selection" in *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; diff --git a/bin/omarchy-theme-menu b/bin/omarchy-theme-menu index 895b2c29..9f3801a9 100755 --- a/bin/omarchy-theme-menu +++ b/bin/omarchy-theme-menu @@ -19,7 +19,7 @@ mapfile -t themes < <( ) # Show Walker menu -selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 2>/dev/null) +selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 -p "Choose Theme" 2>/dev/null) # Remove any Pango markup before converting back to filename clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g') From fb5a56474d9aac045faf6b9b8b059774768b670d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:58:32 +0200 Subject: [PATCH 19/85] Allow filtering on all the walker menus --- bin/omarchy-menu-cmd | 2 +- bin/omarchy-menu-power | 2 +- default/walker/themes/dmenu_150.toml | 2 +- default/walker/themes/dmenu_250.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd index ceb2a4d9..d7d0b731 100755 --- a/bin/omarchy-menu-cmd +++ b/bin/omarchy-menu-cmd @@ -11,7 +11,7 @@ show_cmd_menu() { 󰔎 Toggle Nightlight 󱫖 Toggle Idle Lock 󰍜 Toggle Top Bar" - local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Run command") + local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Trigger Command") case "$selection" in *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; diff --git a/bin/omarchy-menu-power b/bin/omarchy-menu-power index 70094981..8a5c889d 100755 --- a/bin/omarchy-menu-power +++ b/bin/omarchy-menu-power @@ -6,7 +6,7 @@ show_power_menu() {  Relaunch 󰜉 Restart 󰐥 Shutdown" - local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150) + local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150 -p "System") case "$selection" in *Lock*) hyprlock ;; diff --git a/default/walker/themes/dmenu_150.toml b/default/walker/themes/dmenu_150.toml index f2c02bd6..3c139976 100644 --- a/default/walker/themes/dmenu_150.toml +++ b/default/walker/themes/dmenu_150.toml @@ -7,4 +7,4 @@ min_width = 150 width = 150 [ui.window.box.search] -hide = true +hide = false diff --git a/default/walker/themes/dmenu_250.toml b/default/walker/themes/dmenu_250.toml index cf51a166..b9ffc1e7 100644 --- a/default/walker/themes/dmenu_250.toml +++ b/default/walker/themes/dmenu_250.toml @@ -8,4 +8,4 @@ width = 250 max_height = 600 [ui.window.box.search] -hide = true +hide = false From 575368e8c4ae85852e88a29e48a94bb992c6052e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 12:59:12 +0200 Subject: [PATCH 20/85] Migration to restart walker to pick up menu selections --- migrations/1754305112.sh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 migrations/1754305112.sh diff --git a/migrations/1754305112.sh b/migrations/1754305112.sh new file mode 100644 index 00000000..e23ea5d9 --- /dev/null +++ b/migrations/1754305112.sh @@ -0,0 +1,2 @@ +echo "Restart Walker to pick up menu selections" +omarchy-restart-walker From 15d4ed80a956c01868d4c5e2c9da32861334fadb Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 16:40:48 +0200 Subject: [PATCH 21/85] Add command to update timezone too --- bin/omarchy-menu-cmd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd index d7d0b731..a6ae37f2 100755 --- a/bin/omarchy-menu-cmd +++ b/bin/omarchy-menu-cmd @@ -10,7 +10,8 @@ show_cmd_menu() { 󰃉 Pick Color 󰔎 Toggle Nightlight 󱫖 Toggle Idle Lock -󰍜 Toggle Top Bar" +󰍜 Toggle Top Bar + Update Timezone" local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Trigger Command") case "$selection" in @@ -24,6 +25,7 @@ show_cmd_menu() { *Nightlight*) ~/.local/share/omarchy/bin/omarchy-toggle-nightlight ;; *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; *Bar*) pkill -SIGUSR1 waybar ;; + *Timezone*) ~/.local/share/omarchy/bin/omarchy-cmd-tzupdate ;; esac } From 8e1beac7074293fa3ec4be4b88ab083f3f5509f3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 16:46:44 +0200 Subject: [PATCH 22/85] Link to the manual from here too --- bin/omarchy-menu-cmd | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd index a6ae37f2..90a540f0 100755 --- a/bin/omarchy-menu-cmd +++ b/bin/omarchy-menu-cmd @@ -3,6 +3,7 @@ show_cmd_menu() { local menu_options="󱄄 Start Screensaver  Show Keybindings + Open Manual  Take Screenshot  Start Screenrecord 󰸌 Choose Theme @@ -17,6 +18,7 @@ show_cmd_menu() { case "$selection" in *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; *Keybindings*) ~/.local/share/omarchy/bin/omarchy-menu-keybindings ;; + *Manual*) setsid chromium --new-window --app="https://manuals.omamix.org/2/the-omarchy-manual" & ;; *Screenshot*) ~/.local/share/omarchy/bin/omarchy-cmd-screenshot ;; *Screenrecord*) ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord ;; *Theme*) ~/.local/share/omarchy/bin/omarchy-theme-menu ;; From 3acb5c2a830b57463b2ad8366835fb45045e622b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 16:49:28 +0200 Subject: [PATCH 23/85] Add setting up fingerprint too --- bin/omarchy-menu-cmd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd index 90a540f0..cd50ae26 100755 --- a/bin/omarchy-menu-cmd +++ b/bin/omarchy-menu-cmd @@ -12,7 +12,8 @@ show_cmd_menu() { 󰔎 Toggle Nightlight 󱫖 Toggle Idle Lock 󰍜 Toggle Top Bar - Update Timezone" + Update Timezone +󰈷 Setup Fingerprint" local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Trigger Command") case "$selection" in @@ -28,6 +29,7 @@ show_cmd_menu() { *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; *Bar*) pkill -SIGUSR1 waybar ;; *Timezone*) ~/.local/share/omarchy/bin/omarchy-cmd-tzupdate ;; + *Fingerprint*) ~/.local/share/omarchy/bin/omarchy-setup-fingerprint ;; esac } From 29f4ee35249f9e25d85847ee4d3a01dc5e86e9f6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 18:25:05 +0200 Subject: [PATCH 24/85] Removed by mistake --- default/hypr/bindings/utilities.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index d6ba0e00..3dbaa5d5 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -31,6 +31,7 @@ bindd = SHIFT, PRINT, Screenshot of window, exec, ~/.local/share/omarchy/bin/oma bindd = CTRL, PRINT, Screenshot of display, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenshot output # Screen recordings +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 # Color picker From 62975f0a232fa59d849b9ed808fea932c291cecd Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 18:26:08 +0200 Subject: [PATCH 25/85] Prepare for use in the new menu system --- bin/omarchy-font-menu | 6 ++++++ bin/omarchy-update | 2 ++ 2 files changed, 8 insertions(+) diff --git a/bin/omarchy-font-menu b/bin/omarchy-font-menu index 1c74e8e5..e2ac46b6 100755 --- a/bin/omarchy-font-menu +++ b/bin/omarchy-font-menu @@ -1,5 +1,9 @@ #!/bin/bash +# Show logo +clear +cat <~/.local/share/omarchy/logo.txt + font=$( fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | @@ -10,3 +14,5 @@ font=$( if [[ -n "$font" ]]; then sed -i "s/family = \".*\"/family = \"$font\"/g" ~/.config/alacritty/alacritty.toml fi + +gum spin --spinner "globe" --title "Done!" -- sleep 2 diff --git a/bin/omarchy-update b/bin/omarchy-update index b76e54c1..93412443 100755 --- a/bin/omarchy-update +++ b/bin/omarchy-update @@ -23,3 +23,5 @@ yay -Syu --noconfirm 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 fi + +gum spin --spinner "globe" --title "Done!" -- sleep 2 From a9004662ca06c0599bef6593e8d6a9f3c1091de8 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 18:26:36 +0200 Subject: [PATCH 26/85] Make it easier to use the yay fzf installer/uninstaller via menu --- bin/omarchy-cmd-install | 5 +++++ bin/omarchy-cmd-uninstall | 5 +++++ 2 files changed, 10 insertions(+) create mode 100755 bin/omarchy-cmd-install create mode 100755 bin/omarchy-cmd-uninstall diff --git a/bin/omarchy-cmd-install b/bin/omarchy-cmd-install new file mode 100755 index 00000000..1c6d7356 --- /dev/null +++ b/bin/omarchy-cmd-install @@ -0,0 +1,5 @@ +#!/bin/bash + +yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75% | xargs -ro yay -S --noconfirm + +gum spin --spinner "globe" --title "Done!" -- sleep 2 diff --git a/bin/omarchy-cmd-uninstall b/bin/omarchy-cmd-uninstall new file mode 100755 index 00000000..9f78c2e0 --- /dev/null +++ b/bin/omarchy-cmd-uninstall @@ -0,0 +1,5 @@ +#!/bin/bash + +yay -Qqe | fzf --multi --preview 'yay -Qi {1}' --preview-window=down:75% | xargs -ro yay -Rns --noconfirm + +gum spin --spinner "globe" --title "Done!" -- sleep 2 From de1330cd9f39d0c733a3f722407289a352cae6e2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 18:27:04 +0200 Subject: [PATCH 27/85] Add standalone script for setting up the docker DBs So we can use it via the new menu system --- bin/omarchy-setup-docker-dbs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100755 bin/omarchy-setup-docker-dbs diff --git a/bin/omarchy-setup-docker-dbs b/bin/omarchy-setup-docker-dbs new file mode 100755 index 00000000..584f1624 --- /dev/null +++ b/bin/omarchy-setup-docker-dbs @@ -0,0 +1,21 @@ +#!/bin/bash + +# Show logo +clear +cat <~/.local/share/omarchy/logo.txt + +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 + +gum spin --spinner "globe" --title "Done!" -- sleep 2 From 552fbb47feeaa17f8d8fb1bd1140cfcc8613d668 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 18:33:38 +0200 Subject: [PATCH 28/85] Overhaul the omarchy-menu --- bin/omarchy-menu | 122 +++++++++++++++++++++++++++ bin/omarchy-menu-cmd | 36 -------- default/hypr/bindings/utilities.conf | 4 +- 3 files changed, 124 insertions(+), 38 deletions(-) create mode 100755 bin/omarchy-menu delete mode 100755 bin/omarchy-menu-cmd diff --git a/bin/omarchy-menu b/bin/omarchy-menu new file mode 100755 index 00000000..4c35b3f1 --- /dev/null +++ b/bin/omarchy-menu @@ -0,0 +1,122 @@ +#!/bin/bash + +OMARCHY_BIN_PATH=~/.local/share/omarchy/bin +OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null) + +menu() { + echo -e "$2" | walker --dmenu --theme dmenu_250 -p "$1…" +} + +terminal() { + alacritty --class Omarchy -e $1 +} + +show_learn_menu() { + case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland") 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/" & ;; + *) show_menu ;; + esac +} + +show_style_menu() { + case $(menu "Style" "󰸌 Theme\n Font\n Background") in + *Theme*) $OMARCHY_BIN_PATH/omarchy-theme-menu ;; + *Font*) terminal $OMARCHY_BIN_PATH/omarchy-font-menu ;; + *Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;; + *) show_menu ;; + esac +} + +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_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_menu ;; + esac +} + +show_setup_menu() { + case $(menu "Setup" " Wifi\n󰂯 Bluetooth\n Audio\n󰈷 Fingerprint\n Fido2") in + *Wifi*) alacritty --class=Impala -e impala ;; + *Bluetooth*) blueberry ;; + *Audio*) alacritty --class=Wiremix -e wiremix ;; + *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; + *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; + *) show_menu ;; + esac +} + +show_install_menu() { + case $(menu "Install" "󰣇 AUR\n Dropbox\n Steam\n Docker DBs") in + *AUR*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + *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_menu ;; + esac +} + +show_update_menu() { + case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n Timezone") in + *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; + *Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;; + *) show_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_menu ;; + esac +} + +show_menu() { + case $(menu "Do" "󰀻 Apps\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n󰧑 Learning\n System") in + *Apps*) walker -p "Launch…" ;; + *Capture*) show_capture_menu ;; + *Toggle*) show_toggle_menu ;; + *Style*) show_style_menu ;; + *Setup*) show_setup_menu ;; + *Install*) show_install_menu ;; + *Update*) show_update_menu ;; + *Learn*) show_learn_menu ;; + *System*) show_system_menu ;; + esac +} + +show_menu diff --git a/bin/omarchy-menu-cmd b/bin/omarchy-menu-cmd deleted file mode 100755 index cd50ae26..00000000 --- a/bin/omarchy-menu-cmd +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -show_cmd_menu() { - local menu_options="󱄄 Start Screensaver - Show Keybindings - Open Manual - Take Screenshot - Start Screenrecord -󰸌 Choose Theme - Next Background -󰃉 Pick Color -󰔎 Toggle Nightlight -󱫖 Toggle Idle Lock -󰍜 Toggle Top Bar - Update Timezone -󰈷 Setup Fingerprint" - local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_250 -p "Trigger Command") - - case "$selection" in - *Screensaver*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;; - *Keybindings*) ~/.local/share/omarchy/bin/omarchy-menu-keybindings ;; - *Manual*) setsid chromium --new-window --app="https://manuals.omamix.org/2/the-omarchy-manual" & ;; - *Screenshot*) ~/.local/share/omarchy/bin/omarchy-cmd-screenshot ;; - *Screenrecord*) ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord ;; - *Theme*) ~/.local/share/omarchy/bin/omarchy-theme-menu ;; - *Background*) ~/.local/share/omarchy/bin/omarchy-theme-bg-next ;; - *Color*) pkill hyprpicker || hyprpicker -a ;; - *Nightlight*) ~/.local/share/omarchy/bin/omarchy-toggle-nightlight ;; - *Idle*) ~/.local/share/omarchy/bin/omarchy-toggle-idle ;; - *Bar*) pkill -SIGUSR1 waybar ;; - *Timezone*) ~/.local/share/omarchy/bin/omarchy-cmd-tzupdate ;; - *Fingerprint*) ~/.local/share/omarchy/bin/omarchy-setup-fingerprint ;; - esac -} - -show_cmd_menu diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index 3dbaa5d5..c24611fe 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,6 +1,6 @@ # Menus -bindd = SUPER, SPACE, Launch apps, exec, walker -bindd = SUPER ALT, SPACE, Run commands, exec, ~/.local/share/omarchy/bin/omarchy-menu-cmd +bindd = SUPER, SPACE, Launch apps, exec, walker -p "Launch…" +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-power bindd = SUPER, K, Show key bindings, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings From 7e84755c75f540ddd0fc39fc58ae00115a55413c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 19:44:42 +0200 Subject: [PATCH 29/85] Extract theme-list and theme-set so they can be used more easily in any menu --- bin/omarchy-theme-list | 21 +++++++++++++++++++++ bin/omarchy-theme-menu | 31 ++----------------------------- bin/omarchy-theme-set | 4 ++-- 3 files changed, 25 insertions(+), 31 deletions(-) create mode 100755 bin/omarchy-theme-list diff --git a/bin/omarchy-theme-list b/bin/omarchy-theme-list new file mode 100755 index 00000000..91f5252c --- /dev/null +++ b/bin/omarchy-theme-list @@ -0,0 +1,21 @@ +#!/bin/bash + +THEMES_DIR="$HOME/.config/omarchy/themes/" +CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" +CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")") + +# Build themes list with pretty display names +mapfile -t themes < <( + find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do + filename=$(basename "$path") + display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g') + + if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then + echo "$display_name" + else + echo "$display_name" + fi + done +) + +printf '%s\n' "${themes[@]}" diff --git a/bin/omarchy-theme-menu b/bin/omarchy-theme-menu index 9f3801a9..4a19f1c5 100755 --- a/bin/omarchy-theme-menu +++ b/bin/omarchy-theme-menu @@ -1,31 +1,4 @@ #!/bin/bash -THEMES_DIR="$HOME/.config/omarchy/themes/" -CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" -CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")") - -# Build themes list with pretty display names -mapfile -t themes < <( - find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do - filename=$(basename "$path") - display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g') - - if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then - echo "$display_name" - else - echo "$display_name" - fi - done -) - -# Show Walker menu -selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 -p "Choose Theme" 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" +"$HOME/.local/share/omarchy/bin/omarchy-theme-set" \ + "$(~/.local/share/omarchy/bin/omarchy-theme-list | walker --dmenu --theme dmenu_250 -p "Choose Theme" 2>/dev/null)" diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set index 791fc0d5..3f0551b2 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -3,7 +3,7 @@ # omarchy-theme-set: Set a theme, specified by its name. # Usage: omarchy-theme-set -if [[ -z "$1" ]]; then +if [[ -z "$1" && "$1" != "CNCLD" ]]; then echo "Usage: omarchy-theme-set " >&2 exit 1 fi @@ -11,7 +11,7 @@ fi THEMES_DIR="$HOME/.config/omarchy/themes/" 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" # Check if the theme entered exists From b2ab061e3c0922aec72c9a6b67351d84b8444524 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 19:48:15 +0200 Subject: [PATCH 30/85] Rename function --- bin/omarchy-menu | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 4c35b3f1..d4ccf48b 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -16,7 +16,7 @@ show_learn_menu() { *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/" & ;; - *) show_menu ;; + *) show_main_menu ;; esac } @@ -25,7 +25,7 @@ show_style_menu() { *Theme*) $OMARCHY_BIN_PATH/omarchy-theme-menu ;; *Font*) terminal $OMARCHY_BIN_PATH/omarchy-font-menu ;; *Background*) $OMARCHY_BIN_PATH/omarchy-theme-bg-next ;; - *) show_menu ;; + *) show_main_menu ;; esac } @@ -34,7 +34,7 @@ show_capture_menu() { *Screenshot*) show_screenshot_menu ;; *Screenrecord*) show_screenrecord_menu ;; *Color*) pkill hyprpicker || hyprpicker -a ;; - *) show_menu ;; + *) show_main_menu ;; esac } @@ -61,7 +61,7 @@ show_toggle_menu() { *Nightlight*) $OMARCHY_BIN_PATH/omarchy-toggle-nightlight ;; *Idle*) $OMARCHY_BIN_PATH/omarchy-toggle-idle ;; *Bar*) pkill -SIGUSR1 waybar ;; - *) show_menu ;; + *) show_main_menu ;; esac } @@ -72,7 +72,7 @@ show_setup_menu() { *Audio*) alacritty --class=Wiremix -e wiremix ;; *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; - *) show_menu ;; + *) show_main_menu ;; esac } @@ -82,7 +82,7 @@ show_install_menu() { *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_menu ;; + *) show_main_menu ;; esac } @@ -90,7 +90,7 @@ show_update_menu() { case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n Timezone") in *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; *Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;; - *) show_menu ;; + *) show_main_menu ;; esac } @@ -101,12 +101,12 @@ show_system_menu() { *Relaunch*) uwsm stop ;; *Restart*) systemctl reboot ;; *Shutdown*) systemctl poweroff ;; - *) show_menu ;; + *) show_main_menu ;; esac } -show_menu() { - case $(menu "Do" "󰀻 Apps\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n󰧑 Learning\n System") in +show_main_menu() { + case $(menu "Do" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n System") in *Apps*) walker -p "Launch…" ;; *Capture*) show_capture_menu ;; *Toggle*) show_toggle_menu ;; @@ -119,4 +119,17 @@ show_menu() { esac } -show_menu +case "$1" in +*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 ;; +*update*) show_update_menu ;; +*system*) show_system_menu ;; +*) show_main_menu ;; +esac From d599a98a76ea74e91307fe5fef5b3a40d835a6c3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 19:50:03 +0200 Subject: [PATCH 31/85] Allow updating themes --- bin/omarchy-menu | 3 ++- bin/omarchy-theme-update | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index d4ccf48b..62a92b62 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -87,8 +87,9 @@ show_install_menu() { } show_update_menu() { - case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n Timezone") in + case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n󰸌 Themes\n Timezone") in *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; + *Themes*) terminal $OMARCHY_BIN_PATH/omarchy-theme-update ;; *Timezone*) $OMARCHY_BIN_PATH/omarchy-cmd-tzupdate ;; *) show_main_menu ;; esac diff --git a/bin/omarchy-theme-update b/bin/omarchy-theme-update index c5e08c11..32142aa5 100755 --- a/bin/omarchy-theme-update +++ b/bin/omarchy-theme-update @@ -1,4 +1,12 @@ #!/bin/bash + +# Show logo +clear +cat <~/.local/share/omarchy/logo.txt + for dir in ~/.config/omarchy/themes/*/; do - [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull -done \ No newline at end of file + [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull +done + +gum spin --spinner "globe" --title "Done!" -- sleep 2 + From b4a6550b29699b9945cf0a924d05ae70d225b716 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 19:50:36 +0200 Subject: [PATCH 32/85] Use new omarchy-menu for everything --- bin/omarchy-menu | 7 ++++++- default/hypr/bindings/utilities.conf | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 62a92b62..8bbe16d7 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -22,13 +22,18 @@ show_learn_menu() { show_style_menu() { case $(menu "Style" "󰸌 Theme\n Font\n Background") in - *Theme*) $OMARCHY_BIN_PATH/omarchy-theme-menu ;; + *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() { + $OMARCHY_BIN_PATH/omarchy-theme-set "$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)")" + show_main_menu +} + show_capture_menu() { case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in *Screenshot*) show_screenshot_menu ;; diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index c24611fe..94fcf5f6 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,13 +1,13 @@ # Menus bindd = SUPER, SPACE, Launch apps, exec, walker -p "Launch…" 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-power +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 # Aesthetics 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 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 bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss From 9c4a45537a98d70c0ac8fb3920e9c5d4b3cc7cbf Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 19:50:49 +0200 Subject: [PATCH 33/85] Reveal omarchy menu from waybar --- config/waybar/config.jsonc | 6 ++++++ config/waybar/style.css | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 4431a81e..34e2fc32 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -5,6 +5,7 @@ "spacing": 0, "height": 26, "modules-left": [ + "custom/omarchy", "hyprland/workspaces" ], "modules-center": [ @@ -43,6 +44,11 @@ "5": [] } }, + "custom/omarchy": { + "format": "", + "on-click": "~/.local/share/omarchy/bin/omarchy-menu", + "tooltip": false + }, "custom/update": { "format": "", "exec": "~/.local/share/omarchy/bin/omarchy-update-available", diff --git a/config/waybar/style.css b/config/waybar/style.css index ae1a5840..841ba602 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -37,7 +37,7 @@ #bluetooth, #pulseaudio, #clock, -#custom-power-menu { +#custom-omarchy { min-width: 12px; margin: 0 7.5px; } From 6dca3e17174275f7019582521b65de3deed89cbc Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 19:50:53 +0200 Subject: [PATCH 34/85] Renaming and order --- bin/omarchy-menu | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 8bbe16d7..50ad24e0 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -82,8 +82,8 @@ show_setup_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 AUR\n Dropbox\n Steam\n Docker DBs") in - *AUR*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + case $(menu "Install" "󰣇 Packages\n Dropbox\n Steam\n Docker DBs") in + *Packages*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; *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 ;; @@ -114,13 +114,13 @@ show_system_menu() { show_main_menu() { case $(menu "Do" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n System") in *Apps*) walker -p "Launch…" ;; + *Learn*) show_learn_menu ;; *Capture*) show_capture_menu ;; *Toggle*) show_toggle_menu ;; *Style*) show_style_menu ;; *Setup*) show_setup_menu ;; *Install*) show_install_menu ;; *Update*) show_update_menu ;; - *Learn*) show_learn_menu ;; *System*) show_system_menu ;; esac } From eda03fcfe1b2cd0ecb71aa6eec67d51df27b7778 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:18:49 +0200 Subject: [PATCH 35/85] Try with Start instead --- bin/omarchy-menu | 2 +- default/hypr/bindings/utilities.conf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 50ad24e0..80875ea8 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -112,7 +112,7 @@ show_system_menu() { } show_main_menu() { - case $(menu "Do" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n System") in + case $(menu "Start" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n System") in *Apps*) walker -p "Launch…" ;; *Learn*) show_learn_menu ;; *Capture*) show_capture_menu ;; diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index 94fcf5f6..0075b2ce 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -1,5 +1,5 @@ # Menus -bindd = SUPER, SPACE, Launch apps, exec, walker -p "Launch…" +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 From 2e117b57f0a53a4f37a567f63f064a009da4c4db Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:20:24 +0200 Subject: [PATCH 36/85] Need to refresh waybar for the new Omarchy menu --- migrations/1754331529.sh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 migrations/1754331529.sh diff --git a/migrations/1754331529.sh b/migrations/1754331529.sh new file mode 100644 index 00000000..84ca2361 --- /dev/null +++ b/migrations/1754331529.sh @@ -0,0 +1,5 @@ +echo "Update Waybar for new Omarchy menu" + +if ! grep -q ""; then + omarchy-refresh-waybar +fi From fe396b305c19b2671d8287c66d2e56a97dea3b26 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:23:00 +0200 Subject: [PATCH 37/85] Stray comment --- bin/omarchy-cmd-screenrecord | 2 -- 1 file changed, 2 deletions(-) diff --git a/bin/omarchy-cmd-screenrecord b/bin/omarchy-cmd-screenrecord index 84a46000..1d05fae7 100755 --- a/bin/omarchy-cmd-screenrecord +++ b/bin/omarchy-cmd-screenrecord @@ -1,7 +1,5 @@ #!/bin/bash -# Set recorder based on GPU - [[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" From 9c70a8e1878f56b7d599be03eac6cbdf71179a9c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:23:38 +0200 Subject: [PATCH 38/85] Just using omarchy-update now --- bin/omarchy-dev-add-migration | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/omarchy-dev-add-migration b/bin/omarchy-dev-add-migration index a3c712fc..21eea4f7 100755 --- a/bin/omarchy-dev-add-migration +++ b/bin/omarchy-dev-add-migration @@ -4,4 +4,3 @@ cd ~/.local/share/omarchy migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh" touch $migration_file nvim $migration_file -echo -e "Run with:\nsource $migration_file" From 57443e74ad860f950c90b3a373ad1f4227198c39 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:26:33 +0200 Subject: [PATCH 39/85] Show logo now that we are coming from the new menu --- bin/omarchy-font-menu | 4 +--- bin/omarchy-setup-docker-dbs | 4 +--- bin/omarchy-setup-dropbox | 2 ++ bin/omarchy-setup-fido2 | 2 ++ bin/omarchy-setup-fingerprint | 2 ++ bin/omarchy-setup-steam | 2 ++ bin/omarchy-show-logo | 5 +++++ bin/omarchy-theme-update | 4 +--- 8 files changed, 16 insertions(+), 9 deletions(-) create mode 100755 bin/omarchy-show-logo diff --git a/bin/omarchy-font-menu b/bin/omarchy-font-menu index e2ac46b6..7eaa9147 100755 --- a/bin/omarchy-font-menu +++ b/bin/omarchy-font-menu @@ -1,8 +1,6 @@ #!/bin/bash -# Show logo -clear -cat <~/.local/share/omarchy/logo.txt +~/.local/share/omarchy/bin/omarchy-show-logo font=$( fc-list :spacing=100 -f "%{family[0]}\n" | diff --git a/bin/omarchy-setup-docker-dbs b/bin/omarchy-setup-docker-dbs index 584f1624..236819ca 100755 --- a/bin/omarchy-setup-docker-dbs +++ b/bin/omarchy-setup-docker-dbs @@ -1,8 +1,6 @@ #!/bin/bash -# Show logo -clear -cat <~/.local/share/omarchy/logo.txt +~/.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 diff --git a/bin/omarchy-setup-dropbox b/bin/omarchy-setup-dropbox index 90ec37c2..70242dc3 100755 --- a/bin/omarchy-setup-dropbox +++ b/bin/omarchy-setup-dropbox @@ -1,5 +1,7 @@ #!/bin/bash +~/.local/share/omarchy/bin/omarchy-show-logo + echo "Installing all dependencies..." yay -S --noconfirm --needed \ dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox diff --git a/bin/omarchy-setup-fido2 b/bin/omarchy-setup-fido2 index 75b404b5..b499ee57 100755 --- a/bin/omarchy-setup-fido2 +++ b/bin/omarchy-setup-fido2 @@ -1,5 +1,7 @@ #!/bin/bash +~/.local/share/omarchy/bin/omarchy-show-logo + if [[ "--remove" == "$1" ]]; then yay -Rns --noconfirm libfido2 pam-u2f sudo rm -rf /etc/fido2 diff --git a/bin/omarchy-setup-fingerprint b/bin/omarchy-setup-fingerprint index 2ba0b605..123fb050 100755 --- a/bin/omarchy-setup-fingerprint +++ b/bin/omarchy-setup-fingerprint @@ -1,5 +1,7 @@ #!/bin/bash +~/.local/share/omarchy/bin/omarchy-show-logo + if [[ "--remove" == "$1" ]]; then yay -Rns --noconfirm fprintd sudo rm -rf /etc/pam.d/polkit-1 diff --git a/bin/omarchy-setup-steam b/bin/omarchy-setup-steam index ae4051c2..604af7e3 100755 --- a/bin/omarchy-setup-steam +++ b/bin/omarchy-setup-steam @@ -1,5 +1,7 @@ #!/bin/bash +~/.local/share/omarchy/bin/omarchy-show-logo + echo "Adding multilib repository for 32-bit compatibility" sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf sudo pacman -Sy diff --git a/bin/omarchy-show-logo b/bin/omarchy-show-logo new file mode 100755 index 00000000..681f0a1a --- /dev/null +++ b/bin/omarchy-show-logo @@ -0,0 +1,5 @@ +#!/bin/bash + +clear +cat <~/.local/share/omarchy/logo.txt +echo diff --git a/bin/omarchy-theme-update b/bin/omarchy-theme-update index 32142aa5..f6fd78fd 100755 --- a/bin/omarchy-theme-update +++ b/bin/omarchy-theme-update @@ -1,8 +1,6 @@ #!/bin/bash -# Show logo -clear -cat <~/.local/share/omarchy/logo.txt +~/.local/share/omarchy/bin/omarchy-show-logo for dir in ~/.config/omarchy/themes/*/; do [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull From fc449efdb176b842ef5f6dcc674d06cdcd73423a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:28:44 +0200 Subject: [PATCH 40/85] No longer needed --- bin/omarchy-menu-power | 20 -------------------- bin/omarchy-theme-menu | 4 ---- 2 files changed, 24 deletions(-) delete mode 100755 bin/omarchy-menu-power delete mode 100755 bin/omarchy-theme-menu diff --git a/bin/omarchy-menu-power b/bin/omarchy-menu-power deleted file mode 100755 index 8a5c889d..00000000 --- a/bin/omarchy-menu-power +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -show_power_menu() { - local menu_options=" Lock -󰤄 Suspend - Relaunch -󰜉 Restart -󰐥 Shutdown" - local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150 -p "System") - - case "$selection" in - *Lock*) hyprlock ;; - *Suspend*) systemctl suspend ;; - *Relaunch*) uwsm stop ;; - *Restart*) systemctl reboot ;; - *Shutdown*) systemctl poweroff ;; - esac -} - -show_power_menu diff --git a/bin/omarchy-theme-menu b/bin/omarchy-theme-menu deleted file mode 100755 index 4a19f1c5..00000000 --- a/bin/omarchy-theme-menu +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -"$HOME/.local/share/omarchy/bin/omarchy-theme-set" \ - "$(~/.local/share/omarchy/bin/omarchy-theme-list | walker --dmenu --theme dmenu_250 -p "Choose Theme" 2>/dev/null)" From 4f8d758b0799e6f2f78de4c67c7635f251fc1054 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:30:00 +0200 Subject: [PATCH 41/85] Give it color --- bin/omarchy-show-logo | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bin/omarchy-show-logo b/bin/omarchy-show-logo index 681f0a1a..fbaf38df 100755 --- a/bin/omarchy-show-logo +++ b/bin/omarchy-show-logo @@ -1,5 +1,7 @@ #!/bin/bash clear +echo -e "\033[32m" cat <~/.local/share/omarchy/logo.txt +echo -e "\033[0m" echo From e875a5d34482e6b0a901d31e19a414c9bd221b08 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:40:41 +0200 Subject: [PATCH 42/85] Old Omarchy TUI is gone! --- applications/omarchy.desktop | 10 --- bin/omarchy | 144 ----------------------------------- migrations/1754332200.sh | 2 + 3 files changed, 2 insertions(+), 154 deletions(-) delete mode 100644 applications/omarchy.desktop delete mode 100755 bin/omarchy create mode 100644 migrations/1754332200.sh diff --git a/applications/omarchy.desktop b/applications/omarchy.desktop deleted file mode 100644 index 0447829e..00000000 --- a/applications/omarchy.desktop +++ /dev/null @@ -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 \ No newline at end of file diff --git a/bin/omarchy b/bin/omarchy deleted file mode 100755 index 066058e7..00000000 --- a/bin/omarchy +++ /dev/null @@ -1,144 +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" - -# Set colors to use for gum theme -export GUM_CHOOSE_CURSOR_FOREGROUND="4" # Blue -export GUM_CHOOSE_SELECTED_FOREGROUND="12" # Bright blue -export GUM_CHOOSE_HEADER_FOREGROUND="5" # Magenta -export GUM_CHOOSE_ITEM_FOREGROUND="7" # White -export GUM_INPUT_CURSOR_FOREGROUND="7" # White -export GUM_INPUT_PROMPT_FOREGROUND="4" # Blue -export GUM_SPIN_SPINNER_FOREGROUND="5" # Magenta -export GUM_SPIN_TITLE_FOREGROUND="5" # Magenta - -show_ascii_art() { - clear - echo -e "\033[32m" - tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand - echo -e "\033[0m" - 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 diff --git a/migrations/1754332200.sh b/migrations/1754332200.sh new file mode 100644 index 00000000..b70623b3 --- /dev/null +++ b/migrations/1754332200.sh @@ -0,0 +1,2 @@ +echo "Remove old Omarchy TUI app now that we have the Omarchy Menu" +rm ~/.local/share/applications/omarchy.desktop From a8a8b017d62b0a51673a53e6e2cbdf8521804dd9 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:40:52 +0200 Subject: [PATCH 43/85] Allow menu to install third party themes --- bin/omarchy-menu | 3 ++- bin/omarchy-theme-install | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 80875ea8..f9e2974c 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -82,8 +82,9 @@ show_setup_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Packages\n Dropbox\n Steam\n Docker DBs") in + case $(menu "Install" "󰣇 Packages\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in *Packages*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + *Theme*) terminal $OMARCHY_BIN_PATH/omarchy-theme-install ;; *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 ;; diff --git a/bin/omarchy-theme-install b/bin/omarchy-theme-install index 93b30ab5..2bb84a99 100755 --- a/bin/omarchy-theme-install +++ b/bin/omarchy-theme-install @@ -4,11 +4,16 @@ # Usage: omarchy-theme-install if [ -z "$1" ]; then - echo "Usage: omarchy-theme-install " + ~/.local/share/omarchy/bin/omarchy-show-logo + REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="") +else + REPO_URL="$1" +fi + +if [ -z "$REPO_URL" ]; then exit 1 fi -REPO_URL="$1" THEMES_DIR="$HOME/.config/omarchy/themes" THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//') THEME_PATH="$THEMES_DIR/$THEME_NAME" @@ -25,4 +30,4 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then fi # Apply the new theme with omarchy-theme-set -omarchy-theme-set $THEME_NAME +~/.local/share/omarchy/bin/omarchy-theme-set $THEME_NAME From 82bcee562477eaa8d55dac0a00ba406a4b07b673 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:42:20 +0200 Subject: [PATCH 44/85] Fix grep --- migrations/1754331529.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1754331529.sh b/migrations/1754331529.sh index 84ca2361..ae92aae4 100644 --- a/migrations/1754331529.sh +++ b/migrations/1754331529.sh @@ -1,5 +1,5 @@ echo "Update Waybar for new Omarchy menu" -if ! grep -q ""; then +if ! grep -q "" ~/.config/waybar/config.jsonc; then omarchy-refresh-waybar fi From 8170cb9ed483e702e94c16e60f08b98f3d134721 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 4 Aug 2025 20:51:43 +0200 Subject: [PATCH 45/85] Unified done showing and command style --- bin/omarchy-cmd-install | 2 +- bin/omarchy-cmd-uninstall | 2 +- bin/omarchy-font-menu | 2 +- bin/omarchy-setup-docker-dbs | 2 +- bin/omarchy-setup-dropbox | 2 ++ bin/omarchy-setup-fido2 | 2 ++ bin/omarchy-setup-fingerprint | 2 ++ bin/omarchy-setup-steam | 2 ++ bin/omarchy-show-done | 4 ++++ bin/omarchy-theme-next | 2 +- bin/omarchy-theme-remove | 3 +-- bin/omarchy-theme-set | 4 ++-- bin/omarchy-theme-update | 3 +-- bin/omarchy-update | 4 ++-- 14 files changed, 23 insertions(+), 13 deletions(-) create mode 100755 bin/omarchy-show-done diff --git a/bin/omarchy-cmd-install b/bin/omarchy-cmd-install index 1c6d7356..df697737 100755 --- a/bin/omarchy-cmd-install +++ b/bin/omarchy-cmd-install @@ -2,4 +2,4 @@ yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75% | xargs -ro yay -S --noconfirm -gum spin --spinner "globe" --title "Done!" -- sleep 2 +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-cmd-uninstall b/bin/omarchy-cmd-uninstall index 9f78c2e0..c748f591 100755 --- a/bin/omarchy-cmd-uninstall +++ b/bin/omarchy-cmd-uninstall @@ -2,4 +2,4 @@ yay -Qqe | fzf --multi --preview 'yay -Qi {1}' --preview-window=down:75% | xargs -ro yay -Rns --noconfirm -gum spin --spinner "globe" --title "Done!" -- sleep 2 +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-font-menu b/bin/omarchy-font-menu index 7eaa9147..ce25a10a 100755 --- a/bin/omarchy-font-menu +++ b/bin/omarchy-font-menu @@ -13,4 +13,4 @@ if [[ -n "$font" ]]; then sed -i "s/family = \".*\"/family = \"$font\"/g" ~/.config/alacritty/alacritty.toml fi -gum spin --spinner "globe" --title "Done!" -- sleep 2 +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-docker-dbs b/bin/omarchy-setup-docker-dbs index 236819ca..ead59c32 100755 --- a/bin/omarchy-setup-docker-dbs +++ b/bin/omarchy-setup-docker-dbs @@ -16,4 +16,4 @@ if [[ -n "$choices" ]]; then done fi -gum spin --spinner "globe" --title "Done!" -- sleep 2 +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-dropbox b/bin/omarchy-setup-dropbox index 70242dc3..000e24b0 100755 --- a/bin/omarchy-setup-dropbox +++ b/bin/omarchy-setup-dropbox @@ -9,3 +9,5 @@ yay -S --noconfirm --needed \ echo "Starting Dropbox..." uwsm app -- dropbox-cli start &>/dev/null & echo "See Dropbox icon behind  hover tray in top right and right-click for setup." + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-fido2 b/bin/omarchy-setup-fido2 index b499ee57..6c29a282 100755 --- a/bin/omarchy-setup-fido2 +++ b/bin/omarchy-setup-fido2 @@ -33,3 +33,5 @@ else fi fi fi + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-fingerprint b/bin/omarchy-setup-fingerprint index 123fb050..7d480b63 100755 --- a/bin/omarchy-setup-fingerprint +++ b/bin/omarchy-setup-fingerprint @@ -43,3 +43,5 @@ EOF fi fi fi + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-setup-steam b/bin/omarchy-setup-steam index 604af7e3..da99e6a9 100755 --- a/bin/omarchy-setup-steam +++ b/bin/omarchy-setup-steam @@ -9,3 +9,5 @@ sudo pacman -Sy echo "Now pick dependencies matching your graphics card" yay -S steam gtk-launch steam >/dev/null 2>&1 & + +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-show-done b/bin/omarchy-show-done new file mode 100755 index 00000000..4c470d9f --- /dev/null +++ b/bin/omarchy-show-done @@ -0,0 +1,4 @@ +#!/bin/bash + +echo +gum spin --spinner "globe" --title "Done!" -- sleep 2 diff --git a/bin/omarchy-theme-next b/bin/omarchy-theme-next index 778b0ea3..fb42add0 100755 --- a/bin/omarchy-theme-next +++ b/bin/omarchy-theme-next @@ -30,5 +30,5 @@ NEXT_INDEX=$(((INDEX + 1) % TOTAL)) NEW_THEME=${THEMES[$NEXT_INDEX]} 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 diff --git a/bin/omarchy-theme-remove b/bin/omarchy-theme-remove index b1fe7a29..550f786e 100755 --- a/bin/omarchy-theme-remove +++ b/bin/omarchy-theme-remove @@ -24,10 +24,9 @@ fi # Use readlink -f to resolve symlinks and get the absolute path 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 # Now remove the theme directory and backgrounds for THEME_NAME rm -rf "$THEME_PATH" rm -rf "$BACKGROUND_PATH" - diff --git a/bin/omarchy-theme-set b/bin/omarchy-theme-set index 3f0551b2..ee60d1f2 100755 --- a/bin/omarchy-theme-set +++ b/bin/omarchy-theme-set @@ -44,11 +44,11 @@ touch "$HOME/.config/alacritty/alacritty.toml" # Restart components to apply new theme pkill -SIGUSR2 btop -"$HOME/.local/share/omarchy/bin/omarchy-restart-waybar" +~/.local/share/omarchy/bin/omarchy-restart-waybar pkill swayosd-server setsid uwsm app -- swayosd-server &>/dev/null & makoctl reload hyprctl reload # Set new background -"$HOME/.local/share/omarchy/bin/omarchy-theme-bg-next" +~/.local/share/omarchy/bin/omarchy-theme-bg-next diff --git a/bin/omarchy-theme-update b/bin/omarchy-theme-update index f6fd78fd..33c73181 100755 --- a/bin/omarchy-theme-update +++ b/bin/omarchy-theme-update @@ -6,5 +6,4 @@ for dir in ~/.config/omarchy/themes/*/; do [ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull done -gum spin --spinner "globe" --title "Done!" -- sleep 2 - +~/.local/share/omarchy/bin/omarchy-show-done diff --git a/bin/omarchy-update b/bin/omarchy-update index 93412443..191b2e07 100755 --- a/bin/omarchy-update +++ b/bin/omarchy-update @@ -13,7 +13,7 @@ git -C $omarchy_path pull --autostash git -C $omarchy_path diff --check || git -C $omarchy_path reset --merge # Run migrations -"$HOME/.local/share/omarchy/bin/omarchy-migrate" +~/.local/share/omarchy/bin/omarchy-migrate # Update system packages echo -e "\e[32m\nUpdate system packages\e[0m" @@ -24,4 +24,4 @@ if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $ gum confirm "Linux kernel has been updated. Reboot?" && sudo reboot now fi -gum spin --spinner "globe" --title "Done!" -- sleep 2 +~/.local/share/omarchy/bin/omarchy-show-done From 1b17a049ff6dd238725182a5d995113ef57ba4e1 Mon Sep 17 00:00:00 2001 From: DavidHoenisch Date: Mon, 4 Aug 2025 22:03:42 -0700 Subject: [PATCH 46/85] improved error handling to exist on mistyped pin instead of failing silently --- bin/omarchy-setup-fido2 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bin/omarchy-setup-fido2 b/bin/omarchy-setup-fido2 index 75b404b5..5c9161cd 100755 --- a/bin/omarchy-setup-fido2 +++ b/bin/omarchy-setup-fido2 @@ -18,6 +18,10 @@ else sudo mkdir -p /etc/fido2 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 + 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 fi From ea31b4a0905d518859b5c02e74cd6b967adc6d06 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 09:16:01 +0200 Subject: [PATCH 47/85] Add Arch wiki to learning list --- bin/omarchy-menu | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index f9e2974c..926527c4 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -12,10 +12,11 @@ terminal() { } show_learn_menu() { - case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland") in + case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch") 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" & ;; *) show_main_menu ;; esac } From 3a06b639c38225f55d961d2d635c4a618d401458 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 09:18:51 +0200 Subject: [PATCH 48/85] Add Bash learnings too --- bin/omarchy-menu | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 926527c4..4883dbaa 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -12,11 +12,12 @@ terminal() { } show_learn_menu() { - case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch") in + case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\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" & ;; *) show_main_menu ;; esac } From 8dc198c57f3ab456df055cb01883d766031e5e2e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 09:32:35 +0200 Subject: [PATCH 49/85] Use full path so they can safely be run from Walker menu --- bin/omarchy-refresh-hypridle | 4 ++-- bin/omarchy-refresh-hyprland | 2 +- bin/omarchy-refresh-hyprlock | 3 +-- bin/omarchy-refresh-hyprsunset | 4 ++-- bin/omarchy-refresh-swayosd | 6 +++--- bin/omarchy-refresh-walker | 4 ++-- bin/omarchy-refresh-waybar | 6 +++--- bin/omarchy-restart-hypridle | 2 +- bin/omarchy-restart-hyprsunset | 2 +- bin/omarchy-restart-swayosd | 2 +- bin/omarchy-restart-waybar | 2 +- bin/omarchy-restart-xcompose | 2 +- 12 files changed, 19 insertions(+), 20 deletions(-) diff --git a/bin/omarchy-refresh-hypridle b/bin/omarchy-refresh-hypridle index f555f0f2..7821e43a 100755 --- a/bin/omarchy-refresh-hypridle +++ b/bin/omarchy-refresh-hypridle @@ -1,4 +1,4 @@ #!/bin/bash -omarchy-refresh-config hypr/hypridle.conf -omarchy-restart-hypridle +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hypridle.conf +~/.local/share/omarchy/bin/omarchy-restart-hypridle diff --git a/bin/omarchy-refresh-hyprland b/bin/omarchy-refresh-hyprland index 6524a057..72f06435 100755 --- a/bin/omarchy-refresh-hyprland +++ b/bin/omarchy-refresh-hyprland @@ -1,3 +1,3 @@ #!/bin/bash -omarchy-refresh-config hypr/hyprland.conf +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprland.conf diff --git a/bin/omarchy-refresh-hyprlock b/bin/omarchy-refresh-hyprlock index e14915a2..345d6ae2 100755 --- a/bin/omarchy-refresh-hyprlock +++ b/bin/omarchy-refresh-hyprlock @@ -1,4 +1,3 @@ #!/bin/bash -omarchy-refresh-config hypr/hyprlock.conf - +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprlock.conf diff --git a/bin/omarchy-refresh-hyprsunset b/bin/omarchy-refresh-hyprsunset index ca2ab1a6..fb458af9 100755 --- a/bin/omarchy-refresh-hyprsunset +++ b/bin/omarchy-refresh-hyprsunset @@ -1,4 +1,4 @@ #!/bin/bash -omarchy-refresh-config hypr/hyprsunset.conf -omarchy-restart-hyprsunset +~/.local/share/omarchy/bin/omarchy-refresh-config hypr/hyprsunset.conf +~/.local/share/omarchy/bin/omarchy-restart-hyprsunset diff --git a/bin/omarchy-refresh-swayosd b/bin/omarchy-refresh-swayosd index 0dd7f0db..c2903735 100755 --- a/bin/omarchy-refresh-swayosd +++ b/bin/omarchy-refresh-swayosd @@ -1,5 +1,5 @@ #!/bin/bash -omarchy-refresh-config swayosd/config.toml -omarchy-refresh-config swayosd/style.css -omarchy-restart-swayosd +~/.local/share/omarchy/bin/omarchy-refresh-config swayosd/config.toml +~/.local/share/omarchy/bin/omarchy-refresh-config swayosd/style.css +~/.local/share/omarchy/bin/omarchy-restart-swayosd diff --git a/bin/omarchy-refresh-walker b/bin/omarchy-refresh-walker index aa7a0210..90053acc 100755 --- a/bin/omarchy-refresh-walker +++ b/bin/omarchy-refresh-walker @@ -1,4 +1,4 @@ #!/bin/bash -omarchy-refresh-config walker/config.toml -omarchy-restart-walker +~/.local/share/omarchy/bin/omarchy-refresh-config walker/config.toml +~/.local/share/omarchy/bin/omarchy-restart-walker diff --git a/bin/omarchy-refresh-waybar b/bin/omarchy-refresh-waybar index 3f6af499..3401efd4 100755 --- a/bin/omarchy-refresh-waybar +++ b/bin/omarchy-refresh-waybar @@ -1,5 +1,5 @@ #!/bin/bash -omarchy-refresh-config waybar/config.jsonc -omarchy-refresh-config waybar/style.css -omarchy-restart-waybar +~/.local/share/omarchy/bin/omarchy-refresh-config waybar/config.jsonc +~/.local/share/omarchy/bin/omarchy-refresh-config waybar/style.css +~/.local/share/omarchy/bin/omarchy-restart-waybar diff --git a/bin/omarchy-restart-hypridle b/bin/omarchy-restart-hypridle index 261f0aa3..501440c5 100755 --- a/bin/omarchy-restart-hypridle +++ b/bin/omarchy-restart-hypridle @@ -1,3 +1,3 @@ #!/bin/bash -omarchy-restart-app hypridle +~/.local/share/omarchy/bin/omarchy-restart-app hypridle diff --git a/bin/omarchy-restart-hyprsunset b/bin/omarchy-restart-hyprsunset index 0e681bfd..01b2fa72 100755 --- a/bin/omarchy-restart-hyprsunset +++ b/bin/omarchy-restart-hyprsunset @@ -1,3 +1,3 @@ #!/bin/bash -omarchy-restart-app hyprsunset +~/.local/share/omarchy/bin/omarchy-restart-app hyprsunset diff --git a/bin/omarchy-restart-swayosd b/bin/omarchy-restart-swayosd index b155bc2f..4a1af50d 100755 --- a/bin/omarchy-restart-swayosd +++ b/bin/omarchy-restart-swayosd @@ -1,3 +1,3 @@ #!/bin/bash -omarchy-restart-app swayosd-server +~/.local/share/omarchy/bin/omarchy-restart-app swayosd-server diff --git a/bin/omarchy-restart-waybar b/bin/omarchy-restart-waybar index 53b570ef..9e3a1814 100755 --- a/bin/omarchy-restart-waybar +++ b/bin/omarchy-restart-waybar @@ -1,3 +1,3 @@ #!/bin/bash -omarchy-restart-app waybar +~/.local/share/omarchy/bin/omarchy-restart-app waybar diff --git a/bin/omarchy-restart-xcompose b/bin/omarchy-restart-xcompose index 45f7d9a8..c1714a55 100755 --- a/bin/omarchy-restart-xcompose +++ b/bin/omarchy-restart-xcompose @@ -1,3 +1,3 @@ #!/bin/bash -omarchy-restart-app fcitx5 +~/.local/share/omarchy/bin/omarchy-restart-app fcitx5 From a75c9ef072a70d61637e2eddcba121e10a808b11 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 09:37:23 +0200 Subject: [PATCH 50/85] Add updating configs from defaults --- bin/omarchy-menu | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 4883dbaa..425c520d 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -11,6 +11,10 @@ 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;" +} + show_learn_menu() { case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n󱆃 Bash") in *Keybindings*) $OMARCHY_BIN_PATH/omarchy-menu-keybindings ;; @@ -95,14 +99,29 @@ show_install_menu() { } show_update_menu() { - case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n󰸌 Themes\n Timezone") in + case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\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 ;; From 2cd841a687187c28da7cfe14f59742ef8c4e7475 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 09:42:25 +0200 Subject: [PATCH 51/85] Explain what we are doing before asking for sudo --- bin/omarchy-setup-fido2 | 2 ++ bin/omarchy-setup-fingerprint | 2 ++ 2 files changed, 4 insertions(+) diff --git a/bin/omarchy-setup-fido2 b/bin/omarchy-setup-fido2 index 955bea30..11f29df5 100755 --- a/bin/omarchy-setup-fido2 +++ b/bin/omarchy-setup-fido2 @@ -3,11 +3,13 @@ ~/.local/share/omarchy/bin/omarchy-show-logo 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 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 echo -e "\e[32m\nYou've successfully removed the fido2 device setup.\e[0m" else + echo -e "\e[32mLet's setup your Fido2 device for sudo authentication.\n\e[0m" yay -S --noconfirm --needed libfido2 pam-u2f tokens=$(fido2-token -L) diff --git a/bin/omarchy-setup-fingerprint b/bin/omarchy-setup-fingerprint index 7d480b63..6e512db1 100755 --- a/bin/omarchy-setup-fingerprint +++ b/bin/omarchy-setup-fingerprint @@ -3,11 +3,13 @@ ~/.local/share/omarchy/bin/omarchy-show-logo if [[ "--remove" == "$1" ]]; then + echo -e "\e[32mLet's remove your fingerprint scanner from authentication.\n\e[0m" yay -Rns --noconfirm fprintd sudo rm -rf /etc/pam.d/polkit-1 sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m" else + echo -e "\e[32mLet's setup your fingerprint scanner for authentication.\n\e[0m" yay -S --noconfirm --needed fprintd usbutils if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then From d1b09e27a053cc1c29799aa5af98ae74bc7d1a71 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 10:30:44 +0200 Subject: [PATCH 52/85] Add remove menu and tune up theme-remove script --- bin/omarchy-menu | 18 +++++++++++++++--- bin/omarchy-theme-remove | 26 +++++++++++++++++--------- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 425c520d..b89f59a2 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -88,8 +88,8 @@ show_setup_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Packages\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in - *Packages*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + case $(menu "Install" "󰣇 Package\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in + *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; *Theme*) terminal $OMARCHY_BIN_PATH/omarchy-theme-install ;; *Dropbox*) terminal $OMARCHY_BIN_PATH/omarchy-setup-dropbox ;; *Steam*) terminal $OMARCHY_BIN_PATH/omarchy-setup-steam ;; @@ -98,6 +98,16 @@ show_install_menu() { esac } +show_remove_menu() { + case $(menu "Remove" "󰣇 Package\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in + *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-uninstall ;; + *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 ($OMARCHY_VERSION)\n Configs\n󰸌 Themes\n Timezone") in *Omarchy*) terminal $OMARCHY_BIN_PATH/omarchy-update ;; @@ -134,7 +144,7 @@ show_system_menu() { } show_main_menu() { - case $(menu "Start" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n Update\n System") in + case $(menu "Start" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n System") in *Apps*) walker -p "Launch…" ;; *Learn*) show_learn_menu ;; *Capture*) show_capture_menu ;; @@ -142,6 +152,7 @@ show_main_menu() { *Style*) show_style_menu ;; *Setup*) show_setup_menu ;; *Install*) show_install_menu ;; + *Remove*) show_remove_menu ;; *Update*) show_update_menu ;; *System*) show_system_menu ;; esac @@ -157,6 +168,7 @@ case "$1" in *toggle*) show_toggle_menu ;; *setup*) show_setup_menu ;; *install*) show_install_menu ;; +*remove*) show_remove_menu ;; *update*) show_update_menu ;; *system*) show_system_menu ;; *) show_main_menu ;; diff --git a/bin/omarchy-theme-remove b/bin/omarchy-theme-remove index 550f786e..42cd5d3c 100755 --- a/bin/omarchy-theme-remove +++ b/bin/omarchy-theme-remove @@ -4,17 +4,26 @@ # Usage: omarchy-theme-remove if [ -z "$1" ]; then - echo "Usage: omarchy-theme-remove " - exit 1 + extra_themes=$(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n') + + 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 -THEME_NAME="$1" THEMES_DIR="$HOME/.config/omarchy/themes" -BACKGROUND_DIR="$HOME/.config/omarchy/backgrounds" CURRENT_DIR="$HOME/.config/omarchy/current" - 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 if [ ! -d "$THEME_PATH" ]; then @@ -22,11 +31,10 @@ if [ ! -d "$THEME_PATH" ]; then exit 1 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 ~/.local/share/omarchy/bin/omarchy-theme-next 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 "$BACKGROUND_PATH" From 494c14085964f3d8edc1e5ca455d47ed2f0fe3b4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 10:47:37 +0200 Subject: [PATCH 53/85] Audio more common --- bin/omarchy-menu | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index b89f59a2..e0b3254a 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -77,10 +77,10 @@ show_toggle_menu() { } show_setup_menu() { - case $(menu "Setup" " Wifi\n󰂯 Bluetooth\n Audio\n󰈷 Fingerprint\n Fido2") in + case $(menu "Setup" " Audio\n Wifi\n󰂯 Bluetooth\n󰈷 Fingerprint\n Fido2") in + *Audio*) alacritty --class=Wiremix -e wiremix ;; *Wifi*) alacritty --class=Impala -e impala ;; *Bluetooth*) blueberry ;; - *Audio*) alacritty --class=Wiremix -e wiremix ;; *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; *) show_main_menu ;; From ae0e711e392c7fd0e030007074f79d316d72c848 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 10:50:13 +0200 Subject: [PATCH 54/85] Give a hint for the hotkey --- config/waybar/config.jsonc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 34e2fc32..7523702a 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -47,7 +47,7 @@ "custom/omarchy": { "format": "", "on-click": "~/.local/share/omarchy/bin/omarchy-menu", - "tooltip": false + "tooltip-format": "SUPER + ALT + SPACE" }, "custom/update": { "format": "", From e31745e67dec25e9c500a1f1d99945232203180d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 11:36:33 +0200 Subject: [PATCH 55/85] Don't leave lingering logo around --- bin/omarchy-show-done | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/omarchy-show-done b/bin/omarchy-show-done index 4c470d9f..a00d7b6e 100755 --- a/bin/omarchy-show-done +++ b/bin/omarchy-show-done @@ -2,3 +2,4 @@ echo gum spin --spinner "globe" --title "Done!" -- sleep 2 +clear From 59fefd34b18c2a5cf19801754807761bd2104821 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 11:39:46 +0200 Subject: [PATCH 56/85] Match the other installer/removers --- bin/{omarchy-cmd-install => omarchy-pkg-install} | 0 bin/{omarchy-cmd-uninstall => omarchy-pkg-remove} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename bin/{omarchy-cmd-install => omarchy-pkg-install} (100%) rename bin/{omarchy-cmd-uninstall => omarchy-pkg-remove} (100%) diff --git a/bin/omarchy-cmd-install b/bin/omarchy-pkg-install similarity index 100% rename from bin/omarchy-cmd-install rename to bin/omarchy-pkg-install diff --git a/bin/omarchy-cmd-uninstall b/bin/omarchy-pkg-remove similarity index 100% rename from bin/omarchy-cmd-uninstall rename to bin/omarchy-pkg-remove From 08ed9a5dffc265eed17739332b50ef9847e5f69e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 11:39:57 +0200 Subject: [PATCH 57/85] Add web app management to Omarchy menu --- bin/omarchy-menu | 10 ++++---- bin/omarchy-webapp-install | 48 ++++++++++++++++++++++++++++++++++++++ bin/omarchy-webapp-remove | 39 +++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 4 deletions(-) create mode 100755 bin/omarchy-webapp-install create mode 100755 bin/omarchy-webapp-remove diff --git a/bin/omarchy-menu b/bin/omarchy-menu index e0b3254a..d1f939ee 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -88,8 +88,9 @@ show_setup_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Package\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in - *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-install ;; + case $(menu "Install" "󰣇 Package\n Web App\n󰸌 Theme\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 ;; *Dropbox*) terminal $OMARCHY_BIN_PATH/omarchy-setup-dropbox ;; *Steam*) terminal $OMARCHY_BIN_PATH/omarchy-setup-steam ;; @@ -99,8 +100,9 @@ show_install_menu() { } show_remove_menu() { - case $(menu "Remove" "󰣇 Package\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in - *Package*) terminal $OMARCHY_BIN_PATH/omarchy-cmd-uninstall ;; + 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" ;; diff --git a/bin/omarchy-webapp-install b/bin/omarchy-webapp-install new file mode 100755 index 00000000..1e4cb179 --- /dev/null +++ b/bin/omarchy-webapp-install @@ -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" < Date: Tue, 5 Aug 2025 11:40:35 +0200 Subject: [PATCH 58/85] Moved web app functions to full omarchy TUI commands --- default/bash/functions | 51 ------------------------------------------ 1 file changed, 51 deletions(-) diff --git a/default/bash/functions b/default/bash/functions index 66c3c049..537a451d 100644 --- a/default/bash/functions +++ b/default/bash/functions @@ -35,54 +35,3 @@ format-drive() { fi fi } - -# Create a desktop launcher for a web app -web2app() { - if [ "$#" -ne 3 ]; then - echo "Usage: web2app (IconURL must be in PNG -- use https://dashboardicons.com)" - return 1 - 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" <" - 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" -} From 9bd2d6e0c1ee77c138c29626869855e574344a8d Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 11:51:16 +0200 Subject: [PATCH 59/85] Add monitor and hyprland config links too --- bin/omarchy-menu | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index d1f939ee..1c0f0367 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -77,10 +77,12 @@ show_toggle_menu() { } show_setup_menu() { - case $(menu "Setup" " Audio\n Wifi\n󰂯 Bluetooth\n󰈷 Fingerprint\n Fido2") in + case $(menu "Setup" " Audio\n Wifi\n󰂯 Bluetooth\n󰍹 Monitors\n Hyprland\n󰈷 Fingerprint\n Fido2") in *Audio*) alacritty --class=Wiremix -e wiremix ;; *Wifi*) alacritty --class=Impala -e impala ;; *Bluetooth*) blueberry ;; + *Monitors*) alacritty -e nvim ~/.config/hypr/monitors.conf ;; + *Hyprland*) alacritty -e nvim ~/.config/hypr/hyprland.conf ;; *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; *) show_main_menu ;; From 7e2676d565592e67422c83f6cf3ed52a729eb2c9 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 11:53:45 +0200 Subject: [PATCH 60/85] Add neovim to learning But would be nice with a better tutorial for newcomers --- bin/omarchy-menu | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 1c0f0367..0d7b1dd9 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -16,12 +16,13 @@ present_terminal() { } show_learn_menu() { - case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n󱆃 Bash") in + 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 } From 58bdc4c307a1de3f9ad66d4e087773a593d051aa Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 12:02:38 +0200 Subject: [PATCH 61/85] Avoid duplication --- bin/omarchy-menu | 46 ++++++++++++++++++++-------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 0d7b1dd9..c62d2525 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -149,32 +149,26 @@ show_system_menu() { } show_main_menu() { - case $(menu "Start" "󰀻 Apps\n󰧑 Learning\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n System") in - *Apps*) walker -p "Launch…" ;; - *Learn*) show_learn_menu ;; - *Capture*) show_capture_menu ;; - *Toggle*) show_toggle_menu ;; - *Style*) show_style_menu ;; - *Setup*) show_setup_menu ;; - *Install*) show_install_menu ;; - *Remove*) show_remove_menu ;; - *Update*) show_update_menu ;; - *System*) show_system_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 } -case "$1" in -*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 ;; -*) show_main_menu ;; -esac +show_main_menu From 206dc446494f9b8085337d8e95ee8c1565b9ee16 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 12:08:30 +0200 Subject: [PATCH 62/85] Correct use from cli --- bin/omarchy-menu | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index c62d2525..46ea391b 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -171,4 +171,8 @@ go_to_menu() { esac } -show_main_menu +if [[ -n "$1" ]]; then + go_to_menu "$1" +else + show_main_menu +fi From 2c73e48172249172a6d08425f05915cc0f4b0054 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 12:17:37 +0200 Subject: [PATCH 63/85] Split up the default .config/hypr/hyprland.conf to be easier to tailor with less risk of overwritting --- bin/omarchy-refresh-hyprland | 4 ++ config/hypr/autostart.conf | 2 + config/hypr/bindings.conf | 25 ++++++++++++ config/hypr/envs.conf | 3 ++ config/hypr/hyprland.conf | 76 ++++-------------------------------- config/hypr/input.conf | 28 +++++++++++++ 6 files changed, 69 insertions(+), 69 deletions(-) create mode 100644 config/hypr/autostart.conf create mode 100644 config/hypr/bindings.conf create mode 100644 config/hypr/envs.conf create mode 100644 config/hypr/input.conf diff --git a/bin/omarchy-refresh-hyprland b/bin/omarchy-refresh-hyprland index 72f06435..e62134cf 100755 --- a/bin/omarchy-refresh-hyprland +++ b/bin/omarchy-refresh-hyprland @@ -1,3 +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 diff --git a/config/hypr/autostart.conf b/config/hypr/autostart.conf new file mode 100644 index 00000000..3b7c62d2 --- /dev/null +++ b/config/hypr/autostart.conf @@ -0,0 +1,2 @@ +# Extra autostart processes +# exec-once = uwsm app -- my-service diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf new file mode 100644 index 00000000..eb018e19 --- /dev/null +++ b/config/hypr/bindings.conf @@ -0,0 +1,25 @@ +# Application bindings +$terminal = uwsm app -- alacritty +$browser = uwsm app -- chromium --new-window --ozone-platform=wayland +$webapp = $browser --app + +bind = SUPER, return, exec, $terminal +bind = SUPER, F, exec, uwsm app -- nautilus --new-window +bind = SUPER, B, exec, $browser +bind = SUPER, M, exec, uwsm app -- spotify +bind = SUPER, N, exec, $terminal -e nvim +bind = SUPER, T, exec, $terminal -e btop +bind = SUPER, D, exec, $terminal -e lazydocker +bind = SUPER, G, exec, uwsm app -- signal-desktop +bind = SUPER, O, exec, uwsm app -- obsidian -disable-gpu +bind = SUPER, slash, exec, uwsm app -- 1password + +bind = SUPER, A, exec, $webapp="https://chatgpt.com" +bind = SUPER SHIFT, A, exec, $webapp="https://grok.com" +bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/" +bind = SUPER, E, exec, $webapp="https://app.hey.com" +bind = SUPER, Y, exec, $webapp="https://youtube.com/" +bind = SUPER SHIFT, G, exec, $webapp="https://web.whatsapp.com/" +bind = SUPER ALT, G, exec, $webapp="https://messages.google.com/web/conversations" +bind = SUPER, X, exec, $webapp="https://x.com/" +bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post" diff --git a/config/hypr/envs.conf b/config/hypr/envs.conf new file mode 100644 index 00000000..53e0825c --- /dev/null +++ b/config/hypr/envs.conf @@ -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 diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 619ecaa8..e03c3005 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -1,13 +1,6 @@ # 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. -# 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 +# Use defaults Omarchy defaults (but don't edit these directly!) source = ~/.local/share/omarchy/default/hypr/autostart.conf source = ~/.local/share/omarchy/default/hypr/bindings/media.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 = ~/.config/omarchy/current/theme/hyprland.conf -# 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" - -# 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 +# Change your own setup in these files (and overwrite any settings from defaults!) +source = ~/.config/hypr/monitors.conf +source = ~/.config/hypr/input.conf +source = ~/.config/hypr/bindings.conf +source = ~/.config/hypr/envs.conf +source = ~/.config/hypr/autostart.conf diff --git a/config/hypr/input.conf b/config/hypr/input.conf new file mode 100644 index 00000000..274d80d9 --- /dev/null +++ b/config/hypr/input.conf @@ -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 From 7e1ca837b8ae9001c165dec05583e639c14d5a76 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 12:35:06 +0200 Subject: [PATCH 64/85] Offer to reorganize hyprland.conf as is done in the new config --- migrations/1754389057.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 migrations/1754389057.sh diff --git a/migrations/1754389057.sh b/migrations/1754389057.sh new file mode 100644 index 00000000..59471492 --- /dev/null +++ b/migrations/1754389057.sh @@ -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 + else + echo "Left your existing configuration in place!" + fi +fi From a4bed3029e4249438182bd5f0d811bf110804960 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 12:40:59 +0200 Subject: [PATCH 65/85] Offer to setup bindings and input if those files are split out --- bin/omarchy-menu | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 46ea391b..e91f8b81 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -78,11 +78,18 @@ show_toggle_menu() { } show_setup_menu() { - case $(menu "Setup" " Audio\n Wifi\n󰂯 Bluetooth\n󰍹 Monitors\n Hyprland\n󰈷 Fingerprint\n Fido2") in + 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 Hyprland\n󰈷 Fingerprint\n Fido2" + + case $(menu "Setup" "$options") in *Audio*) alacritty --class=Wiremix -e wiremix ;; *Wifi*) alacritty --class=Impala -e impala ;; *Bluetooth*) blueberry ;; *Monitors*) alacritty -e nvim ~/.config/hypr/monitors.conf ;; + *Keybindings*) alacritty -e nvim ~/.config/hypr/bindings.conf ;; + *Input*) alacritty -e nvim ~/.config/hypr/input.conf ;; *Hyprland*) alacritty -e nvim ~/.config/hypr/hyprland.conf ;; *Fingerprint*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fingerprint ;; *Fido2*) terminal $OMARCHY_BIN_PATH/omarchy-setup-fido2 ;; From 67d830cc39f06d1a900d6edd9da21259020a7c1c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 12:46:12 +0200 Subject: [PATCH 66/85] Extract helper for nvim editing --- bin/omarchy-menu | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index e91f8b81..11f37e6c 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -15,6 +15,10 @@ 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() { + 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 ;; @@ -87,10 +91,10 @@ show_setup_menu() { *Audio*) alacritty --class=Wiremix -e wiremix ;; *Wifi*) alacritty --class=Impala -e impala ;; *Bluetooth*) blueberry ;; - *Monitors*) alacritty -e nvim ~/.config/hypr/monitors.conf ;; - *Keybindings*) alacritty -e nvim ~/.config/hypr/bindings.conf ;; - *Input*) alacritty -e nvim ~/.config/hypr/input.conf ;; - *Hyprland*) alacritty -e nvim ~/.config/hypr/hyprland.conf ;; + *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 ;; From e0e21b37d74a521fca4cb3df3b2d91b547e444aa Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 13:45:37 +0200 Subject: [PATCH 67/85] Don't like the SwayOSD overlay when max volume is above 100% --- migrations/1754390772.sh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 migrations/1754390772.sh diff --git a/migrations/1754390772.sh b/migrations/1754390772.sh new file mode 100644 index 00000000..86c95d65 --- /dev/null +++ b/migrations/1754390772.sh @@ -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 + omarchy-restart-swayosd +fi From 14d652b63d4267da9cf328d1ccd4909aaeed3c2e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 13:45:49 +0200 Subject: [PATCH 68/85] Use max volume 100 as default --- config/swayosd/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/swayosd/config.toml b/config/swayosd/config.toml index 694ab07b..598c1f22 100644 --- a/config/swayosd/config.toml +++ b/config/swayosd/config.toml @@ -1,4 +1,4 @@ [server] show_percentage = true -max_volume = 150 +max_volume = 100 style = "./style.css" From 6d7cbf0d05cbcfe44ac57f9cd9ff47124ea73a1e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 13:54:17 +0200 Subject: [PATCH 69/85] Setup configs menu with auto-restart --- bin/omarchy-menu | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 11f37e6c..1761957e 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -85,7 +85,7 @@ 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 Hyprland\n󰈷 Fingerprint\n Fido2" + options="$options\n Configs\n󰈷 Fingerprint\n Fido2" case $(menu "Setup" "$options") in *Audio*) alacritty --class=Wiremix -e wiremix ;; @@ -101,6 +101,20 @@ show_setup_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 Dropbox\n Steam\n Docker DBs") in *Package*) terminal $OMARCHY_BIN_PATH/omarchy-pkg-install ;; From 8c46ff9303abf845da18dce44c11e0eb8727cca3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 13:55:10 +0200 Subject: [PATCH 70/85] Help people realize what they're editing --- bin/omarchy-menu | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 1761957e..480bfbfc 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -16,6 +16,7 @@ present_terminal() { } edit_in_nvim() { + notify-send "Editing config file" "$1" alacritty -e nvim "$1" } From 1c4c42bf76b9682960a80d1993cbb4ec263a3028 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 14:10:58 +0200 Subject: [PATCH 71/85] Make menu disappear after changing theme --- bin/omarchy-menu | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 480bfbfc..acc2e2f0 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -42,8 +42,12 @@ show_style_menu() { } show_theme_menu() { - $OMARCHY_BIN_PATH/omarchy-theme-set "$(menu "Theme" "$($OMARCHY_BIN_PATH/omarchy-theme-list)")" - show_main_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() { From 59b1d690d0898a8433bdd31f834372d37c8706f6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 14:19:58 +0200 Subject: [PATCH 72/85] We now have this in the About screen --- bin/omarchy-menu | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index acc2e2f0..1773f695 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -1,7 +1,6 @@ #!/bin/bash OMARCHY_BIN_PATH=~/.local/share/omarchy/bin -OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null) menu() { echo -e "$2" | walker --dmenu --theme dmenu_250 -p "$1…" @@ -144,7 +143,7 @@ show_remove_menu() { } show_update_menu() { - case $(menu "Update" "󰣇 Omarchy ($OMARCHY_VERSION)\n Configs\n󰸌 Themes\n Timezone") in + 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 ;; From 1a4b2d94201251d079e13d251026da7a2a7db8db Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 15:11:04 +0200 Subject: [PATCH 73/85] Somehow lost the bindd versions --- config/hypr/bindings.conf | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/config/hypr/bindings.conf b/config/hypr/bindings.conf index eb018e19..b1d97d41 100644 --- a/config/hypr/bindings.conf +++ b/config/hypr/bindings.conf @@ -3,23 +3,23 @@ $terminal = uwsm app -- alacritty $browser = uwsm app -- chromium --new-window --ozone-platform=wayland $webapp = $browser --app -bind = SUPER, return, exec, $terminal -bind = SUPER, F, exec, uwsm app -- nautilus --new-window -bind = SUPER, B, exec, $browser -bind = SUPER, M, exec, uwsm app -- spotify -bind = SUPER, N, exec, $terminal -e nvim -bind = SUPER, T, exec, $terminal -e btop -bind = SUPER, D, exec, $terminal -e lazydocker -bind = SUPER, G, exec, uwsm app -- signal-desktop -bind = SUPER, O, exec, uwsm app -- obsidian -disable-gpu -bind = SUPER, slash, exec, uwsm app -- 1password +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 -bind = SUPER, A, exec, $webapp="https://chatgpt.com" -bind = SUPER SHIFT, A, exec, $webapp="https://grok.com" -bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/" -bind = SUPER, E, exec, $webapp="https://app.hey.com" -bind = SUPER, Y, exec, $webapp="https://youtube.com/" -bind = SUPER SHIFT, G, exec, $webapp="https://web.whatsapp.com/" -bind = SUPER ALT, G, exec, $webapp="https://messages.google.com/web/conversations" -bind = SUPER, X, exec, $webapp="https://x.com/" -bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post" +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" From bd2646591241a0de09e11bd355379fe8f9f40eb4 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 15:23:02 +0200 Subject: [PATCH 74/85] Give you an easy way to install a new background image --- bin/omarchy-menu | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-menu b/bin/omarchy-menu index 1773f695..5957bb95 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -120,10 +120,11 @@ show_setup_configs_menu() { } show_install_menu() { - case $(menu "Install" "󰣇 Package\n Web App\n󰸌 Theme\n Dropbox\n Steam\n Docker DBs") in + 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 ;; From b4e94659708748ad26885ebbcc627b702b7f42a1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 15:34:45 +0200 Subject: [PATCH 75/85] Use the new omarchy-webapp-install command --- install/apps/webapps.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/install/apps/webapps.sh b/install/apps/webapps.sh index 80594198..248b6fed 100644 --- a/install/apps/webapps.sh +++ b/install/apps/webapps.sh @@ -2,14 +2,14 @@ if [ -z "$OMARCHY_BARE" ]; then source ~/.local/share/omarchy/default/bash/functions - web2app "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png - web2app "Basecamp" https://launchpad.37signals.com https://basecamp.com/assets/images/general/basecamp.png - web2app "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png - web2app "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png - web2app "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png - web2app "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png - web2app "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png - web2app "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png - web2app "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png - web2app "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png + omarchy-webapp-install "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png + omarchy-webapp-install "Basecamp" https://launchpad.37signals.com https://basecamp.com/assets/images/general/basecamp.png + omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png + omarchy-webapp-install "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png + omarchy-webapp-install "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png + omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png + omarchy-webapp-install "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png + omarchy-webapp-install "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png + omarchy-webapp-install "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png + omarchy-webapp-install "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png fi From d676f1a16ff26debfb1b41808b09866fd1792dba Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 15:44:58 +0200 Subject: [PATCH 76/85] Link to the extra themes index --- bin/omarchy-theme-install | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/omarchy-theme-install b/bin/omarchy-theme-install index 2bb84a99..9d6ba1b3 100755 --- a/bin/omarchy-theme-install +++ b/bin/omarchy-theme-install @@ -5,6 +5,7 @@ if [ -z "$1" ]; then ~/.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" From 581937a204556117008125c9b0d6ddda25ac52ab Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 15:58:39 +0200 Subject: [PATCH 77/85] Need the full path --- install/apps/webapps.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/install/apps/webapps.sh b/install/apps/webapps.sh index 248b6fed..9ec80201 100644 --- a/install/apps/webapps.sh +++ b/install/apps/webapps.sh @@ -2,14 +2,14 @@ if [ -z "$OMARCHY_BARE" ]; then source ~/.local/share/omarchy/default/bash/functions - omarchy-webapp-install "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png - omarchy-webapp-install "Basecamp" https://launchpad.37signals.com https://basecamp.com/assets/images/general/basecamp.png - omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/whatsapp.png - omarchy-webapp-install "Google Photos" https://photos.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-photos.png - omarchy-webapp-install "Google Contacts" https://contacts.google.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-contacts.png - omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/google-messages.png - omarchy-webapp-install "ChatGPT" https://chatgpt.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/chatgpt.png - omarchy-webapp-install "YouTube" https://youtube.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/youtube.png - omarchy-webapp-install "GitHub" https://github.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/github-light.png - omarchy-webapp-install "X" https://x.com/ https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/x-light.png + ~/.local/share/omarchy/bin/omarchy-webapp-install "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 + ~/.local/share/omarchy/bin/omarchy-webapp-install "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 + ~/.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 + ~/.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 + ~/.local/share/omarchy/bin/omarchy-webapp-install "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 + ~/.local/share/omarchy/bin/omarchy-webapp-install "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 fi From 881af9b7d69864473e7046435b234ee17da43327 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 15:58:53 +0200 Subject: [PATCH 78/85] No longer need the functions --- install/apps/webapps.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install/apps/webapps.sh b/install/apps/webapps.sh index 9ec80201..3b6560a2 100644 --- a/install/apps/webapps.sh +++ b/install/apps/webapps.sh @@ -1,7 +1,6 @@ #!/bin/bash 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 ~/.local/share/omarchy/bin/omarchy-webapp-install "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 From d9efaac906cc291f27a242d66e940a6357658b3c Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 16:25:08 +0200 Subject: [PATCH 79/85] Start hyprsunset on demand instead of needing it to run constantly --- bin/omarchy-toggle-nightlight | 8 +++++++- default/hypr/autostart.conf | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-toggle-nightlight b/bin/omarchy-toggle-nightlight index bd2db5b8..2ab2deb6 100755 --- a/bin/omarchy-toggle-nightlight +++ b/bin/omarchy-toggle-nightlight @@ -2,7 +2,13 @@ # Default temperature values 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 CURRENT_TEMP=$(hyprctl hyprsunset temperature 2>/dev/null | grep -oE '[0-9]+') diff --git a/default/hypr/autostart.conf b/default/hypr/autostart.conf index 72e64af9..ae9b0845 100644 --- a/default/hypr/autostart.conf +++ b/default/hypr/autostart.conf @@ -2,7 +2,6 @@ exec-once = uwsm app -- hypridle exec-once = uwsm app -- mako exec-once = uwsm app -- waybar 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 -- swayosd-server exec-once = uwsm app -- walker --gapplication-service From fc11ce61cc0dd27d8f6953bfe1f70ac067bdf073 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 16:28:58 +0200 Subject: [PATCH 80/85] Add figma as a default web app --- install/apps/webapps.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/install/apps/webapps.sh b/install/apps/webapps.sh index 3b6560a2..1d23645c 100644 --- a/install/apps/webapps.sh +++ b/install/apps/webapps.sh @@ -11,4 +11,5 @@ if [ -z "$OMARCHY_BARE" ]; then ~/.local/share/omarchy/bin/omarchy-webapp-install "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 ~/.local/share/omarchy/bin/omarchy-webapp-install "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 From b6325ea81046747e59a4386d88d82b56b7ac0114 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 16:30:34 +0200 Subject: [PATCH 81/85] No longer used --- migrations/1752625896.sh | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 migrations/1752625896.sh diff --git a/migrations/1752625896.sh b/migrations/1752625896.sh deleted file mode 100644 index fc219bbb..00000000 --- a/migrations/1752625896.sh +++ /dev/null @@ -1,2 +0,0 @@ -echo "Copy desktop file for new Omarchy TUI" -cp ~/.local/share/omarchy/applications/omarchy.desktop ~/.local/share/applications/ From 137c24454f2e5c438fb96650e8b5682522956681 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 16:35:28 +0200 Subject: [PATCH 82/85] Ensure they can all run from Walker Which does not have the bash-powered PATH --- migrations/1751225707.sh | 2 +- migrations/1751887718.sh | 2 +- migrations/1752725616.sh | 2 +- migrations/1752896442.sh | 4 ++-- migrations/1752899588.sh | 2 +- migrations/1753062084.sh | 2 +- migrations/1753495989.sh | 2 +- migrations/1753558374.sh | 2 +- migrations/1753998861.sh | 2 +- migrations/1754108993.sh | 2 +- migrations/1754109724.sh | 2 +- migrations/1754113760.sh | 2 +- migrations/1754133148.sh | 4 ++-- migrations/1754136581.sh | 4 ++-- migrations/1754208139.sh | 3 ++- migrations/1754215439.sh | 2 +- migrations/1754228071.sh | 2 +- migrations/1754228679.sh | 2 +- migrations/1754265453.sh | 2 +- migrations/1754305112.sh | 2 +- migrations/1754331529.sh | 2 +- migrations/1754390772.sh | 2 +- 22 files changed, 26 insertions(+), 25 deletions(-) diff --git a/migrations/1751225707.sh b/migrations/1751225707.sh index 16387778..0ceded1c 100644 --- a/migrations/1751225707.sh +++ b/migrations/1751225707.sh @@ -2,5 +2,5 @@ echo "Fixing persistent workspaces in waybar config" if [[ -f ~/.config/waybar/config ]]; then sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config - omarchy-restart-waybar + ~/.local/share/omarchy/bin/omarchy-restart-waybar fi diff --git a/migrations/1751887718.sh b/migrations/1751887718.sh index d62fbdd0..dc679bef 100644 --- a/migrations/1751887718.sh +++ b/migrations/1751887718.sh @@ -2,5 +2,5 @@ echo "Install Impala as new wifi selection TUI" if ! command -v impala &>/dev/null; then yay -S --noconfirm --needed impala 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 diff --git a/migrations/1752725616.sh b/migrations/1752725616.sh index 5dddefe9..f7bd2960 100644 --- a/migrations/1752725616.sh +++ b/migrations/1752725616.sh @@ -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 gtk-theme "Adwaita-dark" - omarchy-refresh-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-waybar fi if [[ ! -L "~/.config/omarchy/themes/rose-pine" ]]; then diff --git a/migrations/1752896442.sh b/migrations/1752896442.sh index 012acfc5..f1e16f5c 100644 --- a/migrations/1752896442.sh +++ b/migrations/1752896442.sh @@ -4,6 +4,6 @@ if ! command -v wiremix &>/dev/null; then yay -S --noconfirm --needed wiremix yay -Rns --noconfirm pavucontrol - omarchy-refresh-applications - omarchy-refresh-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-applications + ~/.local/share/omarchy/bin/omarchy-refresh-waybar fi diff --git a/migrations/1752899588.sh b/migrations/1752899588.sh index ba778cd8..32c3ba97 100644 --- a/migrations/1752899588.sh +++ b/migrations/1752899588.sh @@ -1,2 +1,2 @@ echo "Update .config/hypr/hyprlock.conf to include failed attempt counter" -omarchy-refresh-hyprlock +~/.local/share/omarchy/bin/omarchy-refresh-hyprlock diff --git a/migrations/1753062084.sh b/migrations/1753062084.sh index abfe326c..80406100 100644 --- a/migrations/1753062084.sh +++ b/migrations/1753062084.sh @@ -1,5 +1,5 @@ echo "Fix dancing workspace numbers in Waybar" if ! grep -q 'min-width: 9px' ~/.config/waybar/style.css; then - omarchy-refresh-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-waybar fi diff --git a/migrations/1753495989.sh b/migrations/1753495989.sh index 5c0efcda..cfa411f3 100644 --- a/migrations/1753495989.sh +++ b/migrations/1753495989.sh @@ -1,5 +1,5 @@ echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" if ! command -v tzupdate &>/dev/null; then bash ~/.local/share/omarchy/install/config/timezones.sh - omarchy-refresh-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-waybar fi diff --git a/migrations/1753558374.sh b/migrations/1753558374.sh index b961d3ed..a8735468 100644 --- a/migrations/1753558374.sh +++ b/migrations/1753558374.sh @@ -1,4 +1,4 @@ echo "Update Walker config to include = as the leader key for the calculator" if ! grep -q 'prefix = "="' ~/.config/walker/config.toml; then - omarchy-refresh-walker + ~/.local/share/omarchy/bin/omarchy-refresh-walker fi diff --git a/migrations/1753998861.sh b/migrations/1753998861.sh index 4751dee5..9145ec9c 100644 --- a/migrations/1753998861.sh +++ b/migrations/1753998861.sh @@ -1,4 +1,4 @@ echo "Update Walker config to include . as the leader key for the finder" if ! grep -q 'prefix = "\."' ~/.config/walker/config.toml; then - omarchy-refresh-walker + ~/.local/share/omarchy/bin/omarchy-refresh-walker fi diff --git a/migrations/1754108993.sh b/migrations/1754108993.sh index 59531e73..e49eac70 100644 --- a/migrations/1754108993.sh +++ b/migrations/1754108993.sh @@ -1,2 +1,2 @@ echo "Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing" -omarchy-refresh-plymouth +~/.local/share/omarchy/bin/omarchy-refresh-plymouth diff --git a/migrations/1754109724.sh b/migrations/1754109724.sh index b8ff9096..421e37db 100644 --- a/migrations/1754109724.sh +++ b/migrations/1754109724.sh @@ -3,4 +3,4 @@ if ! command -v hyprsunset &>/dev/null; then yay -S --noconfirm --needed hyprsunset fi -omarchy-refresh-hyprsunset +~/.local/share/omarchy/bin/omarchy-refresh-hyprsunset diff --git a/migrations/1754113760.sh b/migrations/1754113760.sh index f66c1a4d..de654f53 100644 --- a/migrations/1754113760.sh +++ b/migrations/1754113760.sh @@ -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' \ ~/.config/hypr/hypridle.conf - omarchy-restart-waybar + ~/.local/share/omarchy/bin/omarchy-restart-waybar fi diff --git a/migrations/1754133148.sh b/migrations/1754133148.sh index 30294abb..010fba71 100644 --- a/migrations/1754133148.sh +++ b/migrations/1754133148.sh @@ -1,6 +1,6 @@ echo "Update Waybar CSS to dim unused workspaces" if ! grep -q "#workspaces button\.empty" ~/.config/waybar/style.css; then - omarchy-refresh-config waybar/style.css - omarchy-restart-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-config waybar/style.css + ~/.local/share/omarchy/bin/omarchy-restart-waybar fi diff --git a/migrations/1754136581.sh b/migrations/1754136581.sh index d2c78b94..11dc46d1 100644 --- a/migrations/1754136581.sh +++ b/migrations/1754136581.sh @@ -1,6 +1,6 @@ echo "Start screensaver automatically after 1 minute and stop before locking" if ! grep -q "omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then - omarchy-refresh-hypridle - omarchy-refresh-hyprlock + ~/.local/share/omarchy/bin/omarchy-refresh-hypridle + ~/.local/share/omarchy/bin/omarchy-refresh-hyprlock fi diff --git a/migrations/1754208139.sh b/migrations/1754208139.sh index d2f4dd58..c24407a2 100644 --- a/migrations/1754208139.sh +++ b/migrations/1754208139.sh @@ -1,4 +1,5 @@ echo "Ensure screensaver doesn't start while the computer is locked" + if ! grep -q "pidof hyprlock || omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then - omarchy-refresh-hypridle + ~/.local/share/omarchy/bin/omarchy-refresh-hypridle fi diff --git a/migrations/1754215439.sh b/migrations/1754215439.sh index 90651bb0..f234e1a3 100644 --- a/migrations/1754215439.sh +++ b/migrations/1754215439.sh @@ -1,5 +1,5 @@ echo "Update app launcher config to allow enough entries to show all keybindings on SUPER+K" if ! grep "max_entries = 200" ~/.config/walker/config.toml; then - omarchy-refresh-walker + ~/.local/share/omarchy/bin/omarchy-refresh-walker fi diff --git a/migrations/1754228071.sh b/migrations/1754228071.sh index e7b69b11..5d6bf957 100644 --- a/migrations/1754228071.sh +++ b/migrations/1754228071.sh @@ -1,5 +1,5 @@ echo "Add auto-update icon to waybar when update available" if ! grep -q "custom/update" ~/.config/waybar/config.jsonc; then - omarchy-refresh-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-waybar fi diff --git a/migrations/1754228679.sh b/migrations/1754228679.sh index 2a80234d..3ff2f717 100644 --- a/migrations/1754228679.sh +++ b/migrations/1754228679.sh @@ -1,2 +1,2 @@ echo "Increase time before screensaver starts to 2.5 minutes (from 1 minute)" -omarchy-refresh-hypridle +~/.local/share/omarchy/bin/omarchy-refresh-hypridle diff --git a/migrations/1754265453.sh b/migrations/1754265453.sh index 412d75e0..274aa45f 100644 --- a/migrations/1754265453.sh +++ b/migrations/1754265453.sh @@ -1,2 +1,2 @@ echo "Add chromium-flags.conf" -omarchy-refresh-config chromium-flags.conf +~/.local/share/omarchy/bin/omarchy-refresh-config chromium-flags.conf diff --git a/migrations/1754305112.sh b/migrations/1754305112.sh index e23ea5d9..5d7e4ba0 100644 --- a/migrations/1754305112.sh +++ b/migrations/1754305112.sh @@ -1,2 +1,2 @@ echo "Restart Walker to pick up menu selections" -omarchy-restart-walker +~/.local/share/omarchy/bin/omarchy-restart-walker diff --git a/migrations/1754331529.sh b/migrations/1754331529.sh index ae92aae4..8ed51c24 100644 --- a/migrations/1754331529.sh +++ b/migrations/1754331529.sh @@ -1,5 +1,5 @@ echo "Update Waybar for new Omarchy menu" if ! grep -q "" ~/.config/waybar/config.jsonc; then - omarchy-refresh-waybar + ~/.local/share/omarchy/bin/omarchy-refresh-waybar fi diff --git a/migrations/1754390772.sh b/migrations/1754390772.sh index 86c95d65..943ac658 100644 --- a/migrations/1754390772.sh +++ b/migrations/1754390772.sh @@ -2,5 +2,5 @@ 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 - omarchy-restart-swayosd + ~/.local/share/omarchy/bin/omarchy-restart-swayosd fi From db441e8813f424496f8494e17c57c64c8142a268 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 16:37:57 +0200 Subject: [PATCH 83/85] Try to run this in a subshell to prevent the exit --- migrations/1754389057.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1754389057.sh b/migrations/1754389057.sh index 59471492..76b45e6d 100644 --- a/migrations/1754389057.sh +++ b/migrations/1754389057.sh @@ -4,7 +4,7 @@ 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 + bash ~/.local/share/omarchy/bin/omarchy-refresh-hyprland else echo "Left your existing configuration in place!" fi From 9292c296404fa07298a44c8775ca6cb3ba094fae Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 16:41:33 +0200 Subject: [PATCH 84/85] Ensure we continue --- migrations/1754389057.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1754389057.sh b/migrations/1754389057.sh index 76b45e6d..e1ee7ff9 100644 --- a/migrations/1754389057.sh +++ b/migrations/1754389057.sh @@ -4,7 +4,7 @@ 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 - bash ~/.local/share/omarchy/bin/omarchy-refresh-hyprland + ~/.local/share/omarchy/bin/omarchy-refresh-hyprland || true else echo "Left your existing configuration in place!" fi From a7798a57bc581d51625415884902b7eb24dd9f60 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 5 Aug 2025 17:13:37 +0200 Subject: [PATCH 85/85] Make updating checking resilient against network being unavailable --- bin/omarchy-update-available | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-update-available b/bin/omarchy-update-available index 8a5bfa0e..3eb20a03 100755 --- a/bin/omarchy-update-available +++ b/bin/omarchy-update-available @@ -1,8 +1,15 @@ #!/bin/bash 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 echo "Omarchy update available ($latest_tag)"