From 34409a5cb4754965a73608fbba8fe57a4071362c Mon Sep 17 00:00:00 2001 From: ketmar Date: Thu, 2 Feb 2012 03:21:25 +0200 Subject: [PATCH] latest changes before girara merging --- .gitignore | 5 +- config.h | 374 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 378 insertions(+), 1 deletion(-) create mode 100644 config.h diff --git a/.gitignore b/.gitignore index 487e3b2..7f069ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .depend/ *.o *.do -config.h zathura zathura-debug +_* +*.pdf +*.a +*.o diff --git a/config.h b/config.h new file mode 100644 index 0000000..181bb15 --- /dev/null +++ b/config.h @@ -0,0 +1,374 @@ +/* settings */ +int default_maximize = TRUE; +int default_width = 800; +int default_height = 600; +float zoom_step = 10; +float zoom_min = 10; +float zoom_max = 400; +float scroll_step = 40; +float transparency = 0.4; +float smooth_scrolling = 0.0; +int n_completion_items = 64; + +/* completion */ +static const char FORMAT_COMMAND[] = "%s"; +static const char FORMAT_DESCRIPTION[] = "%s"; + +/* Use XDG directory specification if no config and data directory are given on + * the command line. Uncomment the next line if you just want to use CONFIG_DIR + * and DATA_DIR instead (these will be the default locations if the XDG_* + * environment variables are not set anyway) */ +/* #define ZATHURA_NO_XDG */ + +/* directories and files */ +static const char BOOKMARK_FILE[] = "bookmarks"; +static const char ZATHURA_RC[] = "zathurarc"; +static const char GLOBAL_RC[] = "/etc/zathurarc"; +static const char CONFIG_DIR[] = "~/.config/zathura"; +static const char DATA_DIR[] = "~/.local/share/zathura"; + +/* bookmarks */ +enum +{ + BM_PAGE_ENTRY = 0, + BM_PAGE_OFFSET, + BM_PAGE_SCALE, + BM_MAX, +}; + +static const char *bm_reserved_names[] = +{ + [BM_PAGE_ENTRY] = "page", + [BM_PAGE_OFFSET] = "offset", + [BM_PAGE_SCALE] = "scale", +}; +int save_position = 1; +int save_zoom_level = 1; + +/* look */ +char* font = "monospace normal 9"; +char* default_bgcolor = "#000000"; +char* default_fgcolor = "#DDDDDD"; +char* inputbar_bgcolor = "#141414"; +char* inputbar_fgcolor = "#9FBC00"; +char* statusbar_bgcolor = "#000000"; +char* statusbar_fgcolor = "#FFFFFF"; +char* completion_fgcolor = "#DDDDDD"; +char* completion_bgcolor = "#232323"; +char* completion_g_fgcolor = "#DEDEDE"; +char* completion_g_bgcolor = "#FF00FF"; +char* completion_hl_fgcolor = "#232323"; +char* completion_hl_bgcolor = "#9FBC00"; +char* notification_e_bgcolor = "#FF1212"; +char* notification_e_fgcolor = "#FFFFFF"; +char* notification_w_bgcolor = "#FFF712"; +char* notification_w_fgcolor = "#000000"; +char* recolor_darkcolor = "#353535"; +char* recolor_lightcolor = "#DBDBDB"; + +char* search_highlight = "#9FBC00"; +char* select_text = "#000000"; + +/* statusbar */ +char* default_text = "[No Name]"; + +/* printing */ +char* list_printer_command = "lpstat -v | sed -n '/^.*device for \\(.*\\): .*$/s//\\1/p'"; +char* print_command = "lp -d '%s' -P %s %s %s"; /* printer / pages / file */ + +/* open uri */ +char* uri_command = "opera %s"; /* uri */ + +/* additional settings */ +gboolean show_scrollbars = FALSE; +gboolean scroll_wrap = FALSE; +int adjust_open = /*ADJUST_WIDTH*/ ADJUST_BESTFIT; +#define SELECTION_STYLE POPPLER_SELECTION_GLYPH +#define GOTO_MODE GOTO_LABELS /* GOTO_DEFAULT, GOTO_LABELS, GOTO_OFFSET */ + +/* define additional modes */ +#define INSERT (1 << 4) +#define VISUAL (1 << 5) +#define EMACS_CX (1 << 6) + +/* mode names */ +ModeName mode_names[] = { + /* default mode names */ + {"all", ALL, ""}, + {"fullscreen", FULLSCREEN, ""}, + {"index", INDEX, ""}, + {"normal", NORMAL, ""}, + /* additional mode names */ + {"insert", INSERT, "-- INSERT --"}, + {"visual", VISUAL, "-- VISUAL --"} +}; + +/* shortcuts */ +Shortcut shortcuts[] = { + /* mask, key, function, mode, argument */ + {GDK_CONTROL_MASK, GDK_c, sc_abort, ALL, {0} }, + {0, GDK_a, sc_adjust_window, NORMAL, { ADJUST_BESTFIT } }, + {0, GDK_s, sc_adjust_window, NORMAL, { ADJUST_WIDTH } }, + {0, GDK_Escape, sc_abort, ALL, {0} }, + {0, GDK_BackSpace, sc_change_buffer, ALL, { DELETE_LAST } }, + {0, GDK_i, sc_change_mode, NORMAL, { INSERT } }, + {0, GDK_v, sc_change_mode, NORMAL, { VISUAL } }, + {0, GDK_m, sc_change_mode, NORMAL, { ADD_MARKER } }, + {0, GDK_apostrophe, sc_change_mode, NORMAL, { EVAL_MARKER } }, + {0, GDK_slash, sc_focus_inputbar, NORMAL, { .data = "/" } }, + {GDK_SHIFT_MASK, GDK_slash, sc_focus_inputbar, NORMAL, { .data = "/" } }, + {GDK_SHIFT_MASK, GDK_question, sc_focus_inputbar, NORMAL, { .data = "?" } }, + {0, GDK_colon, sc_focus_inputbar, NORMAL, { .data = ":" } }, + {0, GDK_o, sc_focus_inputbar, NORMAL, { .data = ":open " } }, + {0, GDK_O, sc_focus_inputbar, NORMAL, { APPEND_FILEPATH, .data = ":open " } }, + {0, GDK_f, sc_follow, NORMAL, {0} }, + {0, GDK_J, sc_navigate, NORMAL, { NEXT } }, + {0, GDK_K, sc_navigate, NORMAL, { PREVIOUS } }, + {GDK_MOD1_MASK, GDK_Right, sc_navigate, NORMAL, { NEXT } }, + {GDK_MOD1_MASK, GDK_Left, sc_navigate, NORMAL, { PREVIOUS } }, + {0, GDK_Left, sc_navigate, FULLSCREEN, { PREVIOUS } }, + {0, GDK_Up, sc_navigate, FULLSCREEN, { PREVIOUS } }, + {0, GDK_Down, sc_navigate, FULLSCREEN, { NEXT } }, + {0, GDK_Right, sc_navigate, FULLSCREEN, { NEXT } }, + {0, GDK_space, sc_navigate, FULLSCREEN, { NEXT } }, + {0, GDK_k, sc_navigate_index, INDEX, { UP } }, + {0, GDK_j, sc_navigate_index, INDEX, { DOWN } }, + {0, GDK_h, sc_navigate_index, INDEX, { COLLAPSE } }, + {0, GDK_l, sc_navigate_index, INDEX, { EXPAND } }, + {0, GDK_space, sc_navigate_index, INDEX, { SELECT } }, + {0, GDK_Return, sc_navigate_index, INDEX, { SELECT } }, + {GDK_CONTROL_MASK, GDK_i, sc_recolor, NORMAL, {0} }, + {0, GDK_R, sc_reload, NORMAL, {0} }, + {0, GDK_r, sc_rotate, NORMAL, {0} }, + {0, GDK_n, sc_search, NORMAL, { FORWARD } }, + {0, GDK_N, sc_search, NORMAL, { BACKWARD } }, + {0, GDK_h, sc_scroll, NORMAL, { LEFT } }, + {0, GDK_j, sc_scroll, NORMAL, { DOWN } }, + {0, GDK_k, sc_scroll, NORMAL, { UP } }, + {0, GDK_l, sc_scroll, NORMAL, { RIGHT } }, + {0, GDK_Left, sc_scroll, NORMAL, { LEFT } }, + {0, GDK_Up, sc_scroll, NORMAL, { UP } }, + {0, GDK_Down, sc_scroll, NORMAL, { DOWN } }, + {0, GDK_Right, sc_scroll, NORMAL, { RIGHT } }, + {GDK_CONTROL_MASK, GDK_d, sc_scroll, NORMAL, { HALF_DOWN } }, + {GDK_CONTROL_MASK, GDK_u, sc_scroll, NORMAL, { HALF_UP } }, + {GDK_CONTROL_MASK, GDK_f, sc_scroll, NORMAL, { FULL_DOWN } }, + {GDK_CONTROL_MASK, GDK_b, sc_scroll, NORMAL, { FULL_UP } }, + {0, GDK_space, sc_scroll, NORMAL, { FULL_DOWN } }, + {0, GDK_0, sc_switch_goto_mode, NORMAL, {0} }, + {0, GDK_F11, sc_toggle_fullscreen, NORMAL | FULLSCREEN, {0} }, + {0, GDK_Tab, sc_toggle_index, NORMAL | INDEX, {0} }, + {GDK_CONTROL_MASK, GDK_m, sc_toggle_inputbar, NORMAL, {0} }, + {GDK_CONTROL_MASK, GDK_n, sc_toggle_statusbar, NORMAL, {0} }, + {GDK_CONTROL_MASK, GDK_q, sc_quit, ALL, {0} }, + {0, GDK_plus, sc_zoom, NORMAL | FULLSCREEN, { ZOOM_IN } }, + {0, GDK_minus, sc_zoom, NORMAL | FULLSCREEN, { ZOOM_OUT } }, + {0, GDK_equal, sc_zoom, NORMAL | FULLSCREEN, { ZOOM_ORIGINAL } }, + /* k8 */ + {GDK_CONTROL_MASK, GDK_space, sc_navigate, NORMAL | FULLSCREEN, { NEXT } }, + {0, GDK_space, sc_scroll, NORMAL | FULLSCREEN, { FULL_DOWN } }, + {GDK_SHIFT_MASK, GDK_space, sc_scroll, NORMAL | FULLSCREEN, { FULL_UP } }, + {0, GDK_Page_Down, sc_scroll, NORMAL | FULLSCREEN, { FULL_DOWN } }, + {0, GDK_Page_Up, sc_scroll, NORMAL | FULLSCREEN, { FULL_UP } }, +}; + +/* inputbar shortcuts */ +InputbarShortcut inputbar_shortcuts[] = { + /* mask, key, function, argument */ + {0, GDK_Escape, isc_abort, {0} }, + {GDK_CONTROL_MASK, GDK_c, isc_abort, {0} }, + {GDK_CONTROL_MASK, GDK_g, isc_abort, {0} }, + {0, GDK_Up, isc_command_history, {0} }, + {0, GDK_Down, isc_command_history, {0} }, + {0, GDK_Tab, isc_completion, { NEXT } }, + {GDK_CONTROL_MASK, GDK_Tab, isc_completion, { NEXT_GROUP } }, + {0, GDK_ISO_Left_Tab, isc_completion, { PREVIOUS } }, + {GDK_CONTROL_MASK, GDK_ISO_Left_Tab, isc_completion, { PREVIOUS_GROUP } }, + {0, GDK_BackSpace, isc_string_manipulation, { DELETE_LAST_CHAR } }, + {GDK_CONTROL_MASK, GDK_h, isc_string_manipulation, { DELETE_LAST_CHAR } }, + {GDK_CONTROL_MASK, GDK_u, isc_string_manipulation, { DELETE_TO_LINE_START } }, + {GDK_CONTROL_MASK, GDK_w, isc_string_manipulation, { DELETE_LAST_WORD } }, + {GDK_CONTROL_MASK, GDK_f, isc_string_manipulation, { NEXT_CHAR } }, + {GDK_CONTROL_MASK, GDK_b, isc_string_manipulation, { PREVIOUS_CHAR } }, +}; + +/* mouse settings */ +MouseScrollEvent mouse_scroll_events[] = { + /* direction, function, argument */ + {GDK_SCROLL_LEFT, sc_scroll, { LEFT } }, + {GDK_SCROLL_UP, sc_scroll, { UP } }, + {GDK_SCROLL_DOWN, sc_scroll, { DOWN } }, + {GDK_SCROLL_RIGHT, sc_scroll, { RIGHT } }, +}; + +/* commands */ +Command commands[] = { + /* command, abbreviation, function, completion, description */ + {"blist", 0, cmd_open_bookmark, cc_bookmark, "List and open bookmark" }, + {"bmark", "b", cmd_bookmark, 0, "Bookmark current page" }, + {"close", "c", cmd_close, 0, "Close current file" }, + {"coffset", 0, cmd_correct_offset, 0, "Correct page offset" }, + {"delbmark", 0, cmd_delete_bookmark, cc_bookmark, "Bookmark current page" }, + {"export", "e", cmd_export, cc_export, "Export images or attached files" }, + {"info", "i", cmd_info, 0, "Show information about the document" }, + {"map", "m", cmd_map, 0, "Map keybinding to a function" }, + {"open", "o", cmd_open, cc_open, "Open a file" }, + {"print", "p", cmd_print, cc_print, "Print the document" }, + {"quit", "q", cmd_quit, 0, "Quit zathura" }, + {"rotate", "r", cmd_rotate, 0, "Rotate the page" }, + {"set", "s", cmd_set, cc_set, "Set an option" }, + {"write", "w", cmd_save, 0, "Save the document" }, + {"write!", "w!", cmd_savef, 0, "Save the document (and force overwriting)" }, +}; + +/* buffer commands */ +BufferCommand buffer_commands[] = { + /* regex, function, argument */ + {"^gg$", bcmd_goto, { TOP } }, + {"^G$", bcmd_goto, { BOTTOM } }, + {"^[0-9]+G$", bcmd_goto, {0} }, + {"^zI$", bcmd_zoom, { ZOOM_IN } }, + {"^zO$", bcmd_zoom, { ZOOM_OUT } }, + {"^z0$", bcmd_zoom, { ZOOM_ORIGINAL } }, + {"^[0-9]+Z$", bcmd_zoom, { ZOOM_SPECIFIC } }, + {"^[0-9]+%$", bcmd_scroll, {0} }, +}; + +/* special commands */ +SpecialCommand special_commands[] = { + /* identifier, function, a, argument */ + {'/', scmd_search, 1, { DOWN } }, + {'?', scmd_search, 1, { UP } }, +}; + +/* settings */ +Setting settings[] = { + /* name, variable, type, render, re-init, description */ + {"adjust_open", &(adjust_open), 'i', FALSE, FALSE, "Adjust mode"}, + {"browser", &(uri_command), 's', FALSE, FALSE, "Command to open URIs"}, + {"completion_bgcolor", &(completion_bgcolor), 's', FALSE, TRUE, "Completion background color"}, + {"completion_fgcolor", &(completion_fgcolor), 's', FALSE, TRUE, "Completion foreground color"}, + {"completion_g_bgcolor", &(completion_g_bgcolor), 's', FALSE, TRUE, "Completion (group) background color"}, + {"completion_g_fgcolor", &(completion_g_fgcolor), 's', FALSE, TRUE, "Completion (group) foreground color"}, + {"completion_hl_bgcolor", &(completion_hl_bgcolor), 's', FALSE, TRUE, "Completion (highlight) background color"}, + {"completion_hl_fgcolor", &(completion_hl_fgcolor), 's', FALSE, TRUE, "Completion (highlight) foreground color"}, + {"default_bgcolor", &(default_bgcolor), 's', FALSE, TRUE, "Default background color"}, + {"default_fgcolor", &(default_fgcolor), 's', FALSE, TRUE, "Default foreground color"}, + {"default_text", &(default_text), 's', FALSE, FALSE, "Default text"}, + {"font", &(font), 's', FALSE, TRUE, "The used font" }, + {"height", &(default_height), 'i', FALSE, FALSE, "Default window height"}, + {"inputbar_bgcolor", &(inputbar_bgcolor), 's', FALSE, TRUE, "Inputbar background color"}, + {"inputbar_fgcolor", &(inputbar_fgcolor), 's', FALSE, TRUE, "Inputbar foreground color"}, + {"labels", &(Zathura.Global.enable_labelmode), 'b', FALSE, TRUE, "Allow label mode"}, + {"list_printer_command", &(list_printer_command), 's', FALSE, FALSE, "Command to list printers"}, + {"n_completion_items", &(n_completion_items), 'i', FALSE, FALSE, "Number of completion items"}, + {"notification_e_bgcolor", &(notification_e_bgcolor), 's', FALSE, TRUE, "Notification (error) background color"}, + {"notification_e_fgcolor", &(notification_e_fgcolor), 's', FALSE, TRUE, "Notification (error) foreground color"}, + {"notification_w_bgcolor", &(notification_w_bgcolor), 's', FALSE, TRUE, "Notification (warning) background color"}, + {"notification_w_fgcolor", &(notification_w_fgcolor), 's', FALSE, TRUE, "Notification (warning) foreground color"}, + {"offset", &(Zathura.PDF.page_offset), 'i', FALSE, FALSE, "Optional page offset" }, + {"print_command", &(print_command), 's', FALSE, FALSE, "Command to print"}, + {"recolor", &(Zathura.Global.recolor), 'b', TRUE, FALSE, "Invert the image" }, + {"recolor_darkcolor", &(recolor_darkcolor), 's', FALSE, TRUE, "Recoloring (dark color)"}, + {"recolor_lightcolor", &(recolor_lightcolor), 's', FALSE, TRUE, "Recoloring (light color)"}, + {"save_position", &(save_position), 'b', FALSE, FALSE, "Save position in file on quit and restore it on open"}, + {"save_zoom_level", &(save_zoom_level), 'b', FALSE, FALSE, "Save zoom level on quit and restore it on open"}, + {"scroll_step", &(scroll_step), 'f', FALSE, FALSE, "Scroll step"}, + {"scroll_wrap", &(scroll_wrap), 'b', FALSE, FALSE, "Wrap scolling at last page"}, + {"scrollbars", &(show_scrollbars), 'b', FALSE, TRUE, "Show scrollbars"}, + {"show_statusbar", &(Zathura.Global.show_statusbar), 'b', FALSE, TRUE, "Show statusbar"}, + {"show_inputbar", &(Zathura.Global.show_inputbar), 'b', FALSE, TRUE, "Show inputbar"}, + {"search_highlight", &(search_highlight), 's', FALSE, TRUE, "Highlighted results"}, + {"select_text", &(select_text), 's', FALSE, TRUE, "Rectangle of the selected text"}, + {"smooth_scrolling", &(smooth_scrolling), 'f', FALSE, TRUE, "Smooth scrolling"}, + {"statusbar_bgcolor", &(statusbar_bgcolor), 's', FALSE, TRUE, "Statusbar background color"}, + {"statusbar_fgcolor", &(statusbar_fgcolor), 's', FALSE, TRUE, "Statusbar foreground color"}, + {"transparency", &(transparency), 'f', FALSE, FALSE, "Transparency of rectangles"}, + {"uri_command", &(uri_command), 's', FALSE, FALSE, "Command for opening URIs"}, + {"width", &(default_width), 'i', FALSE, FALSE, "Default window width"}, + {"zoom_max", &(zoom_max), 'f', FALSE, FALSE, "Zoom maximum"}, + {"zoom_min", &(zoom_min), 'f', FALSE, FALSE, "Zoom minimum"}, + {"zoom_step", &(zoom_step), 'f', FALSE, FALSE, "Zoom step"}, +}; + +/* shortcut names */ +ShortcutName shortcut_names[] = { + {"abort", sc_abort}, + {"adjust_window", sc_adjust_window}, + {"change_buffer", sc_change_buffer}, + {"change_mode", sc_change_mode}, + {"focus_inputbar", sc_focus_inputbar}, + {"follow", sc_follow}, + {"navigate", sc_navigate}, + {"navigate_index", sc_navigate_index}, + {"quit", sc_quit}, + {"recolor", sc_recolor}, + {"reload", sc_reload}, + {"rotate", sc_rotate}, + {"scroll", sc_scroll}, + {"search", sc_search}, + {"switch_goto_mode", sc_switch_goto_mode}, + {"toggle_fullscreen", sc_toggle_fullscreen}, + {"toggle_index", sc_toggle_index}, + {"toggle_inputbar", sc_toggle_inputbar}, + {"toggle_statusbar", sc_toggle_statusbar}, + {"zoom", sc_zoom}, +}; + +/* argument names */ +ArgumentName argument_names[] = { + {"add_marker", ADD_MARKER}, + {"backward", BACKWARD}, + {"bestfit", ADJUST_BESTFIT}, + {"collapse", COLLAPSE}, + {"delete_last", DELETE_LAST}, + {"down", DOWN}, + {"eval_marker", EVAL_MARKER}, + {"expand", EXPAND}, + {"forward", FORWARD}, + {"full_down", FULL_DOWN}, + {"full_up", FULL_UP}, + {"half_down", HALF_DOWN}, + {"half_up", HALF_UP}, + {"in", ZOOM_IN}, + {"insert", INSERT}, + {"left", LEFT}, + {"next", NEXT}, + {"original", ZOOM_ORIGINAL}, + {"out", ZOOM_OUT}, + {"previous", PREVIOUS}, + {"right", RIGHT}, + {"select", SELECT}, + {"up", UP}, + {"visual", VISUAL}, + {"width", ADJUST_WIDTH}, +}; + +/* special keys */ +GDKKey gdk_keys[] = { + {"", GDK_BackSpace}, + {"", GDK_Caps_Lock}, + {"", GDK_Down}, + {"", GDK_Escape}, + {"", GDK_F10}, + {"", GDK_F11}, + {"", GDK_F12}, + {"", GDK_F1}, + {"", GDK_F2}, + {"", GDK_F3}, + {"", GDK_F4}, + {"", GDK_F5}, + {"", GDK_F6}, + {"", GDK_F7}, + {"", GDK_F8}, + {"", GDK_F9}, + {"", GDK_Left}, + {"", GDK_Page_Down}, + {"", GDK_Page_Up}, + {"", GDK_Return}, + {"", GDK_Right}, + {"", GDK_space}, + {"", GDK_Super_L}, + {"", GDK_Tab}, + {"", GDK_Up}, +}; -- 2.11.4.GIT