*** empty log message ***
[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/X11R6/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 /*-----------------------SCREEN OPTIONS AND COLOURS---------------------*/
38
39 /*
40  * NOTE:
41  *
42  * Most of these configuration options have not been tested within the new
43  * rxvt-unicode framework. Changing them might work, might have no effect,
44  * destroy your disks or have any other effects. You may freely try (and
45  * report bugs, too!), but don't _expect_ them to work.
46  */
47
48 /*
49  * Define the name of the environment variable to be used in
50  * addition to the "PATH" environment and the `path' resource.
51  * Usually it should point to where you keep your background pixmaps and/or
52  * your menu files
53  */
54 #define PATH_ENV        "RXVTPATH"
55
56 /*
57  * Avoid enabling the colour cursor (-cr, cursorColor, cursorColor2)
58  */
59 /* #define NO_CURSORCOLOR */
60
61 /*
62  * Suppress use of BOLD and BLINK attributes for setting bright foreground
63  * and background, respectively.  Simulate BOLD using colorBD or
64  * overstrike characters.
65  */
66 /* #define NO_BRIGHTCOLOR */
67
68 /*
69  * Make colours match xterm colours instead of `traditional' rxvt colours
70  */
71 #define XTERM_COLORS
72
73 /*
74  * Disable separate colours for bold, underline and reverse video
75  */
76 /* #define NO_BOLD_UNDERLINE_REVERSE */
77
78 /*
79  * Define maximum possible columns and rows
80  */
81 #define MAX_COLS        4000
82 #define MAX_ROWS        1000
83
84 /*
85  * Define default colours for certain items.  If you have a low colour
86  * display, then consider using colours which are already pre-allocated:
87  *   Black              (#000000)
88  *   Red3               (#CD0000)       + these
89  *   Green3             (#00CD00)       + colours
90  *   Yellow3            (#CDCD00)       + are
91  *   Blue3              (#0000CD)       + not
92  *   Magenta3           (#CD00CD)       + pre-allocated
93  *   Cyan3              (#00CDCD)       + if
94  *   AntiqueWhite       (#FAEBD7)       + NO_BRIGHTCOLOR
95  *   Grey25             (#404040)       + defined
96  *   Red                (#FF0000)
97  *   Green              (#00FF00)
98  *   Yellow             (#FFFF00)
99  *   Blue               (#0000FF)
100  *   Magenta            (#FF00FF)
101  *   Cyan               (#00FFFF)
102  *   White              (#FFFFFF)
103  */
104 /* These colours MUST be defined */
105 #define COLOR_FOREGROUND        "Black"
106 #define COLOR_BACKGROUND        "White"
107 #define COLOR_SCROLLBAR         "#B2B2B2"       /* scrollColor match Netscape */
108 #define COLOR_SCROLLTROUGH      "#969696"
109
110 /*
111  * The cursor colours are special.  Be very careful about setting these:
112  * foreground/background colours may be modified by command line or resources
113  * prior to this allocation.  Also, they are not valid if NO_CURSORCOLOR is
114  * defined
115  */
116 #define COLOR_CURSOR_FOREGROUND NULL    /* if NULL, use background colour */
117 #define COLOR_CURSOR_BACKGROUND NULL    /* if NULL, use foreground colour */
118
119 /*
120  * Define to remove support for XCopyArea () support.  XCopyArea () is useful
121  * for scrolling on non-local X displays
122  */
123 #define NO_SLOW_LINK_SUPPORT
124
125 /*
126  * Printer pipe which will be used for emulation of attached vt100 printer
127  */
128 #define PRINTPIPE       "lpr"
129
130 /*
131  * Allow 80/132 mode switching on startup
132  */
133 /* #define ALLOW_132_MODE */
134  
135 /*------------------------------RESOURCES-------------------------------*/
136 /*
137  * Define to find installed application defaults for rxvt
138  * Only if USE_XGETDEFAULT is not defined.
139  */
140 #define USE_XAPPLOADDIR
141
142 /*
143  * Add support for the Offix DND (Drag 'n' Drop) protocol
144  */
145 /* #define OFFIX_DND */
146
147 /*---------------------------------KEYS---------------------------------*/
148
149 /*
150  * Define defaults for backspace and delete keys - unless they have been
151  * configured out with --disable-backspace-key / --disable-delete-key
152  */
153 #define DEFAULT_BACKSPACE       "DEC"           /* SPECIAL */
154 #define DEFAULT_DELETE          "\033[3~"
155
156 /*
157  * To use
158  *      Home = "\E[1~", End = "\E[4~"
159  * instead of
160  *      Home = "\E[7~", End = "\E[8~"   [default]
161  */
162 /* #define LINUX_KEYS */
163
164 /*
165  * Enable the keysym resource which allows you to define strings associated
166  * with various KeySyms (0xFF00 - 0xFFFF).
167  * Only works with the default hand-rolled resources.
168  */
169 #if !NO_RESOURCES && ENABLE_FRILLS
170 # define KEYSYM_RESOURCE
171 #endif
172
173 /*
174  * Modifier/s to use to allow up/down arrows and Prior/Next keys
175  * to scroll single or page-fulls
176  */
177 #define SCROLL_ON_SHIFT
178 /* #define SCROLL_ON_CTRL */
179 /* #define SCROLL_ON_META */
180
181 /*
182  * Allow scrolling with modifier+Up/Down keys, in addition
183  * to modifier+Prior/Next? (modifier is controlled with
184  * SCROLL_ON_* defines above.). 
185  * Also for modifier+Home/End keys to move to top/bottom
186  */
187 /* #define SCROLL_ON_UPDOWN_KEYS */
188 /* #define SCROLL_ON_HOMEEND_KEYS */
189
190 /*
191  * Allow unshifted Next/Prior keys to scroll forward/back
192  * (in addition to shift+Next/shift+Prior)       --pjh
193  */
194 /* #define UNSHIFTED_SCROLLKEYS */
195
196 /* (Hops) Set to choose a number of lines of context between pages
197  *      (rather than a proportion (1/5) of savedlines buffer)
198  *      when paging the savedlines with SHIFT-{Prior,Next} keys.
199  */
200 #define PAGING_CONTEXT_LINES 1 /* */
201
202 /*
203  * Have either Ctrl+Tab or Mod4+Tab emit \e\t
204  * Useful when window manager grabs Alt+Tab   -- mg
205  */
206 /* #define CTRL_TAB_MAKES_META */
207 /* #define MOD4_TAB_MAKES_META */
208
209 /*--------------------------------MOUSE---------------------------------*/
210 /*
211  * Disable sending escape sequences (up, down, page up/down)
212  * from the scrollbar when XTerm mouse reporting is enabled
213  */
214 /* #define NO_SCROLLBAR_REPORT */
215
216 /*
217  * Default separating chars for multiple-click selection
218  * Space and tab are separate separating characters and are not settable
219  */
220 #define CUTCHARS        "\"&'()*,;<=>?@[\\]^`{|}"
221
222 /*
223  * Add run-time support for changing the cutchars for double click selection
224  */
225 #define CUTCHAR_RESOURCE
226
227 /*
228  * Have mouse reporting include double-click info for button1
229  */
230 //#define MOUSE_REPORT_DOUBLECLICK
231
232 /*
233  * Set delay between multiple click events [default: 500 milliseconds]
234  */
235 /* #define MULTICLICK_TIME 500 */
236
237 /*
238  * Time factor to slow down a `jumpy' mouse.  Motion isn't recognised until
239  * this long after the last mouse click [default: 50 milliseconds]
240  */
241 #define MOUSE_THRESHOLD         50
242
243 /*
244  * If mouse wheel is defined, then scrolling is by 5 lines (or 1 line
245  * if the shift key is down).  Scrolling can be smooth or jump scrolling
246  */
247 #define JUMP_MOUSE_WHEEL
248
249 /*
250  * Set delay periods for continuous scrolling with scrollbar buttons
251  */
252 /* #define SCROLLBAR_INITIAL_DELAY 0.33 */
253 /* #define SCROLLBAR_CONTINUOUS_DELAY 0.05 */
254
255 /*
256  * The speed of selection scrolling is proportional to the distance
257  * the mouse pointer is out of the text window.  This is the max
258  * number of lines to scroll at a time.
259  */
260 #define SELECTION_SCROLL_MAX_LINES 8
261
262 /*
263  * The number of lines (measured in character's heights, not pixels)
264  * the pointer must be out of the window for each increase in the
265  * number of lines scrolled.
266  */
267 #define SELECTION_SCROLL_LINE_SPEEDUP 3
268
269 /*--------------------------------MISC----------------------------------*/
270 /*
271  * Disable to reset tty device to pre-incovation state
272  */
273 #define RESET_TTY_TO_COMMON_DEFAULTS
274
275 /*
276  * Only log in wtmp file when we're a login shell (-ls option)
277  */
278 #define WTMP_ONLY_ON_LOGIN
279
280 /*--------------------------------BELL----------------------------------*/
281 /*
282  * Disable all bell indications
283  */
284 /* #define NO_BELL */
285
286 /*
287  * Disable automatic de-iconify when a bell is received
288  */
289 /* #define NO_MAPALERT */
290
291 /*
292  * Have mapAlert behaviour selectable with mapAlert resource
293  */
294 #define MAPALERT_OPTION
295
296 /*-----------------------------SCROLL BAR-------------------------------*/
297 /*
298  * Choose the rxvt style scrollbar width
299  * - should be an even number [default: 10]
300  */
301 /* #define SB_WIDTH_RXVT 10 */
302
303 /*
304  * Minimum and maximum widths of the scrollbar (all styles)
305  */
306 #define SB_WIDTH_MINIMUM        5
307 #define SB_WIDTH_MAXIMUM        100
308
309 /*
310  * When using Rxvt scrollbar, clicking above or below the slider will move
311  * 1/4 of the screen height, if possible.  Setting RXVT_SCROLL_FULL will move
312  * it one screen height less one line, if possible
313  */
314 #define RXVT_SCROLL_FULL 1
315
316 /*
317  * (Hops) draw an internal border line on inside edge of the scrollbar
318  */
319 /* #define SB_BORDER */
320
321 /*------------------------------MENU BAR--------------------------------*/
322 /*
323  * Choose how many of (experimental) menuBars you want to be able to stack at
324  * one time.
325  *  A value of 1 disables menuBar stacking.
326  *  A value of 0 disables menuBar all together.
327  *  Note that the amount of memory overhead is the same for any value >= 2.
328  */
329 #define MENUBAR_MAX 16
330
331 /*
332  * Change the default shadow style
333  */
334 /* #define MENUBAR_SHADOW_IN */
335
336 /*
337  * Change the default shadow style
338  */
339 #define MENU_SHADOW_IN
340
341 /*---------------------------MULTILINGUAL-------------------------------*/
342 /*
343  * Allow run-time selection of Meta (Alt) to set the 8th bit on
344  */
345 #define META8_OPTION
346
347 /*---------------------------DISPLAY OPTIONS----------------------------*/
348 /*
349  * Force local connection to be socket (or other local) communication
350  */
351 /* #define LOCAL_X_IS_UNIX */
352
353 /*
354  * Have DISPLAY environment variable & "\E[7n" transmit display with IP number
355  */
356 /* #define DISPLAY_IS_IP */
357
358 /*
359  * Change what ESC Z transmits instead of the default "\E[?1;2c"
360  */
361 /* #define ESCZ_ANSWER  "\033[?1;2C" */
362
363 /*
364  * Check the current value of the window-time/icon-name and avoid
365  * re-setting it to the same value -- avoids unnecessary window refreshes
366  */
367 //#define SMART_WINDOW_TITLE // currently disabled, needs to be reimplemented
368
369 /*
370  * Allow foreground/background colour to be changed with an
371  * xterm escape sequence "\E]39;colour^G" -- still experimental
372  */
373 #define XTERM_COLOR_CHANGE
374
375 /*
376  * Remove secondary screen's independent cursor position, a la xterm
377  */
378 /* #define NO_SECONDARY_SCREEN_CURSOR */
379
380 /*
381  * Width of the term internal border
382  */
383 #define INTERNALBORDERWIDTH     2
384
385 /*
386  * Width of the term external border
387  */
388 #define EXTERNALBORDERWIDTH     0
389
390 /*
391  * Default number of extra dots between lines
392  */
393 #define LINESPACE       0
394
395 /*
396  * Default number of lines in the scrollback buffer
397  */
398 #define SAVELINES       64
399
400 /*
401  * Provide termcap/terminfo bw support (wrap backwards on cub1)
402  */
403 #define TERMCAP_HAS_BW
404
405 /*
406  * Some (older, e.g. fvwm 2.2.2) window managers need some time when
407  * updating window positions. If transparency isn't working correctly
408  * then you might try out this one.
409  */
410 /* #define WAIT_FOR_WM */
411
412 #endif
413