TODO: selection_beg/end should set screen, or so
TODO: - upgrade to libev-xx
TODO: -rv interacts badly with popups.
-TODO: -letterspace option
- port to glibc-2.10 changes (strchr etc. returning const char *
in C++), based on patches by Milos Jakubicek and Oliver Mader.
- the binary search algorithm to find precomposed characters
was faulty, skipping some possible combinations (found by
Mikachu).
+ - new -letterspace option, patch by Mark H. Wilkinson.
- enable --mlock option for urxvt with frills on
systems supporting it (patch by Russell Harmon).
- urxvt did not compile without frills enabled
Compile \fIfrills\fR: Lines (pixel height) to insert between each row of
the display. Useful to work around font rendering problems; resource
\&\fBlineSpace\fR.
+.IP "\fB\-letsp\fR \fInumber\fR" 4
+.IX Item "-letsp number"
+Compile \fIfrills\fR: Amount to adjust the computed character width by
+to control overall letter spacing. Negative values will tighten up the
+letter spacing, positive values will space letters out more. Useful to
+work around odd font metrics; resource \&\fBletterSpace\fR.
.IP "\fB\-tn\fR \fItermname\fR" 4
.IX Item "-tn termname"
This option specifies the name of the terminal type to be set in the
Blink the cursor; resource B<cursorBlink>.
+=item B<-uc>|B<+uc>
+
+Make the cursor underlined; resource B<cursorUnderline>.
+
=item B<-iconic>
Start iconified, if the window manager supports that option.
B<True>: blink the cursor. B<False>: do not blink the cursor [default];
option B<-bc>.
+=item B<cursorUnderline:> I<boolean>
+
+B<True>: Make the cursor underlined. B<False>: Make the cursor a box [default];
+option B<-uc>.
+
=item B<pointerBlank:> I<boolean>
B<True>: blank the pointer when a key is pressed or after a set number
tripleclickwords (-tcw)
settable insecure mode (-insecure)
keysym remapping support
- cursor blinking and underline cursor (-cb, -uc)
+ cursor blinking and underline cursor (-bc, -uc)
XEmbed support (-embed)
user-pty (-pty-fd)
hold on exit (-hold)
#define LINESPACE 0
/*
+ * Default number of extra dots between columns
+ */
+#define LETTERSPACE 0
+
+/*
* Default number of lines in the scrollback buffer
*/
#define SAVELINES 1000
int_bwidth = INTERNALBORDERWIDTH;
ext_bwidth = EXTERNALBORDERWIDTH;
lineSpace = LINESPACE;
+ letterSpace = LETTERSPACE;
saveLines = SAVELINES;
refresh_type = SLOW_REFRESH;
if (rs[Rs_lineSpace] && (i = atoi (rs[Rs_lineSpace])) >= 0)
lineSpace = min (i, std::numeric_limits<int16_t>::max ());
+
+ if (rs[Rs_letterSpace])
+ letterSpace = atoi (rs[Rs_letterSpace]);
#endif
#ifdef POINTER_BLANK
prop = (*fs)[1]->properties ();
prop.height += lineSpace;
+ prop.width += letterSpace;
fs->set_prop (prop, false);
def (int_bwidth)
def (borderLess)
def (lineSpace)
+ def (letterSpace)
def (cursorUnderline)
def (urgentOnBell)
#endif
int int_bwidth; /* internal border width */
int ext_bwidth; /* external border width */
int lineSpace; /* number of extra pixels between rows */
+ int letterSpace; /* number of extra pixels between columns */
int saveLines; /* number of lines that fit in scrollback */
int total_rows; /* total number of rows in this terminal */
int term_start; /* term lines start here */
#define TERM_OFFSET(sym) offsetof (TermWin_t, sym)
-#define TERM_OFFSET_width TERM_OFFSET(width)
-#define TERM_OFFSET_height TERM_OFFSET(height)
-#define TERM_OFFSET_fwidth TERM_OFFSET(fwidth)
-#define TERM_OFFSET_fheight TERM_OFFSET(fheight)
-#define TERM_OFFSET_fbase TERM_OFFSET(fbase)
-#define TERM_OFFSET_nrow TERM_OFFSET(nrow)
-#define TERM_OFFSET_ncol TERM_OFFSET(ncol)
-#define TERM_OFFSET_focus TERM_OFFSET(focus)
-#define TERM_OFFSET_mapped TERM_OFFSET(mapped)
-#define TERM_OFFSET_int_bwidth TERM_OFFSET(int_bwidth)
-#define TERM_OFFSET_ext_bwidth TERM_OFFSET(ext_bwidth)
-#define TERM_OFFSET_lineSpace TERM_OFFSET(lineSpace)
-#define TERM_OFFSET_saveLines TERM_OFFSET(saveLines)
-#define TERM_OFFSET_total_rows TERM_OFFSET(total_rows)
-#define TERM_OFFSET_top_row TERM_OFFSET(top_row)
+#define TERM_OFFSET_width TERM_OFFSET(width)
+#define TERM_OFFSET_height TERM_OFFSET(height)
+#define TERM_OFFSET_fwidth TERM_OFFSET(fwidth)
+#define TERM_OFFSET_fheight TERM_OFFSET(fheight)
+#define TERM_OFFSET_fbase TERM_OFFSET(fbase)
+#define TERM_OFFSET_nrow TERM_OFFSET(nrow)
+#define TERM_OFFSET_ncol TERM_OFFSET(ncol)
+#define TERM_OFFSET_focus TERM_OFFSET(focus)
+#define TERM_OFFSET_mapped TERM_OFFSET(mapped)
+#define TERM_OFFSET_int_bwidth TERM_OFFSET(int_bwidth)
+#define TERM_OFFSET_ext_bwidth TERM_OFFSET(ext_bwidth)
+#define TERM_OFFSET_lineSpace TERM_OFFSET(lineSpace)
+#define TERM_OFFSET_letterSpace TERM_OFFSET(letterSpace)
+#define TERM_OFFSET_saveLines TERM_OFFSET(saveLines)
+#define TERM_OFFSET_total_rows TERM_OFFSET(total_rows)
+#define TERM_OFFSET_top_row TERM_OFFSET(top_row)
int
rxvt_term::width ()
ALIAS:
- width = TERM_OFFSET_width
- height = TERM_OFFSET_height
- fwidth = TERM_OFFSET_fwidth
- fheight = TERM_OFFSET_fheight
- fbase = TERM_OFFSET_fbase
- nrow = TERM_OFFSET_nrow
- ncol = TERM_OFFSET_ncol
- focus = TERM_OFFSET_focus
- mapped = TERM_OFFSET_mapped
- int_bwidth = TERM_OFFSET_int_bwidth
- ext_bwidth = TERM_OFFSET_ext_bwidth
- lineSpace = TERM_OFFSET_lineSpace
- saveLines = TERM_OFFSET_saveLines
- total_rows = TERM_OFFSET_total_rows
- top_row = TERM_OFFSET_top_row
+ width = TERM_OFFSET_width
+ height = TERM_OFFSET_height
+ fwidth = TERM_OFFSET_fwidth
+ fheight = TERM_OFFSET_fheight
+ fbase = TERM_OFFSET_fbase
+ nrow = TERM_OFFSET_nrow
+ ncol = TERM_OFFSET_ncol
+ focus = TERM_OFFSET_focus
+ mapped = TERM_OFFSET_mapped
+ int_bwidth = TERM_OFFSET_int_bwidth
+ ext_bwidth = TERM_OFFSET_ext_bwidth
+ lineSpace = TERM_OFFSET_lineSpace
+ letterSpace = TERM_OFFSET_letterSpace
+ saveLines = TERM_OFFSET_saveLines
+ total_rows = TERM_OFFSET_total_rows
+ top_row = TERM_OFFSET_top_row
CODE:
RETVAL = *(int *)((char *)THIS + ix);
OUTPUT:
borderLess chdir color cursorBlink cursorUnderline cutchars delete_key
display_name embed ext_bwidth fade font geometry hold iconName
imFont imLocale inputMethod insecure int_bwidth intensityStyles
- italicFont jumpScroll lineSpace loginShell mapAlert meta8 modifier
- mouseWheelScrollPage name override_redirect pastableTabs path perl_eval
- perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay
+ italicFont jumpScroll lineSpace letterSpace loginShell mapAlert meta8
+ modifier mouseWheelScrollPage name override_redirect pastableTabs path
+ perl_eval perl_ext_1 perl_ext_2 perl_lib pointerBlank pointerBlankDelay
preeditType print_pipe pty_fd reverseVideo saveLines scrollBar
scrollBar_align scrollBar_floating scrollBar_right scrollBar_thickness
scrollTtyKeypress scrollTtyOutput scrollWithBuffer scrollstyle
STRG (Rs_int_bwidth, "internalBorder", "b", "number", "internal border in pixels"),
BOOL (Rs_borderLess, "borderLess", "bl", Opt_borderLess, 0, "borderless window"),
STRG (Rs_lineSpace, "lineSpace", "lsp", "number", "number of extra pixels between rows"),
+ STRG (Rs_letterSpace, "letterSpace", "letsp", "number", "letter spacing adjustment"),
#endif
#ifdef BUILTIN_GLYPHS
BOOL (Rs_skipBuiltinGlyphs, "skipBuiltinGlyphs", "sbg", Opt_skipBuiltinGlyphs, 0, "do not use internal glyphs"),