1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/sh
# pt-imgcat — Display inline images in par-term
#
# Uses iTerm2 OSC 1337 File protocol with inline=1 to display images
# directly in the terminal.
#
# Usage:
# pt-imgcat [options] <file>
# pt-imgcat [options] - # read from stdin
# cat image.png | pt-imgcat
#
# Options:
# --width <N> Width in cells or pixels (e.g., 80, 400px)
# --height <N> Height in cells or pixels
# --preserve-aspect-ratio Maintain aspect ratio (default: yes)
# --no-preserve-aspect-ratio Allow stretching
#
# Works over SSH on any remote host. Only requires: base64, wc, printf, cat, basename
# Detect tmux/screen for passthrough wrapping
# Print escape sequence with optional tmux passthrough
# Defaults
_width=""
_height=""
_preserve_aspect="1"
_file=""
# Parse options
while [; do
done
# Determine input source
_from_stdin=0
if [; then
if [; then
fi
_from_stdin=1
_file="-"
elif [; then
_from_stdin=1
fi
# Build OSC parameters
_params="inline=1"
if [; then
_params=";width="
fi
if [; then
_params=";height="
fi
if [; then
_params=";preserveAspectRatio=0"
fi
# Send the image
if [; then
_b64name=
_b64data=
_size=
else
if [; then
fi
if [; then
fi
_basename=
_b64name=
_b64data=
_size=
fi