Merge pull request #3588 from basecamp/dev

Omarchy 3.2.1
This commit is contained in:
Ryan Hughes
2025-11-26 02:06:11 -05:00
committed by GitHub
30 changed files with 148 additions and 36 deletions

14
bin/omarchy-branch-set Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-channel-set [master|dev]"
exit 1
else
branch="$1"
fi
case "$branch" in
"master") git -C $OMARCHY_PATH switch master ;;
"dev") git -C $OMARCHY_PATH switch dev ;;
*) echo "Unknown branch: $branch"; exit 1; ;;
esac

15
bin/omarchy-channel-set Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-channel-set [stable|edge|dev]"
exit 1
else
channel="$1"
fi
case "$channel" in
"stable") omarchy-branch-set "master" && omarchy-refresh-pacman "stable" ;;
"edge") omarchy-branch-set "edge" && omarchy-refresh-pacman "stable" ;;
"dev") omarchy-branch-set "dev" && omarchy-refresh-pacman "edge" ;;
*) echo "Unknown channel: $channel"; exit 1; ;;
esac

6
bin/omarchy-cmd-reboot Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
omarchy-state clear re*-required
omarchy-hyprland-window-close-all
sleep 1 # Allow apps like Chrome to shutdown correctly
systemctl reboot --no-wall

View File

@@ -18,12 +18,14 @@ printf '\033]11;rgb:00/00/00\007' # Set background color to black
hyprctl keyword cursor:invisible true &>/dev/null hyprctl keyword cursor:invisible true &>/dev/null
while true; do while true; do
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | grep -Ev '^(dev_worm)$' | sort -u | shuf -n1)
tte -i ~/.config/omarchy/branding/screensaver.txt \ tte -i ~/.config/omarchy/branding/screensaver.txt \
--frame-rate 120 --canvas-width 0 --canvas-height 0 --anchor-canvas c --anchor-text c\ --frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\
--no-eol --no-restore-cursor random_effect & --no-eol --no-restore-cursor $effect &
while pgrep -x tte >/dev/null; do while pgrep -x tte >/dev/null; do
if read -n 1 -t 3 || ! screensaver_in_focus; then if read -n 1 -t 1 || ! screensaver_in_focus; then
exit_screensaver exit_screensaver
fi fi
done done

6
bin/omarchy-cmd-shutdown Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
omarchy-state clear re*-required
omarchy-hyprland-window-close-all
sleep 1 # Allow apps like Chrome to shutdown correctly
systemctl poweroff --no-wall

View File

@@ -26,9 +26,9 @@ addr=$(echo "$active" | jq -r ".address")
if [[ $pinned == "true" ]]; then if [[ $pinned == "true" ]]; then
hyprctl -q --batch \ hyprctl -q --batch \
dispatch pin address:$addr; \ "dispatch pin address:$addr;" \
dispatch togglefloating address:$addr; \ "dispatch togglefloating address:$addr;" \
dispatch tagwindow -pop address:$addr; "dispatch tagwindow -pop address:$addr;"
elif [[ -n $addr ]]; then elif [[ -n $addr ]]; then
hyprctl dispatch togglefloating address:$addr hyprctl dispatch togglefloating address:$addr
hyprctl dispatch resizeactive exact $width $height address:$addr hyprctl dispatch resizeactive exact $width $height address:$addr
@@ -40,7 +40,7 @@ elif [[ -n $addr ]]; then
fi fi
hyprctl -q --batch \ hyprctl -q --batch \
dispatch pin address:$addr; \ "dispatch pin address:$addr;" \
dispatch alterzorder top address:$addr; \ "dispatch alterzorder top address:$addr;" \
dispatch tagwindow +pop address:$addr; "dispatch tagwindow +pop address:$addr;"
fi fi

View File

@@ -3,5 +3,5 @@
set -e set -e
echo "Now pick dependencies matching your graphics card" echo "Now pick dependencies matching your graphics card"
sudo pacman -S --noconfirm steam sudo pacman -S steam
setsid gtk-launch steam >/dev/null 2>&1 & setsid gtk-launch steam >/dev/null 2>&1 &

View File

@@ -29,6 +29,7 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
*ghostty*) *ghostty*)
hyprctl dispatch exec -- \ hyprctl dispatch exec -- \
ghostty --class=org.omarchy.screensaver \ ghostty --class=org.omarchy.screensaver \
--config-file=~/.local/share/omarchy/default/ghostty/screensaver \
--font-size=18 \ --font-size=18 \
-e omarchy-cmd-screensaver -e omarchy-cmd-screensaver
;; ;;
@@ -36,6 +37,7 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
hyprctl dispatch exec -- \ hyprctl dispatch exec -- \
kitty --class=org.omarchy.screensaver \ kitty --class=org.omarchy.screensaver \
--override font_size=18 \ --override font_size=18 \
--override window_padding_width=0 \
-e omarchy-cmd-screensaver -e omarchy-cmd-screensaver
;; ;;
*) *)

View File

@@ -252,7 +252,7 @@ show_install_editor_menu() {
case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in
*VSCode*) present_terminal omarchy-install-vscode ;; *VSCode*) present_terminal omarchy-install-vscode ;;
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;; *Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; *Zed*) present_terminal "echo 'Installing Zed...'; sudo pacman -S zed && setsid gtk-launch dev.zed.Zed" ;;
*Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; *Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
*Helix*) install "Helix" "helix" ;; *Helix*) install "Helix" "helix" ;;
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;; *Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
@@ -438,8 +438,8 @@ show_system_menu() {
*Lock*) omarchy-lock-screen ;; *Lock*) omarchy-lock-screen ;;
*Screensaver*) omarchy-launch-screensaver force ;; *Screensaver*) omarchy-launch-screensaver force ;;
*Suspend*) systemctl suspend ;; *Suspend*) systemctl suspend ;;
*Restart*) omarchy-state clear re*-required && systemctl reboot --no-wall ;; *Restart*) omarchy-cmd-reboot ;;
*Shutdown*) omarchy-state clear re*-required && systemctl poweroff --no-wall ;; *Shutdown*) omarchy-cmd-shutdown ;;
*) back_to show_main_menu ;; *) back_to show_main_menu ;;
esac esac
} }

View File

@@ -1,4 +1,20 @@
#!/bin/bash #!/bin/bash
# Take backup of existing files
sudo cp -f /etc/pacman.conf /etc/pacman.conf.bak
sudo cp -f /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf
omarchy-refresh-pacman-mirrorlist
if [[ $1 == "edge" ]]; then
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/edge/$arch|' /etc/pacman.conf
echo "Setting channel to edge"
else
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist
sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/stable/$arch|' /etc/pacman.conf
echo "Setting channel to stable"
fi
echo
sudo pacman -Syu --noconfirm

View File

@@ -1,7 +0,0 @@
#!/bin/bash
if [[ $1 == "edge" ]]; then
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-edge /etc/pacman.d/mirrorlist
else
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist-stable /etc/pacman.d/mirrorlist
fi

View File

@@ -1,7 +0,0 @@
#!/bin/bash
if [[ $1 == "edge" ]]; then
sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/edge/$arch|' /etc/pacman.conf
else
sudo sed -i 's|https://pkgs.omarchy.org/.*$arch|https://pkgs.omarchy.org/stable/$arch|' /etc/pacman.conf
fi

View File

@@ -1,5 +1,9 @@
#!/bin/bash #!/bin/bash
# Ensure walker is set to autostart
mkdir -p ~/.config/autostart/
cp $OMARCHY_PATH/autostart/walker.desktop ~/.config/autostart/
omarchy-refresh-config walker/config.toml omarchy-refresh-config walker/config.toml
omarchy-refresh-config elephant/calc.toml omarchy-refresh-config elephant/calc.toml
omarchy-refresh-config elephant/desktopapplications.toml omarchy-refresh-config elephant/desktopapplications.toml

View File

@@ -16,6 +16,7 @@ if [[ $EUID -eq 0 ]]; then
setsid walker --gapplication-service & setsid walker --gapplication-service &
" "
else else
elephant service enable 2>/dev/null
systemctl --user restart elephant.service systemctl --user restart elephant.service
setsid walker --gapplication-service & setsid walker --gapplication-service &
fi fi

View File

@@ -6,7 +6,7 @@ DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -eq 0 ]; then if [ "$#" -eq 0 ]; then
# Find all TUIs # Find all TUIs
while IFS= read -r -d '' file; do while IFS= read -r -d '' file; do
if grep -q '^Exec=.*$TERMINAL.*-e' "$file"; then if grep -qE '^Exec=.*(\$TERMINAL|xdg-terminal-exec).*-e' "$file"; then
TUIS+=("$(basename "${file%.desktop}")") TUIS+=("$(basename "${file%.desktop}")")
fi fi
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0) done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)

23
bin/omarchy-version-channel Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
if grep -q "https://stable-mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then
mirror="stable"
elif grep -q "https://mirror.omarchy.org/" /etc/pacman.d/mirrorlist; then
mirror="edge"
else
mirror="unknown"
fi
if grep -q "https://pkgs.omarchy.org/stable/" /etc/pacman.conf; then
pkgs="stable"
elif grep -q "https://pkgs.omarchy.org/edge/" /etc/pacman.conf; then
pkgs="edge"
else
pkgs="unknown"
fi
if [[ $mirror == $pkgs ]]; then
echo $mirror
else
echo "$mirror / $pkgs"
fi

3
bin/omarchy-version-pkgs Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
date -d "$(grep upgraded /var/log/pacman.log | tail -1 | sed -E 's/\[([^]]+)\].*/\1/')" "+%A, %B %d %Y at %H:%M"

View File

@@ -1,5 +1,6 @@
--ozone-platform=wayland --ozone-platform=wayland
--ozone-platform-hint=wayland --ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation --enable-features=TouchpadOverscrollHistoryNavigation
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
# Chromium crash workaround for Wayland color management on Hyprland - see https://github.com/hyprwm/Hyprland/issues/11957 # Chromium crash workaround for Wayland color management on Hyprland - see https://github.com/hyprwm/Hyprland/issues/11957
--disable-features=WaylandWpColorManagerV1 --disable-features=WaylandWpColorManagerV1

View File

@@ -74,6 +74,12 @@
"keyColor": "blue", "keyColor": "blue",
"text": "branch=$(omarchy-version-branch); echo \"$branch\"" "text": "branch=$(omarchy-version-branch); echo \"$branch\""
}, },
{
"type": "command",
"key": "│ ├󰔫",
"keyColor": "blue",
"text": "channel=$(omarchy-version-channel); echo \"$channel\""
},
{ {
"type": "kernel", "type": "kernel",
"key": "│ ├", "key": "│ ├",
@@ -122,7 +128,7 @@
"break", "break",
{ {
"type": "custom", "type": "custom",
"format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" "format": "\u001b[90m┌────────────────Age / Uptime / Update───────────────┐"
}, },
{ {
"type": "command", "type": "command",
@@ -135,6 +141,12 @@
"key": "󱫐 Uptime", "key": "󱫐 Uptime",
"keyColor": "magenta" "keyColor": "magenta"
}, },
{
"type": "command",
"key": " Update",
"keyColor": "magenta",
"text": "updated=$(omarchy-version-pkgs); echo \"$updated\""
},
{ {
"type": "custom", "type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘" "format": "\u001b[90m└────────────────────────────────────────────────────┘"

View File

@@ -0,0 +1,3 @@
window-padding-x = 0
window-padding-y = 0
window-padding-color = "extend-always"

View File

@@ -3,7 +3,7 @@ windowrule = float, tag:floating-window
windowrule = center, tag:floating-window windowrule = center, tag:floating-window
windowrule = size 875 600, tag:floating-window windowrule = size 875 600, tag:floating-window
windowrule = tag +floating-window, class:(org.omarchy.bluetui|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.btop|org.omarchy.terminal|org.omarchy.bash|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float|imv|mpv) windowrule = tag +floating-window, class:(org.omarchy.bluetui|org.omarchy.impala|org.omarchy.wiremix|org.omarchy.btop|org.omarchy.terminal|org.omarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Omarchy|About|TUI.float|imv|mpv)
windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)
windowrule = float, class:org.gnome.Calculator windowrule = float, class:org.gnome.Calculator

View File

@@ -1,3 +1,7 @@
# Increase lockout limit to 10 and decrease timeout to 2 minutes # Increase lockout limit to 10 and decrease timeout to 2 minutes
sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth" sudo sed -i 's|^\(auth\s\+required\s\+pam_faillock.so\)\s\+preauth.*$|\1 preauth silent deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth" sudo sed -i 's|^\(auth\s\+\[default=die\]\s\+pam_faillock.so\)\s\+authfail.*$|\1 authfail deny=10 unlock_time=120|' "/etc/pam.d/system-auth"
# Ensure lockout limit is reset on restart
sudo sed -i '/pam_faillock\.so preauth/d' /etc/pam.d/sddm-autologin
sudo sed -i '/auth.*pam_permit\.so/a auth required pam_faillock.so authsucc' /etc/pam.d/sddm-autologin

View File

@@ -1,3 +1,3 @@
echo "Use new Omarchy mirror as default" echo "Use new Omarchy mirror as default"
omarchy-refresh-pacman-mirrorlist omarchy-refresh-pacman

3
migrations/1761897226.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Install Copy URL extension for Brave"
omarchy-refresh-config brave-flags.conf

View File

@@ -1,4 +1,3 @@
echo "Pull packages from stable Arch mirror" echo "Pull packages from stable Arch mirror"
omarchy-refresh-pacman-mirrorlist stable omarchy-refresh-pacman
sudo pacman -Syu

View File

@@ -1,4 +1,3 @@
echo "Switch to stable Omarchy Package Repository builds" echo "Switch to stable Omarchy Package Repository builds"
omarchy-refresh-pacman omarchy-refresh-pacman
sudo pacman -Syu --noconfirm

3
migrations/1763753641.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Include pacman mirror and OPR upstreams (edge vs stable) in About"
omarchy-refresh-fastfetch

6
migrations/1764067068.sh Normal file
View File

@@ -0,0 +1,6 @@
echo "Use Bluetooth off icon in the waybar when BlueTUI has turned off the adapter"
if ! grep -q '"format-off": "󰂲"' ~/.config/waybar/config.jsonc; then
sed -i '/"format-disabled": "󰂲",/a\ "format-off": "󰂲",' ~/.config/waybar/config.jsonc
omarchy-restart-waybar
fi

4
migrations/1764067963.sh Normal file
View File

@@ -0,0 +1,4 @@
echo "Ensure lockout limit is reset on reboot"
sudo sed -i '/pam_faillock\.so preauth/d' /etc/pam.d/sddm-autologin
sudo sed -i '/auth.*pam_permit\.so/a auth required pam_faillock.so authsucc' /etc/pam.d/sddm-autologin

View File

@@ -1 +1 @@
3.2.0 3.2.1-beta