1 #ifdef _WINDOW_CONFIG 2 3 /* default window dimensions (overwritten via -g option): */ 4 static const int WIN_WIDTH = 800; 5 static const int WIN_HEIGHT = 600; 6 7 /* colors and font are configured via X resource properties. 8 * See nsxiv(1), X(7) section Resources and xrdb(1) for more information. 9 */ 10 11 #endif 12 #ifdef _TITLE_CONFIG 13 14 /* default title prefix */ 15 static const char *TITLE_PREFIX = "nsxiv - "; 16 17 /* default title suffixmode, available options are: 18 * SUFFIX_EMPTY 19 * SUFFIX_BASENAME 20 * SUFFIX_FULLPATH 21 */ 22 static const suffixmode_t TITLE_SUFFIXMODE = SUFFIX_BASENAME; 23 24 #endif 25 #ifdef _IMAGE_CONFIG 26 27 /* zoom level of 1.0 means 100% */ 28 static const float ZOOM_MIN = 0.01; 29 static const float ZOOM_MAX = 20.0; 30 static const float ZOOM_STEP = 1.2599210498948732; /* 2^(1/3) */ 31 32 /* default slideshow delay (in sec, overwritten via -S option): */ 33 static const int SLIDESHOW_DELAY = 5; 34 35 /* gamma correction: the user-visible ranges [-GAMMA_RANGE, 0] and 36 * (0, GAMMA_RANGE] are mapped to the ranges [0, 1], and (1, GAMMA_MAX]. 37 * */ 38 static const double GAMMA_MAX = 10.0; 39 static const int GAMMA_RANGE = 32; 40 41 /* command i_scroll pans image 1/PAN_FRACTION of screen width/height */ 42 static const int PAN_FRACTION = 5; 43 44 /* if false, pixelate images at zoom level != 100%, 45 * toggled with 'a' key binding 46 */ 47 static const bool ANTI_ALIAS = true; 48 49 /* if true, use a checkerboard background for alpha layer, 50 * toggled with 'A' key binding 51 */ 52 static const bool ALPHA_LAYER = false; 53 54 #endif 55 #ifdef _THUMBS_CONFIG 56 57 /* thumbnail sizes in pixels (width == height): */ 58 static const int thumb_sizes[] = { 32, 64, 96, 128, 160 }; 59 60 /* thumbnail size at startup, index into thumb_sizes[]: */ 61 static const int THUMB_SIZE = 3; 62 63 #endif 64 #ifdef _MAPPINGS_CONFIG 65 66 /* Following modifiers (NumLock | CapsLock) will be ignored when processing keybindings */ 67 static const int ignore_mask = Mod2Mask | LockMask; 68 69 /* abort the keyhandler */ 70 static const KeySym keyhandler_abort = XK_Escape; 71 72 /* keyboard mappings for image and thumbnail mode: */ 73 static const keymap_t keys[] = { 74 /* modifiers key function argument */ 75 { 0, XK_q, g_quit, None }, 76 { 0, XK_Return, g_switch_mode, None }, 77 { 0, XK_f, g_toggle_fullscreen, None }, 78 { 0, XK_b, g_toggle_bar, None }, 79 { ControlMask, XK_x, g_prefix_external, None }, 80 { 0, XK_g, g_first, None }, 81 { 0, XK_G, g_n_or_last, None }, 82 { 0, XK_r, g_reload_image, None }, 83 { 0, XK_D, g_remove_image, None }, 84 { ControlMask, XK_h, g_scroll_screen, DIR_LEFT }, 85 { ControlMask, XK_Left, g_scroll_screen, DIR_LEFT }, 86 { ControlMask, XK_j, g_scroll_screen, DIR_DOWN }, 87 { ControlMask, XK_Down, g_scroll_screen, DIR_DOWN }, 88 { ControlMask, XK_k, g_scroll_screen, DIR_UP }, 89 { ControlMask, XK_Up, g_scroll_screen, DIR_UP }, 90 { ControlMask, XK_l, g_scroll_screen, DIR_RIGHT }, 91 { ControlMask, XK_Right, g_scroll_screen, DIR_RIGHT }, 92 { 0, XK_plus, g_zoom, +1 }, 93 { 0, XK_KP_Add, g_zoom, +1 }, 94 { 0, XK_minus, g_zoom, -1 }, 95 { 0, XK_KP_Subtract, g_zoom, -1 }, 96 { 0, XK_m, g_toggle_image_mark, None }, 97 { 0, XK_M, g_mark_range, None }, 98 { ControlMask, XK_m, g_reverse_marks, None }, 99 { ControlMask, XK_u, g_unmark_all, None }, 100 { 0, XK_N, g_navigate_marked, +1 }, 101 { 0, XK_P, g_navigate_marked, -1 }, 102 { 0, XK_braceleft, g_change_gamma, -1 }, 103 { 0, XK_braceright, g_change_gamma, +1 }, 104 { ControlMask, XK_g, g_change_gamma, 0 }, 105 106 { 0, XK_h, t_move_sel, DIR_LEFT }, 107 { 0, XK_Left, t_move_sel, DIR_LEFT }, 108 { 0, XK_j, t_move_sel, DIR_DOWN }, 109 { 0, XK_Down, t_move_sel, DIR_DOWN }, 110 { 0, XK_k, t_move_sel, DIR_UP }, 111 { 0, XK_Up, t_move_sel, DIR_UP }, 112 { 0, XK_l, t_move_sel, DIR_RIGHT }, 113 { 0, XK_Right, t_move_sel, DIR_RIGHT }, 114 { 0, XK_R, t_reload_all, None }, 115 116 { 0, XK_n, i_navigate, +1 }, 117 { 0, XK_n, i_scroll_to_edge, DIR_LEFT | DIR_UP }, 118 { 0, XK_space, i_navigate, +1 }, 119 { 0, XK_p, i_navigate, -1 }, 120 { 0, XK_p, i_scroll_to_edge, DIR_LEFT | DIR_UP }, 121 { 0, XK_BackSpace, i_navigate, -1 }, 122 { 0, XK_bracketright, i_navigate, +10 }, 123 { 0, XK_bracketleft, i_navigate, -10 }, 124 { ControlMask, XK_6, i_alternate, None }, 125 { ControlMask, XK_n, i_navigate_frame, +1 }, 126 { ControlMask, XK_p, i_navigate_frame, -1 }, 127 { ControlMask, XK_space, i_toggle_animation, None }, 128 { ControlMask, XK_a, i_toggle_animation, None }, 129 { 0, XK_h, i_scroll, DIR_LEFT }, 130 { 0, XK_Left, i_scroll, DIR_LEFT }, 131 { 0, XK_j, i_scroll, DIR_DOWN }, 132 { 0, XK_Down, i_scroll, DIR_DOWN }, 133 { 0, XK_k, i_scroll, DIR_UP }, 134 { 0, XK_Up, i_scroll, DIR_UP }, 135 { 0, XK_l, i_scroll, DIR_RIGHT }, 136 { 0, XK_Right, i_scroll, DIR_RIGHT }, 137 { 0, XK_H, i_scroll_to_edge, DIR_LEFT }, 138 { 0, XK_J, i_scroll_to_edge, DIR_DOWN }, 139 { 0, XK_K, i_scroll_to_edge, DIR_UP }, 140 { 0, XK_L, i_scroll_to_edge, DIR_RIGHT }, 141 { 0, XK_equal, i_set_zoom, 100 }, 142 { 0, XK_w, i_fit_to_win, SCALE_DOWN }, 143 { 0, XK_W, i_fit_to_win, SCALE_FIT }, 144 { 0, XK_F, i_fit_to_win, SCALE_FILL }, 145 { 0, XK_e, i_fit_to_win, SCALE_WIDTH }, 146 { 0, XK_E, i_fit_to_win, SCALE_HEIGHT }, 147 { 0, XK_less, i_rotate, DEGREE_270 }, 148 { 0, XK_greater, i_rotate, DEGREE_90 }, 149 { 0, XK_question, i_rotate, DEGREE_180 }, 150 { 0, XK_bar, i_flip, FLIP_HORIZONTAL }, 151 { 0, XK_underscore, i_flip, FLIP_VERTICAL }, 152 { 0, XK_a, i_toggle_antialias, None }, 153 { 0, XK_A, i_toggle_alpha, None }, 154 { 0, XK_s, i_slideshow, None }, 155 }; 156 157 /* mouse button mappings for image mode: */ 158 static const button_t buttons[] = { 159 /* modifiers button function argument */ 160 { 0, 1, i_cursor_navigate, None }, 161 { 0, 2, i_drag, DRAG_ABSOLUTE }, 162 { 0, 3, g_switch_mode, None }, 163 { 0, 4, g_zoom, +1 }, 164 { 0, 5, g_zoom, -1 }, 165 }; 166 167 #endif 168