55 Commits

Author SHA1 Message Date
f4b684f588 Merge pull request #434 from basecamp/dev
Omarchy v1.9.0
2025-08-02 22:36:29 +02:00
631b62927a Better than doing string comparison
Any tag difference means new release
2025-08-02 22:14:16 +02:00
e923be3f0b Split omarchy-migrate into its own command
So it can be updated independently and apply quicker
2025-08-02 22:07:42 +02:00
d0c93e3b8a Also update hyprlock for stopping before updating 2025-08-02 22:00:57 +02:00
54d22e9720 Stop screensaver when locking 2025-08-02 21:56:09 +02:00
f6a459b26b Fix power menu for Screen save 2025-08-02 21:52:36 +02:00
f729004306 Show indicator if update is available (#456)
* Show indicator if update is available

* Language
2025-08-02 21:48:06 +02:00
63840c6e9a Add screensaver as an option in the power menu 2025-08-02 14:44:01 +02:00
34f24cb38a Offer to reboot after Linux kernel has been updated
Closes #377
2025-08-02 14:26:08 +02:00
6ecc09abdb Start screensaver automatically (#453)
* No need to kill any more since any key will quit

* Command to refresh hypridle

* Start screensaver automatically after a minute

* Add migration
2025-08-02 14:14:03 +02:00
4db468a450 Must use the restarter to prevent stacking! 2025-08-02 14:13:54 +02:00
2823792ba2 Show diff when making a backup and clarify the implementation 2025-08-02 13:54:44 +02:00
b0b2bf30d8 Allow any key to stop the screensaver 2025-08-02 13:41:34 +02:00
343a948ffc Simplify error checking 2025-08-02 13:37:00 +02:00
ceee999853 Prevent Waybar stacking on resume (#448)
* Create omarchy-cmd-restart-waybar

* Replace -SIGUSR2 waybar instances

* Add migration

* Add or statment in case waybar is dead

* Just use omarchy-restart-waybar

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-02 13:21:47 +02:00
d56a2bce2b Opacity for indicators of empty waybar workspaces (#444)
* Opacity for indicators of empty waybar workspaces

Adds opacity to the workspace indicators on waybar, if the workspace is empty. Makes the indicator appear dimmer to make it easier to find empty workspaces. Purely cosmetic UI tweak.

* Bump up opacity to be easier to read on light themes

* Add migration

* Apply grep to something!

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-02 13:16:51 +02:00
0a16d502f2 Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing (#446)
* Limit bullets to 21 to prevent overflow

* Fix plymouth rendering off center in multi-monitor setups

Co-authored-by: Raphael Kimmig <raphael.kimmig@ampad.de>

* Add migration

---------

Co-authored-by: Raphael Kimmig <raphael.kimmig@ampad.de>
2025-08-02 13:08:56 +02:00
97dc9e8d50 Update Ristretto neovim.lua for compatibility with plugins expecting MiniIcons Highlights (#449)
* Update neovim.lua

* Update neovim.lua
2025-08-02 13:07:26 +02:00
8aa8d99d8d Prevent screensaver shifting up (#450)
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-02 13:06:09 +02:00
0efd63f021 Adds BAT_THEME ENV var (#438) 2025-08-01 23:19:14 +02:00
06d61be018 Try to protect the screensaver from missing tte or pip 2025-08-01 16:05:04 +02:00
7bca5c1903 Make Yaru-blue the default 2025-08-01 14:26:28 +02:00
3d22840543 Allow themes to use a custom icon theme via the icons.theme file
They get to pick from the Yaru color set
2025-08-01 14:23:29 +02:00
95de571809 Update migration to ensure walker is refreshed after finder prefix was added. (#425)
* Update migration that looks for prefix with '.' as it matches the other prefixes in the file. Also mod walker prefix to use double quotes for consistency to match the others.

* Rename fixed migration to ensure it runs again for all users
2025-08-01 13:32:21 +02:00
8673fa41ba No need for these control characters any more now that we are using Walker 2025-07-31 21:25:50 +02:00
07d88a4b9a Include timezones setup by default! 2025-07-30 23:48:51 +02:00
88e62994d1 Merge branch 'master' into dev 2025-07-30 23:44:41 +02:00
1c2b5ea8e0 Omarchy 1.8.0 (#415)
* Update location of sourced install script

* Add OMARCHY_PATH for easy access

* Formatting

* Enable using finder in walker (#396)

* Enable using finder in walker

* capitalize name property

* Hot reload theme for quick switching

* Use fonts from AUR instead of downloading them directly like an animal

* Include the common JetBrains substitution

* Add a very basic font selector for terminal

* Give the new font selector a bit of room to breathe

* Swap Spotify GUI to TUI

* Correct package name

* Add theme update script (#391)

* Move updating themes from Updates to theme menu

Yeah, it could go in either spot, but since we have one entire category
dedicated to themes, lets keep it there.

* Revert "Correct package name"

This reverts commit 4c46c2208a.

* Revert "Swap Spotify GUI to TUI"

This reverts commit b09d2d68cd.

* Added backup timestamps to various omarchy-refresh-* files to prevent clobbering (#402)

* Added backup timestamps to omarchy-refresh-[hyprlock|swayosd|walker|waybar] scripts to prevent data loss if ran multiple times

* Added new script (omarchy-refresh-config) for refreshing various config files with automated backup creation

* update plymouth logo (#406)

* Track migrations via state files to avoid running migrations that have already been performed. (#411)

* Just use set -e instead of manually checking for return values

* Fix migration

* Unused

* Migrate fonts to packages

* No longer needed

* Use fd for better performance on walker finder

* Add walker config refresh to enable the finder

* Dropbox is now an optional setup

---------

Co-authored-by: Shigeto Kumagai <shk@all.daynight.jp>
Co-authored-by: Mohamedsayhii <63726183+Mohamedsayhii@users.noreply.github.com>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: Andy Davis <developer.andy@gmail.com>
Co-authored-by: Taha <paprikataha@gmail.com>
2025-07-30 23:44:27 +02:00
f0b1dd286b Dropbox is now an optional setup 2025-07-30 23:32:17 +02:00
7f66623317 Add walker config refresh to enable the finder 2025-07-30 23:27:21 +02:00
41c40e0e1d Use fd for better performance on walker finder 2025-07-30 23:26:01 +02:00
c1a7f5a4e4 No longer needed 2025-07-30 22:54:50 +02:00
a0aa6862f5 Migrate fonts to packages 2025-07-30 22:54:45 +02:00
231438b2ea Unused 2025-07-30 22:54:33 +02:00
a98adc499a Fix migration 2025-07-30 22:47:34 +02:00
74552b9f6e Just use set -e instead of manually checking for return values 2025-07-30 18:43:10 +02:00
49c154cb1f Track migrations via state files to avoid running migrations that have already been performed. (#411) 2025-07-30 18:40:59 +02:00
51f3d15ead update plymouth logo (#406) 2025-07-30 16:13:40 +02:00
ff5630c64f Added backup timestamps to various omarchy-refresh-* files to prevent clobbering (#402)
* Added backup timestamps to omarchy-refresh-[hyprlock|swayosd|walker|waybar] scripts to prevent data loss if ran multiple times

* Added new script (omarchy-refresh-config) for refreshing various config files with automated backup creation
2025-07-30 16:12:37 +02:00
d4f6859022 Revert "Swap Spotify GUI to TUI"
This reverts commit b09d2d68cd.
2025-07-29 19:17:41 +02:00
8c2f51c08c Revert "Correct package name"
This reverts commit 4c46c2208a.
2025-07-29 19:17:39 +02:00
91f5c4646c Move updating themes from Updates to theme menu
Yeah, it could go in either spot, but since we have one entire category
dedicated to themes, lets keep it there.
2025-07-29 16:44:55 +02:00
25f4513feb Add theme update script (#391) 2025-07-29 16:42:18 +02:00
4c46c2208a Correct package name 2025-07-29 16:33:47 +02:00
b09d2d68cd Swap Spotify GUI to TUI 2025-07-29 16:31:40 +02:00
5c98de75d1 Give the new font selector a bit of room to breathe 2025-07-29 15:27:34 +02:00
66db3867a6 Add a very basic font selector for terminal 2025-07-29 15:27:25 +02:00
4f56efe0e9 Include the common JetBrains substitution 2025-07-29 15:18:30 +02:00
5405d383dc Use fonts from AUR instead of downloading them directly like an animal 2025-07-29 15:15:39 +02:00
8ab18c1d38 Hot reload theme for quick switching 2025-07-29 14:42:48 +02:00
c95d14e5e2 Enable using finder in walker (#396)
* Enable using finder in walker

* capitalize name property
2025-07-29 14:28:14 +02:00
bdf5540cf3 Formatting 2025-07-29 14:21:14 +02:00
033b638992 Merge pull request #393 from sailoz/fix-splash-migration
Update location of sourced install script
2025-07-29 12:53:21 +02:00
eb74d4cb6f Add OMARCHY_PATH for easy access 2025-07-29 08:42:27 +02:00
1b576eb7f8 Update location of sourced install script 2025-07-29 13:14:37 +09:00
54 changed files with 310 additions and 183 deletions

View File

@ -12,10 +12,15 @@ show_ascii_art() {
main_menu() {
show_ascii_art
local options=("Theme" "Setup" "Update" "Manual" "Exit")
local options=("Theme" "Font" "Setup" "Update" "Manual" "Exit")
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "") || exit 0
case "$choice" in
Theme) theme_menu ;;
Font)
omarchy-font-menu
ack_command
main_menu
;;
Update) update_menu ;;
Setup) setup_menu ;;
Manual) open_manual ;;
@ -53,10 +58,11 @@ update_menu() {
theme_menu() {
show_ascii_art
local menu=("Pick" "Install" "Remove" "Back")
local menu=("Pick" "Install" "Update" "Remove" "Back")
local commands=(
"omarchy-theme-menu"
"install_theme_prompt"
"omarchy-theme-update"
"remove_theme_prompt"
"main_menu"
)

View File

@ -1,10 +1,20 @@
#!/bin/bash
trap "exit" SIGINT
if command -v tte &>/dev/null; then
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"
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \
"$effect" &
while pgrep tte >/dev/null; do
if read -n 1 -t 0.01; then
pkill tte 2>/dev/null
exit 0
fi
done
done
else
gum spin --title "Can't find tte. Try: pip install terminaltexteffects" -- sleep 2
fi

12
bin/omarchy-font-menu Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
font=$(
fc-list :spacing=100 -f "%{family[0]}\n" |
grep -v -i -E 'emoji|signwriting' |
sort -u |
gum choose --header "Choose terminal font"
)
if [[ -n "$font" ]]; then
sed -i "s/family = \".*\"/family = \"$font\"/g" ~/.config/alacritty/alacritty.toml
fi

View File

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

View File

@ -2,15 +2,17 @@
show_power_menu() {
# The first characters are invisible sort keys.
local menu_options="\u200B Lock
\u200C󰤄 Suspend
\u200D Relaunch
\u2060󰜉 Restart
\u2063󰐥 Shutdown"
local menu_options=" Lock
󱄄 Save
󰤄 Suspend
 Relaunch
󰜉 Restart
󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150)
case "$selection" in
*Lock*) hyprlock ;;
*Save*) ~/.local/share/omarchy/bin/omarchy-launch-screensaver ;;
*Suspend*) systemctl suspend ;;
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;

26
bin/omarchy-migrate Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
# Exit immediately if a command exits with a non-zero status
set -e
# Create the migrations state directory, we will store an empty file for each migration that has already been performed.
STATE_DIR="$HOME/.local/state/omarchy/migrations"
mkdir -p "$STATE_DIR"
# Run any pending migrations
cd ~/.local/share/omarchy
for file in migrations/*.sh; do
filename=$(basename "$file")
migrate_at="${filename%.sh}"
# Migration already applied, to re-run it simply delete the state file and try again
[ -e "${STATE_DIR}/$filename" ] && continue
echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m"
source $file
touch "${STATE_DIR}/$filename"
done
# Back to where we came from
cd - >/dev/null

35
bin/omarchy-refresh-config Executable file
View File

@ -0,0 +1,35 @@
#!/bin/bash
# This script deploys ~/.local/share/omarchy/config/X/Y/Z -> ~/.config/X/Y/Z
config_file=$1
if [[ -z "$config_file" ]]; then
cat <<USAGE
Usage: $0 [config_file]
Must provide a file path from the .config directory to be refreshed.
To copy ~/.local/share/omarchy/config/hypr/hyprlock.conf to ~/.config/hypr/hyprlock.conf
$0 hypr/hyprlock.conf
USAGE
exit 1
fi
# Backup the destination file (with timestamp) to avoid clobbering (Ex: hyprlock.conf.bak.1753817951)
user_config_file="${HOME}/.config/$config_file"
default_config_file="${HOME}/.local/share/omarchy/config/$config_file"
backup_config_file="$user_config_file.bak.$(date +%s)"
# Create preliminary backup
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null
# Replace config with new default
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
# Compare and delete/inform accordingly
if cmp -s "$user_config_file" "$backup_config_file"; then
rm "$backup_config_file"
else
echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m"
diff "$user_config_file" "$backup_config_file"
fi

6
bin/omarchy-refresh-hypridle Executable file
View File

@ -0,0 +1,6 @@
#!/bin/bash
omarchy-refresh-config hypr/hypridle.conf
pkill -x hypridle
uwsm app -- hypridle >/dev/null 2>&1 &

View File

@ -1,11 +1,4 @@
#!/bin/bash
# Overwrite local Hyprlock settings with the latest in Omarchy, but create a backup if it differs
cp -f ~/.config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf.bak 2>/dev/null
cp -f ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/ 2>/dev/null
if cmp -s ~/.config/hypr/hyprlock.conf.bak ~/.config/hypr/hyprlock.conf; then
rm ~/.config/hypr/hyprlock.conf.bak
else
echo -e "\e[31mExisting .config/hypr/hyprlock.conf replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
# Overwrite local Hyprlock settings with the latest in Omarchy
omarchy-refresh-config hypr/hyprlock.conf

View File

@ -1,13 +1,7 @@
#!/bin/bash
cp -f ~/.config/swayosd/config.toml ~/.config/swayosd/config.toml.bak 2>/dev/null
cp -f ~/.local/share/omarchy/config/swayosd/config.toml ~/.config/swayosd/ 3>/dev/null
if cmp -s ~/.config/swayosd/config.toml.bak ~/.config/swayosd/config.toml; then
rm ~/.config/swayosd//config.toml.bak
else
echo -e "\e[31mExisting .config/swayosd/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
omarchy-refresh-config swayosd/config.toml
omarchy-refresh-config swayosd/style.css
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &

View File

@ -1,13 +1,6 @@
#!/bin/bash
cp -f ~/.config/walker/config.toml ~/.config/walker/config.toml.bak 2>/dev/null
cp -f ~/.local/share/omarchy/config/walker/config.toml ~/.config/walker/ 2>/dev/null
if cmp -s ~/.config/walker/config.toml.bak ~/.config/walker/config.toml; then
rm ~/.config/walker/config.toml.bak
else
echo -e "\e[31mExisting .config/walker/config.toml replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
omarchy-refresh-config walker/config.toml
pkill walker
setsid uwsm app -- walker --gapplication-service &

View File

@ -1,25 +1,7 @@
#!/bin/bash
# Backup existing settings
cp -f ~/.config/waybar/config.jsonc ~/.config/waybar/config.jsonc.bak 2>/dev/null
cp -f ~/.config/waybar/style.css ~/.config/waybar/style.css.bak 2>/dev/null
# Overwrite local waybar settings with the latest in Omarchy
cp -f ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
# Remove identical backup files
if cmp -s ~/.config/waybar/config.jsonc.bak ~/.config/waybar/config.jsonc; then
rm ~/.config/waybar/config.jsonc.bak
else
echo -e "\e[31mExisting .config/waybar/config.jsonc replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
if cmp -s ~/.config/waybar/style.css.bak ~/.config/waybar/style.css; then
rm ~/.config/waybar/style.css.bak
else
echo -e "\e[31mExisting .config/waybar/style.css replaced with new Omarchy default, but a .bak file was made.\e[0m"
fi
omarchy-refresh-config waybar/config.jsonc
omarchy-refresh-config waybar/style.css
# Restart waybar
pkill -SIGUSR2 waybar
omarchy-restart-waybar

4
bin/omarchy-restart-waybar Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
killall waybar || true
setsid uwsm app -- waybar &>/dev/null &

View File

@ -32,12 +32,19 @@ else
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
fi
# Change gnome icon theme color
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
else
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
fi
# Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml"
# Restart components to apply new theme
pkill -SIGUSR2 btop
pkill -SIGUSR2 waybar
"$HOME/.local/share/omarchy/bin/omarchy-restart-waybar"
pkill swayosd-server
setsid uwsm app -- swayosd-server &>/dev/null &
makoctl reload

4
bin/omarchy-theme-update Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
for dir in ~/.config/omarchy/themes/*/; do
[ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull
done

View File

@ -1,31 +1,25 @@
#!/bin/bash
cd ~/.local/share/omarchy
# Exit immediately if a command exits with a non-zero status
set -e
if [[ $1 == "all" ]]; then
# Run all migrations since the root commit
migration_starting_point=$(git log --max-parents=0 --first-parent --format="%H")
else
# Remember the commit we're at before upgrading in order to only run new migrations
migration_starting_point=$(git log -1 --format=%H)
fi
# Show logo
clear
cat <~/.local/share/omarchy/logo.txt
# Get the latest while trying to preserve any modifications
git pull --autostash
git diff --check || git reset --merge
omarchy_path=~/.local/share/omarchy
git -C $omarchy_path pull --autostash
git -C $omarchy_path diff --check || git -C $omarchy_path reset --merge
# Run any pending migrations
for file in $(git diff --name-only --diff-filter=A $migration_starting_point.. migrations/*.sh); do
filename=$(basename "$file")
migrate_at="${filename%.sh}"
echo -e "\e[32m\nRunning migration ($migrate_at)\e[0m"
source $file
done
# Run migrations
"$HOME/.local/share/omarchy/bin/omarchy-migrate"
# Update system packages
echo -e "\e[32m\nUpdate system packages\e[0m"
yay -Syu --noconfirm
# Back to where we came from
cd - >/dev/null
# Offer to reboot if the kernel has been changed
if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then
gum confirm "Linux kernel has been updated. Reboot?" && sudo reboot now
fi

13
bin/omarchy-update-available Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
omarchy_path="$HOME/.local/share/omarchy"
latest_tag=$(git -C $omarchy_path ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1)
current_tag=$(git -C $omarchy_path describe --tags $(git -C $omarchy_path rev-list --tags --max-count=1))
if [[ "$current_tag" != "$latest_tag" ]]; then
echo "Omarchy update available ($latest_tag)"
exit 0
else
echo "Omarchy is up to date ($current_tag)"
exit 1
fi

View File

@ -2,7 +2,13 @@ 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
on_lock_cmd = pkill -f "alacritty --class Screensaver" # avoid running screensaver when locked
on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking
}
listener {
timeout = 60 # 1min
on-timeout = omarchy-launch-screensaver # start screensaver
}
listener {

View File

@ -6,7 +6,7 @@ theme = "omarchy-default"
theme_base = []
theme_location = ["~/.local/share/omarchy/default/walker/themes/"]
monitor = ""
hotreload_theme = false
hotreload_theme = true
as_window = false
timeout = 0
disable_click_to_close = false
@ -199,20 +199,21 @@ typeahead = true
hidden = true
[builtins.finder]
use_fd = false
use_fd = true
fd_flags = "--ignore-vcs --type file --type directory"
cmd_alt = "xdg-open $(dirname ~/%RESULT%)"
weight = 5
icon = "file"
name = "finder"
name = "Finder"
placeholder = "Finder"
switcher_only = true
ignore_gitignore = true
refresh = true
concurrency = 8
show_icon_when_single = true
preview_images = false
hidden = true
preview_images = true
hidden = false
prefix = "."
[builtins.runner]
eager_loading = true

View File

@ -8,7 +8,8 @@
"hyprland/workspaces"
],
"modules-center": [
"clock"
"clock",
"custom/update"
],
"modules-right": [
"group/tray-expander",
@ -42,6 +43,12 @@
"5": []
}
},
"custom/update": {
"format": "",
"exec": "~/.local/share/omarchy/bin/omarchy-update-available",
"on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update",
"interval": 3600
},
"cpu": {
"interval": 5,
"format": "󰍛",

View File

@ -26,6 +26,10 @@
min-width: 9px;
}
#workspaces button.empty {
opacity: 0.5;
}
#tray,
#cpu,
#battery,

View File

@ -1,3 +1,4 @@
# Editor used by CLI
export EDITOR="nvim"
export SUDO_EDITOR="$EDITOR"
export BAT_THEME=ansi

View File

@ -12,3 +12,6 @@ fi
# Set complete path
export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omarchy/bin:$PATH"
set +h
# Omarchy path
export OMARCHY_PATH="/home/$USER/.local/share/omarchy"

View File

@ -8,7 +8,7 @@ windowrule = tile, class:^(Chromium)$
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 590 400, class:Omarchy
windowrule = size 600 470, class:Omarchy
windowrule = size 700 470 class:About
# Float and center file pickers

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -5,8 +5,8 @@ Window.SetBackgroundBottomColor(0.101, 0.105, 0.149);
logo.image = Image("logo.png");
logo.sprite = Sprite(logo.image);
logo.sprite.SetX (Window.GetX() + Window.GetWidth() / 2 - logo.image.GetWidth() / 2);
logo.sprite.SetY (Window.GetY() + Window.GetHeight() / 2 - logo.image.GetHeight() / 2);
logo.sprite.SetX (Window.GetWidth() / 2 - logo.image.GetWidth() / 2);
logo.sprite.SetY (Window.GetHeight() / 2 - logo.image.GetHeight() / 2);
logo.sprite.SetOpacity (1);
# Use these to adjust the progress bar timing
@ -119,7 +119,7 @@ entry.image = Image("entry.png");
bullet.image = Image("bullet.png");
entry.sprite = Sprite(entry.image);
entry.x = Window.GetX() + Window.GetWidth()/2 - entry.image.GetWidth() / 2;
entry.x = Window.GetWidth()/2 - entry.image.GetWidth() / 2;
entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40;
entry.sprite.SetPosition(entry.x, entry.y, 10001);
entry.sprite.SetOpacity(0);
@ -171,8 +171,13 @@ fun display_password_callback (prompt, bullets)
for (index = 0; bullet.sprites[index]; index++)
bullet.sprites[index].SetOpacity(0);
# Create and show bullets for current password
for (index = 0; index < bullets; index++)
# Create and show bullets for current password (max 21)
max_bullets = 21;
bullets_to_show = bullets;
if (bullets_to_show > max_bullets)
bullets_to_show = max_bullets;
for (index = 0; index < bullets_to_show; index++)
{
if (!bullet.sprites[index])
{
@ -195,7 +200,7 @@ Plymouth.SetDisplayPasswordFunction(display_password_callback);
progress_box.image = Image("progress_box.png");
progress_box.sprite = Sprite(progress_box.image);
progress_box.x = Window.GetX() + Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2;
progress_box.x = Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2;
progress_box.y = entry.y + entry.image.GetHeight() / 2 - progress_box.image.GetHeight() / 2;
progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0);
progress_box.sprite.SetOpacity(0);
@ -204,7 +209,7 @@ progress_bar.original_image = Image("progress_bar.png");
progress_bar.sprite = Sprite();
progress_bar.image = progress_bar.original_image.Scale(1, progress_bar.original_image.GetHeight());
progress_bar.x = Window.GetX() + Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2;
progress_bar.x = Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2;
progress_bar.y = progress_box.y + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2;
progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1);
progress_bar.sprite.SetOpacity(0);

View File

@ -38,6 +38,7 @@ 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/timezones.sh
source $OMARCHY_INSTALL/config/login.sh
source $OMARCHY_INSTALL/config/nvidia.sh

View File

@ -1,36 +1,7 @@
#!/bin/bash
yay -S --noconfirm --needed ttf-font-awesome ttf-cascadia-mono-nerd ttf-ia-writer noto-fonts noto-fonts-emoji
if [ -z "$OMARCHY_BARE" ]; then
yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
else
yay -S --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji
fi
mkdir -p ~/.local/share/fonts
if ! fc-list | grep -qi "CaskaydiaMono Nerd Font"; then
cd /tmp
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip
unzip CascadiaMono.zip -d CascadiaFont
cp CascadiaFont/CaskaydiaMonoNerdFont-Regular.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFont-Bold.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFont-Italic.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFont-BoldItalic.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Regular.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Bold.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Italic.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-BoldItalic.ttf ~/.local/share/fonts
rm -rf CascadiaMono.zip CascadiaFont
fc-cache
cd -
fi
if ! fc-list | grep -qi "iA Writer Mono S"; then
cd /tmp
wget -O iafonts.zip https://github.com/iaolo/iA-Fonts/archive/refs/heads/master.zip
unzip iafonts.zip -d iaFonts
cp iaFonts/iA-Fonts-master/iA\ Writer\ Mono/Static/iAWriterMonoS-*.ttf ~/.local/share/fonts
rm -rf iafonts.zip iaFonts
fc-cache
cd -
yay -S --noconfirm --needed ttf-jetbrains-mono noto-fonts-cjk noto-fonts-extra
fi

View File

@ -10,8 +10,14 @@ if ! yay -Q gnome-themes-extra &>/dev/null; then
yay -S --noconfirm gnome-themes-extra # Adds Adwaita-dark theme
fi
# Allow icons to match the theme
if ! yay -! yaru-icon-theme &>/dev/null; then
yay -S --noconfirm yaru-icon-theme
fi
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
# Setup theme links
mkdir -p ~/.config/omarchy/themes

View File

@ -2,5 +2,5 @@ echo "Fixing persistent workspaces in waybar config"
if [[ -f ~/.config/waybar/config ]]; then
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
pkill -SIGUSR2 waybar
omarchy-restart-waybar
fi

View File

@ -1,2 +1,2 @@
echo "Install Plymouth splash screen"
source "$HOME/.local/share/omarchy/install/login.sh"
source "$HOME/.local/share/omarchy/install/config/login.sh"

View File

@ -1,14 +0,0 @@
echo "Add missing Propo version of Caskaydia Mono Nerd Font for Waybar use"
if ! fc-list | grep -qi "CaskaydiaMono Nerd Font Propo"; then
cd /tmp
wget https://github.com/ryanoasis/nerd-fonts/releases/latest/download/CascadiaMono.zip
unzip CascadiaMono.zip -d CascadiaFont
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Regular.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Bold.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-Italic.ttf ~/.local/share/fonts
cp CascadiaFont/CaskaydiaMonoNerdFontPropo-BoldItalic.ttf ~/.local/share/fonts
rm -rf CascadiaMono.zip CascadiaFont
fc-cache
cd -
fi

View File

@ -1,5 +0,0 @@
echo "Add missing libappindicator-gtk3 for Dropbox icon tray to work right"
if ! pacman -Q libappindicator-gtk3 &>/dev/null; then
yay -S --noconfirm --needed libappindicator-gtk3
fi

View File

@ -1,6 +0,0 @@
echo "Add missing Dropbox dependencies"
# Dropbox is still there, but the dependencies aren't yet
if command -v dropbox-cli &>/dev/null && ! pacman -Q libappindicator-gtk3 &>/dev/null; then
yay -S --noconfirm --needed dropbox libappindicator-gtk3 python-gpgme nautilus-dropbox
fi

View File

@ -12,8 +12,6 @@ if [[ "$(uname -m)" == "x86_64" ]] && ! grep -q '^\[chaotic-aur\]' /etc/pacman.c
# 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

12
migrations/1753908454.sh Normal file
View File

@ -0,0 +1,12 @@
echo "Migrate from manually downloaded fonts to font packages"
if ! yay -Q ttf-cascadia-mono-nerd &>/dev/null; then
yay -S --noconfirm ttf-cascadia-mono-nerd
rm -rf ~/.local/share/fonts/Caskaydia*
fc-cache
fi
if ! yay -Q ttf-ia-writer &>/dev/null; then
yay -S --noconfirm ttf-ia-writer
rm -rf ~/.local/share/fonts/iAWriterMonoS*
fc-cache
fi

4
migrations/1753998861.sh Normal file
View File

@ -0,0 +1,4 @@
echo "Update Walker config to include . as the leader key for the finder"
if ! grep -q 'prefix = "\."' ~/.config/walker/config.toml; then
omarchy-refresh-walker
fi

9
migrations/1754047941.sh Normal file
View File

@ -0,0 +1,9 @@
echo "Add icon theme coloring"
if ! yay -! yaru-icon-theme &>/dev/null; then
yay -S --noconfirm yaru-icon-theme
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
fi
fi

2
migrations/1754108993.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing"
omarchy-refresh-plymouth

10
migrations/1754113760.sh Normal file
View File

@ -0,0 +1,10 @@
echo "Change reload Waybar on unlock command to prevent stacking"
if ! grep -q 'on_unlock_cmd *= *omarchy-restart-waybar' ~/.config/hypr/hypridle.conf; then
sed -i \
'/^ on_unlock_cmd = pkill -SIGUSR2 waybar[[:space:]]*# prevent stacking of waybar when waking$/c\
on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking' \
~/.config/hypr/hypridle.conf
omarchy-restart-waybar
fi

6
migrations/1754133148.sh Normal file
View File

@ -0,0 +1,6 @@
echo "Update Waybar CSS to dim unused workspaces"
if ! grep -q "#workspaces button\.empty" ~/.config/waybar/style.css; then
omarchy-refresh-config waybar/style.css
omarchy-restart-waybar
fi

6
migrations/1754136581.sh Normal file
View File

@ -0,0 +1,6 @@
echo "Start screensaver automatically after 1 minute and stop before locking"
if ! grep -q "omarchy-launch-screensaver" ~/.config/hypr/hypridle.conf; then
omarchy-refresh-hypridle
omarchy-refresh-hyprlock
fi

View File

@ -0,0 +1 @@
Yaru-blue

View File

@ -0,0 +1 @@
Yaru-purple

View File

@ -0,0 +1 @@
Yaru-sage

View File

@ -0,0 +1 @@
Yaru-olive

View File

@ -0,0 +1 @@
Yaru-blue

View File

@ -0,0 +1 @@
Yaru-red

1
themes/nord/icons.theme Normal file
View File

@ -0,0 +1 @@
Yaru-blue

View File

@ -0,0 +1 @@
Yaru-yellow

View File

@ -7,6 +7,15 @@ return {
override = function()
return {
NonText = { fg = "#948a8b" },
MiniIconsGrey = { fg = "#948a8b" },
MiniIconsRed = { fg = "#fd6883" },
MiniIconsBlue = { fg = "#85dacc" },
MiniIconsGreen = { fg = "#adda78" },
MiniIconsYellow = { fg = "#f9cc6c" },
MiniIconsOrange = { fg = "#f38d70" },
MiniIconsPurple = { fg = "#a8a9eb" },
MiniIconsAzure = { fg = "#a8a9eb" },
MiniIconsCyan = { fg = "#85dacc" }, -- same value as MiniIconsBlue for consistency
}
end,
})

View File

@ -0,0 +1 @@
Yaru-blue

View File

@ -0,0 +1 @@
Yaru-magenta