mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			362 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			362 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
 | 
						|
PATH=/bin:/usr/bin
 | 
						|
TERM=screen
 | 
						|
 | 
						|
[ -z "$TEST_TMUX" ] && TEST_TMUX=$(readlink -f ../tmux)
 | 
						|
TMUX="$TEST_TMUX -Ltest"
 | 
						|
$TMUX kill-server 2>/dev/null
 | 
						|
TMUX2="$TEST_TMUX -Ltest2"
 | 
						|
$TMUX2 kill-server 2>/dev/null
 | 
						|
 | 
						|
TMP=$(mktemp)
 | 
						|
trap "rm -f $TMP" 0 1 15
 | 
						|
 | 
						|
$TMUX2 -f/dev/null new -d || exit 1
 | 
						|
$TMUX -f/dev/null new -d "$TMUX2 attach" || exit 1
 | 
						|
sleep 0.1
 | 
						|
 | 
						|
exit_status=0
 | 
						|
 | 
						|
format_string () {
 | 
						|
	case $1 in
 | 
						|
		*\')
 | 
						|
			printf '"%%%%"'
 | 
						|
			;;
 | 
						|
		*)
 | 
						|
			printf "'%%%%'"
 | 
						|
			;;
 | 
						|
	esac
 | 
						|
}
 | 
						|
 | 
						|
assert_key () {
 | 
						|
	keys=$1
 | 
						|
	expected_name=$2
 | 
						|
	format_string=$(format_string "$expected_name")
 | 
						|
 | 
						|
	$TMUX2 command-prompt -k 'display-message -pl '"$format_string" > "$TMP" &
 | 
						|
	sleep 0.05
 | 
						|
 | 
						|
	$TMUX send-keys $keys
 | 
						|
 | 
						|
	wait
 | 
						|
 | 
						|
	keys=$(printf '%s' "$keys" | sed -e 's/Escape/\\\\033/g' | tr -d '[:space:]')
 | 
						|
	actual_name=$(tr -d '[:space:]' < "$TMP")
 | 
						|
 | 
						|
	if [ "$actual_name" = "$expected_name" ]; then
 | 
						|
		if [ -n "$VERBOSE" ]; then
 | 
						|
			echo "[PASS] $keys -> $actual_name"
 | 
						|
		fi
 | 
						|
	else
 | 
						|
		echo "[FAIL] $keys -> $expected_name (Got: '$actual_name')"
 | 
						|
		exit_status=1
 | 
						|
	fi
 | 
						|
 | 
						|
	if [ "$3" = "--" ]; then
 | 
						|
		shift; shift; shift
 | 
						|
		assert_key "$@"
 | 
						|
	fi
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
assert_key 0x00 'C-Space' # -- 'Escape 0x00' 'M-C-Space'
 | 
						|
assert_key 0x01 'C-a'	  -- 'Escape 0x01' 'M-C-a'
 | 
						|
assert_key 0x02 'C-b'	  -- 'Escape 0x02' 'M-C-b'
 | 
						|
assert_key 0x03 'C-c'	  -- 'Escape 0x03' 'M-C-c'
 | 
						|
assert_key 0x04 'C-d'	  -- 'Escape 0x04' 'M-C-d'
 | 
						|
assert_key 0x05 'C-e'	  -- 'Escape 0x05' 'M-C-e'
 | 
						|
assert_key 0x06 'C-f'	  -- 'Escape 0x06' 'M-C-f'
 | 
						|
assert_key 0x07 'C-g'	  -- 'Escape 0x07' 'M-C-g'
 | 
						|
assert_key 0x08 'C-h'	  -- 'Escape 0x08' 'M-C-h'
 | 
						|
assert_key 0x09 'Tab'	  -- 'Escape 0x09' 'M-Tab'
 | 
						|
assert_key 0x0A 'C-j'	  -- 'Escape 0x0A' 'M-C-j'
 | 
						|
assert_key 0x0B 'C-k'	  -- 'Escape 0x0B' 'M-C-k'
 | 
						|
assert_key 0x0C 'C-l'	  -- 'Escape 0x0C' 'M-C-l'
 | 
						|
assert_key 0x0D 'Enter'	  -- 'Escape 0x0D' 'M-Enter'
 | 
						|
assert_key 0x0E 'C-n'	  -- 'Escape 0x0E' 'M-C-n'
 | 
						|
assert_key 0x0F 'C-o'	  -- 'Escape 0x0F' 'M-C-o'
 | 
						|
assert_key 0x10 'C-p'	  -- 'Escape 0x10' 'M-C-p'
 | 
						|
assert_key 0x11 'C-q'	  -- 'Escape 0x11' 'M-C-q'
 | 
						|
assert_key 0x12 'C-r'	  -- 'Escape 0x12' 'M-C-r'
 | 
						|
assert_key 0x13 'C-s'	  -- 'Escape 0x13' 'M-C-s'
 | 
						|
assert_key 0x14 'C-t'	  -- 'Escape 0x14' 'M-C-t'
 | 
						|
assert_key 0x15 'C-u'	  -- 'Escape 0x15' 'M-C-u'
 | 
						|
assert_key 0x16 'C-v'	  -- 'Escape 0x16' 'M-C-v'
 | 
						|
assert_key 0x17 'C-w'	  -- 'Escape 0x17' 'M-C-w'
 | 
						|
assert_key 0x18 'C-x'	  -- 'Escape 0x18' 'M-C-x'
 | 
						|
assert_key 0x19 'C-y'	  -- 'Escape 0x19' 'M-C-y'
 | 
						|
assert_key 0x1A 'C-z'	  -- 'Escape 0x1A' 'M-C-z'
 | 
						|
assert_key 0x1B 'Escape'  -- 'Escape 0x1B' 'M-Escape'
 | 
						|
assert_key 0x1C "C-\\"	  -- 'Escape 0x1C' "M-C-\\"
 | 
						|
assert_key 0x1D 'C-]'	  -- 'Escape 0x1D' 'M-C-]'
 | 
						|
assert_key 0x1E 'C-^'	  -- 'Escape 0x1E' 'M-C-^'
 | 
						|
assert_key 0x1F 'C-_'	  -- 'Escape 0x1F' 'M-C-_'
 | 
						|
assert_key 0x20 'Space'	  -- 'Escape 0x20' 'M-Space'
 | 
						|
assert_key 0x21 '!'	  -- 'Escape 0x21' 'M-!'
 | 
						|
assert_key 0x22 '"'	  -- 'Escape 0x22' 'M-"'
 | 
						|
assert_key 0x23 '#'	  -- 'Escape 0x23'= 'M-#'
 | 
						|
assert_key 0x24 '$'	  -- 'Escape 0x24'= 'M-$'
 | 
						|
assert_key 0x25 '%'	  -- 'Escape 0x25'= 'M-%'
 | 
						|
assert_key 0x26 '&'	  -- 'Escape 0x26'= 'M-&'
 | 
						|
assert_key 0x27 "'"	  -- 'Escape 0x27' "M-'"
 | 
						|
assert_key 0x28 '('	  -- 'Escape 0x28' 'M-('
 | 
						|
assert_key 0x29 ')'	  -- 'Escape 0x29' 'M-)'
 | 
						|
assert_key 0x2A '*'	  -- 'Escape 0x2A' 'M-*'
 | 
						|
assert_key 0x2B '+'	  -- 'Escape 0x2B' 'M-+'
 | 
						|
assert_key 0x2C ','	  -- 'Escape 0x2C' 'M-,'
 | 
						|
assert_key 0x2D '-'	  -- 'Escape 0x2D' 'M--'
 | 
						|
assert_key 0x2E '.'	  -- 'Escape 0x2E' 'M-.'
 | 
						|
assert_key 0x2F '/'	  -- 'Escape 0x2F' 'M-/'
 | 
						|
assert_key 0x30 '0'	  -- 'Escape 0x30' 'M-0'
 | 
						|
assert_key 0x31 '1'	  -- 'Escape 0x31' 'M-1'
 | 
						|
assert_key 0x32 '2'	  -- 'Escape 0x32' 'M-2'
 | 
						|
assert_key 0x33 '3'	  -- 'Escape 0x33' 'M-3'
 | 
						|
assert_key 0x34 '4'	  -- 'Escape 0x34' 'M-4'
 | 
						|
assert_key 0x35 '5'	  -- 'Escape 0x35' 'M-5'
 | 
						|
assert_key 0x36 '6'	  -- 'Escape 0x36' 'M-6'
 | 
						|
assert_key 0x37 '7'	  -- 'Escape 0x37' 'M-7'
 | 
						|
assert_key 0x38 '8'	  -- 'Escape 0x38' 'M-8'
 | 
						|
assert_key 0x39 '9'	  -- 'Escape 0x39' 'M-9'
 | 
						|
assert_key 0x3A ':'	  -- 'Escape 0x3A' 'M-:'
 | 
						|
assert_key 0x3B ';'	  -- 'Escape 0x3B' 'M-;'
 | 
						|
assert_key 0x3C '<'	  -- 'Escape 0x3C' 'M-<'
 | 
						|
assert_key 0x3D '='	  -- 'Escape 0x3D' 'M-='
 | 
						|
assert_key 0x3E '>'	  -- 'Escape 0x3E' 'M->'
 | 
						|
assert_key 0x3F '?'	  -- 'Escape 0x3F' 'M-?'
 | 
						|
assert_key 0x40 '@'	  -- 'Escape 0x40' 'M-@'
 | 
						|
assert_key 0x41 'A'	  -- 'Escape 0x41' 'M-A'
 | 
						|
assert_key 0x42 'B'	  -- 'Escape 0x42' 'M-B'
 | 
						|
assert_key 0x43 'C'	  -- 'Escape 0x43' 'M-C'
 | 
						|
assert_key 0x44 'D'	  -- 'Escape 0x44' 'M-D'
 | 
						|
assert_key 0x45 'E'	  -- 'Escape 0x45' 'M-E'
 | 
						|
assert_key 0x46 'F'	  -- 'Escape 0x46' 'M-F'
 | 
						|
assert_key 0x47 'G'	  -- 'Escape 0x47' 'M-G'
 | 
						|
assert_key 0x48 'H'	  -- 'Escape 0x48' 'M-H'
 | 
						|
assert_key 0x49 'I'	  -- 'Escape 0x49' 'M-I'
 | 
						|
assert_key 0x4A 'J'	  -- 'Escape 0x4A' 'M-J'
 | 
						|
assert_key 0x4B 'K'	  -- 'Escape 0x4B' 'M-K'
 | 
						|
assert_key 0x4C 'L'	  -- 'Escape 0x4C' 'M-L'
 | 
						|
assert_key 0x4D 'M'	  -- 'Escape 0x4D' 'M-M'
 | 
						|
assert_key 0x4E 'N'	  -- 'Escape 0x4E' 'M-N'
 | 
						|
assert_key 0x4F 'O'	  -- 'Escape 0x4F' 'M-O'
 | 
						|
assert_key 0x50 'P'	  -- 'Escape 0x50' 'M-P'
 | 
						|
assert_key 0x51 'Q'	  -- 'Escape 0x51' 'M-Q'
 | 
						|
assert_key 0x52 'R'	  -- 'Escape 0x52' 'M-R'
 | 
						|
assert_key 0x53 'S'	  -- 'Escape 0x53' 'M-S'
 | 
						|
assert_key 0x54 'T'	  -- 'Escape 0x54' 'M-T'
 | 
						|
assert_key 0x55 'U'	  -- 'Escape 0x55' 'M-U'
 | 
						|
assert_key 0x56 'V'	  -- 'Escape 0x56' 'M-V'
 | 
						|
assert_key 0x57 'W'	  -- 'Escape 0x57' 'M-W'
 | 
						|
assert_key 0x58 'X'	  -- 'Escape 0x58' 'M-X'
 | 
						|
assert_key 0x59 'Y'	  -- 'Escape 0x59' 'M-Y'
 | 
						|
assert_key 0x5A 'Z'	  -- 'Escape 0x5A' 'M-Z'
 | 
						|
assert_key 0x5B '['	  -- 'Escape 0x5B' 'M-['
 | 
						|
assert_key 0x5C "\\"	  -- 'Escape 0x5C' "M-\\"
 | 
						|
assert_key 0x5D ']'	  -- 'Escape 0x5D' 'M-]'
 | 
						|
assert_key 0x5E '^'	  -- 'Escape 0x5E' 'M-^'
 | 
						|
assert_key 0x5F '_'	  -- 'Escape 0x5F' 'M-_'
 | 
						|
assert_key 0x60 '`'	  -- 'Escape 0x60' 'M-`'
 | 
						|
assert_key 0x61 'a'	  -- 'Escape 0x61' 'M-a'
 | 
						|
assert_key 0x62 'b'	  -- 'Escape 0x62' 'M-b'
 | 
						|
assert_key 0x63 'c'	  -- 'Escape 0x63' 'M-c'
 | 
						|
assert_key 0x64 'd'	  -- 'Escape 0x64' 'M-d'
 | 
						|
assert_key 0x65 'e'	  -- 'Escape 0x65' 'M-e'
 | 
						|
assert_key 0x66 'f'	  -- 'Escape 0x66' 'M-f'
 | 
						|
assert_key 0x67 'g'	  -- 'Escape 0x67' 'M-g'
 | 
						|
assert_key 0x68 'h'	  -- 'Escape 0x68' 'M-h'
 | 
						|
assert_key 0x69 'i'	  -- 'Escape 0x69' 'M-i'
 | 
						|
assert_key 0x6A 'j'	  -- 'Escape 0x6A' 'M-j'
 | 
						|
assert_key 0x6B 'k'	  -- 'Escape 0x6B' 'M-k'
 | 
						|
assert_key 0x6C 'l'	  -- 'Escape 0x6C' 'M-l'
 | 
						|
assert_key 0x6D 'm'	  -- 'Escape 0x6D' 'M-m'
 | 
						|
assert_key 0x6E 'n'	  -- 'Escape 0x6E' 'M-n'
 | 
						|
assert_key 0x6F 'o'	  -- 'Escape 0x6F' 'M-o'
 | 
						|
assert_key 0x70 'p'	  -- 'Escape 0x70' 'M-p'
 | 
						|
assert_key 0x71 'q'	  -- 'Escape 0x71' 'M-q'
 | 
						|
assert_key 0x72 'r'	  -- 'Escape 0x72' 'M-r'
 | 
						|
assert_key 0x73 's'	  -- 'Escape 0x73' 'M-s'
 | 
						|
assert_key 0x74 't'	  -- 'Escape 0x74' 'M-t'
 | 
						|
assert_key 0x75 'u'	  -- 'Escape 0x75' 'M-u'
 | 
						|
assert_key 0x76 'v'	  -- 'Escape 0x76' 'M-v'
 | 
						|
assert_key 0x77 'w'	  -- 'Escape 0x77' 'M-w'
 | 
						|
assert_key 0x78 'x'	  -- 'Escape 0x78' 'M-x'
 | 
						|
assert_key 0x79 'y'	  -- 'Escape 0x79' 'M-y'
 | 
						|
assert_key 0x7A 'z'	  -- 'Escape 0x7A' 'M-z'
 | 
						|
assert_key 0x7B '{'	  -- 'Escape 0x7B' 'M-{'
 | 
						|
assert_key 0x7C '|'	  -- 'Escape 0x7C' 'M-|'
 | 
						|
assert_key 0x7D '}'	  -- 'Escape 0x7D' 'M-}'
 | 
						|
assert_key 0x7E '~'	  -- 'Escape 0x7E' 'M-~'
 | 
						|
assert_key 0x7F 'BSpace'  -- 'Escape 0x7F' 'M-BSpace'
 | 
						|
 | 
						|
# Numeric keypad
 | 
						|
assert_key 'Escape OM' 'KPEnter' -- 'Escape Escape OM' 'M-KPEnter'
 | 
						|
assert_key 'Escape Oj' 'KP*'	 -- 'Escape Escape Oj' 'M-KP*'
 | 
						|
assert_key 'Escape Ok' 'KP+'	 -- 'Escape Escape Ok' 'M-KP+'
 | 
						|
assert_key 'Escape Om' 'KP-'	 -- 'Escape Escape Om' 'M-KP-'
 | 
						|
assert_key 'Escape On' 'KP.'	 -- 'Escape Escape On' 'M-KP.'
 | 
						|
assert_key 'Escape Oo' 'KP/'	 -- 'Escape Escape Oo' 'M-KP/'
 | 
						|
assert_key 'Escape Op' 'KP0'	 -- 'Escape Escape Op' 'M-KP0'
 | 
						|
assert_key 'Escape Oq' 'KP1'	 -- 'Escape Escape Oq' 'M-KP1'
 | 
						|
assert_key 'Escape Or' 'KP2'	 -- 'Escape Escape Or' 'M-KP2'
 | 
						|
assert_key 'Escape Os' 'KP3'	 -- 'Escape Escape Os' 'M-KP3'
 | 
						|
assert_key 'Escape Ot' 'KP4'	 -- 'Escape Escape Ot' 'M-KP4'
 | 
						|
assert_key 'Escape Ou' 'KP5'	 -- 'Escape Escape Ou' 'M-KP5'
 | 
						|
assert_key 'Escape Ov' 'KP6'	 -- 'Escape Escape Ov' 'M-KP6'
 | 
						|
assert_key 'Escape Ow' 'KP7'	 -- 'Escape Escape Ow' 'M-KP7'
 | 
						|
assert_key 'Escape Ox' 'KP8'	 -- 'Escape Escape Ox' 'M-KP8'
 | 
						|
assert_key 'Escape Oy' 'KP9'	 -- 'Escape Escape Oy' 'M-KP9'
 | 
						|
 | 
						|
# Arrow keys
 | 
						|
assert_key 'Escape OA' 'Up'    -- 'Escape Escape OA' 'M-Up'
 | 
						|
assert_key 'Escape OB' 'Down'  -- 'Escape Escape OB' 'M-Down'
 | 
						|
assert_key 'Escape OC' 'Right' -- 'Escape Escape OC' 'M-Right'
 | 
						|
assert_key 'Escape OD' 'Left'  -- 'Escape Escape OD' 'M-Left'
 | 
						|
 | 
						|
assert_key 'Escape [A' 'Up'    -- 'Escape Escape [A' 'M-Up'
 | 
						|
assert_key 'Escape [B' 'Down'  -- 'Escape Escape [B' 'M-Down'
 | 
						|
assert_key 'Escape [C' 'Right' -- 'Escape Escape [C' 'M-Right'
 | 
						|
assert_key 'Escape [D' 'Left'  -- 'Escape Escape [D' 'M-Left'
 | 
						|
 | 
						|
# Other xterm keys
 | 
						|
assert_key 'Escape OH' 'Home' -- 'Escape Escape OH' 'M-Home'
 | 
						|
assert_key 'Escape OF' 'End'  -- 'Escape Escape OF' 'M-End'
 | 
						|
 | 
						|
assert_key 'Escape [H' 'Home' -- 'Escape Escape [H' 'M-Home'
 | 
						|
assert_key 'Escape [F' 'End'  -- 'Escape Escape [F' 'M-End'
 | 
						|
 | 
						|
# rxvt arrow keys
 | 
						|
assert_key 'Escape Oa' 'C-Up'
 | 
						|
assert_key 'Escape Ob' 'C-Down'
 | 
						|
assert_key 'Escape Oc' 'C-Right'
 | 
						|
assert_key 'Escape Od' 'C-Left'
 | 
						|
assert_key 'Escape [a' 'S-Up'
 | 
						|
assert_key 'Escape [b' 'S-Down'
 | 
						|
assert_key 'Escape [c' 'S-Right'
 | 
						|
assert_key 'Escape [d' 'S-Left'
 | 
						|
 | 
						|
# rxvt function keys
 | 
						|
assert_key 'Escape [11~' 'F1'
 | 
						|
assert_key 'Escape [12~' 'F2'
 | 
						|
assert_key 'Escape [13~' 'F3'
 | 
						|
assert_key 'Escape [14~' 'F4'
 | 
						|
assert_key 'Escape [15~' 'F5'
 | 
						|
assert_key 'Escape [17~' 'F6'
 | 
						|
assert_key 'Escape [18~' 'F7'
 | 
						|
assert_key 'Escape [19~' 'F8'
 | 
						|
assert_key 'Escape [20~' 'F9'
 | 
						|
assert_key 'Escape [21~' 'F10'
 | 
						|
assert_key 'Escape [23~' 'F11'
 | 
						|
assert_key 'Escape [24~' 'F12'
 | 
						|
 | 
						|
# With TERM=screen, these will be seen as F11 and F12
 | 
						|
# assert_key 'Escape [23~' 'S-F1'
 | 
						|
# assert_key 'Escape [24~' 'S-F2'
 | 
						|
assert_key 'Escape [25~' 'S-F3'
 | 
						|
assert_key 'Escape [26~' 'S-F4'
 | 
						|
assert_key 'Escape [28~' 'S-F5'
 | 
						|
assert_key 'Escape [29~' 'S-F6'
 | 
						|
assert_key 'Escape [31~' 'S-F7'
 | 
						|
assert_key 'Escape [32~' 'S-F8'
 | 
						|
assert_key 'Escape [33~' 'S-F9'
 | 
						|
assert_key 'Escape [34~' 'S-F10'
 | 
						|
assert_key 'Escape [23$' 'S-F11'
 | 
						|
assert_key 'Escape [24$' 'S-F12'
 | 
						|
 | 
						|
assert_key 'Escape [11^' 'C-F1'
 | 
						|
assert_key 'Escape [12^' 'C-F2'
 | 
						|
assert_key 'Escape [13^' 'C-F3'
 | 
						|
assert_key 'Escape [14^' 'C-F4'
 | 
						|
assert_key 'Escape [15^' 'C-F5'
 | 
						|
assert_key 'Escape [17^' 'C-F6'
 | 
						|
assert_key 'Escape [18^' 'C-F7'
 | 
						|
assert_key 'Escape [19^' 'C-F8'
 | 
						|
assert_key 'Escape [20^' 'C-F9'
 | 
						|
assert_key 'Escape [21^' 'C-F10'
 | 
						|
assert_key 'Escape [23^' 'C-F11'
 | 
						|
assert_key 'Escape [24^' 'C-F12'
 | 
						|
 | 
						|
assert_key 'Escape [11@' 'C-S-F1'
 | 
						|
assert_key 'Escape [12@' 'C-S-F2'
 | 
						|
assert_key 'Escape [13@' 'C-S-F3'
 | 
						|
assert_key 'Escape [14@' 'C-S-F4'
 | 
						|
assert_key 'Escape [15@' 'C-S-F5'
 | 
						|
assert_key 'Escape [17@' 'C-S-F6'
 | 
						|
assert_key 'Escape [18@' 'C-S-F7'
 | 
						|
assert_key 'Escape [19@' 'C-S-F8'
 | 
						|
assert_key 'Escape [20@' 'C-S-F9'
 | 
						|
assert_key 'Escape [21@' 'C-S-F10'
 | 
						|
assert_key 'Escape [23@' 'C-S-F11'
 | 
						|
assert_key 'Escape [24@' 'C-S-F12'
 | 
						|
 | 
						|
# Focus tracking
 | 
						|
assert_key 'Escape [I' 'FocusIn'
 | 
						|
assert_key 'Escape [O' 'FocusOut'
 | 
						|
 | 
						|
# Paste keys
 | 
						|
assert_key 'Escape [200~' 'PasteStart'
 | 
						|
assert_key 'Escape [201~' 'PasteEnd'
 | 
						|
 | 
						|
assert_key 'Escape [Z' 'BTab'
 | 
						|
 | 
						|
assert_extended_key () {
 | 
						|
	code=$1
 | 
						|
	key_name=$2
 | 
						|
 | 
						|
	assert_key "Escape [${code};5u" "C-$key_name"
 | 
						|
	assert_key "Escape [${code};7u" "M-C-$key_name"
 | 
						|
}
 | 
						|
 | 
						|
# Extended keys
 | 
						|
# assert_extended_key 65 'A'
 | 
						|
# assert_extended_key 66 'B'
 | 
						|
# assert_extended_key 67 'C'
 | 
						|
# assert_extended_key 68 'D'
 | 
						|
# assert_extended_key 69 'E'
 | 
						|
# assert_extended_key 70 'F'
 | 
						|
# assert_extended_key 71 'G'
 | 
						|
# assert_extended_key 72 'H'
 | 
						|
# assert_extended_key 73 'I'
 | 
						|
# assert_extended_key 74 'J'
 | 
						|
# assert_extended_key 75 'K'
 | 
						|
# assert_extended_key 76 'L'
 | 
						|
# assert_extended_key 77 'M'
 | 
						|
# assert_extended_key 78 'N'
 | 
						|
# assert_extended_key 79 'O'
 | 
						|
# assert_extended_key 80 'P'
 | 
						|
# assert_extended_key 81 'Q'
 | 
						|
# assert_extended_key 82 'R'
 | 
						|
# assert_extended_key 83 'S'
 | 
						|
# assert_extended_key 84 'T'
 | 
						|
# assert_extended_key 85 'U'
 | 
						|
# assert_extended_key 86 'V'
 | 
						|
# assert_extended_key 87 'W'
 | 
						|
# assert_extended_key 88 'X'
 | 
						|
# assert_extended_key 89 'Y'
 | 
						|
# assert_extended_key 90 'Z'
 | 
						|
# assert_extended_key 123 '{'
 | 
						|
# assert_extended_key 124 '|'
 | 
						|
# assert_extended_key 125 '}'
 | 
						|
 | 
						|
# assert_key 'Escape [105;5u' 'C-i'
 | 
						|
# assert_key 'Escape [73;5u' 'C-I'
 | 
						|
 | 
						|
# assert_key 'Escape [109;5u' 'C-m'
 | 
						|
# assert_key 'Escape [77;5u' 'C-M'
 | 
						|
 | 
						|
# assert_key 'Escape [91;5u' 'C-['
 | 
						|
assert_key 'Escape [123;5u' 'C-{'
 | 
						|
 | 
						|
# assert_key 'Escape [64;5u' 'C-@'
 | 
						|
 | 
						|
assert_key 'Escape [32;2u' 'S-Space'
 | 
						|
# assert_key 'Escape [32;6u' 'C-S-Space'
 | 
						|
 | 
						|
assert_key 'Escape [9;5u' 'C-Tab'
 | 
						|
assert_key 'Escape [1;5Z' 'C-S-Tab'
 | 
						|
 | 
						|
$TMUX kill-server 2>/dev/null
 | 
						|
$TMUX2 kill-server 2>/dev/null
 | 
						|
 | 
						|
exit $exit_status
 |