Backspace sends DEL instead of ^H.
[spft.git] / spft.1
blobb6fdae088304111c6809e661d9bda0c48054b4b4
1 .TH spft 1
2 .SH NAME
3 spft - simple proportional-font terminal
5 .SH SYNOPSIS
6 .B spft
7 .RB [ \-t
8 .IR title
10 .B title:
11 .IR title ]
12 .RB [ working-directory:
13 .IR dir ]
14 .RB [ \-g
15 .IR geometry |
16 .B geometry:
17 .IR geometry ]
18 .PP
19 Keyword-style arguments can also be given with the traditional double-dash syntax
20 (eg. "--title" instead of "title:").
22 .SH DESCRIPTION
23 .B spft
24 is a simple terminal emulator that supports proportional (that is, non-monospace) fonts.
26 .SH KEYS
27 .TP
28 .B Shift-PageUp, Shift-PageDown
29 Scroll up and down in the history.
30 .TP
31 .B Shift-Insert
32 Re-read the settings file and immediately use the new settings.
33 .TP
34 .B Alt-Plus, Alt-Minus
35 Adjust font size.
37 .SH CONFIGURATION
38 spft can be configured using the \(lq$XDG_CONFIG_HOME/spft/settings\(rq file
39 (\(lq~/.config/spft/settings\(rq by default).  In this file, \(lq#\(rq
40 introduces a comment that runs to the end of the line.  Everything else is a
41 series of settings, in the form
42 .RI \(lq name
44 .IR value \(rq.
45 These settings can optionally be separated by commas or semicolons, but this is not necessary.
46 For settings that use a string value, the string must be enclosed in double or single quotes.
47 For settings that use a boolean value, the setting must be either "true" or "false" (without quotes).
48 .TP
49 .B font
50 A string representing the font to use, in the FontConfig format.  See
51 <https://www.freedesktop.org/software/fontconfig/fontconfig-user.html#AEN36>.
52 .TP
53 .B line_drawing_font
54 If this is set (not empty), it's a string representing the font to use for the
55 DEC Line Drawing characters.  You can set this if your main font doesn't
56 include the Unicode box-drawing characters.
57 .TP
58 .B default_foreground_color, default_background_color
59 Numbers representing these colors.  Small numbers are ANSI colors, so if you
60 want to change to a dark theme, you can use \(lqdefault_foreground_color = 15,
61 default_background_color = 0\(rq.  Numbers with the high bit set are RGB colors
62 in the form 0x80rrggbb.
63 .TP
64 .B term_name
65 A string that becomes the $TERM.  Defaults to \(lqxterm\(rq.
66 .TP
67 .B average_character_width
68 A floating-point number representing an estimate of the width of the average
69 character used in the font, as a fraction of the width of the capital
70 \(lqM\(rq.  So it should usually be between 0.0 and 1.0.
71 This affects how many columns programs think they have available.  If this is
72 too large, you'll have a lot of unused space on the right side of the window.
73 If it's too small, you can have characters (and even the cursor) running off
74 the right edge of the screen where you can't see them.
75 .TP
76 .B double_click_ms
77 The maximum time, in milliseconds, for two clicks to be considered a double- or
78 triple-click.
79 .TP
80 .B word_separator_characters, additional_word_separator_characters
81 When double-clicking to select word-by-word, these are the characters that
82 considered not to be part of a word.  You can entirely replace the defaults by
83 setting \(lqword_separator_characters\(rq, or add to them by setting
84 \(lqadditional_word_separator_characters\(rq.
85 .TP
86 .B window_title
87 The title of the window.
88 .TP
89 .B tab_width
90 The tab width for tab-stop (that is, non-elastic) tabs, in pixels.
91 .TP
92 .B column_separation
93 The space between columns when using elastic tabs, in pixels.
94 .TP
95 .B synthetic_tab_spaces
96 Imagine you're editing a file in Vim.  Even if the lines in your file are
97 indented using tabs, Vim will use some number of spaces (based on its 'tabstop'
98 setting) to show them on the screen, because it thinks of the screen as a grid
99 of characters.  If \(lqsynthetic_tab_spaces\(rq is greater than zero, spft will
100 treat that number of spaces at the beginning of a line as a \(lqsynthetic
101 tab\(rq, and display them as being \(lqtab_width\(rq pixels wide (by widening
102 the last space).  Set \(lqsynthetic_tab_spaces\(rq to the same value as
103 Vim's 'tabstop' and 'shiftwidth' settings to have indentation show up the way
104 you like it based on how you set \(lqtab_width\(rq.  Defaults to zero, meaning
105 \(lqsynthetic tabs\(rq are disabled.
107 .B geometry
108 The window geometry, as per 
109 .BR XParseGeometry (3).
110 Note that the width and height units are (approximate) columns and lines, like
111 other terminal programs, not pixels.
113 .B border
114 The window border (if any), in pixels.
116 .B default_auto_wrap
117 A boolean indicating whether "auto-wrap" defaults to being on or off.  If not
118 specified, this defaults to being on, because readline (and hence bash) assumes
119 that auto-wrap is on without explicitly sending the code to turn it on.
121 .B font_size_increment
122 A floating-point number indicating how much to increment or decrement the font
123 size (in pixels) when using the Alt-Plus or Alt-Minus keys.
126 .SH ELASTIC TABS
127 spft supports elastic tabs, enabled by a pair of non-standard "DEC Private
128 Mode" escape sequences.  "\\x1B[?5001h" signals that the current cursor line
129 starts group of lines with elastic tabs.  "\\x1B[?5001l" ends that group of
130 lines; the current cursor line will not be part of it.  There are also expanded
131 versions of these: "\\x1B[?5002;Nh", where N is the number of columns that will
132 be right-justified; and "\\x1B?5002;1l" which ends the group, but includes the
133 line with the cursor (useful if you're right-justifying columns in a single
134 line).
138 .SH SEE ALSO
139 .BR mlterm (1),
140 .BR st (1)