nsxiv/config.h
Bert b8ff1677b1 Major code refactoring
- Configurable key and mouse mappings in config.h
- Put event handling code from main.c into events.[ch]
2011-07-26 18:01:29 +02:00

121 lines
4.5 KiB
C

#ifdef _GENERAL_CONFIG
/* enable external commands (defined below)? 0 = off, 1 = on: */
enum { EXT_COMMANDS = 0 };
#endif
#ifdef _WINDOW_CONFIG
/* default window dimensions (overwritten via -g option): */
enum { WIN_WIDTH = 800, WIN_HEIGHT = 600 };
/* default color for window background: *
* (see X(7) "COLOR NAMES" section for valid values) */
static const char * const BG_COLOR = "#999999";
/* default color for thumbnail selection: */
static const char * const SEL_COLOR = "#0066FF";
#endif
#ifdef _IMAGE_CONFIG
/* how should images be scaled when they are loaded?: *
* (also controllable via -d/-s/-Z/-z options) *
* SCALE_DOWN: 100%, but fit large images into window, *
* SCALE_FIT: fit all images into window, *
* SCALE_ZOOM: use current zoom level, 100% at startup */
static const scalemode_t SCALE_MODE = SCALE_DOWN;
/* levels (percent) to use when zooming via '-' and '+': */
static const float zoom_levels[] = {
12.5, 25.0, 50.0, 75.0,
100.0, 150.0, 200.0, 400.0, 800.0
};
#endif
#ifdef _THUMBS_CONFIG
/* default dimension of thumbnails (width == height): */
enum { THUMB_SIZE = 60 };
#endif
#ifdef _MAPPINGS_CONFIG
/* keyboard mappings for image and thumbnail mode: */
static const keymap_t keys[] = {
/* key function argument */
{ XK_q, quit, None },
{ XK_r, reload, None },
{ XK_f, toggle_fullscreen, None },
{ XK_a, toggle_antialias, None },
{ XK_A, toggle_alpha, None },
{ XK_Return, switch_mode, None },
{ XK_g, first, None },
{ XK_G, last, None },
{ XK_n, navigate, +1 },
{ XK_space, navigate, +1 },
{ XK_p, navigate, -1 },
{ XK_BackSpace, navigate, -1 },
{ XK_bracketright, navigate, +10 },
{ XK_bracketleft, navigate, -10 },
{ XK_D, remove_image, None },
{ XK_h, move, DIR_LEFT },
{ XK_Left, move, DIR_LEFT },
{ XK_j, move, DIR_DOWN },
{ XK_Down, move, DIR_DOWN },
{ XK_k, move, DIR_UP },
{ XK_Up, move, DIR_UP },
{ XK_l, move, DIR_RIGHT },
{ XK_Right, move, DIR_RIGHT },
{ XK_braceleft, scroll, DIR_LEFT },
{ XK_Next, scroll, DIR_DOWN },
{ XK_Prior, scroll, DIR_UP },
{ XK_braceright, scroll, DIR_RIGHT },
{ XK_H, pan_edge, DIR_LEFT },
{ XK_J, pan_edge, DIR_DOWN },
{ XK_K, pan_edge, DIR_UP },
{ XK_L, pan_edge, DIR_RIGHT },
{ XK_plus, zoom, +1 },
{ XK_equal, zoom, +1 },
{ XK_KP_Add, zoom, +1 },
{ XK_minus, zoom, -1 },
{ XK_KP_Subtract, zoom, -1 },
{ XK_0, zoom, 0 },
{ XK_KP_0, zoom, 0 },
{ XK_w, fit_to_win, None },
{ XK_W, fit_to_img, None },
{ XK_less, rotate, DIR_LEFT },
{ XK_greater, rotate, DIR_RIGHT },
};
/* external commands and corresponding key mappings: */
static const command_t commands[] = {
/* ctrl-... reload? command, '#' is replaced by filename */
{ XK_comma, True, "jpegtran -rotate 270 -copy all -outfile # #" },
{ XK_period, True, "jpegtran -rotate 90 -copy all -outfile # #" },
{ XK_less, True, "mogrify -rotate -90 #" },
{ XK_greater, True, "mogrify -rotate +90 #" }
};
/* mouse button mappings for image mode: */
static const button_t buttons[] = {
/* modifier button function argument */
{ None, Button1, navigate, +1 },
{ None, Button3, navigate, -1 },
{ None, Button2, drag, None },
{ None, Button4, move, DIR_UP },
{ None, Button5, move, DIR_DOWN },
{ ShiftMask, Button4, move, DIR_LEFT },
{ ShiftMask, Button5, move, DIR_RIGHT },
{ ControlMask, Button4, zoom, +1 },
{ ControlMask, Button5, zoom, -1 },
};
#endif