diff --git a/bin/omarchy b/bin/omarchy index 7f54d71..7e7931d 100755 --- a/bin/omarchy +++ b/bin/omarchy @@ -6,7 +6,7 @@ PATH="$PATH:$HOME/.local/share/omarchy/bin" show_ascii_art() { clear tte -i ~/.local/share/omarchy/logo.txt --frame-rate 640 --no-color expand - echo " $OMARCHY_VERSION" + echo " $OMARCHY_VERSION" } main_menu() { diff --git a/bin/omarchy-cmd-screensaver b/bin/omarchy-cmd-screensaver new file mode 100755 index 0000000..03fd1a6 --- /dev/null +++ b/bin/omarchy-cmd-screensaver @@ -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 diff --git a/bin/omarchy-launch-screensaver b/bin/omarchy-launch-screensaver new file mode 100755 index 0000000..f81c44e --- /dev/null +++ b/bin/omarchy-launch-screensaver @@ -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 diff --git a/bin/omarchy-refresh-walker b/bin/omarchy-refresh-walker index c45f54e..cd52a83 100755 --- a/bin/omarchy-refresh-walker +++ b/bin/omarchy-refresh-walker @@ -10,4 +10,4 @@ else fi pkill walker -uwsm app -- walker --gapplication-service & +setsid uwsm app -- walker --gapplication-service & diff --git a/bin/omarchy-theme-menu b/bin/omarchy-theme-menu index 96ca993..895b2c2 100755 --- a/bin/omarchy-theme-menu +++ b/bin/omarchy-theme-menu @@ -6,7 +6,7 @@ CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")") # Build themes list with pretty display names mapfile -t themes < <( - find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | 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") display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g') @@ -15,7 +15,7 @@ mapfile -t themes < <( else echo "$display_name" fi - done | sort + done ) # Show Walker menu diff --git a/boot.sh b/boot.sh index 65c1cac..9a79afc 100755 --- a/boot.sh +++ b/boot.sh @@ -1,14 +1,15 @@ #!/bin/bash -ansi_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ -███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ -███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ -███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███ -███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███ -███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ - ▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀ - ███ ███ ' +ansi_art=' ▄▄▄ + ▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███ +███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███ +███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███ +███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███ +███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ + ▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀ + ███ █▀ ' clear echo -e "\n$ansi_art\n" diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc index 7bdcd72..66a3689 100644 --- a/config/fastfetch/config.jsonc +++ b/config/fastfetch/config.jsonc @@ -1,144 +1,149 @@ { - "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", - "logo": { - "padding": { - "top": 5, - "right": 6 - } + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "padding": { + "top": 5, + "right": 6 + } + }, + "modules": [ + "break", + { + "type": "custom", + "format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐" }, - "modules": [ - "break", - { - "type": "custom", - "format": "\u001b[90m┌──────────────────────Hardware──────────────────────┐" - }, - { - "type": "host", - "key": " PC", - "keyColor": "green" - }, - { - "type": "cpu", - "key": "│ ├", - "showPeCoreCount": true, - "keyColor": "green" - }, - { - "type": "gpu", - "key": "│ ├", - "detectionMethod": "pci", - "keyColor": "green" - }, - { - "type": "display", - "key": "│ ├󱄄", - "keyColor": "green" - }, - { - "type": "disk", - "key": "│ ├󰋊", - "keyColor": "green" - }, - { - "type": "memory", - "key": "│ ├", - "keyColor": "green" - }, - { - "type": "swap", - "key": "└ └󰓡 ", - "keyColor": "green", - }, - { - "type": "custom", - "format": "\u001b[90m└────────────────────────────────────────────────────┘" - }, - "break", - { - "type": "custom", - "format": "\u001b[90m┌──────────────────────Software──────────────────────┐" - }, - { - "type": "os", - "key": " OS", - "keyColor": "yellow" - }, - { - "type": "kernel", - "key": "│ ├", - "keyColor": "yellow" - }, - { - "type": "packages", - "key": "│ ├󰏖", - "keyColor": "yellow" - }, - { - "type": "shell", - "key": "└ └", - "keyColor": "yellow" - }, - "break", - { - "type": "de", - "key": " DE", - "keyColor": "blue" - }, - { - "type": "wm", - "key": "│ ├", - "keyColor": "blue" - }, - { - "type": "wmtheme", - "key": "│ ├󰉼", - "keyColor": "blue" - }, - { - "type": "icons", - "key": "│ ├󰀻", - "keyColor": "blue", - }, - { - "type": "cursor", - "key": "│ ├", - "keyColor": "blue", - }, - { - "type": "terminalfont", - "key": "│ ├", - "keyColor": "blue", - }, - { - "type": "terminal", - "key": "└ └", - "keyColor": "blue" - }, - { - "type": "custom", - "format": "\u001b[90m└────────────────────────────────────────────────────┘" - }, - "break", - { - "type": "custom", - "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" - }, - { - "type": "command", - "key": " OS Age ", - "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" - }, - { - "type": "uptime", - "key": " Uptime ", - "keyColor": "magenta" - }, - { - "type": "custom", - "format": "\u001b[90m└────────────────────────────────────────────────────┘" - }, - "break", - ] + { + "type": "host", + "key": " PC", + "keyColor": "green" + }, + { + "type": "cpu", + "key": "│ ├", + "showPeCoreCount": true, + "keyColor": "green" + }, + { + "type": "gpu", + "key": "│ ├", + "detectionMethod": "pci", + "keyColor": "green" + }, + { + "type": "display", + "key": "│ ├󱄄", + "keyColor": "green" + }, + { + "type": "disk", + "key": "│ ├󰋊", + "keyColor": "green" + }, + { + "type": "memory", + "key": "│ ├", + "keyColor": "green" + }, + { + "type": "swap", + "key": "└ └󰓡 ", + "keyColor": "green" + }, + { + "type": "custom", + "format": "\u001b[90m└────────────────────────────────────────────────────┘" + }, + "break", + { + "type": "custom", + "format": "\u001b[90m┌──────────────────────Software──────────────────────┐" + }, + { + "type": "os", + "key": " OS", + "keyColor": "yellow" + }, + { + "type": "kernel", + "key": "│ ├", + "keyColor": "yellow" + }, + { + "type": "packages", + "key": "│ ├󰏖", + "keyColor": "yellow" + }, + { + "type": "shell", + "key": "└ └", + "keyColor": "yellow" + }, + "break", + { + "type": "command", + "key": "│ ├Ø", + "keyColor": "blue", + "text": "version=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null); echo \"Omarchy $version\"" + }, + { + "type": "de", + "key": " DE", + "keyColor": "blue" + }, + { + "type": "wm", + "key": "│ ├", + "keyColor": "blue" + }, + { + "type": "wmtheme", + "key": "│ ├󰉼", + "keyColor": "blue" + }, + { + "type": "icons", + "key": "│ ├󰀻", + "keyColor": "blue" + }, + { + "type": "cursor", + "key": "│ ├", + "keyColor": "blue" + }, + { + "type": "terminalfont", + "key": "│ ├", + "keyColor": "blue" + }, + { + "type": "terminal", + "key": "└ └", + "keyColor": "blue" + }, + { + "type": "custom", + "format": "\u001b[90m└────────────────────────────────────────────────────┘" + }, + "break", + { + "type": "custom", + "format": "\u001b[90m┌────────────────────Uptime / Age────────────────────┐" + }, + { + "type": "command", + "key": " OS Age ", + "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" + }, + { + "type": "uptime", + "key": " Uptime ", + "keyColor": "magenta" + }, + { + "type": "custom", + "format": "\u001b[90m└────────────────────────────────────────────────────┘" + }, + "break" + ] } - diff --git a/config/hypr/monitors.conf b/config/hypr/monitors.conf index 84db2ff..6fc1387 100644 --- a/config/hypr/monitors.conf +++ b/config/hypr/monitors.conf @@ -1,17 +1,20 @@ # See https://wiki.hyprland.org/Configuring/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) +# List current monitors and resolutions possible: hyprctl monitors # 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 -# 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 +# 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 -# monitor = DP-5, 6016x3384@60.00, auto, 2 -# monitor = eDP-1, 2880x1920@120.00, auto, 2 +# monitor = DP-5, 6016x3384@60, auto, 2 +# monitor = eDP-1, 2880x1920@120, auto, 2 diff --git a/default/bashrc b/default/bashrc new file mode 100644 index 0000000..03fb323 --- /dev/null +++ b/default/bashrc @@ -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" diff --git a/default/hypr/bindings/tiling.conf b/default/hypr/bindings/tiling.conf index 1176e19..2fb1e90 100644 --- a/default/hypr/bindings/tiling.conf +++ b/default/hypr/bindings/tiling.conf @@ -43,6 +43,10 @@ bind = SUPER SHIFT, right, swapwindow, r bind = SUPER SHIFT, up, swapwindow, u bind = SUPER SHIFT, down, swapwindow, d +# Cycle through applications on active workspace +bind = ALT, Tab, cyclenext +bind = ALT, Tab, bringactivetotop + # Resize active window bind = SUPER, minus, resizeactive, -100 0 bind = SUPER, equal, resizeactive, 100 0 diff --git a/default/hypr/bindings/utilities.conf b/default/hypr/bindings/utilities.conf index cffd84d..fe449cc 100644 --- a/default/hypr/bindings/utilities.conf +++ b/default/hypr/bindings/utilities.conf @@ -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 = 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 bind = SUPER, PRINT, exec, hyprpicker -a diff --git a/default/hypr/windows.conf b/default/hypr/windows.conf index 8d7143a..a6a8be8 100644 --- a/default/hypr/windows.conf +++ b/default/hypr/windows.conf @@ -5,10 +5,11 @@ windowrule = suppressevent maximize, class:.* windowrule = tile, class:^(Chromium)$ # 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 645 450, class:Omarchy -windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$ +windowrule = size 590 400, class:Omarchy +windowrule = size 700 470 class:About # Float and center file pickers 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 = fullscreen, class:^(com.libretro.RetroArch)$ +# Fullscreen screensaver +windowrule = fullscreen, class:Screensaver + # Just dash of opacity windowrule = opacity 0.97 0.9, class:.* windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable)$ diff --git a/install/config/config.sh b/install/config/config.sh index 3b463ce..4f08303 100644 --- a/install/config/config.sh +++ b/install/config/config.sh @@ -4,7 +4,7 @@ cp -R ~/.local/share/omarchy/config/* ~/.config/ # 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 mkdir -p ~/.local/share/applications diff --git a/install/config/timezones.sh b/install/config/timezones.sh index df796e2..d06c3d6 100644 --- a/install/config/timezones.sh +++ b/install/config/timezones.sh @@ -1,6 +1,6 @@ #!/bin/bash -if [[ ! -f /etc/sudoers.d/omarchy-tzupdate ]]; then +if ! command -v tzupdate &>/dev/null; then yay -S --noconfirm --needed tzupdate sudo tee /etc/sudoers.d/omarchy-tzupdate >/dev/null </dev/null; then bash ~/.local/share/omarchy/install/config/timezones.sh omarchy-refresh-waybar fi diff --git a/migrations/1753683888.sh b/migrations/1753683888.sh new file mode 100644 index 0000000..ca08d7b --- /dev/null +++ b/migrations/1753683888.sh @@ -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 + diff --git a/migrations/1753689791.sh b/migrations/1753689791.sh new file mode 100644 index 0000000..d7c3145 --- /dev/null +++ b/migrations/1753689791.sh @@ -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