1 /*--------------------------------*-H-*---------------------------------*
2  * File:    feature.h
3  *----------------------------------------------------------------------*
4  *
5  * All portions of code are copyright by their respective author/s.
6  * Copyright (c) 1997-1998   Oezguer Kesim <kesim@math.fu-berlin.de>
7  * Copyright (c) 2005        William P. Y. Hadisoeseno
8  * 					<williampoetra@users.sourceforge.net>
9  * Copyright (c) 2004-2006   Jingmin Zhou <jimmyzhou@users.sourceforge.net>
10  * Copyright (c) 2005-2006   Gautam Iyer <gautam@math.uchicago.edu>
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation; either version 2 of the License, or
15  * (at your option) any later version.
16  *
17  * This program is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with this program; if not, write to the Free Software
24  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25  *----------------------------------------------------------------------*/
26 
27 #ifndef __FEATURE_H__
28 #define __FEATURE_H__
29 
30 #ifndef X11USRLIBDIR
31 # define X11USRLIBDIR	    "/usr/X11R6/lib"
32 #endif
33 #ifndef X11LIBDIR
34 # define X11LIBDIR	X11USRLIBDIR "/X11"
35 #endif
36 #ifndef XAPPLOADDIR
37 # define XAPPLOADDIR	    X11LIBDIR "/app-defaults"
38 # define XAPPLOADDIRLOCALE  X11LIBDIR "/%-.*s/app-defaults"
39 #endif
40 
41 /* Check ~/.Xdefaults and ~/.Xresources as well */
42 #define HAVE_EXTRA_XRESOURCE_FILES
43 
44 
45 /*-----------------------SCREEN OPTIONS AND COLOURS-----------------{{{1*/
46 /*
47  * Define the name of the environment variable to be used in
48  * addition to the "PATH" environment and the `path' resource.
49  * Usually it should point to where you keep your background pixmaps and/or
50  * your menu files
51  */
52 #define PATH_ENV    "RXVTPATH"
53 
54 /*
55  * Avoid enabling the colour cursor (-cr, cursorColor, cursorColor2)
56  */
57 /* #define NO_CURSORCOLOR */
58 
59 /*
60  * Suppress use of BOLD and BLINK attributes for setting bright foreground
61  * and background, respectively.  Simulate BOLD using colorBD, boldFont or
62  * overstrike characters.
63  */
64 /* #define NO_BRIGHTCOLOR */
65 
66 /*
67  * Try and brighten colors in the 16--255 range (if possible) instead of using
68  * the bold attribute.
69  */
70 /* #define BOLD_BRIGHTENS_256_COLORS */
71 
72 /*
73  * Make colours match xterm colours instead of `traditional' rxvt colours
74  */
75 #define XTERM_COLORS
76 
77 /*
78  * Disable separate colours for bold, underline and reverse video
79  */
80 /* #define NO_BOLD_UNDERLINE_REVERSE */
81 
82 /*
83  * Disable using simulated bold using overstrike.  You can also turn off
84  * overstrike just for multi char fonts
85  * Note: NO_BOLDOVERSTRIKE implies NO_BOLDOVERSTRIKE_MULTI
86  */
87 /* #define NO_BOLDOVERSTRIKE */
88 /* #define NO_BOLDOVERSTRIKE_MULTI */
89 
90 /*
91  * Don't bother cleaning up pixel droppings.  If you don't use bold
92  * overstrike then you don't usually need this
93  */
94 /* #define NO_PIXEL_DROPPING_AVOIDANCE */
95 
96 /*
97  * Compile without support for real bold fonts
98  */
99 /* #define NO_BOLDFONT */
100 
101 /*
102  * Add support for '-hc colour' for background highlight of selection
103  */
104 #define OPTION_HC
105 
106 /*
107  * Define maximum possible columns and rows
108  */
109 #define MAX_COLS    1000
110 #define MAX_ROWS    1000
111 
112 /*
113  * Define default colours for certain items.  If you have a low colour
114  * display, then consider using colours which are already pre-allocated:
115  *   Black	(#000000)
116  *   Red3	(#CD0000)   + these
117  *   Green3	(#00CD00)   + colours
118  *   Yellow3	    (#CDCD00)	+ are
119  *   Blue3	(#0000CD)   + not
120  *   Magenta3	    (#CD00CD)	+ pre-allocated
121  *   Cyan3	(#00CDCD)   + if
122  *   AntiqueWhite   (#FAEBD7)	+ NO_BRIGHTCOLOR
123  *   Grey25	(#404040)   + defined
124  *   Red	(#FF0000)
125  *   Green	(#00FF00)
126  *   Yellow	(#FFFF00)
127  *   Blue	(#0000FF)
128  *   Magenta	    (#FF00FF)
129  *   Cyan	(#00FFFF)
130  *   White	(#FFFFFF)
131  */
132 /* These colours MUST be defined */
133 #define COLOR_FOREGROUND    "Black"
134 #define COLOR_BACKGROUND    "White"
135 #define COLOR_SCROLLBAR	    "#B2B2B2"	/* scrollColor match Netscape */
136 #define COLOR_SCROLLTROUGH  "#969696"
137 /*
138  * The cursor colours are special.  Be very careful about setting these:
139  * foreground/background colours may be modified by command line or resources
140  * prior to this allocation.  Also, they are not valid if NO_CURSORCOLOR is
141  * defined
142  */
143 #define COLOR_CURSOR_FOREGROUND	NULL	/* if NULL, use background colour */
144 #define COLOR_CURSOR_BACKGROUND	NULL	/* if NULL, use foreground colour */
145 
146 /*
147  * Define to remove support for XCopyArea() support.  XCopyArea() is useful
148  * for scrolling on non-local X displays
149  */
150 /* #define NO_SLOW_LINK_SUPPORT */
151 
152 /*
153  * Printer pipe which will be used for emulation of attached vt100 printer
154  */
155 #define PRINTPIPE   "lpr"
156 
157 /*
158  * Allow 80/132 mode switching on startup
159  */
160 /* #define ALLOW_132_MODE */
161 
162 /*------------------------------RESOURCES---------------------------{{{1*/
163 /*
164  * Define to find installed application defaults for rxvt
165  */
166 /* #define USE_XAPPLOADDIR */
167 
168 /*
169  * Add support for the Offix DND (Drag 'n' Drop) protocol
170  */
171 /* #define OFFIX_DND */
172 
173 /*---------------------------------KEYS-----------------------------{{{1*/
174 
175 /*
176  * Define defaults for backspace and delete keys - unless they have been
177  * configured out with --disable-backspace-key / --disable-delete-key
178  */
179 /* #define DEFAULT_BACKSPACE	"DEC"	    */ /* SPECIAL */
180 /* #define DEFAULT_BACKSPACE	"\177"	    */
181 /* #define DEFAULT_DELETE   "\033[3~"	*/
182 
183 /*
184  * If defined, then escape sequences for keys with a modifier pressed will be
185  * the same as those sent by Xterm, instead of those sent by rxvt.
186  */
187 #define XTERM_KEYS
188 
189 /*
190  * If defined, then when numlock is on, the DEC terminal sequences sent by all
191  * the keypad keys (including +,-,*, etc) will be the sequences sent with the
192  * shift modifier ignored. Otherwise only the numeric keys and the decimal point
193  * will ignore the shift modifier.
194  */
195 #define NUMLOCK_ALWAYS_IGNORES_SHIFT
196 
197 /*
198  * If defined, macros will be allowed to be "UNSHIFTED" (i.e. your macros don't
199  * necessarily need a modifier key).
200  */
201 #define UNSHIFTED_MACROS
202 
203 /* (Hops) Set to choose a number of lines of context between pages
204  *      (rather than a proportion (1/5) of savedlines buffer)
205  *      when paging the savedlines with SHIFT-{Prior,Next} keys.
206  */
207 #define PAGING_CONTEXT_LINES (1)
208 
209 /*
210  * Have either Ctrl+Tab or Mod4+Tab emit \e\t
211  * Useful when window manager grabs Alt+Tab   -- mg
212  */
213 /* #define CTRL_TAB_MAKES_META */
214 /* #define MOD4_TAB_MAKES_META */
215 
216 /*
217  * default mode switch when greek keyboard is enabled (i.e. GREEK_SUPPORT)
218  */
219 #ifndef GREEK_KEYBOARD_MODESWITCH
220 # define GREEK_KEYBOARD_MODESWITCH XK_Mode_switch
221 #endif
222 
223 /*--------------------------------MOUSE-----------------------------{{{1*/
224 /*
225  *  Enable jump scrolling when use mouse wheel
226  */
227 #ifdef MOUSE_WHEEL
228 # define JUMP_MOUSE_WHEEL
229 #endif
230 
231 /*
232  * Disable sending escape sequences (up, down, page up/down)
233  * from the scrollbar when XTerm mouse reporting is enabled
234  */
235 /* #define NO_SCROLLBAR_REPORT */
236 
237 /*
238  * Default separating chars for multiple-click selection
239  * Space and tab are separate separating characters and are not settable
240  */
241 #define CUTCHARS    "\"&'()*,;<=>?@[\\]^`{|}~"
242 
243 /*
244  * Add run-time support for changing the cutchars for double click selection
245  */
246 #define CUTCHAR_RESOURCE
247 
248 /*
249  * Have mouse reporting include double-click info for button1
250  */
251 /* #define MOUSE_REPORT_DOUBLECLICK */
252 
253 /*
254  * Set delay between multiple click events [default: 500 milliseconds]
255  */
256 /* #define MULTICLICK_TIME 500 */
257 
258 /*
259  * Time factor to slow down a `jumpy' mouse.  Motion isn't recognised until
260  * this long after the last mouse click [default: 50 milliseconds]
261  */
262 #define MOUSE_THRESHOLD	    50
263 
264 /*
265  * If mouse wheel is defined, then scrolling is by 5 lines (or 1 line
266  * if the shift key is down).  Scrolling can be smooth or jump scrolling
267  */
268 /* #define JUMP_MOUSE_WHEEL */
269 
270 /*
271  * Set delay periods for continuous scrolling with scrollbar buttons
272  */
273 /* #define SCROLLBAR_INITIAL_DELAY 40 */
274 /* #define SCROLLBAR_CONTINUOUS_DELAY 2 */
275 
276 /*
277  * The speed of selection scrolling is proportional to the distance
278  * the mouse pointer is out of the text window.  This is the max
279  * number of lines to scroll at a time.
280  */
281 #define SELECTION_SCROLL_MAX_LINES 2
282 
283 /*
284  * The number of lines (measured in character's heights, not pixels)
285  * the pointer must be out of the window for each increase in the
286  * number of lines scrolled.
287  */
288 #define SELECTION_SCROLL_LINE_SPEEDUP 4
289 
290 /*--------------------------------MISC------------------------------{{{1*/
291 /*
292  * Disable to reset tty device to pre-incovation state
293  */
294 #define RESET_TTY_TO_COMMON_DEFAULTS
295 
296 /*
297  * Only log in wtmp file when we're a login shell (-ls option)
298  */
299 #define WTMP_ONLY_ON_LOGIN
300 
301 /*
302  * When pasting ACS characters, convert to similar normal characters
303  */
304 #define ACS_ASCII
305 
306 /*
307  * Default ascii characters to which ACS symbols are converted
308  */
309 #ifdef ACS_ASCII
310 # define ACS_CHARS ".#    o+  ----+---__++--|<> =#. "
311 #endif
312 
313 /*
314  * When executing external commands (e.g. via NewTab macro) use attempt to word
315  * split at quotes internally.
316  */
317 /* #define INTERNAL_ARGV_SPLIT */
318 
319 /*
320  * Maximum number of process (executed via Exec / NewTab macros, or -blc option)
321  * that can be alive at one time.
322  */
323 #define MAX_CHILDS  (16)
324 
325 /*
326  * Quick timeout default. The amount of time (micro seconds) mrxvt should wait
327  * for X events when a screen refresh is pending. Screen refreshes (especially
328  * with Xft and anti-aliasing) is quite expensive. The higher the value, the
329  * fewer screen refreshes are preformed. If you set it too high, you might find
330  * typing text a little jerky. If you set it too low, bye bye CPU. Try something
331  * in the range of 500 -- 50000
332  */
333 #define TIMEOUT_USEC (10000)
334 
335 /*--------------------------------BELL------------------------------{{{1*/
336 /*
337  * Disable all bell indications
338  */
339 /* #define NO_BELL */
340 
341 /*
342  * Disable automatic de-iconify when a bell is received
343  */
344 /* #define NO_MAPALERT */
345 
346 /*
347  * Have mapAlert behaviour selectable with mapAlert resource
348  */
349 #define MAPALERT_OPTION
350 
351 /*------------------------------TAB BAR-----------------------------{{{1*/
352 
353 /* Default title of new tabs if unspecified */
354 #define DEFAULT_TAB_TITLE   "Terminal"
355 
356 /*-----------------------------SCROLL BAR---------------------------{{{1*/
357 /*
358  * Choose the rxvt style scrollbar width
359  * - should be an even number [default: 10]
360  */
361 /* #define SB_WIDTH_RXVT 10 */
362 
363 /*
364  * Minimum and maximum widths of the scrollbar (all styles)
365  */
366 #define SB_WIDTH_MINIMUM    5
367 #define SB_WIDTH_MAXIMUM    100
368 
369 /*
370  * When using Rxvt scrollbar, clicking above or below the slider will move
371  * 1/4 of the screen height, if possible.  Setting RXVT_SCROLL_FULL will move
372  * it one screen height less one line, if possible
373  */
374 #define RXVT_SCROLL_FULL 1
375 
376 /*
377  * (Hops) draw an internal border line on inside edge of the scrollbar
378  */
379 /* #define SB_BORDER */
380 
381 /*------------------------------MENU BAR----------------------------{{{1*/
382 /*
383  * Choose how many of (experimental) menuBars you want to be able to stack at
384  * one time.
385  *  A value of 1 disables menuBar stacking.
386  *  A value of 0 disables menuBar all together.
387  *  Note that the amount of memory overhead is the same for any value >= 2.
388  */
389 /*
390  * 2006-02-04 gi1242: The user interface (using escape sequences) for modifying
391  * menus has been disabled due to a security hole. Thus stacking menubars is
392  * absolutely pointless and a waste of memory. The stacking code has been
393  * removed.
394  */
395 /* #define MENUBAR_MAX 8 */
396 
397 /*
398  * Change the default shadow style
399  */
400 /* #define MENUBAR_SHADOW_IN */
401 
402 /*
403  * Change the default shadow style
404  */
405 #define MENU_SHADOW_IN
406 
407 /*---------------------------MULTILINGUAL---------------------------{{{1*/
408 /*
409  * Allow run-time selection of Meta (Alt) to set the 8th bit on
410  */
411 #define META8_OPTION
412 
413 /*---------------------------DISPLAY OPTIONS------------------------{{{1*/
414 /*
415  * Force local connection to be socket (or other local) communication
416  */
417 /* #define LOCAL_X_IS_UNIX */
418 
419 /*
420  * Have DISPLAY environment variable & "\E[7n" transmit display with IP number
421  */
422 /* #define DISPLAY_IS_IP */
423 
424 /*
425  * Have "\E[7n" transmit the display name.
426  * This has been cited as a potential security hole.
427  */
428 /* #define ENABLE_DISPLAY_ANSWER */
429 
430 /*
431  * Change what ESC Z transmits instead of the default "\E[?1;2c"
432  */
433 /* #define ESCZ_ANSWER	"\033[?1;2C" */
434 
435 /*
436  * Check the current value of the window-time/icon-name and avoid
437  * re-setting it to the same value -- avoids unnecessary window refreshes
438  */
439 #define SMART_WINDOW_TITLE
440 
441 /*
442  * Allow colors to be changed with an xterm escape sequence.
443  */
444 #define XTERM_COLOR_CHANGE
445 
446 /*
447  * Remove secondary screen's independent cursor position, a la xterm
448  */
449 /* #define NO_SECONDARY_SCREEN_CURSOR */
450 
451 /*
452  * If no secondary screen is available (NO_SECONDARY_SCREEN in config.h),
453  * then scroll the text up on a window change request
454  */
455 /* #define SCROLL_ON_NO_SECONDARY */
456 
457 /* Width of the term internal border */
458 #define DEFAULT_INTERNALBORDERWIDTH (0)
459 #define MAX_INTERNALBORDERWIDTH	    (20)
460 
461 /* Width of the term external border */
462 #define DEFAULT_EXTERNALBORDERWIDTH (0)
463 #define MAX_EXTERNALBORDERWIDTH	    (20)
464 
465 /* Default number of extra dots between lines */
466 #define DEFAULT_LINESPACE	    (0)
467 #define MAX_LINESPACE		    (20)
468 
469 /* Default seconds of pointer blank delay */
470 #define DEFAULT_BLANKDELAY	    (2)
471 #define MAX_BLANKDELAY		    (20)
472 
473 /* Default number of lines in the scrollback buffer */
474 #define DEFAULT_SAVELINES	    (100)
475 #define MAX_SAVELINES		    (0xffff)
476 
477 /* Default bell throttle interval */
478 #define THROTTLE_BELL_MSEC	    (500)
479 #define THROTTLE_BELL_COUNT	    (3)
480 
481 /* Default tabstop size */
482 #define TABSTOP_SIZE		    (8)
483 
484 /* Maximal length and display length of tab title */
485 #define MAX_TAB_TXT		    (507)
486 #define MAX_DISPLAY_TAB_TXT	    (40)
487 #define MAX_TAB_PIXEL_WIDTH	    (200)
488 
489 #define DEFAULT_DISPLAY_TAB_TXT	    (27)
490 #define DEFAULT_MIN_VISIBLE_TABS    (6)
491 
492 /* Minimum Xft font size (pixel) */
493 #define MIN_XFT_FONT_SIZE	    (1)
494 
495 /* Default Xft font name and size */
496 #define DEFAULT_XFT_FONT_SIZE	    (12)
497 #define DEFAULT_XFT_FONT_NAME	    "Monospace"
498 
499 /* Default Xft propotional font name and size (used for menubar / tabs) */
500 #define DEFAULT_XFT_PFONT_SIZE	    (10)
501 #define DEFAULT_XFT_PFONT_NAME	    "Sans"
502 
503 /* Default cursor blinking time (ms) */
504 #define MIN_BLINK_TIME		    (100)
505 #define DEFAULT_BLINK_TIME	    (500)
506 #define MAX_BLINK_TIME		    (5000)
507 
508 /*
509  * Make text cursor highlighting be the same as color of char that the cursor is
510  * currently on.
511  */
512 #define CURSOR_COLOR_IS_RENDITION_COLOR
513 /* #define SIMULATE_LINUX_CONSOLE_CURSOR_COLOR */
514 
515 /* Set tab title on Xterm escape sequence to change window title */
516 #define SET_TAB_TITLE_ON_XTERM_SEQUENCE
517 /* Set tab title on Xterm escape sequence but not change window title */
518 #define SET_TAB_TITLE_NOT_WIN_TITLE
519 
520 /* Enable dead key. To do so, set option "XkbLayout" to "us_intl"
521 ** in the keyboard device section. Then disable multichar encoding
522 (-km noenc) and use ISO8859-X fonts. */
523 #define USE_DEADKEY
524 
525 /* Strip trailing spaces from selection */
526 #define DONT_SELECT_TRAILING_SPACES
527 
528 /*
529  * Default interval (micro secs) to wait before refreshing the background under
530  * pseudo transparency.
531  */
532 #define DEFAULT_BG_REFRESH_INTERVAL 100000L
533 
534 /*
535  * Default number of pages to skip when jump scrolling.
536  */
537 #define DEFAULT_SKIP_PAGES	(25)
538 
539 /*
540  * If an active tab produces fewer than these many characters, a screen refresh
541  * is requested immediately. Otherwise it is delayed slightly (about 10ms) to
542  * ensure that the active tab is not "flat out" scrolling.
543  */
544 #define DEFAULT_REFRESH_LIMIT	(0)
545 
546 /*
547  * Provide termcap/terminfo bw support
548  */
549 /* #define TERMCAP_HAS_BW */
550 
551 #endif	/* __FEATURE_H__ */
552 
553 /*}}}1*/
554 /* vim: set fdm=marker: */
555 /*----------------------- end-of-file (H source) -----------------------*/
556