The installer asks for the language before the keyboard, and Setup > Language (omarchy language en|zh) switches it later. Under zh_CN the menu reads its labels from omarchy-menu.zh-cn.jsonc, the shell from I18nZh.js through I18n.tr, and notifications are worded by their sender through omarchy-text, which reads the same table. User text is never translated.
71 lines
2.2 KiB
Bash
Executable File
71 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:summary=Show or set how see-through windows are: opaque, transparent, or glassy
|
|
# omarchy:args=[opaque|transparent|glassy]
|
|
# omarchy:examples=omarchy hyprland window transparency | omarchy hyprland window transparency glassy
|
|
|
|
TOGGLES_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/omarchy/toggles/hypr"
|
|
|
|
# Opaque and glassy are toggle files loaded after every theme: opaque makes the
|
|
# windows Omarchy makes transparent solid, and glassy blurs what is behind any
|
|
# see-through window and gives terminals a see-through background. Transparent,
|
|
# the default, removes both.
|
|
current_mode() {
|
|
if [[ -f $TOGGLES_DIR/window-opaque.lua ]]; then
|
|
echo "opaque"
|
|
elif [[ -f $TOGGLES_DIR/window-glassy.lua ]]; then
|
|
echo "glassy"
|
|
else
|
|
echo "transparent"
|
|
fi
|
|
}
|
|
|
|
# Save the new choice before dropping the old one, so a failed save keeps it.
|
|
save_mode() {
|
|
if [[ $1 != "transparent" ]]; then
|
|
mkdir -p "$TOGGLES_DIR" && cp "$OMARCHY_PATH/default/hypr/toggles/window-$1.lua" "$TOGGLES_DIR/window-$1.lua" || return 1
|
|
fi
|
|
local mode
|
|
for mode in opaque glassy; do
|
|
[[ $mode == "$1" ]] || rm -f "$TOGGLES_DIR/window-$mode.lua" || return 1
|
|
done
|
|
}
|
|
|
|
if (( $# == 0 )); then
|
|
current_mode
|
|
exit 0
|
|
fi
|
|
|
|
case $1 in
|
|
opaque) LABEL=$(omarchy-text "Opaque windows") ;;
|
|
transparent) LABEL=$(omarchy-text "Transparent windows") ;;
|
|
glassy) LABEL=$(omarchy-text "Glassy windows") ;;
|
|
*)
|
|
echo "Usage: omarchy-hyprland-window-transparency [opaque|transparent|glassy]" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# A theme switch renders the next theme's terminal files from the saved choice
|
|
# and then replaces the current theme, so the choice and the glass written into
|
|
# the current theme are changed under its lock, or the switch could drop them.
|
|
exec 9>"${XDG_RUNTIME_DIR:-/tmp}/omarchy-theme-set.lock"
|
|
flock 9
|
|
|
|
# A choice whose glass cannot be written is taken back, so the saved choice
|
|
# is always the one on screen.
|
|
previous=$(current_mode)
|
|
save_mode "$1" || exit 1
|
|
if ! omarchy-theme-set-glass; then
|
|
save_mode "$previous"
|
|
omarchy-theme-set-glass
|
|
exit 1
|
|
fi
|
|
flock -u 9
|
|
|
|
hyprctl reload >/dev/null || exit 1
|
|
omarchy-restart-terminal
|
|
omarchy-theme-set-foot
|
|
omarchy-restart-btop
|
|
omarchy-notification-send -g "$LABEL"
|