Skip to content

Instantly share code, notes, and snippets.

@ganzuul
Last active September 1, 2018 22:24
Show Gist options
  • Save ganzuul/27d99acb0255d46af9ea6c204fedecc8 to your computer and use it in GitHub Desktop.
Save ganzuul/27d99acb0255d46af9ea6c204fedecc8 to your computer and use it in GitHub Desktop.
ReGIS pm3d bash script
#!/bin/bash
#
# For reference:
# VT330/VT340 Programmer Reference Manual
# Volume 2: Graphics Programming
#
#
# This script plots vector graphics in the terminal emulator mlterm when mlterm is compiled with ./configure --with-tools
# The graph is generated by gnuplot compiled with ./configure --with-regis
#
# The data was extracted from a strace of mlterm and cleaned of superflous \r\n's .
#
#
# The purpose of this exercise is to get tmux to play nice ReGIS. This is the extent of my progress.
printf "\033P1pS(I(R0G0B0))S(E)S(C0)S(E)T(A0)T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[321,228]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[321,228]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[106,140]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[321,228]v[]v[321,130]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[693,181]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[112,314]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[321,228]v[]v[315,231]P[88,312]T'-10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[199,329]v[]v[205,327]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[414,241]v[]v[408,243]P[185,325]T'-5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[292,342]v[]v[298,340]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[507,254]v[]v[501,256]P[278,338]T' 0'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[385,355]v[]v[391,352]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[600,266]v[]v[594,269]P[371,351]T' 5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[478,368]v[]v[484,365]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[687,282]P[458,363]T' 10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[478,368]v[]v[470,366]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[114,318]P[489,361]T'-10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[532,345]v[]v[524,344]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[160,294]v[]v[168,295]P[543,339]T'-5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[585,323]v[]v[578,322]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[214,272]v[]v[221,273]P[597,317]T' 0'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[639,301]v[]v[631,300]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[267,250]v[]v[275,251]P[650,295]T' 5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[685,278]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[321,228]v[]v[329,229]P[704,273]T' 10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,258]v[]v[112,258]P[59,248]T'-0.4'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,241]v[]v[112,241]P[59,231]T'-0.2'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,224]v[]v[112,224]P[77,214]T' 0'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,207]v[]v[112,207]P[59,198]T' 0.2'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,190]v[]v[112,190]P[59,181]T' 0.4'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,173]v[]v[112,173]P[59,164]T' 0.6'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,157]v[]v[112,157]P[59,148]T' 0.8'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,140]v[]v[112,140]P[77,131]T' 1'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[386,39]T'sin(sqrt(x**2+y**2))/sqrt(x**2+y**2)'W(I3)W(P1)P[107,217]v[]v[111,218]P[111,218]v[]v[115,218]P[115,218]v[]v[119,219]P[119,219]v[]v[122,220]P[122,220]v[]v[126,221]P[126,221]v[]v[130,222]P[130,222]v[]v[134,223]P[134,223]v[]v[138,224]P[138,224]v[]v[141,225]P[141,225]v[]v[145,227]P[145,227]v[]v[149,228]P[149,228]v[]v[153,229]P[153,229]v[]v[156,231]P[156,231]v[]v[160,232]P[160,232]v[]v[164,233]P[164,233]v[]v[168,234]P[168,234]v["
printf "\033\\"
@ganzuul
Copy link
Author

ganzuul commented Sep 1, 2018

This seems to actually work in tmux:

printf "\033Ptmux;\033\033P1pS(I(R0G0B0))S(E)S(C0)S(E)T(A0)T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[321,228]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[321,228]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[106,140]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[321,228]v[]v[321,130]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[693,181]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[112,314]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[321,228]v[]v[315,231]P[88,312]T'-10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[199,329]v[]v[205,327]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[414,241]v[]v[408,243]P[185,325]T'-5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[292,342]v[]v[298,340]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[507,254]v[]v[501,256]P[278,338]T' 0'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[385,355]v[]v[391,352]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[600,266]v[]v[594,269]P[371,351]T' 5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[478,368]v[]v[484,365]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[687,282]P[458,363]T' 10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[478,368]v[]v[470,366]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,317]v[]v[114,318]P[489,361]T'-10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[532,345]v[]v[524,344]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[160,294]v[]v[168,295]P[543,339]T'-5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[585,323]v[]v[578,322]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[214,272]v[]v[221,273]P[597,317]T' 0'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[639,301]v[]v[631,300]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[267,250]v[]v[275,251]P[650,295]T' 5'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[693,279]v[]v[685,278]W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[321,228]v[]v[329,229]P[704,273]T' 10'T(D0,S1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,258]v[]v[112,258]P[59,248]T'-0.4'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,241]v[]v[112,241]P[59,231]T'-0.2'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,224]v[]v[112,224]P[77,214]T' 0'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,207]v[]v[112,207]P[59,198]T' 0.2'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,190]v[]v[112,190]P[59,181]T' 0.4'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,173]v[]v[112,173]P[59,164]T' 0.6'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,157]v[]v[112,157]P[59,148]T' 0.8'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[106,140]v[]v[112,140]P[77,131]T' 1'W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)W(I2)W(P1)P[386,39]T'sin(sqrt(x**2+y**2))/sqrt(x**2+y**2)'W(I3)W(P1)P[107,217]v[]v[111,218]P[111,218]v[]v[115,218]P[115,218]v[]v[119,219]P[119,219]v[]v[122,220]P[122,220]v[]v[126,221]P[126,221]v[]v[130,222]P[130,222]v[]v[134,223]P[134,223]v[]v[138,224]P[138,224]v[]v[141,225]P[141,225]v[]v[145,227]P[145,227]v[]v[149,228]P[149,228]v[]v[153,229]P[153,229]v[]v[156,231]P[156,231]v[]v[160,232]P[160,232]v[]v[164,233]P[164,233]v[]v[168,234]P[168,234]v["

printf "\033\033\\"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment