mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-02 04:37:49 +02:00
Update existing terminal configs to encode Shift+Return as CSI-u so Codex and other TUIs can distinguish it from Return without tmux seeing it as Alt+Return. Also ensures Alt+Shift+Return CSI-u bindings remain present for tmux horizontal splits across Kitty, Ghostty, and Foot.
60 lines
2.6 KiB
Bash
60 lines
2.6 KiB
Bash
#!/bin/bash
|
|
|
|
source "$(dirname "${BASH_SOURCE[0]}")/base-test.sh"
|
|
|
|
migration=$(grep -rl 'Make Shift+Enter distinguishable for terminals and Codex' "$ROOT/migrations" | head -n 1 || true)
|
|
[[ -n $migration ]] || fail "terminal Shift+Enter migration exists"
|
|
|
|
TMPDIR=$(mktemp -d)
|
|
trap 'rm -rf "$TMPDIR"' EXIT
|
|
|
|
test_home="$TMPDIR/home"
|
|
mkdir -p \
|
|
"$test_home/.config/alacritty" \
|
|
"$test_home/.config/foot" \
|
|
"$test_home/.config/ghostty" \
|
|
"$test_home/.config/kitty"
|
|
|
|
cp "$ROOT/config/alacritty/alacritty.toml" "$test_home/.config/alacritty/alacritty.toml"
|
|
sed -i 's/\\u001B\[13;2u/\\u001B\\r/' "$test_home/.config/alacritty/alacritty.toml"
|
|
|
|
cp "$ROOT/config/kitty/kitty.conf" "$test_home/.config/kitty/kitty.conf"
|
|
sed -i '/shift+enter/d' "$test_home/.config/kitty/kitty.conf"
|
|
|
|
cp "$ROOT/config/ghostty/config" "$test_home/.config/ghostty/config"
|
|
sed -i '/shift+enter/d' "$test_home/.config/ghostty/config"
|
|
|
|
cp "$ROOT/config/foot/foot.ini" "$test_home/.config/foot/foot.ini"
|
|
sed -i '/text-bindings/,$d' "$test_home/.config/foot/foot.ini"
|
|
|
|
HOME="$test_home" bash "$migration" >/dev/null
|
|
|
|
grep -qxF '{ key = "Return", mods = "Shift", chars = "\u001B[13;2u" },' "$test_home/.config/alacritty/alacritty.toml" ||
|
|
fail "migration updates Alacritty Shift+Return to CSI-u"
|
|
pass "migration updates Alacritty Shift+Return to CSI-u"
|
|
|
|
grep -qxF 'map shift+enter send_text all \e[13;2u' "$test_home/.config/kitty/kitty.conf" ||
|
|
fail "migration adds Kitty Shift+Enter CSI-u binding"
|
|
grep -qxF 'map alt+shift+enter send_text all \e[13;4u' "$test_home/.config/kitty/kitty.conf" ||
|
|
fail "migration adds Kitty Alt+Shift+Enter CSI-u binding"
|
|
pass "migration adds Kitty CSI-u bindings"
|
|
|
|
grep -qxF 'keybind = shift+enter=csi:13;2u' "$test_home/.config/ghostty/config" ||
|
|
fail "migration adds Ghostty Shift+Enter CSI-u binding"
|
|
grep -qxF 'keybind = alt+shift+enter=csi:13;4u' "$test_home/.config/ghostty/config" ||
|
|
fail "migration adds Ghostty Alt+Shift+Enter CSI-u binding"
|
|
pass "migration adds Ghostty CSI-u bindings"
|
|
|
|
grep -qxF '\x1b[13;2u=Shift+Return' "$test_home/.config/foot/foot.ini" ||
|
|
fail "migration adds Foot Shift+Return CSI-u binding"
|
|
grep -qxF '\x1b[13;4u=Mod1+Shift+Return' "$test_home/.config/foot/foot.ini" ||
|
|
fail "migration adds Foot Alt+Shift+Return CSI-u binding"
|
|
pass "migration adds Foot CSI-u bindings"
|
|
|
|
before=$(find "$test_home/.config" -type f -print0 | sort -z | xargs -0 sha256sum)
|
|
HOME="$test_home" bash "$migration" >/dev/null
|
|
after=$(find "$test_home/.config" -type f -print0 | sort -z | xargs -0 sha256sum)
|
|
|
|
[[ $before == "$after" ]] || fail "terminal Shift+Enter migration is idempotent"
|
|
pass "terminal Shift+Enter migration is idempotent"
|