| | |
| | | |
| | | aligner_pids_for_current_app() { |
| | | ps -axo pid=,args= | while read -r pid command; do |
| | | case "$command" in |
| | | "$APP/Contents/MacOS/Aligner"*) echo "$pid" ;; |
| | | esac |
| | | if [[ "$command" == "$APP/Contents/MacOS/Aligner"* ]] \ |
| | | || [[ "$command" == "/Applications/Aligner.app/Contents/MacOS/Aligner"* ]] \ |
| | | || [[ "$command" == "$HOME/Applications/Aligner.app/Contents/MacOS/Aligner"* ]]; then |
| | | echo "$pid" |
| | | fi |
| | | done |
| | | } |
| | | |
| | |
| | | require(root.get("lastKeyboardCommand") == expected_key_sequence[-1], "last keyboard command must match the alignment target") |
| | | require(root.get("selectedAppGroupIndex") == target_app_index, "keyboard focus must select the target appGroupIndex") |
| | | require(item.get("isSelected") is True, "target App Shelf item must expose selected state") |
| | | require("selected" in item.get("visualStates", []), "target App Shelf item must expose selected visual state") |
| | | require("selectedVisualSuppressed" in item.get("visualStates", []), "non-hovered keyboard-selected App Shelf item must suppress selected visual state") |
| | | cards = column.get("cards", []) |
| | | require(cards, "target Waterfall column must include cards") |
| | | require(root.get("selectedWindowID") == cards[0].get("windowID"), "right-arrow focus into target column must select its first window") |
| | |
| | | local args=( |
| | | --round0-skip-permissions |
| | | --round01-open-quick-switch |
| | | --round01-waterfall-view-mode=vertical |
| | | --round01-fixture-app-count="$app_count" |
| | | --round01-fixture-windows-per-app="$windows_per_app" |
| | | --round01-debug-overlay-width="$overlay_width" |