Merge pull request #383 from basecamp/dev

Omarchy v1.7.0
This commit is contained in:
David Heinemeier Hansson
2025-07-28 14:13:59 +02:00
committed by GitHub
18 changed files with 229 additions and 170 deletions

View File

@ -6,7 +6,7 @@ PATH="$PATH:$HOME/.local/share/omarchy/bin"
show_ascii_art() { show_ascii_art() {
clear clear
tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand
echo " $OMARCHY_VERSION" echo " $OMARCHY_VERSION"
} }
main_menu() { main_menu() {

10
bin/omarchy-cmd-screensaver Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
trap "exit" SIGINT
while true; do
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
tte -i ~/.local/share/omarchy/logo.txt \
--frame-rate 240 --canvas-width 0 --canvas-height 0 --anchor-canvas c --anchor-text c \
"$effect"
done

5
bin/omarchy-launch-screensaver Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
pkill -f "alacritty --class Screensaver" ||
alacritty --class Screensaver --title Screensaver -o 'colors.primary.background="#000000"' \
-e ~/.local/share/omarchy/bin/omarchy-cmd-screensaver

View File

@ -10,4 +10,4 @@ else
fi fi
pkill walker pkill walker
uwsm app -- walker --gapplication-service & setsid uwsm app -- walker --gapplication-service &

View File

@ -6,7 +6,7 @@ CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")")
# Build themes list with pretty display names # Build themes list with pretty display names
mapfile -t themes < <( mapfile -t themes < <(
find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | while read -r path; do find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do
filename=$(basename "$path") filename=$(basename "$path")
display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g') display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')
@ -15,7 +15,7 @@ mapfile -t themes < <(
else else
echo "$display_name" echo "$display_name"
fi fi
done | sort done
) )
# Show Walker menu # Show Walker menu

19
boot.sh
View File

@ -1,14 +1,15 @@
#!/bin/bash #!/bin/bash
ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ansi_art=' ▄▄▄
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ █ ▄█████ ▄███████████▄ ▄███████ ▄███████ ███████ ▄█ █ █▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███▄▄▄▄██ ███ ███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ ███ ███ ███ ███ ███ ███ ███ █████ ███ █▀ ███ ███ ███ ███
███ ███ ███ ███ ███ ███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███ ███ ███ ███ ███ ███ ███▄▄▄██████▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
██████ █ ███ █ ███ █▀ ███ ███ ████████▀ ███ █▀ █████▀ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ' ▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████ ███ █▀ ▀█████▀
███ █▀ '
clear clear
echo -e "\n$ansi_art\n" echo -e "\n$ansi_art\n"

View File

@ -1,144 +1,149 @@
{ {
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": { "logo": {
"padding": { "padding": {
"top": 5, "top": 5,
"right": 6 "right": 6
} }
},
"modules": [
"break",
{
"type": "custom",
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐"
}, },
"modules": [ {
"break", "type": "host",
{ "key": " PC",
"type": "custom", "keyColor": "green"
"format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐" },
}, {
{ "type": "cpu",
"type": "host", "key": "│ ├",
"key": " PC", "showPeCoreCount": true,
"keyColor": "green" "keyColor": "green"
}, },
{ {
"type": "cpu", "type": "gpu",
"key": "│ ├", "key": "│ ├",
"showPeCoreCount": true, "detectionMethod": "pci",
"keyColor": "green" "keyColor": "green"
}, },
{ {
"type": "gpu", "type": "display",
"key": "│ ├", "key": "│ ├󱄄",
"detectionMethod": "pci", "keyColor": "green"
"keyColor": "green" },
}, {
{ "type": "disk",
"type": "display", "key": "│ ├󰋊",
"key": "│ ├󱄄", "keyColor": "green"
"keyColor": "green" },
}, {
{ "type": "memory",
"type": "disk", "key": "│ ├",
"key": "│ ├󰋊", "keyColor": "green"
"keyColor": "green" },
}, {
{ "type": "swap",
"type": "memory", "key": "└ └󰓡 ",
"key": "│ ├", "keyColor": "green"
"keyColor": "green" },
}, {
{ "type": "custom",
"type": "swap", "format": "\u001b[90m└────────────────────────────────────────────────────┘"
"key": "└ └󰓡 ", },
"keyColor": "green", "break",
}, {
{ "type": "custom",
"type": "custom", "format": "\u001b[90m┌──────────────────────Software──────────────────────┐"
"format": "\u001b[90m└────────────────────────────────────────────────────┘" },
}, {
"break", "type": "os",
{ "key": " OS",
"type": "custom", "keyColor": "yellow"
"format": "\u001b[90m┌──────────────────────Software──────────────────────┐" },
}, {
{ "type": "kernel",
"type": "os", "key": "│ ├",
"key": " OS", "keyColor": "yellow"
"keyColor": "yellow" },
}, {
{ "type": "packages",
"type": "kernel", "key": "│ ├󰏖",
"key": "│ ├", "keyColor": "yellow"
"keyColor": "yellow" },
}, {
{ "type": "shell",
"type": "packages", "key": "└ └",
"key": "│ ├󰏖", "keyColor": "yellow"
"keyColor": "yellow" },
}, "break",
{ {
"type": "shell", "type": "command",
"key": "└ └", "key": "│ ├Ø",
"keyColor": "yellow" "keyColor": "blue",
}, "text": "version=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null); echo \"Omarchy $version\""
"break", },
{ {
"type": "de", "type": "de",
"key": " DE", "key": " DE",
"keyColor": "blue" "keyColor": "blue"
}, },
{ {
"type": "wm", "type": "wm",
"key": "│ ├", "key": "│ ├",
"keyColor": "blue" "keyColor": "blue"
}, },
{ {
"type": "wmtheme", "type": "wmtheme",
"key": "│ ├󰉼", "key": "│ ├󰉼",
"keyColor": "blue" "keyColor": "blue"
}, },
{ {
"type": "icons", "type": "icons",
"key": "│ ├󰀻", "key": "│ ├󰀻",
"keyColor": "blue", "keyColor": "blue"
}, },
{ {
"type": "cursor", "type": "cursor",
"key": "│ ├", "key": "│ ├",
"keyColor": "blue", "keyColor": "blue"
}, },
{ {
"type": "terminalfont", "type": "terminalfont",
"key": "│ ├", "key": "│ ├",
"keyColor": "blue", "keyColor": "blue"
}, },
{ {
"type": "terminal", "type": "terminal",
"key": "└ └", "key": "└ └",
"keyColor": "blue" "keyColor": "blue"
}, },
{ {
"type": "custom", "type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘" "format": "\u001b[90m└────────────────────────────────────────────────────┘"
}, },
"break", "break",
{ {
"type": "custom", "type": "custom",
"format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐"
}, },
{ {
"type": "command", "type": "command",
"key": " OS Age ", "key": " OS Age ",
"keyColor": "magenta", "keyColor": "magenta",
"text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days" "text": "birth_install=$(stat -c %W /); current=$(date +%s); time_progression=$((current - birth_install)); days_difference=$((time_progression / 86400)); echo $days_difference days"
}, },
{ {
"type": "uptime", "type": "uptime",
"key": " Uptime ", "key": " Uptime ",
"keyColor": "magenta" "keyColor": "magenta"
}, },
{ {
"type": "custom", "type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘" "format": "\u001b[90m└────────────────────────────────────────────────────┘"
}, },
"break", "break"
] ]
} }

View File

@ -1,17 +1,20 @@
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
# List current monitors and resolutions possible: hyprctl monitors
# Change to 1 if on a 1x display (then change last "auto" to 1 in monitor=)
# Change to something like 1.75 for fractional scaling (can work well with 1.66667 monitor scaling)
# Note: You must relaunch Hyprland after changing any env like this (use Super+Esc, then Relaunch)
env = GDK_SCALE,2
# Use single default monitor (see all monitors with: hyprctl monitors)
# Format: monitor = [port], resolution, position, scale # Format: monitor = [port], resolution, position, scale
# You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch)
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
env = GDK_SCALE,2
monitor=,preferred,auto,auto monitor=,preferred,auto,auto
# Exmaple for fractional scaling that works well with GDK_SCALE,1.75 # Good compromise for 27" or 32" 4K monitors (but fractional!)
# env = GDK_SCALE,1.75
# monitor=,preferred,auto,1.666667 # monitor=,preferred,auto,1.666667
# Straight 1x setup for low-resolution displays like 1080p or 1440p
# env = GDK_SCALE,1
# monitor=,preferred,auto,1
# Example for Framework 13 w/ 6K XDR Apple display # Example for Framework 13 w/ 6K XDR Apple display
# monitor = DP-5, 6016x3384@60.00, auto, 2 # monitor = DP-5, 6016x3384@60, auto, 2
# monitor = eDP-1, 2880x1920@120.00, auto, 2 # monitor = eDP-1, 2880x1920@120, auto, 2

14
default/bashrc Normal file
View File

@ -0,0 +1,14 @@
# All the default Omarchy aliases and functions
# (don't mess with these directly, just overwrite them here!)
source ~/.local/share/omarchy/default/bash/rc
# Add your own exports, aliases, and functions here.
#
# Make an alias for invoking commands you use constantly
# alias p='python'
#
# Use VSCode instead of neovim as your default editor
# export EDITOR="code"
#
# Set a custom prompt with the directory revealed (alternatively use https://starship.rs)
# PS1="\W \[\e]0;\w\a\]$PS1"

View File

@ -43,6 +43,10 @@ bind = SUPER SHIFT, right, swapwindow, r
bind = SUPER SHIFT, up, swapwindow, u bind = SUPER SHIFT, up, swapwindow, u
bind = SUPER SHIFT, down, swapwindow, d bind = SUPER SHIFT, down, swapwindow, d
# Cycle through applications on active workspace
bind = ALT, Tab, cyclenext
bind = ALT, Tab, bringactivetotop
# Resize active window # Resize active window
bind = SUPER, minus, resizeactive, -100 0 bind = SUPER, minus, resizeactive, -100 0
bind = SUPER, equal, resizeactive, 100 0 bind = SUPER, equal, resizeactive, 100 0

View File

@ -32,5 +32,8 @@ bind = CTRL, PRINT, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenshot outp
bind = ALT, PRINT, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord bind = ALT, PRINT, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord
bind = CTRL ALT, PRINT, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord output bind = CTRL ALT, PRINT, exec, ~/.local/share/omarchy/bin/omarchy-cmd-screenrecord output
# Screensaver
bind = SUPER ALT, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-launch-screensaver
# Color picker # Color picker
bind = SUPER, PRINT, exec, hyprpicker -a bind = SUPER, PRINT, exec, hyprpicker -a

View File

@ -5,10 +5,11 @@ windowrule = suppressevent maximize, class:.*
windowrule = tile, class:^(Chromium)$ windowrule = tile, class:^(Chromium)$
# Float and center settings and previews # Float and center settings and previews
windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy|About)$
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy|About)$
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$ windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty)$
windowrule = size 645 450, class:Omarchy windowrule = size 590 400, class:Omarchy
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ windowrule = size 700 470 class:About
# Float and center file pickers # Float and center file pickers
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save) windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
@ -19,6 +20,9 @@ windowrule = float, class:steam
windowrule = center, class:steam, title:Steam windowrule = center, class:steam, title:Steam
windowrule = fullscreen, class:^(com.libretro.RetroArch)$ windowrule = fullscreen, class:^(com.libretro.RetroArch)$
# Fullscreen screensaver
windowrule = fullscreen, class:Screensaver
# Just dash of opacity # Just dash of opacity
windowrule = opacity 0.97 0.9, class:.* windowrule = opacity 0.97 0.9, class:.*
windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable)$ windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable)$

View File

@ -4,7 +4,7 @@
cp -R ~/.local/share/omarchy/config/* ~/.config/ cp -R ~/.local/share/omarchy/config/* ~/.config/
# Use default bashrc from Omarchy # Use default bashrc from Omarchy
echo "source ~/.local/share/omarchy/default/bash/rc" >~/.bashrc cp ~/.local/share/omarchy/default/bashrc ~/.bashrc
# Ensure application directory exists for update-desktop-database # Ensure application directory exists for update-desktop-database
mkdir -p ~/.local/share/applications mkdir -p ~/.local/share/applications

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then if ! command -v tzupdate &>/dev/null; then
yay -S --noconfirm --needed tzupdate yay -S --noconfirm --needed tzupdate
sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null <<EOF sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null <<EOF
%wheel ALL=(root) NOPASSWD: /usr/bin/tzupdate, /usr/bin/timedatectl %wheel ALL=(root) NOPASSWD: /usr/bin/tzupdate, /usr/bin/timedatectl

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,5 +1,5 @@
echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)" echo "Allow updating of timezone by right-clicking on the clock (or running omarchy-cmd-tzupdate)"
if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then if ! command -v tzupdate &>/dev/null; then
bash ~/.local/share/omarchy/install/config/timezones.sh bash ~/.local/share/omarchy/install/config/timezones.sh
omarchy-refresh-waybar omarchy-refresh-waybar
fi fi

5
migrations/1753683888.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Adding Omarchy version info to fastfetch"
if ! grep -q "omarchy" ~/.config/fastfetch/config.jsonc; then
cp ~/.local/share/omarchy/config/fastfetch/config.jsonc ~/.config/fastfetch/
fi

5
migrations/1753689791.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Add the new ristretto theme as an option"
if [[ ! -L ~/.config/omarchy/themes/ristretto ]]; then
ln -nfs ~/.local/share/omarchy/themes/ristretto ~/.config/omarchy/themes/
fi