mirror of
https://github.com/basecamp/omarchy.git
synced 2025-07-31 13:59:23 +00:00
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 commit4c46c2208a
. * Revert "Swap Spotify GUI to TUI" This reverts commitb09d2d68cd
. * 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>
This commit is contained in:

committed by
GitHub

parent
b7cbffc91d
commit
1c2b5ea8e0
10
bin/omarchy
10
bin/omarchy
@ -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"
|
||||
)
|
||||
|
12
bin/omarchy-font-menu
Executable file
12
bin/omarchy-font-menu
Executable 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
|
30
bin/omarchy-refresh-config
Executable file
30
bin/omarchy-refresh-config
Executable file
@ -0,0 +1,30 @@
|
||||
#!/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)
|
||||
backup_file="${HOME}/.config/${config_file}.bak.$(date +%s)"
|
||||
cp -f "${HOME}/.config/${config_file}" "$backup_file" 2>/dev/null
|
||||
|
||||
# Deploy the source file
|
||||
cp -f "${HOME}/.local/share/omarchy/config/${config_file}" "${HOME}/.config/${config_file}" 2>/dev/null
|
||||
|
||||
# Compare and delete/inform accordingly
|
||||
if cmp -s "${HOME}/.config/${config_file}" "$backup_file"; then
|
||||
rm $backup_file
|
||||
else
|
||||
echo -e "\e[31mExisting "${HOME}/.config/${config_file}" replaced with new Omarchy default, but ${backup_file} file was made.\e[0m"
|
||||
fi
|
@ -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
|
@ -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 &
|
||||
|
@ -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 &
|
||||
|
@ -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
|
||||
|
4
bin/omarchy-theme-update
Executable file
4
bin/omarchy-theme-update
Executable 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
|
@ -1,26 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Exit immediately if a command exits with a non-zero status
|
||||
set -e
|
||||
|
||||
STATE_DIR="$HOME/.local/state/omarchy/migrations"
|
||||
|
||||
cd ~/.local/share/omarchy
|
||||
|
||||
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
|
||||
# Create the migrations state directory, we will store an empty file for each migration that has already been performed.
|
||||
mkdir -p "$STATE_DIR"
|
||||
|
||||
# Get the latest while trying to preserve any modifications
|
||||
git pull --autostash
|
||||
git diff --check || git reset --merge
|
||||
|
||||
# Run any pending migrations
|
||||
for file in $(git diff --name-only --diff-filter=A $migration_starting_point.. migrations/*.sh); do
|
||||
for file in migrations/*.sh; do
|
||||
filename=$(basename "$file")
|
||||
migrate_at="${filename%.sh}"
|
||||
|
||||
echo -e "\e[32m\nRunning migration ($migrate_at)\e[0m"
|
||||
# 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
|
||||
|
||||
# Update system packages
|
||||
@ -29,3 +33,4 @@ yay -Syu --noconfirm
|
||||
|
||||
# Back to where we came from
|
||||
cd - >/dev/null
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -70,7 +70,7 @@ animations {
|
||||
}
|
||||
|
||||
# Application-sepcific animation
|
||||
layerrule=noanim,walker
|
||||
layerrule = noanim,walker
|
||||
|
||||
# Remove 1px border around hyprshot screenshots
|
||||
layerrule = noanim, selection
|
||||
|
@ -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 590 450, 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 |
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
12
migrations/1753908454.sh
Normal 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/1753910761.sh
Normal file
4
migrations/1753910761.sh
Normal 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
|
Reference in New Issue
Block a user