mirror of
https://github.com/tmux/tmux.git
synced 2026-10-16 16:44:30 +00:00
55 lines
1.3 KiB
Bash
55 lines
1.3 KiB
Bash
#!/bin/sh
|
|
|
|
# A client attached with ignore-size that is shorter than the status line
|
|
# must have it turned off rather than kill the server.
|
|
# Each inner client runs in an outer pane of its size.
|
|
|
|
PATH=/bin:/usr/bin
|
|
TERM=screen
|
|
LC_ALL=C.UTF-8
|
|
export PATH TERM LC_ALL
|
|
|
|
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
|
|
TMUX="$TEST_TMUX -LtestA$$ -f/dev/null"
|
|
TMUX2="$TEST_TMUX -LtestB$$ -f/dev/null"
|
|
|
|
cleanup()
|
|
{
|
|
$TMUX2 kill-server >/dev/null 2>&1
|
|
$TMUX kill-server >/dev/null 2>&1
|
|
}
|
|
trap cleanup 0 1 15
|
|
|
|
fail()
|
|
{
|
|
echo "$*" >&2
|
|
exit 1
|
|
}
|
|
|
|
# Attach a normal client of size $1 and an ignore-size client of size $2
|
|
# (WxH) to the inner session.
|
|
attach()
|
|
{
|
|
$TMUX2 kill-server >/dev/null 2>&1
|
|
$TMUX2 new-session -d -s big -x "${1%x*}" -y "${1#*x}" 'sleep 100' ||
|
|
exit 1
|
|
$TMUX2 set -g status off || exit 1
|
|
$TMUX2 set -g window-size manual || exit 1
|
|
$TMUX2 new-session -d -s small -x "${2%x*}" -y "${2#*x}" 'sleep 100' ||
|
|
exit 1
|
|
$TMUX2 respawn-pane -k -t big:0.0 "$TMUX attach -t inner" || exit 1
|
|
sleep 0.5
|
|
$TMUX2 respawn-pane -k -t small:0.0 \
|
|
"$TMUX attach -f ignore-size -t inner" || exit 1
|
|
sleep 1
|
|
}
|
|
|
|
$TMUX new-session -d -s inner -x 80 -y 24 'sleep 100' || exit 1
|
|
|
|
# A status line taller than the client.
|
|
$TMUX set -g status 5 || exit 1
|
|
attach 80x24 80x4
|
|
$TMUX has-session 2>/dev/null || fail "server exited: status line too tall"
|
|
|
|
exit 0
|