From 8884cc7a5c79ad5da98ec82584986ff048f45ac1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 23 Jul 2025 16:22:14 -0400 Subject: [PATCH 01/68] Prevent stacking of waybars after unlock by SIGUSR2'ing it Bit crude, but better than a full kill. Closes #196 --- config/hypr/hypridle.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf index 8b1449e..e607bda 100644 --- a/config/hypr/hypridle.conf +++ b/config/hypr/hypridle.conf @@ -2,6 +2,7 @@ general { lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. before_sleep_cmd = loginctl lock-session # lock before suspend. after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. + on_unlock_cmd = pkill -SIGUSR2 waybar # prevent stacking of waybar when waking } listener { From d2fffc40eadd8fc7613e9cb3b164e285ef6f5561 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Wed, 23 Jul 2025 16:26:13 -0400 Subject: [PATCH 02/68] Add migration to prevent Waybar stacking --- migrations/1753302134.sh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 migrations/1753302134.sh diff --git a/migrations/1753302134.sh b/migrations/1753302134.sh new file mode 100644 index 0000000..022ce56 --- /dev/null +++ b/migrations/1753302134.sh @@ -0,0 +1,8 @@ +echo "Reload Waybar on unlock to prevent stacking" + +if ! grep -q 'on_unlock_cmd *= *pkill -SIGUSR2 waybar' ~/.config/hypr/hypridle.conf; then + sed -i '/^general[[:space:]]*{/,/^}/ { + /on_unlock_cmd *=/d + /^}$/ i\ on_unlock_cmd = pkill -SIGUSR2 waybar # prevent stacking of waybar when waking + }' ~/.config/hypr/hypridle.conf +fi From 66b0fa02273853a50736998d42ca9db33e0cb6cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saull=20Brand=C3=A3o?= Date: Thu, 24 Jul 2025 07:38:18 -0300 Subject: [PATCH 03/68] add chaotic aur add chaotic aur repo add noconfirm only add chaotic aur for x86-64 arch --- install/1-setup-aur-support.sh | 37 ++++++++++++++++++++++++++++++++++ install/1-yay.sh | 16 --------------- migrations/1753352057.sh | 17 ++++++++++++++++ 3 files changed, 54 insertions(+), 16 deletions(-) create mode 100644 install/1-setup-aur-support.sh delete mode 100644 install/1-yay.sh create mode 100755 migrations/1753352057.sh diff --git a/install/1-setup-aur-support.sh b/install/1-setup-aur-support.sh new file mode 100644 index 0000000..02ff90d --- /dev/null +++ b/install/1-setup-aur-support.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages +if [[ "$(uname -m)" == "x86_64" ]]; then + # Import Chaotic-AUR key + sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com + sudo pacman-key --lsign-key 3056513887B78AEB + + # Install Chaotic-AUR keyring and mirrorlist + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' + + # Add Chaotic-AUR repo to pacman config + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + + # Refresh pacman package databases + sudo pacman -Sy + + # Install yay + sudo pacman -S --needed --noconfirm yay +else + sudo pacman -S --needed --noconfirm base-devel + + if ! command -v yay &>/dev/null; then + cd /tmp + git clone https://aur.archlinux.org/yay-bin.git + cd yay-bin + makepkg -si --noconfirm + cd - + rm -rf yay-bin + cd ~ + fi + +fi + +# Add fun and color to the pacman installer +sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf diff --git a/install/1-yay.sh b/install/1-yay.sh deleted file mode 100644 index df6a9cd..0000000 --- a/install/1-yay.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash - -sudo pacman -S --needed --noconfirm base-devel - -if ! command -v yay &>/dev/null; then - cd /tmp - git clone https://aur.archlinux.org/yay-bin.git - cd yay-bin - makepkg -si --noconfirm - cd - - rm -rf yay-bin - cd ~ - - # Add fun and color to the pacman installer - sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf -fi diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh new file mode 100755 index 0000000..2d5cded --- /dev/null +++ b/migrations/1753352057.sh @@ -0,0 +1,17 @@ +echo "Add Chaotic-AUR to get compiled binaries" + +if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then + # Import Chaotic-AUR key + sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com + sudo pacman-key --lsign-key 3056513887B78AEB + + # Install Chaotic-AUR keyring and mirrorlist + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' + + # Add Chaotic-AUR repo to pacman config + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + + # Refresh pacman package databases + sudo pacman -Sy +fi From 70da2ecbe876503da69f62635707a2efb1206f19 Mon Sep 17 00:00:00 2001 From: Ben Homan Date: Thu, 24 Jul 2025 11:39:12 -0400 Subject: [PATCH 04/68] allow override of screenshot/screenrecord output --- bin/omarchy-cmd-screenrecord | 4 +++- bin/omarchy-cmd-screenshot | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-cmd-screenrecord b/bin/omarchy-cmd-screenrecord index 20cedfe..9a99f62 100755 --- a/bin/omarchy-cmd-screenrecord +++ b/bin/omarchy-cmd-screenrecord @@ -2,8 +2,10 @@ # Set recorder based on GPU +OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-$HOME/Videos}" + screenrecording() { - filename="$HOME/Videos/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" + filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" notify-send "Screen recording starting..." -t 1000 sleep 1 diff --git a/bin/omarchy-cmd-screenshot b/bin/omarchy-cmd-screenshot index e2878e4..1459bd2 100755 --- a/bin/omarchy-cmd-screenshot +++ b/bin/omarchy-cmd-screenshot @@ -1,8 +1,10 @@ #!/bin/bash +OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-$HOME/Pictures}" + hyprshot -m ${1:-region} --raw | satty --filename - \ - --output-filename ~/Pictures/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png \ + --output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \ --early-exit \ --actions-on-enter save-to-clipboard \ --save-after-copy \ From 205bcd7be89ced335a47d7a783a0de9c1e79a14b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 16:13:36 -0400 Subject: [PATCH 05/68] Hyprland fullscreen may conflict with the app-specific fullscreen, so need a separate key This is the case with Typora which will retain its ugly menu bar when Hyprland does the fullscreening, but be beautifully bare when its doing its own fullscreening. The best would be if we could make F11 work such that the app got a shot at fullscreening first, then if it wasn't capable, we let Hyprland do it. But not sure there's a way to do that? --- default/hypr/bindings/tiling.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf index 4b9224a..1176e19 100644 --- a/default/hypr/bindings/tiling.conf +++ b/default/hypr/bindings/tiling.conf @@ -5,7 +5,7 @@ bind = SUPER, W, killactive, bind = SUPER, J, togglesplit, # dwindle bind = SUPER, P, pseudo, # dwindle bind = SUPER, V, togglefloating, -bind = , F11, fullscreen, 0 +bind = SHIFT, F11, fullscreen, 0 # Move focus with mainMod + arrow keys bind = SUPER, left, movefocus, l From 2d9ed8720bc55cced4df7e7543f074051c2e42c2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 17:39:06 -0400 Subject: [PATCH 06/68] Match color to mako --- themes/tokyo-night/swayosd.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/themes/tokyo-night/swayosd.css b/themes/tokyo-night/swayosd.css index 14c0dcd..1300b6a 100644 --- a/themes/tokyo-night/swayosd.css +++ b/themes/tokyo-night/swayosd.css @@ -1,6 +1,6 @@ @define-color background-color #1a1b26; @define-color border-color #33ccff; -@define-color label #33ccff; -@define-color image #33ccff; -@define-color progress #33ccff; +@define-color label #a9b1d6; +@define-color image #a9b1d6; +@define-color progress #a9b1d6; From 7242a57c182b456edcb2fd6d8e1afe49e8451761 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 18:00:00 -0400 Subject: [PATCH 07/68] Fix more swayosd colors --- themes/catppuccin-latte/swayosd.css | 3 +-- themes/catppuccin/swayosd.css | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/themes/catppuccin-latte/swayosd.css b/themes/catppuccin-latte/swayosd.css index 5b0eaea..74f0485 100644 --- a/themes/catppuccin-latte/swayosd.css +++ b/themes/catppuccin-latte/swayosd.css @@ -1,6 +1,5 @@ @define-color background-color #eff1f5; -@define-color border-color #4c4f69; +@define-color border-color #dce0e8; @define-color label #4c4f69; @define-color image #4c4f69; @define-color progress #4c4f69; - diff --git a/themes/catppuccin/swayosd.css b/themes/catppuccin/swayosd.css index a25d38a..0ff80d2 100644 --- a/themes/catppuccin/swayosd.css +++ b/themes/catppuccin/swayosd.css @@ -1,6 +1,5 @@ @define-color background-color #24273a; @define-color border-color #c6d0f5; -@define-color label #c6d0f5; -@define-color image #c6d0f5; -@define-color progress #c6d0f5; - +@define-color label #cad3f5; +@define-color image #cad3f5; +@define-color progress #cad3f5; From 4578d4e418e1ffcde27d50b3809fd1b8c78e82be Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 18:02:00 -0400 Subject: [PATCH 08/68] Cleanup files from needless comments --- themes/catppuccin-latte/hyprland.conf | 6 +----- themes/catppuccin/hyprland.conf | 1 - themes/everforest/hyprland.conf | 1 - themes/gruvbox/hyprland.conf | 1 - themes/kanagawa/hyprland.conf | 1 - themes/matte-black/hyprland.conf | 1 - themes/nord/hyprland.conf | 1 - themes/rose-pine/hyprland.conf | 1 - themes/tokyo-night/hyprland.conf | 1 - 9 files changed, 1 insertion(+), 13 deletions(-) diff --git a/themes/catppuccin-latte/hyprland.conf b/themes/catppuccin-latte/hyprland.conf index 3d8d7e9..afc429d 100644 --- a/themes/catppuccin-latte/hyprland.conf +++ b/themes/catppuccin-latte/hyprland.conf @@ -1,8 +1,4 @@ -# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - -$latte_blue = rgb(1e66f5) - general { - col.active_border = $latte_blue + col.active_border = rgb(1e66f5) } diff --git a/themes/catppuccin/hyprland.conf b/themes/catppuccin/hyprland.conf index dd59f04..46ff7e6 100644 --- a/themes/catppuccin/hyprland.conf +++ b/themes/catppuccin/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(c6d0f5) } diff --git a/themes/everforest/hyprland.conf b/themes/everforest/hyprland.conf index 67b51cd..e88f030 100644 --- a/themes/everforest/hyprland.conf +++ b/themes/everforest/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(d3c6aa) } diff --git a/themes/gruvbox/hyprland.conf b/themes/gruvbox/hyprland.conf index 52331e8..85dbf14 100644 --- a/themes/gruvbox/hyprland.conf +++ b/themes/gruvbox/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(a89984) } diff --git a/themes/kanagawa/hyprland.conf b/themes/kanagawa/hyprland.conf index 49c58d7..4972f14 100644 --- a/themes/kanagawa/hyprland.conf +++ b/themes/kanagawa/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(dcd7ba) } diff --git a/themes/matte-black/hyprland.conf b/themes/matte-black/hyprland.conf index 13020af..bb90b38 100644 --- a/themes/matte-black/hyprland.conf +++ b/themes/matte-black/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(8A8A8D) } diff --git a/themes/nord/hyprland.conf b/themes/nord/hyprland.conf index e5fd3b8..bce729f 100644 --- a/themes/nord/hyprland.conf +++ b/themes/nord/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(D8DEE9) } diff --git a/themes/rose-pine/hyprland.conf b/themes/rose-pine/hyprland.conf index c39b9e7..ae0f2b6 100644 --- a/themes/rose-pine/hyprland.conf +++ b/themes/rose-pine/hyprland.conf @@ -1,4 +1,3 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgb(575279) } diff --git a/themes/tokyo-night/hyprland.conf b/themes/tokyo-night/hyprland.conf index 0611c0a..f0b824a 100644 --- a/themes/tokyo-night/hyprland.conf +++ b/themes/tokyo-night/hyprland.conf @@ -1,5 +1,4 @@ general { - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg } From 42d80f2ce7746f238d24de4ca6d5c4649a8602f5 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 18:03:00 -0400 Subject: [PATCH 09/68] Consistent colors --- themes/catppuccin-latte/mako.ini | 2 +- themes/catppuccin-latte/swayosd.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/catppuccin-latte/mako.ini b/themes/catppuccin-latte/mako.ini index b123ca6..d19a1c3 100644 --- a/themes/catppuccin-latte/mako.ini +++ b/themes/catppuccin-latte/mako.ini @@ -1,5 +1,5 @@ text-color=#4c4f69 -border-color=#dce0e8 +border-color=#1e66f5 background-color=#eff1f5 width=420 height=110 diff --git a/themes/catppuccin-latte/swayosd.css b/themes/catppuccin-latte/swayosd.css index 74f0485..c5f23aa 100644 --- a/themes/catppuccin-latte/swayosd.css +++ b/themes/catppuccin-latte/swayosd.css @@ -1,5 +1,5 @@ @define-color background-color #eff1f5; -@define-color border-color #dce0e8; +@define-color border-color #1e66f5; @define-color label #4c4f69; @define-color image #4c4f69; @define-color progress #4c4f69; From db63219398a76f2db1032baf65dde6583b608e24 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 18:05:08 -0400 Subject: [PATCH 10/68] A few more color corrections --- themes/gruvbox/swayosd.css | 2 +- themes/matte-black/swayosd.css | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/themes/gruvbox/swayosd.css b/themes/gruvbox/swayosd.css index 614748f..16240ae 100644 --- a/themes/gruvbox/swayosd.css +++ b/themes/gruvbox/swayosd.css @@ -1,5 +1,5 @@ @define-color background-color #282828; -@define-color border-color #ebdbb2; +@define-color border-color #a89984; @define-color label #ebdbb2; @define-color image #ebdbb2; @define-color progress #ebdbb2; diff --git a/themes/matte-black/swayosd.css b/themes/matte-black/swayosd.css index 08c28d7..3f24dbb 100644 --- a/themes/matte-black/swayosd.css +++ b/themes/matte-black/swayosd.css @@ -1,6 +1,6 @@ @define-color background-color #121212; -@define-color border-color #EAEAEA; -@define-color label #EAEAEA; -@define-color image #EAEAEA; -@define-color progress #EAEAEA; +@define-color border-color #8A8A8D; +@define-color label #8A8A8D; +@define-color image #8A8A8D; +@define-color progress #8A8A8D; From 674c5bfdda15fc1c07253379a9f73b088fdd8380 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 24 Jul 2025 18:11:02 -0400 Subject: [PATCH 11/68] Use Arch icon for this instead too for now --- install/webapps.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/webapps.sh b/install/webapps.sh index fbaf3a3..6f5c444 100644 --- a/install/webapps.sh +++ b/install/webapps.sh @@ -12,5 +12,5 @@ if [ -z "$OMARCHY_BARE" ]; then 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 - web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://manuals.omamix.org/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6NDgsInB1ciI6ImJsb2JfaWQifX0=--c26606490139480f5bcb3cf91b09fc45825007f6/omarchy.jpg?disposition=attachment + web2app "Omarchy Manual" https://manuals.omamix.org/2/the-omarchy-manual https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/arch-linux.png fi From a76c7ee33bb1d07cd9a0ab671696bd4b338a72f4 Mon Sep 17 00:00:00 2001 From: Taha Date: Thu, 24 Jul 2025 17:45:31 -0700 Subject: [PATCH 12/68] add matteblack plugin for neovim --- themes/matte-black/neovim.lua | 197 ++-------------------------------- 1 file changed, 7 insertions(+), 190 deletions(-) diff --git a/themes/matte-black/neovim.lua b/themes/matte-black/neovim.lua index 1ecffe3..7b3f72b 100644 --- a/themes/matte-black/neovim.lua +++ b/themes/matte-black/neovim.lua @@ -1,192 +1,9 @@ return { - "EdenEast/nightfox.nvim", - lazy = false, - priority = 1000, - dependencies = { - "folke/snacks.nvim", - "nvim-tree/nvim-web-devicons", - "nvim-lualine/lualine.nvim", - }, - - config = function() - local nightfox = require('nightfox') - local Shade = require('nightfox.lib.shade') - local c = require('nightfox.lib.color') - - local matte_black_palette = { - -- Base "Matte Black" Palette Overrides - bg0 = "#0D0D0D", bg1 = "#121212", bg2 = "#1E1E1E", bg3 = "#2C2C2C", bg4 = "#333333", - fg0 = "#FFFFFF", fg1 = "#EAEAEA", fg2 = "#BEBEBE", fg3 = "#8A8A8D", - sel0 = "#2C2C2C", - sel1 = c.from_hex("#2C2C2C"):blend(c.from_hex("#F59E0B"), 0.2):to_css(), - comment = "#8A8A8D", - red = Shade.new("#D35F5F", c.from_hex("#D35F5F"):lighten(8):to_css(), "#B91C1C"), - orange = Shade.new("#F59E0B", "#FFC107", c.from_hex("#F59E0B"):lighten(-8):to_css()), - yellow = Shade.new("#FFC107", c.from_hex("#FFC107"):lighten(10):to_css(), "#F59E0B"), - white = Shade.new("#EAEAEA", "#FFFFFF", "#BEBEBE"), - black = Shade.new("#333333", "#8A8A8D", "#1E1E1E"), - green = Shade.new("#8A9A7B", "#A5B799", "#6F7C62"), - cyan = Shade.new("#88AABB", "#A2C4D3", "#6E8A99"), - blue = Shade.new("#8A9FBE", "#A4BBDD", "#7084A1"), - magenta = Shade.new("#C1A1C1", "#D9B9D9", "#A989A9"), - pink = Shade.new("#D398A7", "#EBC0CB", "#B97E8D"), - - -- Lualine Palette Extensions - lualine_normal_bg = "#F59E0B", - lualine_insert_bg = "#B91C1C", - lualine_visual_bg = "#C1A1C1", - lualine_command_bg = "#F59E0B", - lualine_inactive_bg = c.from_hex("#121212"):lighten(5):to_css(), - - -- Treesitter Palette Extensions - ts_parameter = "#D398A7", - ts_property = "#EAEAEA", - } - - local final_palettes = { - carbonfox = require('nightfox.lib.collect').deep_extend( - require('nightfox.palette').load('carbonfox'), - matte_black_palette - ) - } - - local specs = { - carbonfox = { - syntax = { - keyword = "red", -- "local", "function", "if" - conditional = "red", - statement = "red", - func = "orange", - string = "orange.dim", - number = "orange", - operator = "yellow", - variable = "white", - ident = "white.dim", - const = "white", - type = "white", - field = "white.dim", - comment = "comment", - }, - diag = { - error = "red", - warn = "red", - info = "cyan", - hint = "magenta", - } - } - } - - local groups = { - all = { - -- Base Groups - Whitespace = { fg = "palette.black.bright" }, - NonText = { fg = "palette.black.bright" }, - IncSearch = { bg = "palette.sel1" }, - CursorLine = { bg = "palette.bg2" }, - Normal = { fg = "palette.fg1" }, - - -- Noice Cmdline Overrides - NoiceCmdlinePopupBorder = { fg = "palette.fg3" }, - NoiceCmdlinePopupTitle = { fg = "palette.fg3", style = "bold" }, - NoiceCmdlinePopupBorderSearch = { fg = "palette.fg3" }, - NoiceCmdlinePopupTitleSearch = { fg = "palette.fg3", style = "bold" }, - NoiceCmdLineIcon = { fg = "palette.red" }, - - -- Neo-tree overrides - NeoTreeNormal = { bg = "palette.bg0" }, - NeoTreeNormalNC = { link = "NeoTreeNormal" }, - NeoTreeDirectoryName = { fg = "palette.fg3" }, - NeoTreeDirectoryIcon = { fg = "palette.fg3" }, - NeoTreeRootName = { fg = "palette.orange", style = "bold" }, - NeoTreeGitAdded = { fg = "palette.green" }, - NeoTreeGitModified = { fg = "palette.yellow" }, - NeoTreeGitDeleted = { fg = "palette.red" }, - NeoTreeGitIgnored = { fg = "palette.comment" }, - NeoTreeC = { fg = "palette.orange", bg = "palette.sel0" }, - - -- Dashboard overrides - SnacksDashboardHeader = { fg = "palette.fg3" }, - SnacksDashboardIcon = { fg = "palette.fg1" }, - SnacksDashboardDir = { fg = "palette.orange" }, - SnacksDashboardFile = { fg = "palette.fg3" }, - SnacksDashboardFooter = { fg = "palette.fg3" }, - SnacksDashboardKey = { fg = "palette.orange" }, - SnacksDashboardDesc = { fg = "palette.fg1" }, - SnacksDashboardSpecial = { fg = "palette.fg1" }, - - -- Treesitter overrides - ["@comment"] = { fg = "palette.comment", style = "italic" }, - ["@keyword"] = { fg = "palette.red", style = "bold" }, - ["@keyword.function"] = { fg = "palette.red", style = "bold" }, - ["@keyword.operator"] = { fg = "palette.red", style = "bold" }, - ["@function"] = { fg = "palette.orange", style = "bold" }, - ["@function.builtin"] = { fg = "palette.orange", style = "bold" }, - ["@function.call"] = { fg = "palette.orange" }, - ["@string"] = { fg = "palette.orange" }, - ["@number"] = { fg = "palette.orange" }, - ["@operator"] = { fg = "palette.yellow" }, - ["@variable"] = { fg = "palette.white" }, - ["@constant"] = { fg = "palette.white" }, - ["@type"] = { fg = "palette.white.dim" }, - ["@variable.parameter"] = { fg = "palette.ts_parameter", style = "italic" }, - ["@property"] = { fg = "palette.ts_property" }, - ["@field"] = { fg = "palette.ts_property" }, - } - } - - nightfox.setup({ - options = { - style = "carbonfox", - terminal_colors = true, - dim_inactive = true, - styles = { comments = "italic", functions = "bold", keywords = "bold" }, - modules = { - neotree = true, - treesitter = true, - }, - }, - palettes = final_palettes, - specs = specs, - groups = groups - }) - - vim.cmd("colorscheme carbonfox") - - -- Lualine overrides - local lualine_theme = { - normal = { - a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_normal_bg, gui = "bold" }, - b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg }, - c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg }, - }, - insert = { - a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_insert_bg, gui = "bold" }, - b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg }, - c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg }, - }, - visual = { - a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_visual_bg, gui = "bold" }, - b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg }, - c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg }, - }, - command = { - a = { fg = matte_black_palette.bg0, bg = matte_black_palette.lualine_command_bg, gui = "bold" }, - b = { fg = matte_black_palette.fg1, bg = matte_black_palette.lualine_inactive_bg }, - c = { fg = matte_black_palette.fg2, bg = matte_black_palette.lualine_inactive_bg }, - }, - inactive = { - a = { fg = matte_black_palette.fg3, bg = matte_black_palette.lualine_inactive_bg }, - b = { fg = matte_black_palette.fg3, bg = matte_black_palette.lualine_inactive_bg }, - c = { fg = matte_black_palette.comment, bg = matte_black_palette.lualine_inactive_bg }, - }, - } - - require('lualine').setup({ - options = { - theme = lualine_theme, - }, - }) - - end, - + { "tahayvr/matteblack.nvim", lazy = false, priority = 1000 }, + { + "LazyVim/LazyVim", + opts = { + colorscheme = "matteblack", + }, + }, } \ No newline at end of file From 46d135025e64d6e19e599c996d0bbc9e5cf457d9 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 13:02:31 -0400 Subject: [PATCH 13/68] Center steam window to prevent it from being off screen --- default/hypr/windows.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index bf9049d..ec62f32 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -15,7 +15,8 @@ windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Fil windowrule = center, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save) # Float Steam, fullscreen RetroArch -windowrule = float, class:^(steam)$ +windowrule = float, class:steam +windowrule = center, class:steam windowrule = fullscreen, class:^(com.libretro.RetroArch)$ # Just dash of opacity From f2b58c2b8ea31ce367e339fbf81ea0fbe5c5a3f1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 13:02:54 -0400 Subject: [PATCH 14/68] Add dedicated omarchy-setup-steam script --- bin/omarchy | 3 ++- bin/omarchy-setup-steam | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 bin/omarchy-setup-steam diff --git a/bin/omarchy b/bin/omarchy index 936aec2..8b8a34b 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -95,9 +95,10 @@ remove_theme_prompt() { setup_menu() { show_ascii_art - local menu=("Dropbox" "Docker DBs" "Fingerprint sensor" "Fido2 device" "Back") + 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" diff --git a/bin/omarchy-setup-steam b/bin/omarchy-setup-steam new file mode 100755 index 0000000..ae4051c --- /dev/null +++ b/bin/omarchy-setup-steam @@ -0,0 +1,9 @@ +#!/bin/bash + +echo "Adding multilib repository for 32-bit compatibility" +sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf +sudo pacman -Sy + +echo "Now pick dependencies matching your graphics card" +yay -S steam +gtk-launch steam >/dev/null 2>&1 & From 19c0d2887ee70ea405ed3202aa82b343dff7273a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 13:04:53 -0400 Subject: [PATCH 15/68] Reorder --- bin/omarchy | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy b/bin/omarchy index 8b8a34b..813621b 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -127,10 +127,10 @@ setup_docker_dbs() { if [[ -n "$choices" ]]; then for db in $choices; do case $db in - 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 ;; 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 ;; - Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;; 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 From 10f71885b2f7bb9b33d9ced6aab72c161c178904 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 13:43:32 -0400 Subject: [PATCH 16/68] No longer needed --- bin/omarchy-theme-install | 8 -------- 1 file changed, 8 deletions(-) diff --git a/bin/omarchy-theme-install b/bin/omarchy-theme-install index 67a7909..93b30ab 100755 --- a/bin/omarchy-theme-install +++ b/bin/omarchy-theme-install @@ -12,9 +12,6 @@ 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" -THEME_BACKGROUND_PATH="$THEME_PATH/backgrounds" -BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds" -BACKGROUNDS_THEME_PATH="$BACKGROUNDS_PATH/$THEME_NAME" # Remove existing theme if present if [ -d "$THEME_PATH" ]; then @@ -27,10 +24,5 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then exit 1 fi -# Link backgrounds if present -if [ -d $THEME_BACKGROUND_PATH ]; then - ln -snf $THEME_BACKGROUND_PATH $BACKGROUNDS_THEME_PATH -fi - # Apply the new theme with omarchy-theme-set omarchy-theme-set $THEME_NAME From e01c1bb139849659e583f0813fa6ccb1e6426d6a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 14:29:08 -0400 Subject: [PATCH 17/68] It's all setup --- install/{1-setup-aur-support.sh => 1-aur.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename install/{1-setup-aur-support.sh => 1-aur.sh} (100%) diff --git a/install/1-setup-aur-support.sh b/install/1-aur.sh similarity index 100% rename from install/1-setup-aur-support.sh rename to install/1-aur.sh From 1c14b8eba2c1512ac84e65acfbb9839210eb83e3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 14:30:18 -0400 Subject: [PATCH 18/68] Have to check for the right command --- migrations/1753138691.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1753138691.sh b/migrations/1753138691.sh index b37208f..04012e4 100644 --- a/migrations/1753138691.sh +++ b/migrations/1753138691.sh @@ -1,6 +1,6 @@ echo "Install swayOSD to show volume status" -if ! command -v swayosd &>/dev/null; then +if ! command -v swayosd-server &>/dev/null; then yay -S --noconfirm --needed swayosd setsid uwsm app -- swayosd-server &>/dev/null & fi From 6d3df204bc6aac677273e012d2b0d7b2e8b0dda8 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:05:41 -0400 Subject: [PATCH 19/68] Use terminal text effects for extra rizz --- bin/omarchy | 3 ++- install/2-identification.sh | 5 +++-- ansi.sh => logo.txt | 9 ++------- migrations/1753468218.sh | 4 ++++ 4 files changed, 11 insertions(+), 10 deletions(-) rename ansi.sh => logo.txt (82%) create mode 100644 migrations/1753468218.sh diff --git a/bin/omarchy b/bin/omarchy index 813621b..3de2c62 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -4,7 +4,8 @@ OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/de PATH="$PATH:$HOME/.local/share/omarchy/bin" show_ascii_art() { - source ~/.local/share/omarchy/ansi.sh + clear + tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 expand echo " $OMARCHY_VERSION" } diff --git a/install/2-identification.sh b/install/2-identification.sh index f31b1e8..38fa1da 100644 --- a/install/2-identification.sh +++ b/install/2-identification.sh @@ -1,10 +1,11 @@ #!/bin/bash # Need gum to query for input -yay -S --noconfirm --needed gum +yay -S --noconfirm --needed gum python-terminaltexteffects # Configure identification -source ~/.local/share/omarchy/ansi.sh +clear +tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 expand echo -e "\nEnter identification for git and autocomplete..." export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") diff --git a/ansi.sh b/logo.txt similarity index 82% rename from ansi.sh rename to logo.txt index 4ce2952..e0d0525 100644 --- a/ansi.sh +++ b/logo.txt @@ -1,6 +1,4 @@ -#!/bin/bash - -ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ + ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ ███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ ███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ @@ -8,7 +6,4 @@ ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ - ███ ███ ' - -clear -echo -e "\n$ansi_art\n" + ███ ███ diff --git a/migrations/1753468218.sh b/migrations/1753468218.sh new file mode 100644 index 0000000..b9f22e9 --- /dev/null +++ b/migrations/1753468218.sh @@ -0,0 +1,4 @@ +echo "Add Terminal Text Effects for rizzing Omarchy" +if yay -Qe python-terminaltexteffects &>/dev/null; then + yay -S --noconfirm --needed python-terminaltexteffects +fi From 824ba780009c59ca8c4c4fe03df4c958a2e1003a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:14:05 -0400 Subject: [PATCH 20/68] Let's try just showing the logo at identification time --- boot.sh | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/boot.sh b/boot.sh index 3ff9965..dda0289 100755 --- a/boot.sh +++ b/boot.sh @@ -1,17 +1,5 @@ #!/bin/bash -ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ -███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ -███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ -███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███ -███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ - ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ - ███ ███ ' - -echo -e "\n$ansi_art\n" - sudo pacman -Sy --noconfirm --needed git echo -e "\nCloning Omarchy..." From 165c940df2ee25497834685829586c19ab86fc4a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:21:36 -0400 Subject: [PATCH 21/68] A bit more effects --- install/2-identification.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install/2-identification.sh b/install/2-identification.sh index 38fa1da..bd286ff 100644 --- a/install/2-identification.sh +++ b/install/2-identification.sh @@ -6,6 +6,8 @@ yay -S --noconfirm --needed gum python-terminaltexteffects # Configure identification clear tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 expand -echo -e "\nEnter identification for git and autocomplete..." +echo -e "" +echo "Let's install Omarchy!" | tte --frame-rate 640 wipe +echo -e "" export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") From 65a5bbad82c1cb046e20797b2902adc6caf95a39 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:25:39 -0400 Subject: [PATCH 22/68] Setup presentation tooling and functions as a separate step --- install/2-identification.sh | 13 ------------- install/2-presentation.sh | 15 +++++++++++++++ install/3-identification.sh | 7 +++++++ install/{3-terminal.sh => 4-terminal.sh} | 0 install/{4-config.sh => 5-config.sh} | 0 5 files changed, 22 insertions(+), 13 deletions(-) delete mode 100644 install/2-identification.sh create mode 100644 install/2-presentation.sh create mode 100644 install/3-identification.sh rename install/{3-terminal.sh => 4-terminal.sh} (100%) rename install/{4-config.sh => 5-config.sh} (100%) diff --git a/install/2-identification.sh b/install/2-identification.sh deleted file mode 100644 index bd286ff..0000000 --- a/install/2-identification.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -# Need gum to query for input -yay -S --noconfirm --needed gum python-terminaltexteffects - -# Configure identification -clear -tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 expand -echo -e "" -echo "Let's install Omarchy!" | tte --frame-rate 640 wipe -echo -e "" -export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") -export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") diff --git a/install/2-presentation.sh b/install/2-presentation.sh new file mode 100644 index 0000000..cb90f2b --- /dev/null +++ b/install/2-presentation.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Need gum to query for input +yay -S --noconfirm --needed gum python-terminaltexteffects + +show_logo() { + clear + tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 expand + echo -e "" +} + +show_subtext() { + echo "$1" | tte --frame-rate 640 wipe + echo -e "" +} diff --git a/install/3-identification.sh b/install/3-identification.sh new file mode 100644 index 0000000..2dbf494 --- /dev/null +++ b/install/3-identification.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +show_logo +show_subtext "Let's install Omarchy!" + +export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") +export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") diff --git a/install/3-terminal.sh b/install/4-terminal.sh similarity index 100% rename from install/3-terminal.sh rename to install/4-terminal.sh diff --git a/install/4-config.sh b/install/5-config.sh similarity index 100% rename from install/4-config.sh rename to install/5-config.sh From 0c36142f8a0346aaa8ecb15f6e51d2ceff927ebf Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:26:38 -0400 Subject: [PATCH 23/68] Default to expand but allow others --- install/2-presentation.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/2-presentation.sh b/install/2-presentation.sh index cb90f2b..ea72b2b 100644 --- a/install/2-presentation.sh +++ b/install/2-presentation.sh @@ -5,7 +5,7 @@ yay -S --noconfirm --needed gum python-terminaltexteffects show_logo() { clear - tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 expand + tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 ${1:-expand} echo -e "" } From c4a08c3c25f6e53af81a9908b039fc7c95d1578e Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:27:10 -0400 Subject: [PATCH 24/68] Try to do another header --- install/4-terminal.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/install/4-terminal.sh b/install/4-terminal.sh index 2df35f9..ac959da 100644 --- a/install/4-terminal.sh +++ b/install/4-terminal.sh @@ -1,5 +1,8 @@ #!/bin/bash +show_logo +show_subtext "Let's install basic terminal tools..." + yay -S --noconfirm --needed \ wget curl unzip inetutils impala \ fd eza fzf ripgrep zoxide bat jq \ From 37f4d4a4111983c28e64a144de6cb2525f0ad2eb Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:30:49 -0400 Subject: [PATCH 25/68] More tweaks to the animations --- install/2-presentation.sh | 4 ++-- install/3-identification.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/install/2-presentation.sh b/install/2-presentation.sh index ea72b2b..636a769 100644 --- a/install/2-presentation.sh +++ b/install/2-presentation.sh @@ -5,11 +5,11 @@ yay -S --noconfirm --needed gum python-terminaltexteffects show_logo() { clear - tte -i ~/.local/share/omarchy/logo.txt --frame-rate 120 ${1:-expand} + tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand} echo -e "" } show_subtext() { - echo "$1" | tte --frame-rate 640 wipe + echo "$1" | tte --frame-rate ${3:-640} ${2:-wipe} echo -e "" } diff --git a/install/3-identification.sh b/install/3-identification.sh index 2dbf494..859a300 100644 --- a/install/3-identification.sh +++ b/install/3-identification.sh @@ -1,6 +1,6 @@ #!/bin/bash -show_logo +show_logo beams 240 show_subtext "Let's install Omarchy!" export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") From 0ead8947f7c37bec9de5b4d28e644d5933d5d411 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:42:27 -0400 Subject: [PATCH 26/68] Add logo to logical substeps --- install/4-terminal.sh | 3 --- install/desktop.sh | 3 +++ install/development.sh | 3 +++ install/fonts.sh | 3 +++ install/hyprlandia.sh | 3 +++ install/login.sh | 4 +++- install/nvidia.sh | 3 +++ install/printer.sh | 3 +++ install/theme.sh | 3 +++ install/xtras.sh | 3 +++ 10 files changed, 27 insertions(+), 4 deletions(-) diff --git a/install/4-terminal.sh b/install/4-terminal.sh index ac959da..2df35f9 100644 --- a/install/4-terminal.sh +++ b/install/4-terminal.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Let's install basic terminal tools..." - yay -S --noconfirm --needed \ wget curl unzip inetutils impala \ fd eza fzf ripgrep zoxide bat jq \ diff --git a/install/desktop.sh b/install/desktop.sh index 0b2b320..712f6c8 100644 --- a/install/desktop.sh +++ b/install/desktop.sh @@ -1,5 +1,8 @@ #!/bin/bash +show_logo +show_subtext "Let's install desktop tools..." + yay -S --noconfirm --needed \ brightnessctl playerctl pamixer wiremix wireplumber \ fcitx5 fcitx5-gtk fcitx5-qt wl-clip-persist \ diff --git a/install/development.sh b/install/development.sh index 20d8957..97f9c77 100644 --- a/install/development.sh +++ b/install/development.sh @@ -1,5 +1,8 @@ #!/bin/bash +show_logo +show_subtext "Let's install development tools..." + yay -S --noconfirm --needed \ cargo clang llvm mise \ imagemagick \ diff --git a/install/fonts.sh b/install/fonts.sh index b1a7ea0..ab4d348 100644 --- a/install/fonts.sh +++ b/install/fonts.sh @@ -1,5 +1,8 @@ #!/bin/bash +show_logo +show_subtext "Install beautiful fonts..." + if [ -z "$OMARCHY_BARE" ]; then yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra else diff --git a/install/hyprlandia.sh b/install/hyprlandia.sh index e5d9368..72bffd4 100644 --- a/install/hyprlandia.sh +++ b/install/hyprlandia.sh @@ -1,5 +1,8 @@ #!/bin/bash +show_logo +show_subtext "Installing Hyprland ecosystem..." + yay -S --noconfirm --needed \ hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \ walker-bin libqalculate waybar mako swaybg swayosd \ diff --git a/install/login.sh b/install/login.sh index 5e090b7..a62a08a 100644 --- a/install/login.sh +++ b/install/login.sh @@ -1,6 +1,8 @@ #!/bin/bash -# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security +show_logo +show_subtext "Install decryption and boot loader..." + yay -S --noconfirm --needed uwsm # Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop diff --git a/install/nvidia.sh b/install/nvidia.sh index 3385e04..e3a475a 100644 --- a/install/nvidia.sh +++ b/install/nvidia.sh @@ -12,6 +12,9 @@ # --- GPU Detection --- if [ -n "$(lspci | grep -i 'nvidia')" ]; then + show_logo + show_subtext "Install NVIDIA drivers..." + # --- Driver Selection --- # Turing (16xx, 20xx), Ampere (30xx), Ada (40xx), and newer recommend the open-source kernel modules if echo "$(lspci | grep -i 'nvidia')" | grep -q -E "RTX [2-9][0-9]|GTX 16"; then diff --git a/install/printer.sh b/install/printer.sh index 17b2d31..fc9e671 100644 --- a/install/printer.sh +++ b/install/printer.sh @@ -1,4 +1,7 @@ #!/bin/bash +show_logo +show_subtext "Installing printer system..." + sudo pacman -S --noconfirm cups cups-pdf cups-filters system-config-printer sudo systemctl enable --now cups.service diff --git a/install/theme.sh b/install/theme.sh index 12a29ae..c4951e2 100644 --- a/install/theme.sh +++ b/install/theme.sh @@ -1,5 +1,8 @@ #!/bin/bash +show_logo +show_subtext "Installing themes..." + # Use dark mode for QT apps too (like kdenlive) sudo pacman -S --noconfirm kvantum-qt5 diff --git a/install/xtras.sh b/install/xtras.sh index 36c88e9..35eecdb 100644 --- a/install/xtras.sh +++ b/install/xtras.sh @@ -1,6 +1,9 @@ #!/bin/bash if [ -z "$OMARCHY_BARE" ]; then + show_logo + show_subtext "Installing default applications..." + yay -S --noconfirm --needed \ gnome-calculator gnome-keyring signal-desktop \ obsidian-bin libreoffice obs-studio kdenlive \ From 25acc313b1471b0828131bf5d92403ba18c889a2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 15:43:21 -0400 Subject: [PATCH 27/68] Just straight reboot when we're done Script will abort anyway if there were any issues along the way --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index a329185..cb074d5 100755 --- a/install.sh +++ b/install.sh @@ -24,4 +24,4 @@ sudo updatedb # Update all built-in packages sudo pacman -Syu --noconfirm -gum confirm "Reboot to apply all settings?" && reboot +reboot From 92c1db9176edbe1a86a8f75087835713d0e87d2c Mon Sep 17 00:00:00 2001 From: Michal Dziurowski Date: Fri, 25 Jul 2025 21:43:37 +0200 Subject: [PATCH 28/68] take into consideration xdg dirs for screenshot and screen recording --- bin/omarchy-cmd-screenrecord | 10 ++++++++-- bin/omarchy-cmd-screenshot | 8 +++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/bin/omarchy-cmd-screenrecord b/bin/omarchy-cmd-screenrecord index 9a99f62..84a4600 100755 --- a/bin/omarchy-cmd-screenrecord +++ b/bin/omarchy-cmd-screenrecord @@ -2,7 +2,13 @@ # Set recorder based on GPU -OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-$HOME/Videos}" +[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs +OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000 + exit 1 +fi screenrecording() { filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" @@ -19,7 +25,7 @@ screenrecording() { if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then pkill -x wl-screenrec pkill -x wf-recorder - notify-send "Screen recording saved to ~/Videos" -t 2000 + notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000 elif [[ "$1" == "output" ]]; then screenrecording else diff --git a/bin/omarchy-cmd-screenshot b/bin/omarchy-cmd-screenshot index 1459bd2..eb3576d 100755 --- a/bin/omarchy-cmd-screenshot +++ b/bin/omarchy-cmd-screenshot @@ -1,6 +1,12 @@ #!/bin/bash -OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-$HOME/Pictures}" +[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs +OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}" + +if [[ ! -d "$OUTPUT_DIR" ]]; then + notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000 + exit 1 +fi hyprshot -m ${1:-region} --raw | satty --filename - \ From b5f60f78a890ad5754ca8c39ad42af8bcece5963 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 16:48:53 -0400 Subject: [PATCH 29/68] Structure the installers explicitly with clearly defined segments --- install.sh | 72 ++++++++++++++++--- install/2-presentation.sh | 15 ---- install/{ => apps}/mimetypes.sh | 0 install/{ => apps}/webapps.sh | 0 install/{ => apps}/xtras.sh | 0 install/{5-config.sh => config/config.sh} | 0 .../{ => config}/detect-keyboard-layout.sh | 0 install/{ => config}/fix-fkeys.sh | 0 .../identification.sh} | 3 - install/{ => config}/login.sh | 3 - install/{ => config}/network.sh | 0 install/{ => config}/nvidia.sh | 0 install/{ => config}/plymouth.sh | 0 install/{ => config}/power.sh | 0 install/{ => config}/theme.sh | 0 install/{ => desktop}/asdcontrol.sh | 0 install/{ => desktop}/bluetooth.sh | 0 install/{ => desktop}/desktop.sh | 3 - install/{ => desktop}/fonts.sh | 3 - install/{ => desktop}/hyprlandia.sh | 3 - install/{ => desktop}/printer.sh | 3 - install/{ => development}/development.sh | 3 - install/{ => development}/docker.sh | 0 install/{ => development}/firewall.sh | 0 install/{ => development}/nvim.sh | 0 install/{ => development}/ruby.sh | 0 .../terminal.sh} | 0 install/{1-aur.sh => preflight/aur.sh} | 0 install/preflight/presentation.sh | 3 + 29 files changed, 67 insertions(+), 44 deletions(-) delete mode 100644 install/2-presentation.sh rename install/{ => apps}/mimetypes.sh (100%) rename install/{ => apps}/webapps.sh (100%) rename install/{ => apps}/xtras.sh (100%) rename install/{5-config.sh => config/config.sh} (100%) rename install/{ => config}/detect-keyboard-layout.sh (100%) rename install/{ => config}/fix-fkeys.sh (100%) rename install/{3-identification.sh => config/identification.sh} (76%) rename install/{ => config}/login.sh (98%) rename install/{ => config}/network.sh (100%) rename install/{ => config}/nvidia.sh (100%) rename install/{ => config}/plymouth.sh (100%) rename install/{ => config}/power.sh (100%) rename install/{ => config}/theme.sh (100%) rename install/{ => desktop}/asdcontrol.sh (100%) rename install/{ => desktop}/bluetooth.sh (100%) rename install/{ => desktop}/desktop.sh (87%) rename install/{ => desktop}/fonts.sh (96%) rename install/{ => desktop}/hyprlandia.sh (79%) rename install/{ => desktop}/printer.sh (70%) rename install/{ => development}/development.sh (72%) rename install/{ => development}/docker.sh (100%) rename install/{ => development}/firewall.sh (100%) rename install/{ => development}/nvim.sh (100%) rename install/{ => development}/ruby.sh (100%) rename install/{4-terminal.sh => development/terminal.sh} (100%) rename install/{1-aur.sh => preflight/aur.sh} (100%) create mode 100644 install/preflight/presentation.sh diff --git a/install.sh b/install.sh index cb074d5..c4bbc64 100755 --- a/install.sh +++ b/install.sh @@ -3,6 +3,8 @@ # Exit immediately if a command exits with a non-zero status set -e +OMARCHY_INSTALL=~/.local/share/omarchy/install/ + # Give people a chance to retry running the installation catch_errors() { echo -e "\n\e[31mOmarchy installation failed!\e[0m" @@ -12,16 +14,70 @@ catch_errors() { trap catch_errors ERR -# Install everything -for f in ~/.local/share/omarchy/install/*.sh; do - echo -e "\nRunning installer: $f" - source "$f" -done +show_logo() { + clear + tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand} + echo +} -# Ensure locate is up to date now that everything has been installed +show_subtext() { + echo "$1" | tte --frame-rate ${3:-640} ${2:-wipe} + echo +} + +# Install prerequisites +source $OMARCHY_INSTALL/preflight/aur.sh +source $OMARCHY_INSTALL/preflight/presentation.sh + +# Configuration +show_logo beams 240 +show_subtext "Let's configure Omarchy! [1/5]" +source $OMARCHY_INSTALL/config/identification.sh +source $OMARCHY_INSTALL/config/config.sh +source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh +source $OMARCHY_INSTALL/config/fix-fkeys.sh +source $OMARCHY_INSTALL/config/network.sh +source $OMARCHY_INSTALL/config/power.sh +source $OMARCHY_INSTALL/config/theme.sh +source $OMARCHY_INSTALL/config/login.sh +source $OMARCHY_INSTALL/config/plymouth.sh +source $OMARCHY_INSTALL/config/nvidia.sh + +# Development +show_logo decrypt 920 +show_subtext "Installing terminal tools [2/10]" +source $OMARCHY_INSTALL/development/terminal.sh +source $OMARCHY_INSTALL/development/developmment.sh +source $OMARCHY_INSTALL/development/nvim.sh +source $OMARCHY_INSTALL/development/ruby.sh +source $OMARCHY_INSTALL/development/docker.sh +source $OMARCHY_INSTALL/development/firewall.sh + +# Desktop +show_logo slice +show_subtext "Installing desktop tools [3/10]" +source $OMARCHY_INSTALL/desktop/desktop.sh +source $OMARCHY_INSTALL/desktop/hyprlandia.sh +source $OMARCHY_INSTALL/desktop/bluetooth.sh +source $OMARCHY_INSTALL/desktop/asdcontrol.sh +source $OMARCHY_INSTALL/desktop/fonts.sh +source $OMARCHY_INSTALL/desktop/printer.sh + +# Apps +show_logo expand +show_subtext "Installing default applications [4/5]" +source $OMARCHY_INSTALL/apps/webapps.sh +source $OMARCHY_INSTALL/apps/xtras.sh +source $OMARCHY_INSTALL/apps/mimetypes.sh + +# Updates +show_logo highlight +show_subtext "Updating system packages [5/5]" sudo updatedb - -# Update all built-in packages sudo pacman -Syu --noconfirm +# Reboot +show_logo laseretch 920 +show_subtext "You're done! So we'll be rebooting now..." +sleep 2 reboot diff --git a/install/2-presentation.sh b/install/2-presentation.sh deleted file mode 100644 index 636a769..0000000 --- a/install/2-presentation.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# Need gum to query for input -yay -S --noconfirm --needed gum python-terminaltexteffects - -show_logo() { - clear - tte -i ~/.local/share/omarchy/logo.txt --frame-rate ${2:-120} ${1:-expand} - echo -e "" -} - -show_subtext() { - echo "$1" | tte --frame-rate ${3:-640} ${2:-wipe} - echo -e "" -} diff --git a/install/mimetypes.sh b/install/apps/mimetypes.sh similarity index 100% rename from install/mimetypes.sh rename to install/apps/mimetypes.sh diff --git a/install/webapps.sh b/install/apps/webapps.sh similarity index 100% rename from install/webapps.sh rename to install/apps/webapps.sh diff --git a/install/xtras.sh b/install/apps/xtras.sh similarity index 100% rename from install/xtras.sh rename to install/apps/xtras.sh diff --git a/install/5-config.sh b/install/config/config.sh similarity index 100% rename from install/5-config.sh rename to install/config/config.sh diff --git a/install/detect-keyboard-layout.sh b/install/config/detect-keyboard-layout.sh similarity index 100% rename from install/detect-keyboard-layout.sh rename to install/config/detect-keyboard-layout.sh diff --git a/install/fix-fkeys.sh b/install/config/fix-fkeys.sh similarity index 100% rename from install/fix-fkeys.sh rename to install/config/fix-fkeys.sh diff --git a/install/3-identification.sh b/install/config/identification.sh similarity index 76% rename from install/3-identification.sh rename to install/config/identification.sh index 859a300..94e9d7b 100644 --- a/install/3-identification.sh +++ b/install/config/identification.sh @@ -1,7 +1,4 @@ #!/bin/bash -show_logo beams 240 -show_subtext "Let's install Omarchy!" - export OMARCHY_USER_NAME=$(gum input --placeholder "Enter full name" --prompt "Name> ") export OMARCHY_USER_EMAIL=$(gum input --placeholder "Enter email address" --prompt "Email> ") diff --git a/install/login.sh b/install/config/login.sh similarity index 98% rename from install/login.sh rename to install/config/login.sh index a62a08a..b0e268d 100644 --- a/install/login.sh +++ b/install/config/login.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Install decryption and boot loader..." - yay -S --noconfirm --needed uwsm # Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop diff --git a/install/network.sh b/install/config/network.sh similarity index 100% rename from install/network.sh rename to install/config/network.sh diff --git a/install/nvidia.sh b/install/config/nvidia.sh similarity index 100% rename from install/nvidia.sh rename to install/config/nvidia.sh diff --git a/install/plymouth.sh b/install/config/plymouth.sh similarity index 100% rename from install/plymouth.sh rename to install/config/plymouth.sh diff --git a/install/power.sh b/install/config/power.sh similarity index 100% rename from install/power.sh rename to install/config/power.sh diff --git a/install/theme.sh b/install/config/theme.sh similarity index 100% rename from install/theme.sh rename to install/config/theme.sh diff --git a/install/asdcontrol.sh b/install/desktop/asdcontrol.sh similarity index 100% rename from install/asdcontrol.sh rename to install/desktop/asdcontrol.sh diff --git a/install/bluetooth.sh b/install/desktop/bluetooth.sh similarity index 100% rename from install/bluetooth.sh rename to install/desktop/bluetooth.sh diff --git a/install/desktop.sh b/install/desktop/desktop.sh similarity index 87% rename from install/desktop.sh rename to install/desktop/desktop.sh index 712f6c8..0b2b320 100644 --- a/install/desktop.sh +++ b/install/desktop/desktop.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Let's install desktop tools..." - yay -S --noconfirm --needed \ brightnessctl playerctl pamixer wiremix wireplumber \ fcitx5 fcitx5-gtk fcitx5-qt wl-clip-persist \ diff --git a/install/fonts.sh b/install/desktop/fonts.sh similarity index 96% rename from install/fonts.sh rename to install/desktop/fonts.sh index ab4d348..b1a7ea0 100644 --- a/install/fonts.sh +++ b/install/desktop/fonts.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Install beautiful fonts..." - if [ -z "$OMARCHY_BARE" ]; then yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra else diff --git a/install/hyprlandia.sh b/install/desktop/hyprlandia.sh similarity index 79% rename from install/hyprlandia.sh rename to install/desktop/hyprlandia.sh index 72bffd4..e5d9368 100644 --- a/install/hyprlandia.sh +++ b/install/desktop/hyprlandia.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Installing Hyprland ecosystem..." - yay -S --noconfirm --needed \ hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \ walker-bin libqalculate waybar mako swaybg swayosd \ diff --git a/install/printer.sh b/install/desktop/printer.sh similarity index 70% rename from install/printer.sh rename to install/desktop/printer.sh index fc9e671..17b2d31 100644 --- a/install/printer.sh +++ b/install/desktop/printer.sh @@ -1,7 +1,4 @@ #!/bin/bash -show_logo -show_subtext "Installing printer system..." - sudo pacman -S --noconfirm cups cups-pdf cups-filters system-config-printer sudo systemctl enable --now cups.service diff --git a/install/development.sh b/install/development/development.sh similarity index 72% rename from install/development.sh rename to install/development/development.sh index 97f9c77..20d8957 100644 --- a/install/development.sh +++ b/install/development/development.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Let's install development tools..." - yay -S --noconfirm --needed \ cargo clang llvm mise \ imagemagick \ diff --git a/install/docker.sh b/install/development/docker.sh similarity index 100% rename from install/docker.sh rename to install/development/docker.sh diff --git a/install/firewall.sh b/install/development/firewall.sh similarity index 100% rename from install/firewall.sh rename to install/development/firewall.sh diff --git a/install/nvim.sh b/install/development/nvim.sh similarity index 100% rename from install/nvim.sh rename to install/development/nvim.sh diff --git a/install/ruby.sh b/install/development/ruby.sh similarity index 100% rename from install/ruby.sh rename to install/development/ruby.sh diff --git a/install/4-terminal.sh b/install/development/terminal.sh similarity index 100% rename from install/4-terminal.sh rename to install/development/terminal.sh diff --git a/install/1-aur.sh b/install/preflight/aur.sh similarity index 100% rename from install/1-aur.sh rename to install/preflight/aur.sh diff --git a/install/preflight/presentation.sh b/install/preflight/presentation.sh new file mode 100644 index 0000000..98957ae --- /dev/null +++ b/install/preflight/presentation.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +yay -S --noconfirm --needed gum python-terminaltexteffects From 106641557652435e5ea91233f5421b0a8ed593b1 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 16:49:29 -0400 Subject: [PATCH 30/68] Bring back the first art --- boot.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/boot.sh b/boot.sh index dda0289..65c1cac 100755 --- a/boot.sh +++ b/boot.sh @@ -1,5 +1,18 @@ #!/bin/bash +ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ +███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ +███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ +███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███ +███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ + ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ + ███ ███ ' + +clear +echo -e "\n$ansi_art\n" + sudo pacman -Sy --noconfirm --needed git echo -e "\nCloning Omarchy..." From d60563fe92b6752674fc84f7d586aba7124a9075 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 16:54:02 -0400 Subject: [PATCH 31/68] Need to happen as part of the destkop --- install.sh | 2 +- install/{config => desktop}/theme.sh | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) rename install/{config => desktop}/theme.sh (96%) diff --git a/install.sh b/install.sh index c4bbc64..cee518a 100755 --- a/install.sh +++ b/install.sh @@ -38,7 +38,6 @@ source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh source $OMARCHY_INSTALL/config/fix-fkeys.sh source $OMARCHY_INSTALL/config/network.sh source $OMARCHY_INSTALL/config/power.sh -source $OMARCHY_INSTALL/config/theme.sh source $OMARCHY_INSTALL/config/login.sh source $OMARCHY_INSTALL/config/plymouth.sh source $OMARCHY_INSTALL/config/nvidia.sh @@ -58,6 +57,7 @@ show_logo slice show_subtext "Installing desktop tools [3/10]" source $OMARCHY_INSTALL/desktop/desktop.sh source $OMARCHY_INSTALL/desktop/hyprlandia.sh +source $OMARCHY_INSTALL/dekstop/theme.sh source $OMARCHY_INSTALL/desktop/bluetooth.sh source $OMARCHY_INSTALL/desktop/asdcontrol.sh source $OMARCHY_INSTALL/desktop/fonts.sh diff --git a/install/config/theme.sh b/install/desktop/theme.sh similarity index 96% rename from install/config/theme.sh rename to install/desktop/theme.sh index c4951e2..12a29ae 100644 --- a/install/config/theme.sh +++ b/install/desktop/theme.sh @@ -1,8 +1,5 @@ #!/bin/bash -show_logo -show_subtext "Installing themes..." - # Use dark mode for QT apps too (like kdenlive) sudo pacman -S --noconfirm kvantum-qt5 From 8336788e0a6954a5883a3a9a7837633ba4111f68 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 16:54:51 -0400 Subject: [PATCH 32/68] So 1/5 is right --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index cee518a..9d0b44a 100755 --- a/install.sh +++ b/install.sh @@ -31,7 +31,7 @@ source $OMARCHY_INSTALL/preflight/presentation.sh # Configuration show_logo beams 240 -show_subtext "Let's configure Omarchy! [1/5]" +show_subtext "Let's install Omarchy! [1/5]" source $OMARCHY_INSTALL/config/identification.sh source $OMARCHY_INSTALL/config/config.sh source $OMARCHY_INSTALL/config/detect-keyboard-layout.sh From f25be1d07546b284785978150e3ebab37133319a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 16:56:53 -0400 Subject: [PATCH 33/68] Fix path --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 9d0b44a..f393a7f 100755 --- a/install.sh +++ b/install.sh @@ -3,7 +3,7 @@ # Exit immediately if a command exits with a non-zero status set -e -OMARCHY_INSTALL=~/.local/share/omarchy/install/ +OMARCHY_INSTALL=~/.local/share/omarchy/install # Give people a chance to retry running the installation catch_errors() { @@ -46,7 +46,7 @@ source $OMARCHY_INSTALL/config/nvidia.sh show_logo decrypt 920 show_subtext "Installing terminal tools [2/10]" source $OMARCHY_INSTALL/development/terminal.sh -source $OMARCHY_INSTALL/development/developmment.sh +source $OMARCHY_INSTALL/development/developent.sh source $OMARCHY_INSTALL/development/nvim.sh source $OMARCHY_INSTALL/development/ruby.sh source $OMARCHY_INSTALL/development/docker.sh From ac935bdaed38bbf453a7fbaf5bf1b6819acd6da2 Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Fri, 25 Jul 2025 18:12:08 -0400 Subject: [PATCH 34/68] Kill selection if already active --- bin/omarchy-cmd-screenshot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-cmd-screenshot b/bin/omarchy-cmd-screenshot index e2878e4..f270162 100755 --- a/bin/omarchy-cmd-screenshot +++ b/bin/omarchy-cmd-screenshot @@ -1,6 +1,6 @@ #!/bin/bash -hyprshot -m ${1:-region} --raw | +pkill slurp || hyprshot -m ${1:-region} --raw | satty --filename - \ --output-filename ~/Pictures/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png \ --early-exit \ From eefb4638e9506ed48b389fb96f44a646256e939c Mon Sep 17 00:00:00 2001 From: Taha Nejad Date: Fri, 25 Jul 2025 17:40:14 -0700 Subject: [PATCH 35/68] add omarchy.svg to root of repo --- omarchy.svg | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 omarchy.svg diff --git a/omarchy.svg b/omarchy.svg new file mode 100644 index 0000000..1e27c7c --- /dev/null +++ b/omarchy.svg @@ -0,0 +1,3 @@ + + + From 363a9ae4dc8476a52c84fefd57d9a941df89bdc3 Mon Sep 17 00:00:00 2001 From: Taha Nejad Date: Fri, 25 Jul 2025 17:47:30 -0700 Subject: [PATCH 36/68] update logo.txt with new logo --- logo.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/logo.txt b/logo.txt index e0d0525..70463de 100644 --- a/logo.txt +++ b/logo.txt @@ -1,9 +1,9 @@ - ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ -███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ -███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ -███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███ -███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ - ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ - ███ ███ + ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ +███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ +███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄ ▀▀▀▀▀▀███ +███ ███ ███ ███ ███ ███████████ ▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███ ▄██ ███ +███ ███ ███ ███ ███ ███ ███ ███████████ ███ █▄ ███ ███ ███ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ + ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ + ███ ███ \ No newline at end of file From 2f12cdc751b1157dc7c6cfc87aec3032c6d55a60 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 21:35:39 -0400 Subject: [PATCH 37/68] Fix spelling --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index f393a7f..bdb9041 100755 --- a/install.sh +++ b/install.sh @@ -46,7 +46,7 @@ source $OMARCHY_INSTALL/config/nvidia.sh show_logo decrypt 920 show_subtext "Installing terminal tools [2/10]" source $OMARCHY_INSTALL/development/terminal.sh -source $OMARCHY_INSTALL/development/developent.sh +source $OMARCHY_INSTALL/development/development.sh source $OMARCHY_INSTALL/development/nvim.sh source $OMARCHY_INSTALL/development/ruby.sh source $OMARCHY_INSTALL/development/docker.sh From d6ba2af917516f5fb8bde630ed784cdf89b1b1ff Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 21:54:03 -0400 Subject: [PATCH 38/68] Spelling --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index bdb9041..beae4e5 100755 --- a/install.sh +++ b/install.sh @@ -57,7 +57,7 @@ show_logo slice show_subtext "Installing desktop tools [3/10]" source $OMARCHY_INSTALL/desktop/desktop.sh source $OMARCHY_INSTALL/desktop/hyprlandia.sh -source $OMARCHY_INSTALL/dekstop/theme.sh +source $OMARCHY_INSTALL/desktop/theme.sh source $OMARCHY_INSTALL/desktop/bluetooth.sh source $OMARCHY_INSTALL/desktop/asdcontrol.sh source $OMARCHY_INSTALL/desktop/fonts.sh From ba75889154c1815892ac82975a05f2272485ef7b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 21:57:28 -0400 Subject: [PATCH 39/68] Slow it down a little --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index beae4e5..234773b 100755 --- a/install.sh +++ b/install.sh @@ -53,7 +53,7 @@ source $OMARCHY_INSTALL/development/docker.sh source $OMARCHY_INSTALL/development/firewall.sh # Desktop -show_logo slice +show_logo slice 60 show_subtext "Installing desktop tools [3/10]" source $OMARCHY_INSTALL/desktop/desktop.sh source $OMARCHY_INSTALL/desktop/hyprlandia.sh From d9f9f5212e03621b9c60cb22e0dad4bd9bf91c28 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 21:58:51 -0400 Subject: [PATCH 40/68] Don't need that twice --- install/apps/xtras.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/install/apps/xtras.sh b/install/apps/xtras.sh index 35eecdb..36c88e9 100644 --- a/install/apps/xtras.sh +++ b/install/apps/xtras.sh @@ -1,9 +1,6 @@ #!/bin/bash if [ -z "$OMARCHY_BARE" ]; then - show_logo - show_subtext "Installing default applications..." - yay -S --noconfirm --needed \ gnome-calculator gnome-keyring signal-desktop \ obsidian-bin libreoffice obs-studio kdenlive \ From 1fa2b62fba90257d1e2078f0892d9ea32adcf68b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 25 Jul 2025 22:09:32 -0400 Subject: [PATCH 41/68] Make it safe to rerun the theme.sh installer Closes #343 --- install/desktop/theme.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/desktop/theme.sh b/install/desktop/theme.sh index 12a29ae..d09065a 100644 --- a/install/desktop/theme.sh +++ b/install/desktop/theme.sh @@ -10,7 +10,7 @@ gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # Setup theme links mkdir -p ~/.config/omarchy/themes -for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes/; done +for f in ~/.local/share/omarchy/themes/*; do ln -nfs "$f" ~/.config/omarchy/themes/; done # Set initial theme mkdir -p ~/.config/omarchy/current From 3c2559297d2b81f1b20ea417a64ef1a81171574e Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Fri, 25 Jul 2025 22:16:50 -0400 Subject: [PATCH 42/68] Convert to yay and check for existence --- install/desktop/theme.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/install/desktop/theme.sh b/install/desktop/theme.sh index d09065a..c744c2a 100644 --- a/install/desktop/theme.sh +++ b/install/desktop/theme.sh @@ -1,10 +1,15 @@ #!/bin/bash # Use dark mode for QT apps too (like kdenlive) -sudo pacman -S --noconfirm kvantum-qt5 +if ! yay -Q kvantum-qt5 &>/dev/null; then + yay -S --noconfirm kvantum-qt5 +fi # Prefer dark mode everything -sudo pacman -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme +if ! yay -Q gnome-themes-extra &>/dev/null; then + yay -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme +fi + gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" From c081078e724dd1b8768840a7b1acaa39f517e052 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 09:52:11 -0400 Subject: [PATCH 43/68] Protect pacman config from adopting broken mirror setup --- migrations/1753352057.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh index 2d5cded..431c5e2 100755 --- a/migrations/1753352057.sh +++ b/migrations/1753352057.sh @@ -9,8 +9,12 @@ if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.c sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' - # Add Chaotic-AUR repo to pacman config - echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + if [[ -f /etc/pacman.d/chaotic-mirrorlist ]]; then + # Add Chaotic-AUR repo to pacman config + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + else + echo "Failed to download chaotic-mirrorlist, so won't include it in pacman config!" + fi # Refresh pacman package databases sudo pacman -Sy From eace29af7d32ef43c84ebc2bd1f8ebeb3aacde5f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 11:15:06 -0400 Subject: [PATCH 44/68] Allow updating timezone from right-clicking the clock Closes #314 --- bin/omarchy-cmd-tzupdate | 5 +++++ config/waybar/config.jsonc | 3 ++- install/config/timezones.sh | 9 +++++++++ migrations/1753495989.sh | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100755 bin/omarchy-cmd-tzupdate create mode 100644 install/config/timezones.sh create mode 100644 migrations/1753495989.sh diff --git a/bin/omarchy-cmd-tzupdate b/bin/omarchy-cmd-tzupdate new file mode 100755 index 0000000..1c5d0ac --- /dev/null +++ b/bin/omarchy-cmd-tzupdate @@ -0,0 +1,5 @@ +#!/bin/bash + +sudo tzupdate +new_timezone=$(timedatectl show -p Timezone --value) +notify-send "Timezone has been set to $new_timezone" diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index 25f4818..2c554f7 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -50,7 +50,8 @@ "clock": { "format": "{:%A %H:%M}", "format-alt": "{:%d %B W%V %Y}", - "tooltip": false + "tooltip": false, + "on-click-right": "omarchy-cmd-tzupdate" }, "network": { "format-icons": ["󰤯","󰤟","󰤢","󰤥","󰤨"], diff --git a/install/config/timezones.sh b/install/config/timezones.sh new file mode 100644 index 0000000..df796e2 --- /dev/null +++ b/install/config/timezones.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then + yay -S --noconfirm --needed tzupdate + sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null < Date: Sat, 26 Jul 2025 09:00:20 -0700 Subject: [PATCH 45/68] Fix step total in install.sh subtexts --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 234773b..9110413 100755 --- a/install.sh +++ b/install.sh @@ -44,7 +44,7 @@ source $OMARCHY_INSTALL/config/nvidia.sh # Development show_logo decrypt 920 -show_subtext "Installing terminal tools [2/10]" +show_subtext "Installing terminal tools [2/5]" source $OMARCHY_INSTALL/development/terminal.sh source $OMARCHY_INSTALL/development/development.sh source $OMARCHY_INSTALL/development/nvim.sh @@ -54,7 +54,7 @@ source $OMARCHY_INSTALL/development/firewall.sh # Desktop show_logo slice 60 -show_subtext "Installing desktop tools [3/10]" +show_subtext "Installing desktop tools [3/5]" source $OMARCHY_INSTALL/desktop/desktop.sh source $OMARCHY_INSTALL/desktop/hyprlandia.sh source $OMARCHY_INSTALL/desktop/theme.sh From 4e4e82c5b911b65a573619965c6d178cc611383d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saull=20Brand=C3=A3o?= Date: Sat, 26 Jul 2025 13:17:13 -0300 Subject: [PATCH 46/68] fix chaotic aur installation --- install/preflight/aur.sh | 34 ++++++++++++++++++++-------------- migrations/1753352057.sh | 25 ++++++++++++------------- 2 files changed, 32 insertions(+), 27 deletions(-) diff --git a/install/preflight/aur.sh b/install/preflight/aur.sh index 02ff90d..8dcbc3f 100644 --- a/install/preflight/aur.sh +++ b/install/preflight/aur.sh @@ -1,27 +1,34 @@ #!/bin/bash +chaotic_ok=0 + # Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages if [[ "$(uname -m)" == "x86_64" ]]; then - # Import Chaotic-AUR key - sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com - sudo pacman-key --lsign-key 3056513887B78AEB + # Try installing Chaotic-AUR keyring and mirrorlist + if sudo pacman-key --recv-key 3056513887B78AEB && + sudo pacman-key --lsign-key 3056513887B78AEB && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then - # Install Chaotic-AUR keyring and mirrorlist - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' + # Add Chaotic-AUR repo to pacman config + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null - # Add Chaotic-AUR repo to pacman config - echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + # Refresh pacman package databases + sudo pacman -Sy - # Refresh pacman package databases - sudo pacman -Sy + chaotic_ok=1 + else + echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" + fi +fi - # Install yay +if [[ $chaotic_ok -eq 1 ]]; then sudo pacman -S --needed --noconfirm yay else - sudo pacman -S --needed --noconfirm base-devel - + # Manually install yay from AUR if not already available if ! command -v yay &>/dev/null; then + # Install build tools + sudo pacman -S --needed --noconfirm base-devel cd /tmp git clone https://aur.archlinux.org/yay-bin.git cd yay-bin @@ -30,7 +37,6 @@ else rm -rf yay-bin cd ~ fi - fi # Add fun and color to the pacman installer diff --git a/migrations/1753352057.sh b/migrations/1753352057.sh index 431c5e2..653938f 100755 --- a/migrations/1753352057.sh +++ b/migrations/1753352057.sh @@ -1,21 +1,20 @@ echo "Add Chaotic-AUR to get compiled binaries" if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.conf; then - # Import Chaotic-AUR key - sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com - sudo pacman-key --lsign-key 3056513887B78AEB + # Try installing Chaotic-AUR keyring and mirrorlist + if sudo pacman-key --recv-key 3056513887B78AEB && + sudo pacman-key --lsign-key 3056513887B78AEB && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && + sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then - # Install Chaotic-AUR keyring and mirrorlist - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' - sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' - - if [[ -f /etc/pacman.d/chaotic-mirrorlist ]]; then # Add Chaotic-AUR repo to pacman config echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null - else - echo "Failed to download chaotic-mirrorlist, so won't include it in pacman config!" - fi - # Refresh pacman package databases - sudo pacman -Sy + # Refresh pacman package databases + sudo pacman -Sy + + chaotic_ok=1 + else + echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" + fi fi From cb48956a370a305fff67afb8ae294c8f89f09a45 Mon Sep 17 00:00:00 2001 From: Jaxon Wright Date: Sat, 26 Jul 2025 00:25:25 -0400 Subject: [PATCH 47/68] config.sh(#330): if bare install, create bare.mode file to allow updates to skip steps not applicable to bare installs --- install/config/config.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/install/config/config.sh b/install/config/config.sh index 91157f6..3b463ce 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -9,6 +9,12 @@ echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc # Ensure application directory exists for update-desktop-database mkdir -p ~/.local/share/applications +# If bare install, allow a way for its exclusions to not get added in updates +if [ -n "$OMARCHY_BARE" ]; then + mkdir -p ~/.local/state/omarchy + touch ~/.local/state/omarchy/bare.mode +fi + # Setup GPG configuration with multiple keyservers for better reliability sudo mkdir -p /etc/gnupg sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/ From 62fb66a74a7c20d9c42cc6048da3bed19d56f050 Mon Sep 17 00:00:00 2001 From: Jaxon Wright Date: Sat, 26 Jul 2025 00:59:46 -0400 Subject: [PATCH 48/68] omarchy-refresh-applications(#330/#341): do not copy xtras .desktop declarations if in bare mode --- bin/omarchy-refresh-applications | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bin/omarchy-refresh-applications b/bin/omarchy-refresh-applications index 6f8c6b1..429cbb8 100755 --- a/bin/omarchy-refresh-applications +++ b/bin/omarchy-refresh-applications @@ -10,7 +10,8 @@ mkdir -p ~/.local/share/applications cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/ -if [ -z "$OMARCHY_BARE" ]; then +# Only copy xtras if user is not in bare mode +if [[ ! -f ~/.local/state/omarchy/bare.mode ]] && [ -z "$OMARCHY_BARE" ]; then cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/ fi From 7f3af84a60a3679da7ee8686e42dbf659deb51a0 Mon Sep 17 00:00:00 2001 From: Jaxon Wright Date: Sat, 26 Jul 2025 01:01:08 -0400 Subject: [PATCH 49/68] #330: update "add missing installation of Zoom" migration to skip if bare install --- migrations/1752983008.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/migrations/1752983008.sh b/migrations/1752983008.sh index 672ca78..5b4b8da 100644 --- a/migrations/1752983008.sh +++ b/migrations/1752983008.sh @@ -1,3 +1,6 @@ +# do not run if user is using bare mode +if [[ -f ~/.local/state/omarchy/bare.mode ]]; then exit; fi + echo "Add missing installation of Zoom" if ! command -v zoom &>/dev/null; then From 5b654d028249f4fa7f6bf7db3d6a0e62a0a91e8f Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 13:02:22 -0400 Subject: [PATCH 50/68] Be careful not to exit the entire migration runner --- migrations/1752983008.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/migrations/1752983008.sh b/migrations/1752983008.sh index 5b4b8da..a18b072 100644 --- a/migrations/1752983008.sh +++ b/migrations/1752983008.sh @@ -1,8 +1,7 @@ -# do not run if user is using bare mode -if [[ -f ~/.local/state/omarchy/bare.mode ]]; then exit; fi +if [[ ! -f ~/.local/state/omarchy/bare.mode ]]; then + echo "Add missing installation of Zoom" -echo "Add missing installation of Zoom" - -if ! command -v zoom &>/dev/null; then - yay -S --noconfirm --needed zoom + if ! command -v zoom &>/dev/null; then + yay -S --noconfirm --needed zoom + fi fi From fbdbf852eb677f0807fd1e768f056e0c4200ea1a Mon Sep 17 00:00:00 2001 From: Sean Mitchell Date: Sat, 26 Jul 2025 10:02:29 -0700 Subject: [PATCH 51/68] Update logo txt --- logo.txt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/logo.txt b/logo.txt index 70463de..47433aa 100644 --- a/logo.txt +++ b/logo.txt @@ -1,9 +1,10 @@ - ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ -███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ -███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄ ▀▀▀▀▀▀███ -███ ███ ███ ███ ███ ███████████ ▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███ ▄██ ███ -███ ███ ███ ███ ███ ███ ███ ███████████ ███ █▄ ███ ███ ███ ███ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ - ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ - ███ ███ \ No newline at end of file + ▄▄▄ + ▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███ +███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███ +███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███ +███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ + ▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀ + ███ █▀ From 32aa290af527bae75ad54c3fefa69cfddaf4c3dd Mon Sep 17 00:00:00 2001 From: Sean Mitchell Date: Sat, 26 Jul 2025 10:02:50 -0700 Subject: [PATCH 52/68] Update logo svg --- omarchy.svg | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/omarchy.svg b/omarchy.svg index 1e27c7c..fcc164c 100644 --- a/omarchy.svg +++ b/omarchy.svg @@ -1,3 +1 @@ - - - + From f693c33310b15e83681ff85900c0de9aad4fb8fc Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Fri, 25 Jul 2025 19:20:17 -0400 Subject: [PATCH 53/68] Combine plymouth and login --- install/config/login.sh | 182 +++++++++++++++++++++++++++++++++---- install/config/plymouth.sh | 121 ------------------------ 2 files changed, 162 insertions(+), 141 deletions(-) delete mode 100755 install/config/plymouth.sh diff --git a/install/config/login.sh b/install/config/login.sh index b0e268d..774fa5e 100644 --- a/install/config/login.sh +++ b/install/config/login.sh @@ -1,13 +1,143 @@ #!/bin/bash -yay -S --noconfirm --needed uwsm +# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security +if ! command -v uwsm &>/dev/null || ! command -v plymouth &>/dev/null; then + yay -S --noconfirm --needed uwsm plymouth +fi -# Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop -cat <<'CCODE' >/tmp/seamless-login.c +# ============================================================================== +# PLYMOUTH SETUP +# ============================================================================== + +if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then + # Backup original mkinitcpio.conf just in case + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}" + + # Add plymouth to HOOKS array after 'base udev' or 'base systemd' + if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then + sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf + elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then + sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf + else + echo "Couldn't add the Plymouth hook" + fi + + # Regenerate initramfs + sudo mkinitcpio -P +fi + +# Add kernel parameters for Plymouth +if [ -d "/boot/loader/entries" ]; then # systemd-boot + echo "Detected systemd-boot" + + for entry in /boot/loader/entries/*.conf; do + if [ -f "$entry" ]; then + # Skip fallback entries + if [[ "$(basename "$entry")" == *"fallback"* ]]; then + echo "Skipped: $(basename "$entry") (fallback entry)" + continue + fi + + # Skip if splash it already present for some reason + if ! grep -q "splash" "$entry"; then + sudo sed -i '/^options/ s/$/ splash quiet/' "$entry" + else + echo "Skipped: $(basename "$entry") (splash already present)" + fi + fi + done +elif [ -f "/etc/default/grub" ]; then # Grub + echo "Detected grub" + + # Backup GRUB config before modifying + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}" + + # Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT + if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then + # Get current GRUB_CMDLINE_LINUX_DEFAULT value + current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2) + + # Add splash and quiet if not present + new_cmdline="$current_cmdline" + if [[ ! "$current_cmdline" =~ splash ]]; then + new_cmdline="$new_cmdline splash" + fi + if [[ ! "$current_cmdline" =~ quiet ]]; then + new_cmdline="$new_cmdline quiet" + fi + + # Trim any leading/trailing spaces + new_cmdline=$(echo "$new_cmdline" | xargs) + + sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub + + # Regenerate grub config + sudo grub-mkconfig -o /boot/grub/grub.cfg + else + echo "GRUB already configured with splash kernel parameters" + fi +elif [ -d "/etc/cmdline.d" ]; then # UKI + echo "Detected a UKI setup" + # Relying on mkinitcpio to assemble a UKI + # https://wiki.archlinux.org/title/Unified_kernel_image + if ! grep -q splash /etc/cmdline.d/*.conf; then + # Need splash, create the omarchy file + echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf + fi + if ! grep -q quiet /etc/cmdline.d/*.conf; then + # Need quiet, create or append the omarchy file + echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf + fi +elif [ -f "/etc/kernel/cmdline" ]; then # UKI Alternate + # Alternate UKI kernel cmdline location + echo "Detected a UKI setup" + + # Backup kernel cmdline config before modifying + backup_timestamp=$(date +"%Y%m%d%H%M%S") + sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}" + + current_cmdline=$(cat /etc/kernel/cmdline) + + # Add splash and quiet if not present + new_cmdline="$current_cmdline" + if [[ ! "$current_cmdline" =~ splash ]]; then + new_cmdline="$new_cmdline splash" + fi + if [[ ! "$current_cmdline" =~ quiet ]]; then + new_cmdline="$new_cmdline quiet" + fi + + # Trim any leading/trailing spaces + new_cmdline=$(echo "$new_cmdline" | xargs) + + # Write new file + echo $new_cmdline | sudo tee /etc/kernel/cmdline +else + echo "" + echo " None of systemd-boot, GRUB, or UKI detected. Please manually add these kernel parameters:" + echo " - splash (to see the graphical splash screen)" + echo " - quiet (for silent boot)" + echo "" +fi + +if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then + sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/ + sudo plymouth-set-default-theme -R omarchy +fi + +# ============================================================================== +# SEAMLESS LOGIN +# ============================================================================== + +if [ ! -x /usr/local/bin/seamless-login ]; then + # Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop + cat <<'CCODE' >/tmp/seamless-login.c /* - * Seamless Login - Minimal SDDM-style Plymouth transition - * Replicates SDDM's VT management for seamless auto-login - */ +* Seamless Login - Minimal SDDM-style Plymouth transition +* Replicates SDDM's VT management for seamless auto-login +*/ #include #include #include @@ -76,12 +206,14 @@ int main(int argc, char *argv[]) { } CCODE -gcc -o /tmp/seamless-login /tmp/seamless-login.c -sudo mv /tmp/seamless-login /usr/local/bin/seamless-login -sudo chmod +x /usr/local/bin/seamless-login -rm /tmp/seamless-login.c + gcc -o /tmp/seamless-login /tmp/seamless-login.c + sudo mv /tmp/seamless-login /usr/local/bin/seamless-login + sudo chmod +x /usr/local/bin/seamless-login + rm /tmp/seamless-login.c +fi -cat </dev/null; then - yay -S --noconfirm --needed plymouth - - # Skip if plymouth already exists for some reason - # Backup original mkinitcpio.conf just in case - backup_timestamp=$(date +"%Y%m%d%H%M%S") - sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}" - - # Add plymouth to HOOKS array after 'base udev' or 'base systemd' - if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then - sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf - elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then - sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf - else - echo "Couldn't add the Plymouth hook" - fi - - # Regenerate initramfs - sudo mkinitcpio -P - - # Add kernel parameters for Plymouth (systemd-boot only) - if [ -d "/boot/loader/entries" ]; then - echo "Detected systemd-boot" - - for entry in /boot/loader/entries/*.conf; do - if [ -f "$entry" ]; then - # Skip fallback entries - if [[ "$(basename "$entry")" == *"fallback"* ]]; then - echo "Skipped: $(basename "$entry") (fallback entry)" - continue - fi - - # Skip if splash it already present for some reason - if ! grep -q "splash" "$entry"; then - sudo sed -i '/^options/ s/$/ splash quiet/' "$entry" - else - echo "Skipped: $(basename "$entry") (splash already present)" - fi - fi - done - elif [ -f "/etc/default/grub" ]; then - echo "Detected grub" - # Backup GRUB config before modifying - backup_timestamp=$(date +"%Y%m%d%H%M%S") - sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}" - - # Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT - if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then - # Get current GRUB_CMDLINE_LINUX_DEFAULT value - current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2) - - # Add splash and quiet if not present - new_cmdline="$current_cmdline" - if [[ ! "$current_cmdline" =~ splash ]]; then - new_cmdline="$new_cmdline splash" - fi - if [[ ! "$current_cmdline" =~ quiet ]]; then - new_cmdline="$new_cmdline quiet" - fi - - # Trim any leading/trailing spaces - new_cmdline=$(echo "$new_cmdline" | xargs) - - sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub - - # Regenerate grub config - sudo grub-mkconfig -o /boot/grub/grub.cfg - else - echo "GRUB already configured with splash kernel parameters" - fi - elif [ -d "/etc/cmdline.d" ]; then - echo "Detected a UKI setup" - # Relying on mkinitcpio to assemble a UKI - # https://wiki.archlinux.org/title/Unified_kernel_image - if ! grep -q splash /etc/cmdline.d/*.conf; then - # Need splash, create the omarchy file - echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf - fi - if ! grep -q quiet /etc/cmdline.d/*.conf; then - # Need quiet, create or append the omarchy file - echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf - fi - elif [ -f "/etc/kernel/cmdline" ]; then - # Alternate UKI kernel cmdline location - echo "Detected a UKI setup" - - # Backup kernel cmdline config before modifying - backup_timestamp=$(date +"%Y%m%d%H%M%S") - sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}" - - current_cmdline=$(cat /etc/kernel/cmdline) - - # Add splash and quiet if not present - new_cmdline="$current_cmdline" - if [[ ! "$current_cmdline" =~ splash ]]; then - new_cmdline="$new_cmdline splash" - fi - if [[ ! "$current_cmdline" =~ quiet ]]; then - new_cmdline="$new_cmdline quiet" - fi - - # Trim any leading/trailing spaces - new_cmdline=$(echo "$new_cmdline" | xargs) - - # Write new file - echo $new_cmdline | sudo tee /etc/kernel/cmdline - else - echo "" - echo "Neither systemd-boot nor GRUB detected. Please manually add these kernel parameters:" - echo " - splash (to see the graphical splash screen)" - echo " - quiet (for silent boot)" - echo "" - fi - - # Copy and set the Plymouth theme - sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/ - - sudo plymouth-set-default-theme -R omarchy -fi From 162952f102be83b8712c2934b6dce1c1d3d6ff14 Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Fri, 25 Jul 2025 19:20:24 -0400 Subject: [PATCH 54/68] Run combined login now --- migrations/1752091783.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1752091783.sh b/migrations/1752091783.sh index 9b1f70d..b66fd72 100644 --- a/migrations/1752091783.sh +++ b/migrations/1752091783.sh @@ -1,2 +1,2 @@ echo "Install Plymouth splash screen" -source "$HOME/.local/share/omarchy/install/plymouth.sh" +source "$HOME/.local/share/omarchy/install/login.sh" From cc79664efc531de2a044dbb0b2e18bce46e1977d Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Fri, 25 Jul 2025 19:20:36 -0400 Subject: [PATCH 55/68] Combined login will run refresh commands --- migrations/1752292967.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/migrations/1752292967.sh b/migrations/1752292967.sh index 54e8d4c..1e4ae6b 100644 --- a/migrations/1752292967.sh +++ b/migrations/1752292967.sh @@ -14,6 +14,5 @@ if ! command -v uwsm &>/dev/null; then sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf" fi - omarchy-refresh-plymouth -y source ~/.local/share/omarchy/install/login.sh fi From 6afbff2c2748bb45685b0e7cda973e0900017561 Mon Sep 17 00:00:00 2001 From: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com> Date: Sat, 26 Jul 2025 13:12:28 -0400 Subject: [PATCH 56/68] Add "=" as default walker prefix --- config/walker/config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/walker/config.toml b/config/walker/config.toml index 86f6c6d..05a823e 100644 --- a/config/walker/config.toml +++ b/config/walker/config.toml @@ -139,6 +139,7 @@ name = "Calculator" icon = "accessories-calculator" placeholder = "Calculator" min_chars = 3 # Min chars to calculate. 3 allows "3+3" +prefix = "=" [builtins.windows] weight = 5 From 0a8a502cf2ddc6fd9a09f40411d13baea2198299 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 15:37:28 -0400 Subject: [PATCH 57/68] Add migration to refresh walker to get the = leader key for calculator --- migrations/1753558374.sh | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 migrations/1753558374.sh diff --git a/migrations/1753558374.sh b/migrations/1753558374.sh new file mode 100644 index 0000000..b961d3e --- /dev/null +++ b/migrations/1753558374.sh @@ -0,0 +1,4 @@ +echo "Update Walker config to include = as the leader key for the calculator" +if ! grep -q 'prefix = "="' ~/.config/walker/config.toml; then + omarchy-refresh-walker +fi From cf688baa3442e2df24fe5823a45dc4deb2b8d8f7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 15:42:59 -0400 Subject: [PATCH 58/68] We don't have this any more --- install.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/install.sh b/install.sh index 9110413..13aba50 100755 --- a/install.sh +++ b/install.sh @@ -39,7 +39,6 @@ source $OMARCHY_INSTALL/config/fix-fkeys.sh source $OMARCHY_INSTALL/config/network.sh source $OMARCHY_INSTALL/config/power.sh source $OMARCHY_INSTALL/config/login.sh -source $OMARCHY_INSTALL/config/plymouth.sh source $OMARCHY_INSTALL/config/nvidia.sh # Development From 42963368c097fbe69e5774f9a08738ee61147501 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 15:43:29 -0400 Subject: [PATCH 59/68] Reference correct file --- install/config/fix-fkeys.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/config/fix-fkeys.sh b/install/config/fix-fkeys.sh index 54a76cf..1ae71c5 100644 --- a/install/config/fix-fkeys.sh +++ b/install/config/fix-fkeys.sh @@ -3,6 +3,6 @@ if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf - # Rely on install/plymouth.sh to do the rebuild + # Rely on install/login.sh to do the rebuild # sudo mkinitcpio -P fi From 68a221e4561afc3f352a1ea29cd1371b76cc36d3 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 15:52:00 -0400 Subject: [PATCH 60/68] Simplify and make it idempotent --- install/preflight/aur.sh | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/install/preflight/aur.sh b/install/preflight/aur.sh index 8dcbc3f..eb62f1d 100644 --- a/install/preflight/aur.sh +++ b/install/preflight/aur.sh @@ -1,9 +1,7 @@ #!/bin/bash -chaotic_ok=0 - # Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages -if [[ "$(uname -m)" == "x86_64" ]]; then +if [[ "$(uname -m)" == "x86_64" ]] && ! command -v yay &>/dev/null; then # Try installing Chaotic-AUR keyring and mirrorlist if sudo pacman-key --recv-key 3056513887B78AEB && sudo pacman-key --lsign-key 3056513887B78AEB && @@ -13,30 +11,25 @@ if [[ "$(uname -m)" == "x86_64" ]]; then # Add Chaotic-AUR repo to pacman config echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null - # Refresh pacman package databases - sudo pacman -Sy - - chaotic_ok=1 + # Install yay directly from Chaotic-AUR + sudo pacman -Sy --needed --noconfirm yay else echo "Failed to install Chaotic-AUR, so won't include it in pacman config!" fi fi -if [[ $chaotic_ok -eq 1 ]]; then - sudo pacman -S --needed --noconfirm yay -else - # Manually install yay from AUR if not already available - if ! command -v yay &>/dev/null; then - # Install build tools - sudo pacman -S --needed --noconfirm base-devel - cd /tmp - git clone https://aur.archlinux.org/yay-bin.git - cd yay-bin - makepkg -si --noconfirm - cd - - rm -rf yay-bin - cd ~ - fi +# Manually install yay from AUR if not already available +if ! command -v yay &>/dev/null; then + # Install build tools + sudo pacman -Sy --needed --noconfirm base-devel + cd /tmp + rm -rf yay-bin + git clone https://aur.archlinux.org/yay-bin.git + cd yay-bin + makepkg -si --noconfirm + cd - + rm -rf yay-bin + cd ~ fi # Add fun and color to the pacman installer From b4d75729d94840cef74f55bfab673ee084eaab4b Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 15:53:53 -0400 Subject: [PATCH 61/68] Don't add the keys twice --- install/preflight/aur.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/install/preflight/aur.sh b/install/preflight/aur.sh index eb62f1d..18659e3 100644 --- a/install/preflight/aur.sh +++ b/install/preflight/aur.sh @@ -3,7 +3,8 @@ # Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages if [[ "$(uname -m)" == "x86_64" ]] && ! command -v yay &>/dev/null; then # Try installing Chaotic-AUR keyring and mirrorlist - if sudo pacman-key --recv-key 3056513887B78AEB && + if ! pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1 && + sudo pacman-key --recv-key 3056513887B78AEB && sudo pacman-key --lsign-key 3056513887B78AEB && sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' && sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then @@ -33,4 +34,6 @@ if ! command -v yay &>/dev/null; then fi # Add fun and color to the pacman installer -sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf +if ! grep -q "ILoveCandy" /etc/pacman.conf; then + sudo sed -i '/^\[options\]/a Color\nILoveCandy' /etc/pacman.conf +fi From e3bf801654e9ac8534ab211e5089009574d3b9f7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 15:58:38 -0400 Subject: [PATCH 62/68] Don't add this twice on rerunning either --- install/preflight/aur.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/install/preflight/aur.sh b/install/preflight/aur.sh index 18659e3..525b17c 100644 --- a/install/preflight/aur.sh +++ b/install/preflight/aur.sh @@ -10,7 +10,9 @@ if [[ "$(uname -m)" == "x86_64" ]] && ! command -v yay &>/dev/null; then sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then # Add Chaotic-AUR repo to pacman config - echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + if ! grep -q "chaotic-aur" /etc/pacman.conf; then + echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null + fi # Install yay directly from Chaotic-AUR sudo pacman -Sy --needed --noconfirm yay From 73d8c70e06f4468229ed5e6a7a1fdcf578b4ca34 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 16:36:42 -0400 Subject: [PATCH 63/68] Ensure we detach from the session so swaybg doesn't die with it --- bin/omarchy-theme-bg-next | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/omarchy-theme-bg-next b/bin/omarchy-theme-bg-next index 79bf0c1..d9d0edd 100755 --- a/bin/omarchy-theme-bg-next +++ b/bin/omarchy-theme-bg-next @@ -11,7 +11,7 @@ TOTAL=${#BACKGROUNDS[@]} if [[ $TOTAL -eq 0 ]]; then notify-send "No background was found for theme" -t 2000 pkill -x swaybg - uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 & + setsid uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 & else # Get current background from symlink if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then @@ -44,5 +44,5 @@ else # Relaunch swaybg pkill -x swaybg - uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & + setid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & fi From 6de445a2a6363907f4bafb08037f0cabbbaf4ae7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 16:37:49 -0400 Subject: [PATCH 64/68] Spelling --- bin/omarchy-theme-bg-next | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/omarchy-theme-bg-next b/bin/omarchy-theme-bg-next index d9d0edd..21cddf9 100755 --- a/bin/omarchy-theme-bg-next +++ b/bin/omarchy-theme-bg-next @@ -44,5 +44,5 @@ else # Relaunch swaybg pkill -x swaybg - setid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & + setsid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 & fi From c814aa534de55ad9a5925a07c077ee1e59ebb6ee Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 16:47:25 -0400 Subject: [PATCH 65/68] Install if MISSING --- migrations/1753468218.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1753468218.sh b/migrations/1753468218.sh index b9f22e9..bf2fab8 100644 --- a/migrations/1753468218.sh +++ b/migrations/1753468218.sh @@ -1,4 +1,4 @@ echo "Add Terminal Text Effects for rizzing Omarchy" -if yay -Qe python-terminaltexteffects &>/dev/null; then +if ! yay -Qe python-terminaltexteffects &>/dev/null; then yay -S --noconfirm --needed python-terminaltexteffects fi From 07a16487c00e4a71122e7084c72fa76e0cdd44cc Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 16:48:45 -0400 Subject: [PATCH 66/68] Fix paths --- migrations/1752081088.sh | 2 +- migrations/1752292967.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/migrations/1752081088.sh b/migrations/1752081088.sh index af35ff1..d72201f 100644 --- a/migrations/1752081088.sh +++ b/migrations/1752081088.sh @@ -1,2 +1,2 @@ echo "Permanently fix F-keys on Apple-mode keyboards (like Lofree Flow84)" -source ~/.local/share/omarchy/install/fix-fkeys.sh +source ~/.local/share/omarchy/install/config/fix-fkeys.sh diff --git a/migrations/1752292967.sh b/migrations/1752292967.sh index 1e4ae6b..ec8643a 100644 --- a/migrations/1752292967.sh +++ b/migrations/1752292967.sh @@ -14,5 +14,5 @@ if ! command -v uwsm &>/dev/null; then sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf" fi - source ~/.local/share/omarchy/install/login.sh + source ~/.local/share/omarchy/install/config/login.sh fi From eeb784d087f76d0d04f709fa3c7a8f5c6f78e791 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 16:49:43 -0400 Subject: [PATCH 67/68] Fix path here too --- migrations/1752709610.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migrations/1752709610.sh b/migrations/1752709610.sh index e220d58..7d1136f 100644 --- a/migrations/1752709610.sh +++ b/migrations/1752709610.sh @@ -1,2 +1,2 @@ echo "Enable ufw firewall" -source ~/.local/share/omarchy/install/firewall.sh +source ~/.local/share/omarchy/install/development/firewall.sh From d503b0cc3733d3b076034a1a903e09c30fc67fda Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 26 Jul 2025 17:14:31 -0400 Subject: [PATCH 68/68] Fix path --- 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 2c554f7..dd92bf3 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -51,7 +51,7 @@ "format": "{:%A %H:%M}", "format-alt": "{:%d %B W%V %Y}", "tooltip": false, - "on-click-right": "omarchy-cmd-tzupdate" + "on-click-right": "~/.local/share/omarchy/bin/omarchy-cmd-tzupdate" }, "network": { "format-icons": ["󰤯","󰤟","󰤢","󰤥","󰤨"],