From c57464701eeb39c57d09dfd584bc44a80c45ce28 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Tue, 6 Jan 2015 05:56:38 -0200 Subject: vimprobable2-git: add new package to [pcr] --- pcr/vimprobable2-git/PKGBUILD | 49 ++++++++ pcr/vimprobable2-git/config.h | 252 ++++++++++++++++++++++++++++++++++++++++++ pcr/vimprobable2-git/keymap.h | 156 ++++++++++++++++++++++++++ 3 files changed, 457 insertions(+) create mode 100644 pcr/vimprobable2-git/PKGBUILD create mode 100644 pcr/vimprobable2-git/config.h create mode 100644 pcr/vimprobable2-git/keymap.h diff --git a/pcr/vimprobable2-git/PKGBUILD b/pcr/vimprobable2-git/PKGBUILD new file mode 100644 index 000000000..7d8223303 --- /dev/null +++ b/pcr/vimprobable2-git/PKGBUILD @@ -0,0 +1,49 @@ +# Maintainer (Arch): jason ryan +# Contributor (Arch): totoloco + +pkgname=vimprobable2-git +pkgver=2014.12.26.ga514968 +pkgrel=2 +pkgdesc="Lightweight, keyboard-driven, WebKit based browser with Vim keybinds." +arch=('i686' 'x86_64') +url="http://www.yllr.net/vimprobable/" +license=('MIT') +depends=('libwebkit>=1.1.11' 'gtk2' 'libsoup') +makedepends=('git') +provides=('vimprobable2') +conflicts=('vimprobable2') +_gitname="vimprobable" +_gitbranch="vimprobable2"/ +source=( + "$_gitname::git+http://git.code.sf.net/p/$_gitname/code" + 'config.h' 'keymap.h' + ) +md5sums=('SKIP' + 'e2845958a1ec3f4d77ae4bec87ef2e4d' + '85e971541294c8e354b095b804fe8ac6') + +pkgver() { + cd "$srcdir/${_gitname}" + git log -1 --format="%cd.g%h" --date=short | sed 's/-/./g' +} + +prepare() { + cp {config,keymap}.h "$srcdir/${_gitname}" + cd "$srcdir/${_gitname}" + sed -i 's:LIBS = gtk+-2.0 webkit-1.0 libsoup-2.4:LIBS = gtk+-2.0 webkit-1.0 libsoup-2.4 javascriptcoregtk-1.0:' Makefile +} + +build() { + cd "$srcdir/${_gitname}" + make +} + +package() { + cd "$srcdir/$_gitname" + make PREFIX=/usr MANDIR=/usr/share/man DESTDIR="$pkgdir" install + mkdir -p "$pkgdir"/usr/share/licenses/"${_gitbranch}" + chmod 0755 "$pkgdir"/usr/share/licenses/"${_gitbranch}"/ + install -m 644 LICENSE "$pkgdir"/usr/share/licenses/"${_gitbranch}"/LICENSE +} + +# vim:set ts=2 sw=2 et: diff --git a/pcr/vimprobable2-git/config.h b/pcr/vimprobable2-git/config.h new file mode 100644 index 000000000..547ba22bd --- /dev/null +++ b/pcr/vimprobable2-git/config.h @@ -0,0 +1,252 @@ +/* + (c) 2009 by Leon Winter + (c) 2009-2012 by Hannes Schueller + (c) 2009-2010 by Matto Fransen + (c) 2010-2011 by Hans-Peter Deifel + (c) 2010-2011 by Thomas Adam + (c) 2011 by Albert Kim + (c) 2013 Daniel Carl + see LICENSE file +*/ + +/* Vimprobable version number */ +#define VERSION "1.4.2" +#define INTERNAL_VERSION "Vimprobable2/"VERSION + +extern Client client; + +/* general settings */ +char startpage[MAX_SETTING_SIZE] = "https://bbs.archlinux.org/"; +char useragent[MAX_SETTING_SIZE] = "Vimprobable2/" VERSION; +char acceptlanguage[MAX_SETTING_SIZE] = ""; +static const gboolean enablePlugins = TRUE; /* TRUE keeps plugins enabled */ +static const gboolean enableJava = TRUE; /* FALSE disables Java applets */ +static const gboolean enablePagecache = FALSE; /* TRUE turns on the page cache. */ +static const gboolean javascriptPopups = FALSE; /* TRUE disables Webkit's popup blocker */ +static gboolean escape_input_on_load = TRUE; /* TRUE will disable automatic focusing of input fields via Javascript*/ +static gboolean private_mode = FALSE; /* TRUE will disable writing to the history file, cookie file and closed file */ +char temp_dir[MAX_SETTING_SIZE] = "/tmp"; /* location of temporary files, default will be overridden if TEMPDIR is set */ + +static const gboolean enableLocalstorage = FALSE; +static const gboolean enableDatabase = FALSE; + +char downloads_path[MAX_SETTING_SIZE] = ""; +char statusfont[MAX_SETTING_SIZE] = "DejaVu Sans 7"; /* font for status bar */ + +/* appearance */ +char statusbgcolor[MAX_SETTING_SIZE] = "#222222"; /* background color for status bar */ +char statuscolor[MAX_SETTING_SIZE] = "#696969"; /* color for status bar */ +char sslbgcolor[MAX_SETTING_SIZE] = "#222222"; /* background color for status bar with SSL url */ +char sslinvalidbgcolor[MAX_SETTING_SIZE]= "#8A2F58"; /* background color for status bar with unverified SSL url */ +char sslcolor[MAX_SETTING_SIZE] = "#53A6A6"; /* color for status bar with SSL url */ + + /* normal, warning, error */ +char urlboxfont[][MAX_SETTING_SIZE] = { "DejaVu Sans 7", "DejaVu Sans 7", "DejaVu Sans 7"}; +static const char *urlboxcolor[] = { "#CCCCCC", "#CC99CC", "#FFB6C1" }; +static const char *urlboxbgcolor[] = { "#212121", "#111111", "#212121" }; + + /* normal, error */ +char completionfont[2][MAX_SETTING_SIZE] = { "DejaVu Sans 7", "DejaVu Sans 7" }; + /* topborder color */ +static const char *completioncolor[] = { "#899CA1", "#BF4D80", "#444444" }; + /* current row background */ +static const char *completionbgcolor[] = { "#3D3D3D", "#8C4665", "#5C5C5C" }; + +/* pango markup for prefix highliting: opening, closing */ +#define COMPLETION_TAG_OPEN "" +#define COMPLETION_TAG_CLOSE "" + +#define ENABLE_HISTORY_INDICATOR +#define ENABLE_INCREMENTAL_SEARCH +#define ENABLE_GTK_PROGRESS_BAR +#define ENABLE_WGET_PROGRESS_BAR +static const int progressbartick = 20; +static const char progressborderleft = '['; +static const char progressbartickchar = ':'; +static const char progressbarcurrent = ':'; +static const char progressbarspacer = ' '; +static const char progressborderright = ']'; + +/* external handlers: + * the handle (first string) contain what the handled links have to start with + * the handlers (second string) contain the external applications which should be called for this sort of link + * %s can be used as a placeholder for the link argument after the handler + * e.g.: "mailto:user@example.org + * "handle" is "mailto:" + * "%s" will translate to "user@example.org" + */ +static URIHandler uri_handlers[] = { + { "mailto:", "urxvtc -e mutt %s" }, + { "ftp://", "urxvtc -e wget ftp://%s" }, + { "vimprobableedit:", "urxvt -title scratchpad -geometry 86x24+40+60 -e vim %s" }, +}; + +/* cookies */ +#define ENABLE_COOKIE_SUPPORT +#define COOKIES_STORAGE_FILENAME "%s/vimprobable/cookies", client.config.config_base +#define COOKIES_STORAGE_READONLY FALSE /* if TRUE new cookies will be lost if you quit */ +SoupCookieJarAcceptPolicy CookiePolicy = SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY; /* by default, accept all cookies, but third party */ +SoupCookieJarAcceptPolicy CookiePolicyLastOn = SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY; /* tracking variable for private mode */ + + +/* font size */ +#define DEFAULT_FONT_SIZE 10 + +/* user styles */ +#define USER_STYLESHEET "%s/vimprobable/style.css", client.config.config_base + +/* user javascript */ +#define ENABLE_USER_SCRIPTFILE +#define USER_SCRIPTFILE "%s/vimprobable/scripts.js", client.config.config_base + +/* ssl */ +static gboolean strict_ssl = TRUE; /* FALSE will accept any SSL certificate at face value */ +static char ca_bundle[MAX_SETTING_SIZE] = "/etc/ssl/certs/ca-certificates.crt"; + +/* proxy */ +static const gboolean use_proxy = FALSE; /* TRUE if you're going to use a proxy (whose address + is specified in http_proxy environment variable), false otherwise */ +/* scrolling */ +static unsigned int scrollstep = 40; /* cursor difference in pixel */ +static unsigned int pagingkeep = 40; /* pixels kept when paging */ +#define DISABLE_SCROLLBAR + +/* searching */ +#define ENABLE_MATCH_HIGHLITING +static const int searchoptions = CaseInsensitive | Wrapping; +gboolean complete_case_sensitive = TRUE; + +/* search engines */ +static Searchengine searchengines[] = { + { "d", "https://duckduckgo.com/?q=%s&t=Vimprobable" }, + { "g", "https://ixquick.com/do/metasearch.pl?language=english&cat=web&query=%s" }, + { "b", "https://ixquick.com/do/metasearch.pl?&cat=web&query=host:bbs.archlinux.org+%s" }, + { "a", "https://wiki.archlinux.org/index.php?title=Special%%3ASearch&search=%s&go=Go" }, + { "w", "https://secure.wikimedia.org/wikipedia/en/w/index.php?title=Special%%3ASearch&search=%s&go=Go" }, + /* Hack to shorten urls */ + { "B", "https://api-ssl.bitly.com/v3/shorten?access_token=20e9827b9c5ddee1b0cec7722bfc557dec833791&longUrl=%s&format=txt" }, +}; + +static char defaultsearch[MAX_SETTING_SIZE] = "d"; + +/* command mapping */ +Command commands[COMMANDSIZE] = { + /* command, function, argument */ + { "ba", navigate, {NavigationBack} }, + { "back", navigate, {NavigationBack} }, + { "ec", script, {Info} }, + { "echo", script, {Info} }, + { "echoe", script, {Error} }, + { "echoerr", script, {Error} }, + { "fw", navigate, {NavigationForward} }, + { "fo", navigate, {NavigationForward} }, + { "forward", navigate, {NavigationForward} }, + { "javascript", script, {Silent} }, + { "o", open_arg, {TargetCurrent} }, + { "open", open_arg, {TargetCurrent} }, + { "q", quit, {0} }, + { "quit", quit, {0} }, + { "re", navigate, {NavigationReload} }, + { "re!", navigate, {NavigationForceReload} }, + { "reload", navigate, {NavigationReload} }, + { "reload!", navigate, {NavigationForceReload} }, + { "qt", search_tag, {0} }, + { "st", navigate, {NavigationCancel} }, + { "stop", navigate, {NavigationCancel} }, + { "t", open_arg, {TargetNew} }, + { "tabopen", open_arg, {TargetNew} }, + { "print", print_frame, {0} }, + { "ha", print_frame, {0} }, + { "bma", bookmark, {0} }, + { "bookmark", bookmark, {0} }, + { "source", view_source, {0} }, + { "esource", edit_source, {0} }, + { "openeditor", open_editor, {0} }, + { "set", browser_settings, {0} }, + { "map", mappings, {0} }, + { "inspect", open_inspector, {0} }, + { "jumpleft", scroll, {ScrollJumpTo | DirectionLeft} }, + { "jumpright", scroll, {ScrollJumpTo | DirectionRight} }, + { "jumptop", scroll, {ScrollJumpTo | DirectionTop} }, + { "jumpbottom", scroll, {ScrollJumpTo | DirectionBottom} }, + { "pageup", scroll, {ScrollMove | DirectionTop | UnitPage} }, + { "pagedown", scroll, {ScrollMove | DirectionBottom | UnitPage} }, + { "navigationback", navigate, {NavigationBack} }, + { "navigationforward", navigate, {NavigationForward} }, + { "scrollleft", scroll, {ScrollMove | DirectionLeft | UnitLine} }, + { "scrollright", scroll, {ScrollMove | DirectionRight | UnitLine} }, + { "scrollup", scroll, {ScrollMove | DirectionTop | UnitLine} }, + { "scrolldown", scroll, {ScrollMove | DirectionBottom | UnitLine} }, + { "zi", zoom, {ZoomIn | ZoomText} }, + { "zo", zoom, {ZoomOut | ZoomText} }, + { "pgzi", zoom, {ZoomIn | ZoomFullContent} }, + { "pgzo", zoom, {ZoomOut | ZoomFullContent} }, +}; + +/* mouse bindings + you can use MOUSE_BUTTON_1 to MOUSE_BUTTON_5 +*/ +static Mouse mouse[] = { + /* modmask, modkey, button, function, argument */ + { 0, 0, MOUSE_BUTTON_2, paste, {TargetCurrent | ClipboardPrimary | ClipboardGTK, client.state.rememberedURI} }, + { GDK_CONTROL_MASK, 0, MOUSE_BUTTON_2, paste, {TargetNew | ClipboardPrimary | ClipboardGTK} }, + { GDK_CONTROL_MASK, 0, MOUSE_BUTTON_1, open_remembered, {TargetNew} }, +}; + +/* settings (arguments of :set command) */ +static Setting browsersettings[] = { + /* public name, internal variable webkit setting integer value? boolean value? colour value? reload page? */ + { "useragent", useragent, "user-agent", FALSE, FALSE, FALSE, FALSE }, + { "scripts", NULL, "enable-scripts", FALSE, TRUE, FALSE, FALSE }, + { "plugins", NULL, "enable-plugins", FALSE, TRUE, FALSE, FALSE }, + { "pagecache", NULL, "enable-page-cache", FALSE, TRUE, FALSE, FALSE }, + { "java", NULL, "enable-java-applet", FALSE, TRUE, FALSE, FALSE }, + { "images", NULL, "auto-load-images", FALSE, TRUE, FALSE, FALSE }, + { "shrinkimages", NULL, "auto-shrink-images", FALSE, TRUE, FALSE, FALSE }, + { "cursivefont", NULL, "cursive-font-family", FALSE, FALSE, FALSE, FALSE }, + { "defaultencoding", NULL, "default-encoding", FALSE, FALSE, FALSE, FALSE }, + { "defaultfont", NULL, "default-font-family", FALSE, FALSE, FALSE, FALSE }, + { "fontsize", NULL, "default-font-size", TRUE, FALSE, FALSE, FALSE }, + { "monofontsize", NULL, "default-monospace-font-size", TRUE, FALSE, FALSE, FALSE }, + { "caret", NULL, "enable-caret-browsing", FALSE, TRUE, FALSE, FALSE }, + { "fantasyfont", NULL, "fantasy-font-family", FALSE, FALSE, FALSE, FALSE }, + { "minimumfontsize", NULL, "minimum-font-size", TRUE, FALSE, FALSE, FALSE }, + { "monofont", NULL, "monospace-font-family", FALSE, FALSE, FALSE, FALSE }, + { "backgrounds", NULL, "print-backgrounds", FALSE, TRUE, FALSE, FALSE }, + { "sansfont", NULL, "sans-serif-font-family", FALSE, FALSE, FALSE, FALSE }, + { "seriffont", NULL, "serif-font-family", FALSE, FALSE, FALSE, FALSE }, + { "stylesheet", NULL, "user-stylesheet-uri", FALSE, FALSE, FALSE, FALSE }, + { "resizetextareas", NULL, "resizable-text-areas", FALSE, TRUE, FALSE, FALSE }, + { "webinspector", NULL, "enable-developer-extras", FALSE, TRUE, FALSE, FALSE }, + { "localstorage", NULL, "enable-html5-local-storage", FALSE, TRUE, FALSE, FALSE }, + { "html5db", NULL, "enable-html5-database", FALSE, TRUE, FALSE, FALSE }, + { "popups", NULL, "javascript-can-open-windows-automatically",FALSE,TRUE, FALSE, FALSE }, + + { "homepage", startpage, "", FALSE, FALSE, FALSE, FALSE }, + { "statusbgcolor", statusbgcolor, "", FALSE, FALSE, TRUE, TRUE }, + { "statuscolor", statuscolor, "", FALSE, FALSE, TRUE, TRUE }, + { "sslbgcolor", sslbgcolor, "", FALSE, FALSE, TRUE, TRUE }, + { "sslcolor", sslcolor, "", FALSE, FALSE, TRUE, TRUE }, + { "acceptlanguage", acceptlanguage, "", FALSE, FALSE, FALSE, FALSE }, + { "defaultsearch", defaultsearch, "", FALSE, FALSE, FALSE, FALSE }, + { "cookies", NULL, "", FALSE, FALSE, FALSE, FALSE }, + { "downloadspath", downloads_path, "", FALSE, FALSE, FALSE, FALSE }, + { "statusfont", statusfont, "", FALSE, FALSE, FALSE, FALSE }, + { "urlboxfontnormal",urlboxfont[0], "", FALSE, FALSE, FALSE, FALSE }, + { "urlboxfontwarning",urlboxfont[1], "", FALSE, FALSE, FALSE, FALSE }, + { "urlboxfonterror", urlboxfont[2], "", FALSE, FALSE, FALSE, FALSE }, + { "completionfontnormal", completionfont[0], "", FALSE, FALSE, FALSE, FALSE }, + { "completionfonterror", completionfont[1], "", FALSE, FALSE, FALSE, FALSE }, + { "qmark", NULL, "", FALSE, FALSE, FALSE, FALSE }, + { "proxy", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "windowsize", NULL, "", FALSE, FALSE, FALSE, FALSE }, + { "scrollbars", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "statusbar", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "inputbox", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "completioncase", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "escapeinput", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "private", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "strictssl", NULL, "", FALSE, TRUE, FALSE, FALSE }, + { "cabundle", ca_bundle, "", FALSE, FALSE, FALSE, FALSE }, + { "tempdir", temp_dir, "", FALSE, FALSE, FALSE, FALSE }, +}; diff --git a/pcr/vimprobable2-git/keymap.h b/pcr/vimprobable2-git/keymap.h new file mode 100644 index 000000000..b0c081910 --- /dev/null +++ b/pcr/vimprobable2-git/keymap.h @@ -0,0 +1,156 @@ +/* + (c) 2009 by Leon Winter + (c) 2009-2011 by Hannes Schueller + (c) 2009-2010 by Matto Fransen + (c) 2010-2011 by Hans-Peter Deifel + (c) 2010-2011 by Thomas Adam + (c) 2011 by Albert Kim + see LICENSE file +*/ +#ifndef _KEYMAP + +#define _KEYMAP + +/* key bindings for normal mode + Note: GDK_VoidSymbol is a wildcard so it matches on every modkey +*/ +Key keys[] = { + /* modmask, modkey, key, function, argument */ + { 0, GDK_q, GDK_1, quickmark, { .s = "1" } }, + { 0, GDK_q, GDK_2, quickmark, { .s = "2" } }, + { 0, GDK_q, GDK_3, quickmark, { .s = "3" } }, + { 0, GDK_q, GDK_4, quickmark, { .s = "4" } }, + { 0, GDK_q, GDK_5, quickmark, { .s = "5" } }, + { 0, GDK_q, GDK_6, quickmark, { .s = "6" } }, + { 0, GDK_q, GDK_7, quickmark, { .s = "7" } }, + { 0, GDK_q, GDK_8, quickmark, { .s = "8" } }, + { 0, GDK_q, GDK_9, quickmark, { .s = "9" } }, + { 0, GDK_Q, GDK_1, quickmark, { .s = "1", .i = 1 } }, + { 0, GDK_Q, GDK_2, quickmark, { .s = "2", .i = 1 } }, + { 0, GDK_Q, GDK_3, quickmark, { .s = "3", .i = 1 } }, + { 0, GDK_Q, GDK_4, quickmark, { .s = "4", .i = 1 } }, + { 0, GDK_Q, GDK_5, quickmark, { .s = "5", .i = 1 } }, + { 0, GDK_Q, GDK_6, quickmark, { .s = "6", .i = 1 } }, + { 0, GDK_Q, GDK_7, quickmark, { .s = "7", .i = 1 } }, + { 0, GDK_Q, GDK_8, quickmark, { .s = "8", .i = 1 } }, + { 0, GDK_Q, GDK_9, quickmark, { .s = "9", .i = 1 } }, + { 0, 0, GDK_0, scroll, {ScrollJumpTo | DirectionLeft} }, + { 0, 0, GDK_dollar, scroll, {ScrollJumpTo | DirectionRight} }, + { 0, GDK_g, GDK_g, scroll, {ScrollJumpTo | DirectionTop} }, + { 0, 0, GDK_G, scroll, {ScrollJumpTo | DirectionBottom} }, + { 0, 0, GDK_h, scroll, {ScrollMove | DirectionLeft | UnitLine} }, + { 0, 0, GDK_j, scroll, {ScrollMove | DirectionBottom | UnitLine} }, + { 0, 0, GDK_k, scroll, {ScrollMove | DirectionTop | UnitLine} }, + { 0, 0, GDK_l, scroll, {ScrollMove | DirectionRight | UnitLine} }, + { 0, 0, GDK_space, scroll, {ScrollMove | DirectionBottom | UnitPage} }, + { GDK_SHIFT_MASK, 0, GDK_space, scroll, {ScrollMove | DirectionTop | UnitPage} }, + { GDK_CONTROL_MASK, 0, GDK_b, scroll, {ScrollMove | DirectionTop | UnitPage} }, + { GDK_CONTROL_MASK, 0, GDK_f, scroll, {ScrollMove | DirectionBottom | UnitPage} }, + { GDK_CONTROL_MASK, 0, GDK_d, scroll, {ScrollMove | DirectionBottom | UnitBuffer} }, + { GDK_CONTROL_MASK, 0, GDK_u, scroll, {ScrollMove | DirectionTop | UnitBuffer} }, + { GDK_CONTROL_MASK, 0, GDK_e, scroll, {ScrollMove | DirectionBottom | UnitLine} }, + { GDK_CONTROL_MASK, 0, GDK_y, scroll, {ScrollMove | DirectionTop | UnitLine} }, + + { 0, GDK_g, GDK_t, fake_key_event, { .s = "l", .i = ShiftMask + ControlMask } }, + { 0, GDK_g, GDK_T, fake_key_event, { .s = "h", .i = ShiftMask + ControlMask } }, + { 0, GDK_g, GDK_1, fake_key_event, { .s = "1", .i = ControlMask } }, + { 0, GDK_g, GDK_2, fake_key_event, { .s = "2", .i = ControlMask } }, + { 0, GDK_g, GDK_3, fake_key_event, { .s = "3", .i = ControlMask } }, + { 0, GDK_g, GDK_4, fake_key_event, { .s = "4", .i = ControlMask } }, + { 0, GDK_g, GDK_5, fake_key_event, { .s = "5", .i = ControlMask } }, + { 0, GDK_g, GDK_6, fake_key_event, { .s = "6", .i = ControlMask } }, + { 0, GDK_g, GDK_7, fake_key_event, { .s = "7", .i = ControlMask } }, + { 0, GDK_g, GDK_8, fake_key_event, { .s = "8", .i = ControlMask } }, + { 0, GDK_g, GDK_9, fake_key_event, { .s = "9", .i = ControlMask } }, + { 0, GDK_g, GDK_0, fake_key_event, { .s = "0", .i = ControlMask } }, + + { GDK_CONTROL_MASK, 0, GDK_i, navigate, {NavigationBack} }, + { GDK_CONTROL_MASK, 0, GDK_o, navigate, {NavigationForward} }, + { 0, 0, GDK_b, navigate, {NavigationBack} }, + { 0, 0, GDK_H, navigate, {NavigationBack} }, + { 0, 0, GDK_m, navigate, {NavigationForward} }, + { 0, 0, GDK_L, navigate, {NavigationForward} }, + { 0, 0, GDK_r, navigate, {NavigationReload} }, + { 0, 0, GDK_R, navigate, {NavigationForceReload} }, + { GDK_CONTROL_MASK, 0, GDK_s, navigate, {NavigationCancel} }, + + { 0, 0, GDK_plus, zoom, {ZoomIn | ZoomText} }, + { 0, 0, GDK_minus, zoom, {ZoomOut | ZoomText} }, + { 0, 0, GDK_KP_Add, zoom, {ZoomIn | ZoomText} }, + { 0, 0, GDK_KP_Subtract,zoom, {ZoomOut | ZoomText} }, + { 0, GDK_z, GDK_i, zoom, {ZoomIn | ZoomText} }, + { 0, GDK_z, GDK_o, zoom, {ZoomOut | ZoomText} }, + { 0, GDK_z, GDK_z, zoom, {ZoomReset | ZoomText} }, + { 0, GDK_z, GDK_I, zoom, {ZoomIn | ZoomFullContent} }, + { 0, GDK_z, GDK_O, zoom, {ZoomOut | ZoomFullContent} }, + { 0, GDK_z, GDK_Z, zoom, {ZoomReset | ZoomFullContent} }, + + { 0, 0, GDK_y, yank, {SourceURL | ClipboardPrimary | ClipboardGTK} }, + { 0, 0, GDK_Y, yank, {SourceSelection| ClipboardPrimary | ClipboardGTK} }, + + { 0, GDK_g, GDK_u, descend, {NthSubdir} }, + { 0, GDK_g, GDK_U, descend, {Rootdir} }, + + { 0, GDK_g, GDK_h, open_arg, {TargetCurrent, startpage} }, + { 0, GDK_g, GDK_H, open_arg, {TargetNew, startpage} }, + + { 0, 0, GDK_p, paste, {TargetCurrent | ClipboardPrimary | ClipboardGTK} }, + { 0, 0, GDK_P, paste, {TargetNew | ClipboardPrimary | ClipboardGTK} }, + + { GDK_CONTROL_MASK, 0, GDK_a, number, {Increment} }, + { GDK_CONTROL_MASK, 0, GDK_x, number, {Decrement} }, + + { 0, 0, GDK_n, search, {DirectionNext | CaseInsensitive | Wrapping} }, + { 0, 0, GDK_N, search, {DirectionPrev | CaseInsensitive | Wrapping} }, + + { 0, 0, GDK_colon, input, {.s = ":" } }, + { 0, 0, GDK_o, input, {.s = ":open "} }, + { 0, 0, GDK_O, input, {.s = ":open ", .i = InsertCurrentURL} }, + { 0, 0, GDK_t, input, {.s = ":tabopen "} }, + { 0, 0, GDK_T, input, {.s = ":tabopen ", .i = InsertCurrentURL} }, + { 0, 0, GDK_slash, input, {.s = "/"} }, + { 0, 0, GDK_KP_Divide, input, {.s = "/"} }, + { 0, 0, GDK_question, input, {.s = "?"} }, + + { 0, 0, GDK_period, input, {.s = "."} }, + { 0, 0, GDK_comma, input, {.s = ","} }, + { 0, GDK_semicolon, GDK_i, input, {.s = ";i"} }, + { 0, GDK_semicolon, GDK_l, input, {.s = ";l"} }, + { 0, GDK_semicolon, GDK_s, input, {.s = ";s"} }, + { 0, GDK_semicolon, GDK_y, input, {.s = ";y"} }, + { 0, GDK_semicolon, GDK_o, input, {.s = ";o"} }, + { 0, GDK_semicolon, GDK_t, input, {.s = ";t"} }, + { 0, GDK_semicolon, GDK_w, input, {.s = ";w"} }, + { 0, GDK_semicolon, GDK_I, input, {.s = ";I"} }, + { 0, GDK_semicolon, GDK_O, input, {.s = ";O"} }, + { 0, GDK_semicolon, GDK_T, input, {.s = ";T"} }, + { 0, GDK_semicolon, GDK_W, input, {.s = ";W"} }, + + /* this needs to be a binding using CTRL for obvious reasons */ + { GDK_CONTROL_MASK, 0, GDK_t, open_editor,{} }, + + { 0, GDK_VoidSymbol, GDK_Escape, set, {ModeNormal} }, + { GDK_CONTROL_MASK, GDK_VoidSymbol, GDK_bracketleft,set, {ModeNormal} }, + { GDK_CONTROL_MASK, 0, GDK_p, set, {ModePassThrough} }, + { GDK_CONTROL_MASK, 0, GDK_v, set, {ModeSendKey} }, + { 0, 0, GDK_f, input, {.s = "."} }, + { 0, 0, GDK_F, input, {.s = ","} }, + + { 0, GDK_g, GDK_i, focus_input,{} }, + { 0, 0, GDK_u, revive, {} }, + + + /* custom commands */ + { 0, GDK_g, GDK_b, input, {.s = ":tabopen http://bitbucket.jasonwryan.com" } }, + { 0, GDK_g, GDK_e, input, {.s = ":tabopen https://wiki.archlinux.org/index.php/Forum_Etiquette" } }, + { 0, GDK_g, GDK_f, input, {.s = ":tabopen http://flickr.jasonwryan.com" } }, + { 0, GDK_g, GDK_j, input, {.s = ":tabopen http://jasonwryan.com" } }, + { 0, GDK_g, GDK_p, input, {.s = ":tabopen http://127.0.0.1:4000" } }, + { 0, GDK_g, GDK_r, input, {.s = ":tabopen https://www.inoreader.com/" } }, + { 0, GDK_g, GDK_s, input, {.s = ":tabopen https://unix.stackexchange.com" } }, + { 0, 0, GDK_x, quit, {0} }, + /* leave this last line as last */ + { 0, 0, 0, 0, {0} }, +}; + +#endif -- cgit v1.2.3