Cursor ShapesYou can set variables to modify the text cursor shape Epsilon displays in different situations. Epsilon gets the cursor shape from one of four variables, depending upon whether or not Epsilon is in overwrite mode, and whether or not the cursor is positioned in virtual space. (See the description of the virtual-space variable in Simple Movement Commands.) These variables only apply in text mode, not in Epsilon for Windows or under X11 in Unix, and in some environments have no effect.
Each of these variables contains a code that specifies the top and bottom edges of the cursor, such as 3006, which specifies a cursor that begins on scan line 3 and extends to scan line 6 on a character box. The topmost scan line is scan line 0.
Scan lines above 50 in a cursor shape code are interpreted differently. A scan line number of 99 indicates the highest-numbered valid scan line (just below the character), 98 indicates the line above that, and so forth. For example, a cursor shape like 1098 produces a cursor that extends from scan line 1 to the next-to-last scan line, one scan line smaller at top and bottom than a full block cursor.
Each variable contains a code that specifies the height and width of
the caret, as well as a vertical offset, each expressed as a
percentage of the character dimensions. Values close to
All measurements are from the top left corner of the character. A nonzero vertical offset moves the caret down from its usual starting point at the top left corner.
In EEL programs, you can use the GUI_CURSOR_SHAPE( ) macro to
combine the three values into the appropriate code; it simply
multiplies the height by 1000 and the offset by 1,000,000, and adds
both to the width. So the default Windows caret shape of
The X11 version of Epsilon can only change the cursor shape if you've provided an Epsilon.cursorstyle:1 resource (see Unix Installation).