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