*** empty log message ***
[dana/urxvt.git] / src / feature.h
1 /*
2  * File:        feature.h
3  * $Id: feature.h,v 1.2 2003-11-24 17:31:27 pcg Exp $
4  *
5  * Compile-time configuration.
6  *-----------------------------------------------------------------------
7  * Copyright (c) 1997,1998 Oezguer Kesim <kesim@math.fu-berlin.de>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22  *
23  *----------------------------------------------------------------------*/
24 #ifndef _FEATURE_H
25 #define _FEATURE_H
26
27 #ifndef X11USRLIBDIR
28 # define X11USRLIBDIR           "/usr/X11R6/lib"
29 #endif
30 #ifndef X11LIBDIR
31 # define X11LIBDIR              X11USRLIBDIR "/X11"
32 #endif
33 #ifndef XAPPLOADDIR
34 # define XAPPLOADDIR            X11LIBDIR "/app-defaults" 
35 # define XAPPLOADDIRLOCALE      X11LIBDIR "/%-.*s/app-defaults"
36 #endif
37
38 /*-----------------------SCREEN OPTIONS AND COLOURS---------------------*/
39 /*
40  * Define the name of the environment variable to be used in
41  * addition to the "PATH" environment and the `path' resource.
42  * Usually it should point to where you keep your background pixmaps and/or
43  * your menu files
44  */
45 #define PATH_ENV        "RXVTPATH"
46
47 /*
48  * Avoid enabling the colour cursor (-cr, cursorColor, cursorColor2)
49  */
50 /* #define NO_CURSORCOLOR */
51
52 /*
53  * Suppress use of BOLD and BLINK attributes for setting bright foreground
54  * and background, respectively.  Simulate BOLD using colorBD, boldFont or
55  * overstrike characters.
56  */
57 /* #define NO_BRIGHTCOLOR */
58
59 /*
60  * Make colours match xterm colours instead of `traditional' rxvt colours
61  */
62 #define XTERM_COLORS
63
64 /*
65  * Disable separate colours for bold, underline and reverse video
66  */
67 /* #define NO_BOLD_UNDERLINE_REVERSE */
68
69 /*
70  * Disable using simulated bold using overstrike.  You can also turn off
71  * overstrike just for multi char fonts
72  * Note: NO_BOLDOVERSTRIKE implies NO_BOLDOVERSTRIKE_MULTI
73  */
74 /* #define NO_BOLDOVERSTRIKE */
75 /* #define NO_BOLDOVERSTRIKE_MULTI */
76
77 /*
78  * Don't bother cleaning up pixel droppings.  If you don't use bold
79  * overstrike then you don't usually need this
80  */
81 #define NO_PIXEL_DROPPING_AVOIDANCE
82
83 /*
84  * Also use bold font or overstrike even if we use colour for bold
85  */
86 /*#define VERYBOLD*/
87
88 /*
89  * Compile without support for real bold fonts
90  */
91 /* #define NO_BOLDFONT */
92
93 /*
94  * Add support for '-hc colour' for background highlight of selection
95  */
96 #define OPTION_HC
97
98 /*
99  * Define maximum possible columns and rows
100  */
101 #define MAX_COLS        4000
102 #define MAX_ROWS        1000
103
104 /*
105  * Define default colours for certain items.  If you have a low colour
106  * display, then consider using colours which are already pre-allocated:
107  *   Black              (#000000)
108  *   Red3               (#CD0000)       + these
109  *   Green3             (#00CD00)       + colours
110  *   Yellow3            (#CDCD00)       + are
111  *   Blue3              (#0000CD)       + not
112  *   Magenta3           (#CD00CD)       + pre-allocated
113  *   Cyan3              (#00CDCD)       + if
114  *   AntiqueWhite       (#FAEBD7)       + NO_BRIGHTCOLOR
115  *   Grey25             (#404040)       + defined
116  *   Red                (#FF0000)
117  *   Green              (#00FF00)
118  *   Yellow             (#FFFF00)
119  *   Blue               (#0000FF)
120  *   Magenta            (#FF00FF)
121  *   Cyan               (#00FFFF)
122  *   White              (#FFFFFF)
123  */
124 /* These colours MUST be defined */
125 #define COLOR_FOREGROUND        "Black"
126 #define COLOR_BACKGROUND        "White"
127 #define COLOR_SCROLLBAR         "#B2B2B2"       /* scrollColor match Netscape */
128 #define COLOR_SCROLLTROUGH      "#969696"
129 /*
130  * The cursor colours are special.  Be very careful about setting these:
131  * foreground/background colours may be modified by command line or resources
132  * prior to this allocation.  Also, they are not valid if NO_CURSORCOLOR is
133  * defined
134  */
135 #define COLOR_CURSOR_FOREGROUND NULL    /* if NULL, use background colour */
136 #define COLOR_CURSOR_BACKGROUND NULL    /* if NULL, use foreground colour */
137
138 /*
139  * Define to remove support for XCopyArea() support.  XCopyArea() is useful
140  * for scrolling on non-local X displays
141  */
142 /* #define NO_SLOW_LINK_SUPPORT */
143
144 /*
145  * Printer pipe which will be used for emulation of attached vt100 printer
146  */
147 #define PRINTPIPE       "lpr"
148
149 /*
150  * Allow 80/132 mode switching on startup
151  */
152 /* #define ALLOW_132_MODE */
153  
154 /*------------------------------RESOURCES-------------------------------*/
155 /*
156  * Define to find installed application defaults for rxvt
157  * Only if USE_XGETDEFAULT is not defined.
158  */
159 /* #define USE_XAPPLOADDIR */
160
161 /*
162  * Add support for the Offix DND (Drag 'n' Drop) protocol
163  */
164 /* #define OFFIX_DND */
165
166 /*---------------------------------KEYS---------------------------------*/
167
168 /*
169  * Define defaults for backspace and delete keys - unless they have been
170  * configured out with --disable-backspace-key / --disable-delete-key
171  */
172 /* #define DEFAULT_BACKSPACE    "DEC"           */ /* SPECIAL */
173 #define DEFAULT_BACKSPACE       "\010"
174 #define DEFAULT_DELETE  "\033[3~"
175
176 /*
177  * Choose one of these values to be the `hotkey' for changing font.
178  * This has been superceded and is only for you older users
179  */
180 /* #define HOTKEY_CTRL */
181 /* #define HOTKEY_META */
182
183 /*
184  * To use
185  *      Home = "\E[1~", End = "\E[4~"
186  * instead of
187  *      Home = "\E[7~", End = "\E[8~"   [default]
188  */
189 /* #define LINUX_KEYS */
190
191 /*
192  * Enable the keysym resource which allows you to define strings associated
193  * with various KeySyms (0xFF00 - 0xFFFF).
194  * Only works with the default hand-rolled resources.
195  */
196 #ifndef NO_RESOURCES
197 # define KEYSYM_RESOURCE
198 #endif
199
200 /*
201  * Modifier/s to use to allow up/down arrows and Priot/Next keys
202  * to scroll single or page-fulls
203  */
204 #define SCROLL_ON_SHIFT
205 /* #define SCROLL_ON_CTRL */
206 /* #define SCROLL_ON_META */
207
208 /*
209  * Allow scrolling with modifier+Up/Down keys, in addition
210  * to modifier+Prior/Next? (modifier is controlled with
211  * SCROLL_ON_* defines above.). 
212  * Also for modifier+Home/End keys to move to top/bottom
213  */
214 /* #define SCROLL_ON_UPDOWN_KEYS */
215 /* #define SCROLL_ON_HOMEEND_KEYS */
216
217 /*
218  * Allow unshifted Next/Prior keys to scroll forward/back
219  * (in addition to shift+Next/shift+Prior)       --pjh
220  */
221 /* #define UNSHIFTED_SCROLLKEYS */
222
223 /* (Hops) Set to choose a number of lines of context between pages
224  *      (rather than a proportion (1/5) of savedlines buffer)
225  *      when paging the savedlines with SHIFT-{Prior,Next} keys.
226  */
227 #define PAGING_CONTEXT_LINES 1 /* */
228
229 /*
230  * Have either Ctrl+Tab or Mod4+Tab emit \e\t
231  * Useful when window manager grabs Alt+Tab   -- mg
232  */
233 /* #define CTRL_TAB_MAKES_META */
234 /* #define MOD4_TAB_MAKES_META */
235
236 /*
237  * default mode switch when greek keyboard is enabled (i.e. GREEK_SUPPORT)
238  */
239 #ifndef GREEK_KEYBOARD_MODESWITCH
240 # define GREEK_KEYBOARD_MODESWITCH XK_Mode_switch
241 #endif
242
243 /*--------------------------------MOUSE---------------------------------*/
244 /*
245  * Disable sending escape sequences (up, down, page up/down)
246  * from the scrollbar when XTerm mouse reporting is enabled
247  */
248 /* #define NO_SCROLLBAR_REPORT */
249
250 /*
251  * Default separating chars for multiple-click selection
252  * Space and tab are separate separating characters and are not settable
253  */
254 #define CUTCHARS        "\"&'()*,;<=>?@[\\]^`{|}~"
255
256 /*
257  * Add run-time support for changing the cutchars for double click selection
258  */
259 #define CUTCHAR_RESOURCE
260
261 /*
262  * Have mouse reporting include double-click info for button1
263  */
264 /* #define MOUSE_REPORT_DOUBLECLICK */
265
266 /*
267  * Set delay between multiple click events [default: 500 milliseconds]
268  */
269 /* #define MULTICLICK_TIME 500 */
270
271 /*
272  * Time factor to slow down a `jumpy' mouse.  Motion isn't recognised until
273  * this long after the last mouse click [default: 50 milliseconds]
274  */
275 #define MOUSE_THRESHOLD         50
276
277 /*
278  * If mouse wheel is defined, then scrolling is by 5 lines (or 1 line
279  * if the shift key is down).  Scrolling can be smooth or jump scrolling
280  */
281 /* #define JUMP_MOUSE_WHEEL */
282
283 /*
284  * Set delay periods for continuous scrolling with scrollbar buttons
285  */
286 /* #define SCROLLBAR_INITIAL_DELAY 40 */
287 /* #define SCROLLBAR_CONTINUOUS_DELAY 2 */
288
289 /*
290  * The speed of selection scrolling is proportional to the distance
291  * the mouse pointer is out of the text window.  This is the max
292  * number of lines to scroll at a time.
293  */
294 #define SELECTION_SCROLL_MAX_LINES 2
295
296 /*
297  * The number of lines (measured in character's heights, not pixels)
298  * the pointer must be out of the window for each increase in the
299  * number of lines scrolled.
300  */
301 #define SELECTION_SCROLL_LINE_SPEEDUP 4
302
303 /*--------------------------------MISC----------------------------------*/
304 /*
305  * Disable to reset tty device to pre-incovation state
306  */
307 #define RESET_TTY_TO_COMMON_DEFAULTS
308
309 /*
310  * Only log in wtmp file when we're a login shell (-ls option)
311  */
312 #define WTMP_ONLY_ON_LOGIN
313
314 /*
315  * When pasting ACS characters, convert to similar normal characters
316  */
317 /* #define ACS_ASCII */
318
319 /*
320  * Default ascii characters to which ACS symbols are converted
321  */
322 #ifdef ACS_ASCII
323 # define ACS_CHARS ".#    o+  ----+---__++--|<> =#. "
324 #endif
325
326 /*--------------------------------BELL----------------------------------*/
327 /*
328  * Disable all bell indications
329  */
330 /* #define NO_BELL */
331
332 /*
333  * Disable automatic de-iconify when a bell is received
334  */
335 /* #define NO_MAPALERT */
336
337 /*
338  * Have mapAlert behaviour selectable with mapAlert resource
339  */
340 #define MAPALERT_OPTION
341
342 /*-----------------------------SCROLL BAR-------------------------------*/
343 /*
344  * Choose the rxvt style scrollbar width
345  * - should be an even number [default: 10]
346  */
347 /* #define SB_WIDTH_RXVT 10 */
348
349 /*
350  * Minimum and maximum widths of the scrollbar (all styles)
351  */
352 #define SB_WIDTH_MINIMUM        5
353 #define SB_WIDTH_MAXIMUM        100
354
355 /*
356  * When using Rxvt scrollbar, clicking above or below the slider will move
357  * 1/4 of the screen height, if possible.  Setting RXVT_SCROLL_FULL will move
358  * it one screen height less one line, if possible
359  */
360 #define RXVT_SCROLL_FULL 1
361
362 /*
363  * (Hops) draw an internal border line on inside edge of the scrollbar
364  */
365 /* #define SB_BORDER */
366
367 /*------------------------------MENU BAR--------------------------------*/
368 /*
369  * Choose how many of (experimental) menuBars you want to be able to stack at
370  * one time.
371  *  A value of 1 disables menuBar stacking.
372  *  A value of 0 disables menuBar all together.
373  *  Note that the amount of memory overhead is the same for any value >= 2.
374  */
375 #define MENUBAR_MAX 8
376
377 /*
378  * Change the default shadow style
379  */
380 /* #define MENUBAR_SHADOW_IN */
381
382 /*
383  * Change the default shadow style
384  */
385 #define MENU_SHADOW_IN
386
387 /*---------------------------MULTILINGUAL-------------------------------*/
388 /*
389  * Allow run-time selection of Meta (Alt) to set the 8th bit on
390  */
391 #define META8_OPTION
392
393 /*---------------------------DISPLAY OPTIONS----------------------------*/
394 /*
395  * Force local connection to be socket (or other local) communication
396  */
397 /* #define LOCAL_X_IS_UNIX */
398
399 /*
400  * Have DISPLAY environment variable & "\E[7n" transmit display with IP number
401  */
402 /* #define DISPLAY_IS_IP */
403
404 /*
405  * Have "\E[7n" transmit the display name.
406  * This has been cited as a potential security hole.
407  */
408 #define ENABLE_DISPLAY_ANSWER
409
410 /*
411  * Change what ESC Z transmits instead of the default "\E[?1;2c"
412  */
413 /* #define ESCZ_ANSWER  "\033[?1;2C" */
414
415 /*
416  * Check the current value of the window-time/icon-name and avoid
417  * re-setting it to the same value -- avoids unnecessary window refreshes
418  */
419 #define SMART_WINDOW_TITLE
420
421 /*
422  * Allow foreground/background colour to be changed with an
423  * xterm escape sequence "\E]39;colour^G" -- still experimental
424  */
425 #define XTERM_COLOR_CHANGE
426
427 /*
428  * Remove secondary screen's independent cursor position, a la xterm
429  */
430 /* #define NO_SECONDARY_SCREEN_CURSOR */
431
432 /*
433  * If no secondary screen is available (NO_SECONDARY_SCREEN in config.h),
434  * then scroll the text up on a window change request
435  */
436 #define SCROLL_ON_NO_SECONDARY
437
438 /*
439  * Width of the term internal border
440  */
441 #define INTERNALBORDERWIDTH     2
442
443 /*
444  * Width of the term external border
445  */
446 #define EXTERNALBORDERWIDTH     0
447
448 /*
449  * Default number of extra dots between lines
450  */
451 #define LINESPACE       0
452
453 /*
454  * Default number of lines in the scrollback buffer
455  */
456 #define SAVELINES       64
457
458 /*
459  * Provide termcap/terminfo bw support
460  */
461 /* #define TERMCAP_HAS_BW */
462
463 /*
464  * MAX_NFONTS is the maximum allowed number of fonts in the list
465  * FONT0_IDX is the default font in the list (starting at 0)
466  * Sizes between multi-char fonts sets (MFONT_LIST) and single-char font
467  * sets (NFONT_LIST) have been matched up
468  */
469 #define MAX_NFONTS      7
470 #define FONT0_IDX       2
471
472 #define UNICODE 1 /* TODO */
473 #define UTF8 1 /* TODO */
474
475 #endif