| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- ReGIS on the command line (xterm / contour)
- ==============================================
- ReGIS travels inside a DCS string. Sending the introducer IS the
- switch: no xterm flag starts you in graphics mode, the application
- (or printf) enters it, ST (ESC \) leaves it.
- Enter fresh (reset state + clear canvas):
- printf '\033P1pS(E)\033\\'
- Enter keeping previous state (resume):
- printf '\033Pp'
- Leave graphics mode:
- printf '\033\\'
- One-liners (each is a complete DCS ... ST picture):
- # diagonal line
- printf '\033PpP[100,100]V[400,300]\033\\'
- # rectangle
- printf '\033PpP[100,100]V[400,100]V[400,300]V[100,300]V[100,100]\033\\'
- # circle, radius 100, centred at cursor
- printf '\033PpP[400,240]C[500,240]\033\\'
- # text, double-size cell
- printf "\033PpP[100,100]T(S2)'Hello, ReGIS'\033\\"
- # clear + reset coordinate window
- printf '\033PpS(E)S(A[0,0][799,479])\033\\'
- Canvas: 800x480, origin top-left, Y down. [x,y] absolute,
- [+dx,-dy] relative, [x] X-only, [,y] Y-only, [] current pos.
- Detecting support: ask Device Attributes and look for ";3"
- (3 = ReGIS, 4 = Sixel):
- printf '\033[c' # e.g. ESC [ ? 65 ; ... ; 3 ; 4 ; ... c
- xterm caveat: ReGIS exists only in xterm built with
- --enable-regis-graphics; stock distro builds often omit it.
- Check yours with:
- strings $(which xterm) | grep -i regis
- appres XTerm | grep -i regis # regisScreenSize ...
- No match (as on this machine's xterm 398) means no ReGIS:
- use contour, or rebuild xterm with the flag. Related resource:
- regisScreenSize (default 800x480 window), privateColorRegisters.
- Programmatically (this repo, Modula-2): see Regis.def +
- tests/TestRegisDemo.mod, TestRegisColor.mod, TestRegisMacro.mod:
- Regis.Enter;
- Regis.Rect(50, 50, 750, 430);
- Regis.MoveTo(300, 445);
- Regis.TextOut("hi");
- Regis.Exit;
|