summaryrefslogtreecommitdiffstats
path: root/config.h
blob: aac42440e0a5be116d1a41cfb60b9c731d22ecdb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#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