Use rxvt_temp_buf in more places.
[dana/urxvt.git] / src / feature.h
1 /*
2  * File:        feature.h
3  *
4  * Compile-time configuration.
5  *-----------------------------------------------------------------------
6  * Copyright (c) 1997,1998 Oezguer Kesim <kesim@math.fu-berlin.de>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  *----------------------------------------------------------------------*/
23 #ifndef FEATURE_H
24 #define FEATURE_H
25
26 #ifndef X11USRLIBDIR
27 # define X11USRLIBDIR           "/usr/lib"
28 #endif
29 #ifndef X11LIBDIR
30 # define X11LIBDIR              X11USRLIBDIR "/X11"
31 #endif
32 #ifndef XAPPLOADDIR
33 # define XAPPLOADDIR            X11LIBDIR "/app-defaults"
34 # define XAPPLOADDIRLOCALE      X11LIBDIR "/%s/app-defaults"
35 #endif
36
37 /*-------------------------------SECURITY-------------------------------*/
38
39 /*
40  * Default mode to restore when releasing the PTS device. It is relaxed to be
41  * compatible with most systems, change it to a more secure value if your
42  * system supports it (0640 for example).
43  */
44 #define RESTORE_TTY_MODE 0666
45
46 /*
47  * Define if you want to use a separate process for pty/tty handling
48  * when running setuid/setgid. You need this when making it setuid/setgid.
49  */
50 #define PTYTTY_HELPER 1
51
52 /*-----------------------SCREEN OPTIONS AND COLOURS---------------------*/
53
54 /*
55  * NOTE:
56  *
57  * Some of these configuration options have not been tested within the new
58  * rxvt-unicode framework. Changing them should work, might have no effect,
59  * destroy your disks or have any other effects. You may freely try (and
60  * report bugs, too!), but don't _expect_ them to work.
61  */
62
63 /*
64  * The cursor blink interval, in seconds.
65  */
66 #define CURSOR_BLINK_INTERVAL 0.5
67
68 /*
69  * The text blink interval, in seconds.
70  */
71 #define TEXT_BLINK_INTERVAL CURSOR_BLINK_INTERVAL
72
73 /*
74  * Avoid enabling the colour cursor (-cr, cursorColor, cursorColor2)
75  */
76 /* #define NO_CURSORCOLOR */
77
78 /*
79  * Make colours match xterm colours instead of `traditional' rxvt colours
80  */
81 #define XTERM_COLORS
82
83 /*
84  * Disable separate colours for bold, underline and reverse video
85  */
86 /* #define NO_BOLD_UNDERLINE_REVERSE */
87
88 /*
89  * Define maximum possible columns and rows
90  */
91 #define MAX_COLS        10000
92 #define MAX_ROWS        10000
93
94 /*
95  * Define maximum possible savelines
96  */
97 #define MAX_SAVELINES   10000000
98
99 /*
100  * Define to remove support for XCopyArea () support.  XCopyArea () is useful
101  * for scrolling on non-local X displays
102  */
103 #define NO_SLOW_LINK_SUPPORT
104
105 /*
106  * Allow 80/132 mode switching on startup
107  */
108 /* #define ALLOW_132_MODE */
109
110 /*---------------------------------KEYS---------------------------------*/
111
112 /*
113  * Enable the keysym resource which allows you to define strings associated
114  * with various KeySyms (0xFF00 - 0xFFFF).
115  * Required by perl.
116  */
117 #if ENABLE_FRILLS || ENABLE_PERL
118 # define KEYSYM_RESOURCE
119 #endif
120
121 /*
122  * Modifier/s to use to allow up/down arrows and Prior/Next keys
123  * to scroll single or page-fulls
124  */
125 #define SCROLL_ON_SHIFT
126 /* #define SCROLL_ON_CTRL */
127 /* #define SCROLL_ON_META */
128
129 /*
130  * Allow scrolling with modifier+Up/Down keys, in addition
131  * to modifier+Prior/Next? (modifier is controlled with
132  * SCROLL_ON_* defines above.).
133  * Also for modifier+Home/End keys to move to top/bottom
134  */
135 /* #define SCROLL_ON_UPDOWN_KEYS */
136 /* #define SCROLL_ON_HOMEEND_KEYS */
137
138 /*
139  * Allow unshifted Next/Prior keys to scroll forward/back
140  * (in addition to shift+Next/shift+Prior)       --pjh
141  */
142 /* #define UNSHIFTED_SCROLLKEYS */
143
144 /* (Hops) Set to choose a number of lines of context between pages
145  *      (rather than a proportion (1/5) of savedlines buffer)
146  *      when paging the savedlines with SHIFT-{Prior,Next} keys.
147  */
148 #define PAGING_CONTEXT_LINES 1
149
150 /*
151  * Have either Ctrl+Tab or Mod4+Tab emit \e\t
152  * Useful when window manager grabs Alt+Tab   -- mg
153  */
154 /* #define CTRL_TAB_MAKES_META */
155 /* #define MOD4_TAB_MAKES_META */
156
157 /*--------------------------------MOUSE---------------------------------*/
158 /*
159  * Disable sending escape sequences (up, down, page up/down)
160  * from the scrollbar when XTerm mouse reporting is enabled
161  */
162 /* #define NO_SCROLLBAR_REPORT */
163
164 /*
165  * Have mouse reporting include double-click info for button1
166  */
167 /* #define MOUSE_REPORT_DOUBLECLICK */
168
169 /*
170  * Set delay between multiple click events [default: 500 milliseconds]
171  */
172 /* #define MULTICLICK_TIME 500 */
173
174 /*
175  * Time factor to slow down a `jumpy' mouse.  Motion isn't recognised until
176  * this long after the last mouse click [default: 50 milliseconds]
177  */
178 #define MOUSE_THRESHOLD         50
179
180 /*
181  * Set delay periods for continuous scrolling with scrollbar buttons
182  */
183 /* #define SCROLLBAR_INITIAL_DELAY 0.33 */
184 /* #define SCROLLBAR_CONTINUOUS_DELAY 0.05 */
185
186 /*
187  * The speed of selection scrolling is proportional to the distance
188  * the mouse pointer is out of the text window.  This is the max
189  * number of lines to scroll at a time.
190  */
191 #define SELECTION_SCROLL_MAX_LINES 8
192
193 /*
194  * The number of lines (measured in character's heights, not pixels)
195  * the pointer must be out of the window for each increase in the
196  * number of lines scrolled.
197  */
198 #define SELECTION_SCROLL_LINE_SPEEDUP 3
199
200 /*--------------------------------MISC----------------------------------*/
201 /*
202  * Only log in wtmp and lastlog files when we're a login shell (-ls option)
203  */
204 #define LOG_ONLY_ON_LOGIN
205
206 /*--------------------------------BELL----------------------------------*/
207 /*
208  * Disable all bell indications
209  */
210 /* #define NO_BELL */
211
212 /*
213  * Disable automatic de-iconify when a bell is received
214  */
215 /* #define NO_MAPALERT */
216
217 /*
218  * Have mapAlert behaviour selectable with mapAlert resource
219  */
220 #define MAPALERT_OPTION
221
222 /*-----------------------------SCROLL BAR-------------------------------*/
223 /*
224  * Choose the rxvt style scrollbar width
225  * - should be an even number [default: 10]
226  */
227 /* #define SB_WIDTH_RXVT 10 */
228
229 /*
230  * Minimum and maximum widths of the scrollbar (all styles)
231  */
232 #define SB_WIDTH_MINIMUM        5
233 #define SB_WIDTH_MAXIMUM        100
234
235 /*
236  * rxvt scrollbar shadow width in pixels, must be 1 or 2
237  */
238 #define SHADOW_WIDTH 1
239
240 /*
241  * clicking above or below the scrollbar slider (all styles minus
242  * xterm) will scroll by (height - 1) rather than (height / 4).
243  */
244 #define RXVT_SCROLL_FULL 1
245
246 /*
247  * (Hops) draw an internal border line on inside edge of the rxvt scrollbar
248  */
249 /* #define SB_BORDER */
250
251 /*---------------------------MULTILINGUAL-------------------------------*/
252 /*
253  * Allow run-time selection of Meta (Alt) to set the 8th bit on
254  */
255 #define META8_OPTION
256
257 /*---------------------------DISPLAY OPTIONS----------------------------*/
258 /*
259  * Force local connection to be socket (or other local) communication
260  */
261 /* #define LOCAL_X_IS_UNIX */
262
263 /*
264  * Have DISPLAY environment variable & "\E[7n" transmit display with IP number
265  */
266 /* #define DISPLAY_IS_IP */
267
268 /*
269  * Change what ESC Z transmits instead of the default "\E[?1;2c"
270  */
271 /* #define ESCZ_ANSWER  "\033[?1;2C" */
272
273 /*
274  * Allow foreground/background colour to be changed with xterm
275  * operating system commands.
276  */
277 #define XTERM_COLOR_CHANGE
278
279 /*
280  * Remove secondary screen's independent cursor position, a la xterm
281  */
282 /* #define NO_SECONDARY_SCREEN_CURSOR */
283
284 /*
285  * Provide termcap/terminfo bw support (wrap backwards on cub1)
286  */
287 #define TERMCAP_HAS_BW 1
288
289 /*
290  * The duration of the visual bell flash in s. The default of 20ms
291  * corresponds to the delay given in the terminfo flash code.
292  */
293 #define VISUAL_BELL_DURATION .020
294
295 /*--------------------------------OTHER---------------------------------*/
296
297 /*
298  * Enable the linux yield/usleep hack, which can dramatically improve
299  * performance by working around the linux kernel tty ratelimit bug.
300  * Unfortunately, it seems screen is negatively affected by this on some
301  * machines, so it is disabled by default. Use freebsd or any other kernel
302  * that doesn't suffer form this bug and it will be fast either way.
303  *
304  * See command.C for details.
305  */
306 #if __linux__
307 # define LINUX_YIELD_HACK 0
308 #endif
309
310 /* DEFAULT RESOURCES VALUES */
311
312 /*
313  * Define default colours for certain items.  If you have a low colour
314  * display, then consider using colours which are already pre-allocated:
315  *
316  *   Black              (#000000)
317  *   Red3               (#CD0000)
318  *   Green3             (#00CD00)
319  *   Yellow3            (#CDCD00)
320  *   Blue3              (#0000CD)
321  *   Magenta3           (#CD00CD)
322  *   Cyan3              (#00CDCD)
323  *   AntiqueWhite       (#FAEBD7)
324  *   Grey25             (#404040)
325  *   Red                (#FF0000)
326  *   Green              (#00FF00)
327  *   Yellow             (#FFFF00)
328  *   Blue               (#0000FF)
329  *   Magenta            (#FF00FF)
330  *   Cyan               (#00FFFF)
331  *   White              (#FFFFFF)
332  */
333 /* These colours MUST be defined */
334 #define COLOR_FOREGROUND        "rgb:00/00/00"
335 #define COLOR_BACKGROUND        "rgb:ff/ff/ff"
336 #define COLOR_SCROLLBAR         "rgb:b2/b2/b2"  /* scrollColor match Netscape */
337 #define COLOR_SCROLLTROUGH      "rgb:96/96/96"
338
339 /*
340  * The cursor colours are special.  Be very careful about setting these:
341  * foreground/background colours may be modified by command line or resources
342  * prior to this allocation.  Also, they are not valid if NO_CURSORCOLOR is
343  * defined
344  */
345 #define COLOR_CURSOR_FOREGROUND NULL    /* if NULL, use background colour */
346 #define COLOR_CURSOR_BACKGROUND NULL    /* if NULL, use foreground colour */
347
348 /*
349  * Printer pipe which will be used for emulation of attached vt100 printer
350  */
351 #define PRINTPIPE       "lpr"
352
353 /*
354  * Define defaults for backspace and delete keys - unless they have been
355  * configured out with --disable-backspace-key / --disable-delete-key
356  */
357 #define DEFAULT_BACKSPACE       "DEC"           /* SPECIAL */
358 #define DEFAULT_DELETE          "\033[3~"
359
360 /*
361  * Default separating chars for multiple-click selection
362  * Space and tab are separate separating characters and are not settable
363  */
364 #define CUTCHARS        "\"&'()*,;<=>?@[\\]^`{|}"
365
366 /*
367  * Width of the term internal border
368  */
369 #define INTERNALBORDERWIDTH     2
370
371 /*
372  * Width of the term external border
373  */
374 #define EXTERNALBORDERWIDTH     0
375
376 /*
377  * Default number of extra dots between lines
378  */
379 #define LINESPACE       0
380
381 /*
382  * Default number of extra dots between columns
383  */
384 #define LETTERSPACE     0
385
386 /*
387  * Default number of lines in the scrollback buffer
388  */
389 #define SAVELINES       1000
390
391 #endif
392