- fixed possible crash bug because a variable allocated on stack was
[wmaker-crm.git] / src / wconfig.h.in
blob2d10d469ab42fb891d67f53b5b446324ec961885
1 /*
2 * wconfig.h- default configuration and definitions + compile time options
4 * WindowMaker window manager
6 * Copyright (c) 1997-2003 Alfredo K. Kojima
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.
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.
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.
23 #ifndef WMCONFIG_H_
24 #define WMCONFIG_H_
26 #include "config.h"
28 /*** Change this file (wconfig.h) *after* you ran configure ***/
31 *--------------------------------------------------------------------
32 * Feature Selection
34 * Comment out the following #defines if you want to
35 * disable a feature.
36 * Also check the features you can enable through configure.
37 *--------------------------------------------------------------------
42 * #undefine if you dont want texture plugin support or your system have
43 * some sort of problem with them.
45 #define TEXTURE_PLUGIN
47 #ifdef TEXTURE_PLUGIN
48 #undef DRAWSTRING_PLUGIN
49 #endif
52 /* undefine ANIMATIONS if you don't want animations for iconification,
53 * shading, icon arrangement etc. */
54 #define ANIMATIONS
58 * undefine USECPP if you don't want your config files to be preprocessed
59 * by cpp
61 #define USECPP
63 /* #define CPP_PATH @CPP_PATH@ */
66 #define NETWM_HINTS
69 * support for XDND drop in the Dock. Experimental
71 /*#define XDND*/
74 * support for Motif window manager (mwm) window hints
76 #define MWM_HINTS
80 * Undefine BALLOON_TEXT if you don't want balloons for showing extra
81 * information, like window titles that are not fully visible.
83 #define BALLOON_TEXT
86 * If balloons should be shaped or be simple rectangles.
87 * The X server must support the shape extensions and it's support
88 * must be enabled (default).
90 #define SHAPED_BALLOON
94 * Turn on a hack to make mouse and keyboard actions work even if
95 * the NumLock or ScrollLock modifiers are turned on. They might
96 * inflict a performance/memory penalty.
98 * If you're an X expert (knows the implementation of XGrabKey() in X)
99 * and knows that the penalty is small (or not), please tell me.
101 #define NUMLOCK_HACK
106 * define OPTIMIZE_SHAPE if you want the shape setting code to be optimized
107 * for applications that change their shape frequently (like xdaliclock
108 * -shape), removing flickering. If wmaker and your display are on
109 * different machines and the network connection is slow, it is not
110 * recommended.
112 #undef OPTIMIZE_SHAPE
114 /* define CONFIGURE_WINDOW_WHILE_MOVING if you want WindowMaker to send
115 * the synthetic ConfigureNotify event to windows while moving at every
116 * single movement. Default is to send a synthetic ConfigureNotify event
117 * only at the end of window moving, which improves performance.
119 #undef CONFIGURE_WINDOW_WHILE_MOVING
123 * disable/enable workspace indicator in the dock
125 #undef WS_INDICATOR
129 * define HIDDENDOT if you want a dot to be shown in the application icon
130 * of applications that are hidden.
132 #define HIDDENDOT
136 * Ignores the PPosition hint from clients. This is needed for some
137 * programs that have buggy implementations of such hint and place
138 * themselves in strange locations.
140 #undef IGNORE_PPOSITION
144 * Do not scale application icon and miniwindow icon images.
146 #undef DONT_SCALE_ICONS
153 #define SILLYNESS
160 *..........................................................................
161 * The following options WILL NOT BE MADE RUN-TIME. Please do not request.
162 * They will only add unneeded bloat.
163 *..........................................................................
167 * define SHADOW_RESIZEBAR if you want a resizebar with shadows like in
168 * AfterStep, instead of the default Openstep look.
169 * NEXTSTEP 3.3 also does not have these shadows.
171 #undef SHADOW_RESIZEBAR
174 * Define DEMATERIALIZE_ICON if you want the undocked icon animation
175 * to be a progressive disaparison animation.
176 * This will cause all application icons to be created with Save Under
177 * enable.
179 #undef DEMATERIALIZE_ICON
182 * Define ICON_KABOOM_EXTRA if you want extra fancy icon undocking
183 * explosion animation.
185 #undef ICON_KABOOM_EXTRA
188 * #define if you want the window creation animation when superfluous
189 * is enabled. Only enable one of them.
191 #undef WINDOW_BIRTH_ZOOM
193 #undef WINDOW_BIRTH_ZOOM2
196 * whether arrow drawing in clip buttons should be gradiented
198 #undef GRADIENT_CLIP_ARROWS
202 *--------------------------------------------------------------------
203 * Default Configuration
205 * Some of the following options can be configured in
206 * the preference files, but if for some reason, they can't
207 * be used, these defaults will be.
208 * There are also some options that can only be configured here,
209 * at compile time.
210 *--------------------------------------------------------------------
213 /* list of paths to look for the config files, searched in order
214 * of appearance */
215 #define DEF_CONFIG_PATHS \
216 "~/GNUstep/Library/WindowMaker:"PKGDATADIR
218 #define DEF_MENU_FILE "menu"
220 /* name of the script to execute at startup */
221 #define DEF_INIT_SCRIPT "autostart"
223 #define DEF_EXIT_SCRIPT "exitscript"
225 #define DEFAULTS_DIR "Defaults"
227 #ifdef USE_TIFF
228 #define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.tiff"
229 #else
230 #define DEF_BUTTON_IMAGES PKGDATADIR"/buttons.xpm"
231 #endif
233 /* the file of the system wide submenu to be forced into the main menu */
234 #define GLOBAL_PREAMBLE_MENU_FILE "GlobalMenu.pre"
235 #define GLOBAL_EPILOGUE_MENU_FILE "GlobalMenu.post"
238 /* pixmap path */
239 #define DEF_PIXMAP_PATHS \
240 "(\"~/pixmaps\",\"~/GNUstep/Library/WindowMaker/Pixmaps\",\""PIXMAPDIR"\")"
242 #ifdef USER_MENU
243 #define GLOBAL_USER_MENU_PATH PKGDATADIR"/UserMenus"
244 #define DEF_USER_MENU_PATHS \
245 "~/GNUstep/Library/WindowMaker/UserMenus:"GLOBAL_USER_MENU_PATH
246 #endif
248 /* icon path */
249 #define DEF_ICON_PATHS \
250 "(\"~/pixmaps\",\"~/GNUstep/Library/Icons\",\"/usr/include/X11/pixmaps/\",\""PIXMAPDIR"\")"
253 /* window title to use for untitled windows */
254 #define DEF_WINDOW_TITLE "Untitled"
256 /* default style */
257 #define DEF_FRAME_COLOR "white"
260 #define DEF_TITLE_FONT "\"Trebuchet MS,Luxi Sans:bold:pixelsize=12\""
261 #define DEF_MENU_TITLE_FONT "\"Trebuchet MS,Luxi Sans:bold:pixelsize=12\""
262 #define DEF_MENU_ENTRY_FONT "\"Trebuchet MS,Luxi Sans:pixelsize=12\""
263 #define DEF_ICON_TITLE_FONT "\"Arial,Luxi Sans:pixelsize=9\""
264 #define DEF_CLIP_TITLE_FONT "\"Verdana:bold:pixelsize=10\""
265 #define DEF_INFO_TEXT_FONT "\"Trebuchet MS,Luxi Sans:pixelsize=12\""
267 #define DEF_WORKSPACE_NAME_FONT "\"Trebuchet MS,Luxi Sans:pixelsize=24\""
270 #define DEF_FRAME_THICKNESS 1 /* linewidth of the move/resize frame */
272 #define DEF_WINDOW_TITLE_EXTEND_SPACE "0"
273 #define DEF_MENU_TITLE_EXTEND_SPACE "0"
274 #define DEF_MENU_TEXT_EXTEND_SPACE "0"
275 #define TITLEBAR_EXTEND_SPACE 4
277 #define DEF_XPM_CLOSENESS 40000
279 /* default position of application menus */
280 #define DEF_APPMENU_X 10
281 #define DEF_APPMENU_Y 10
283 /* calculate window edge resistance from edge resistance */
284 #define WIN_RESISTANCE(x) (((x)*20)/30)
286 /* Window level where icons reside */
287 #define NORMAL_ICON_LEVEL WMNormalLevel
289 /* do not divide main menu and submenu in different tiers,
290 * opposed to OpenStep */
291 #define SINGLE_MENULEVEL
293 /* max. time to spend doing animations in seconds. If the animation
294 * time exceeds this value, it is immediately finished. Usefull for
295 * moments of high-load.
297 #define MAX_ANIMATION_TIME 1
299 /* Zoom animation */
300 #define MINIATURIZE_ANIMATION_FRAMES_Z 5
301 #define MINIATURIZE_ANIMATION_STEPS_Z 12
302 #define MINIATURIZE_ANIMATION_DELAY_Z 10000
303 /* Twist animation */
304 #define MINIATURIZE_ANIMATION_FRAMES_T 12
305 #define MINIATURIZE_ANIMATION_STEPS_T 16
306 #define MINIATURIZE_ANIMATION_DELAY_T 20000
307 #define MINIATURIZE_ANIMATION_TWIST_T 0.5
308 /* Flip animation */
309 #define MINIATURIZE_ANIMATION_FRAMES_F 12
310 #define MINIATURIZE_ANIMATION_STEPS_F 16
311 #define MINIATURIZE_ANIMATION_DELAY_F 20000
312 #define MINIATURIZE_ANIMATION_TWIST_F 0.5
315 #define HIDE_ANIMATION_STEPS (MINIATURIZE_ANIMATION_STEPS*2/3)
317 /* delay before balloon is shown (ms) */
318 #define BALLOON_DELAY 1000
320 /* delay for menu item selection hysteresis (ms) */
321 #define MENU_SELECT_DELAY 200
323 /* delay for jumpback of scrolled menus (ms) */
324 #define MENU_JUMP_BACK_DELAY 400
326 /* *** animation speed constants *** */
328 /* icon slide */
329 #define ICON_SLIDE_SLOWDOWN_UF 1
330 #define ICON_SLIDE_DELAY_UF 0
331 #define ICON_SLIDE_STEPS_UF 50
333 #define ICON_SLIDE_SLOWDOWN_F 3
334 #define ICON_SLIDE_DELAY_F 0
335 #define ICON_SLIDE_STEPS_F 50
337 #define ICON_SLIDE_SLOWDOWN_M 5
338 #define ICON_SLIDE_DELAY_M 0
339 #define ICON_SLIDE_STEPS_M 30
341 #define ICON_SLIDE_SLOWDOWN_S 10
342 #define ICON_SLIDE_DELAY_S 0
343 #define ICON_SLIDE_STEPS_S 20
345 #define ICON_SLIDE_SLOWDOWN_US 20
346 #define ICON_SLIDE_DELAY_US 1
347 #define ICON_SLIDE_STEPS_US 10
349 /* menu scrolling */
350 #define MENU_SCROLL_STEPS_UF 14
351 #define MENU_SCROLL_DELAY_UF 1
353 #define MENU_SCROLL_STEPS_F 10
354 #define MENU_SCROLL_DELAY_F 5
356 #define MENU_SCROLL_STEPS_M 6
357 #define MENU_SCROLL_DELAY_M 5
359 #define MENU_SCROLL_STEPS_S 4
360 #define MENU_SCROLL_DELAY_S 6
362 #define MENU_SCROLL_STEPS_US 1
363 #define MENU_SCROLL_DELAY_US 8
366 /* shade animation */
367 #define SHADE_STEPS_UF 5
368 #define SHADE_DELAY_UF 0
370 #define SHADE_STEPS_F 10
371 #define SHADE_DELAY_F 0
373 #define SHADE_STEPS_M 15
374 #define SHADE_DELAY_M 0
376 #define SHADE_STEPS_S 30
377 #define SHADE_DELAY_S 0
379 #define SHADE_STEPS_US 40
380 #define SHADE_DELAY_US 10
383 /* workspace name on switch display */
384 #define WORKSPACE_NAME_FADE_DELAY 30
386 #ifdef VIRTUAL_DESKTOP
387 /* workspace virtual edge speed */
388 #define VIRTUALEDGE_SCROLL_VSTEP 30
389 #define VIRTUALEDGE_SCROLL_HSTEP 30
390 #endif
392 #define WORKSPACE_NAME_DELAY 400
394 /* window birth animation steps (DO NOT MAKE IT RUN-TIME) */
395 #define WINDOW_BIRTH_STEPS 20
397 /* number of steps for icon dematerialization. */
398 #define DEMATERIALIZE_STEPS 16
400 /* Delay when cycling colors of selected icons. */
401 #define COLOR_CYCLE_DELAY 200
403 /* size of the pieces in the undocked icon explosion */
404 #define ICON_KABOOM_PIECE_SIZE 4
407 /* Position increment for smart placement. >= 1 raise these values if it's
408 * too slow for you */
409 #define PLACETEST_HSTEP 8
410 #define PLACETEST_VSTEP 8
413 #define DOCK_EXTRA_SPACE 0
415 /* Vicinity in which an icon can be attached to the clip */
416 #define CLIP_ATTACH_VICINITY 1
418 #define CLIP_BUTTON_SIZE 23
421 /* The amount of space (in multiples of the icon size)
422 * a docked icon must be dragged out to detach it */
423 #define DOCK_DETTACH_THRESHOLD 3
425 /* Delay (in ms) after which the clip will autocollapse when leaved */
426 #define AUTO_COLLAPSE_DELAY 1000
428 /* Delay (in ms) after which the clip will autoexpand when entered.
429 * Set this to zero if you want instant expanding. */
430 #define AUTO_EXPAND_DELAY 600
432 /* Delay (in ms) after which the clip will be lowered when leaved */
433 #define AUTO_LOWER_DELAY 1000
435 /* Delay (in ms) after which the clip will be raised when entered.
436 * Set this to zero if you want instant raise. */
437 #define AUTO_RAISE_DELAY 600
440 /* Max. number of icons the clip can have */
441 #define CLIP_MAX_ICONS 32
443 /* blink interval when invoking a menu item */
444 #define MENU_BLINK_DELAY 60000
445 #define MENU_BLINK_COUNT 2
447 #define CURSOR_BLINK_RATE 300
449 #define MOVE_THRESHOLD 5 /* how many pixels to move before dragging windows
450 * and other objects */
452 #define KEY_CONTROL_WINDOW_WEIGHT 1
454 #define HRESIZE_THRESHOLD 3
456 #define MAX_WORKSPACENAME_WIDTH 32
457 #define MAX_WINDOWLIST_WIDTH 160 /* max width of window title in
458 * window list */
460 #define DEFAULTS_CHECK_INTERVAL 2000 /* how often wmaker will check for
461 * changes in the config files */
463 /* if your keyboard don't have arrow keys */
464 #undef ARROWLESS_KBD
467 /* don't put titles in miniwindows */
468 #undef NO_MINIWINDOW_TITLES
471 #define FRAME_BORDER_COLOR "black"
474 /* for boxes with high mouse sampling rates (SGI) */
475 #define DELAY_BETWEEN_MOUSE_SAMPLING 10
479 *----------------------------------------------------------------------
480 * You should not modify the following values, unless you know
481 * what you're doing.
482 *----------------------------------------------------------------------
486 /* number of window shortcuts */
487 #define MAX_WINDOW_SHORTCUTS 10
490 #define WM_PI 3.14159265358979323846
492 #define FRAME_BORDER_WIDTH 1 /* width of window border for frames */
494 #define RESIZEBAR_HEIGHT 8 /* height of the resizebar */
495 #define RESIZEBAR_MIN_WIDTH 20 /* min. width of handles-corner_width */
496 #define RESIZEBAR_CORNER_WIDTH 28 /* width of the corner of resizebars */
498 #define MENU_INDICATOR_SPACE 12
500 /* minimum size for windows */
501 #define MIN_WINDOW_SIZE 5
503 #define MIN_TITLEFONT_HEIGHT(h) ((h)>14 ? (h) : 14)
505 #define ICON_WIDTH 64 /* size of the icon window */
506 #define ICON_HEIGHT 64
507 #define ICON_BORDER_WIDTH 2
509 #define MAX_ICON_WIDTH 60 /* size of the icon pixmap */
510 #define MAX_ICON_HEIGHT 48
512 #define MAX_WORKSPACES 100
514 #define MAX_MENU_TEXT_LENGTH 512
516 #define MAX_RESTART_ARGS 16
518 #define MAX_DEAD_PROCESSES 128
521 #define MAXLINE 1024
524 #ifdef _MAX_PATH
525 # define DEFAULT_PATH_MAX _MAX_PATH
526 #else
527 # define DEFAULT_PATH_MAX 512
528 #endif
531 #define DEBUG0
533 /* some rules */
535 #ifndef SHAPE
536 #undef SHAPED_BALLOON
537 #endif
539 #ifdef XKB_MODELOCK
540 #define KEEP_XKB_LOCK_STATUS
541 /* This is a hidden feature.
542 * Choose just one of LANGUAGE_* hints.
543 * Icon can be changed in def_pixmaps.h.
544 * More icons are welcome.
546 #define XKB_BUTTON_HINT
547 #undef LANGUAGE_TH
548 #undef LANGUAGE_SK
549 #endif
551 #ifndef DEMATERIALIZE_ICON
552 # define NORMAL_ICON_KABOOM
553 #endif
555 #if defined(HAVE_LIBINTL_H) && defined(I18N)
556 # include <libintl.h>
557 # define _(text) gettext(text)
558 #else
559 # define _(text) (text)
560 #endif
563 #if defined(__GNUC__) && !defined(__STRICT_ANSI__)
564 # define INLINE inline
565 #else
566 # define INLINE
567 #endif
569 #endif /* WMCONFIG_H_ */