108 lines
2.8 KiB
Bash
108 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
source "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)/base-test.sh"
|
|
|
|
CONFIG_FILE="$HOME/.config/omarchy/shell.json"
|
|
DEFAULTS_FILE="$OMARCHY_PATH/config/omarchy/shell.json"
|
|
config_backup=$(mktemp)
|
|
config_existed=0
|
|
|
|
if [[ -f $CONFIG_FILE ]]; then
|
|
cp "$CONFIG_FILE" "$config_backup"
|
|
config_existed=1
|
|
fi
|
|
|
|
restore_bar_config() {
|
|
omarchy-shell shell hide omarchy.menu >/dev/null 2>&1 || true
|
|
|
|
if ((config_existed)); then
|
|
mkdir -p "$(dirname "$CONFIG_FILE")"
|
|
cp "$config_backup" "$CONFIG_FILE"
|
|
else
|
|
rm -f "$CONFIG_FILE"
|
|
fi
|
|
|
|
omarchy-shell shell reloadConfig >/dev/null 2>&1 || true
|
|
rm -f "$config_backup"
|
|
}
|
|
|
|
trap restore_bar_config EXIT
|
|
|
|
bar_is_vertical() {
|
|
local width height
|
|
|
|
read -r width height < <(hyprctl -j layers | jq -r '
|
|
[.. | objects | select(.namespace? == "omarchy-bar")][0]
|
|
| [.w, .h] | @tsv
|
|
')
|
|
|
|
[[ $width =~ ^[0-9]+$ && $height =~ ^[0-9]+$ ]] && ((width < height))
|
|
}
|
|
|
|
bar_is_horizontal() {
|
|
local width height
|
|
|
|
read -r width height < <(hyprctl -j layers | jq -r '
|
|
[.. | objects | select(.namespace? == "omarchy-bar")][0]
|
|
| [.w, .h] | @tsv
|
|
')
|
|
|
|
[[ $width =~ ^[0-9]+$ && $height =~ ^[0-9]+$ ]] && ((width > height))
|
|
}
|
|
|
|
bar_position_is() {
|
|
local expected="$1"
|
|
|
|
[[ $(jq -r '.bar.position // "top"' "$CONFIG_FILE") == $expected ]]
|
|
}
|
|
|
|
source_file=$DEFAULTS_FILE
|
|
((config_existed)) && source_file=$CONFIG_FILE
|
|
original_position=$(jq -r '.bar.position // "top"' "$source_file")
|
|
|
|
omarchy-shell shell summon omarchy.menu '{"menu":"root"}' >/dev/null
|
|
wait_until "root menu opens" 15 layer_present "omarchy-menu"
|
|
wait_until "root menu content is visible" 15 screen_contains "Apps"
|
|
screenshot "success-menu-01-root"
|
|
|
|
wtype -k Down -k Down -k Down
|
|
sleep 1
|
|
screenshot "success-menu-02-style-selected"
|
|
wtype -k Return
|
|
|
|
wait_until "style submenu is visible" 15 screen_contains "Theme"
|
|
screenshot "success-menu-03-style-submenu"
|
|
|
|
wtype -k Down -k Down -k Down -k Return
|
|
sleep 1
|
|
screenshot "success-menu-04-menu-bar-submenu"
|
|
|
|
wtype -k Return
|
|
sleep 1
|
|
screenshot "success-menu-05-position-submenu"
|
|
|
|
wtype -k Down -k Down -k Return
|
|
wait_until "menu bar position changes to left" 20 bar_position_is "left"
|
|
wait_until "menu bar becomes vertical" 20 bar_is_vertical
|
|
wait_until "menu closes after selecting a position" 15 layer_absent "omarchy-menu"
|
|
screenshot "success-menu-06-bar-left"
|
|
|
|
if ((config_existed)); then
|
|
cp "$config_backup" "$CONFIG_FILE"
|
|
else
|
|
rm -f "$CONFIG_FILE"
|
|
fi
|
|
omarchy-shell shell reloadConfig >/dev/null
|
|
|
|
if [[ $original_position == "left" || $original_position == "right" ]]; then
|
|
wait_until "menu bar restores its original vertical position" 20 bar_is_vertical
|
|
else
|
|
wait_until "menu bar restores its original horizontal position" 20 bar_is_horizontal
|
|
fi
|
|
screenshot "success-menu-07-bar-restored"
|
|
|
|
trap - EXIT
|
|
restore_bar_config
|