.\" vim: ft=groff .TH neovimb 1 "DATE" "neovimb/VERSION" "neovimb Manual" .SH NAME neovimb - Vim Browser - A modal web browser based on WebKit, inspired by vimb. . . .SH SYNOPSIS .B neovimb .OP OPTIONS .RI [ URI "|" file "|" - ] . . .SH DESCRIPTION neovimb is a WebKit based web browser that behaves like the Vimperator plugin for Firefox and has usage paradigms from the great editor, Vim. The goal of neovimb is to build a completely keyboard-driven, efficient and pleasurable browsing-experience. . . .SH OPTIONS If no \fIURI\fP or \fIfile\fP is given, neovimb will open the configured home-page. If \fIURI\fP is '-', neovimb reads the HTML to display from stdin. .P Mandatory arguments to long options are mandatory for short options too. .TP .BI "\-C, \-\-cmd " "CMD" Run \fICMD\fP as ex command line right before the first page is loaded. If the flag is used more than one time, the commands are called in order they are given. You could also pass several ex commands in one \fICMD\fP, if they are separated by "|". .sp .EX neovimb --cmd "set dark-mode=on|set header=Referer,DNT=1" .EE .TP .BI "\-c, \-\-config " "FILE" Use custom configuration given as \fIFILE\fP. This will also be applied on new spawned instances. .TP .BI "\-e, \-\-embed " "WINID" .I WINID of an XEmbed-aware application, that neovimb will use as its parent. .TP .B "\-h, \-\-help" Show help options. .TP .BI "\-p, \-\-profile " "PROFILE-NAME" Create or open specified configuration profile. Configuration data for the profile is stored in a directory named \fIPROFILE-NAME\fP under default directory for configuration data. .TP .B "\-v, \-\-version" Print build and version information and then quit. .TP .B "\-\-no-maximize" Do no attempt to maximize window. .TP .B "\-\-bug-info" Prints information about used libraries for bug reports and then quit. . . .SH MODES neovimb is modal and has the following main modes: .IP "Normal Mode" The default mode. Pressing Escape always enter normal mode. .IP "Input Mode" Used for editing text elements in a webpage. .IP "Command Mode" Execute `ex` commands from the builtin inputbox (commandline). .IP "Pass-Through Mode" In Pass-Through mode only the `` and `` keybindings are interpreted by neovimb, all other keystrokes are given to the webview to handle them. This allows the use of a website's configured keybindings, that might otherwise be swallowed by neovimb. . . .SH NORMAL MODE COMMANDS Some of the Normal Model Commands can have a numeric count to multiply the effect of the command. If a command supports the count this is shown as [\fBN\fP]. . .SS General .TP .B : Start Command Mode and print `:' to the input box. .TP .B gi Set cursor to the first editable element in the page and switch to Input Mode. .TP .B i Set cursor to the last focused element in the page and switch to Input Mode. If no element was focused before the first element is focused like with `gi'. .TP .B CTRL\-Z Switch neovimb into Pass-Through Mode. .TP .B gf Open the configured editor (`editor-command') with the current page's content. .TP .B gF Open the Web Inspector for the current page. .TP .B CTRL\-V Pass the next key press directly to GTK. .TP .B CTRL\-Q Quit the browser if there are no running downloads. . .SS Navigation .TP .B o Start Command Mode and print `:open ' to the input box. .TP .B O Start Command Mode and print `:open URI' to the input box. .TP .B t Start Command Mode and print `:tabopen ' to the input box. .TP .B T Start Command Mode and print `:tabopen URI' to the input box. .TP .B gh Open the configured home-page. .TP .B gH Open the configured home-page in a new window. .TP .B u Open the last closed page. .TP .B U Open the last closed page in a new window. .TP .B CTRL\-P Open the oldest entry from the read it later queue in the current browser window. .TP .BI [ \(dqx ]p Open the URI out of the register \fIx\fP or, if not given, from the clipboard. .TP .BI [ \(dqx ]P Open the URI out of the register \fIx\fP or, if not given, from the clipboard in a new window. .TP .BI [ N ]CTRL\-O Go back \fIN\fP steps in the browser history. .TP .BI [ N ]CTRL\-I Go forward \fIN\fP steps in the browser history. .TP .BI [ N ]gu Go to the \fIN\fPth descendent directory of the current opened URI. .TP .B gU Go to the domain of the current opened page. .TP .B r Reload the website. .TP .B R Reload the website without using caches. .TP .B CTRL\-C Stop loading the current page. .TP .B CTRL-LeftMouse, MiddleMouse Opens the clicked link in a new window. .TP .B Shift-LeftMouse Push the link url under the cursor to the end of the Read It Later queue like the `:qpush' command. . .SS Motion .TP .BI [ N ]CTRL\-F Scroll \fIN\fP pages down. .TP .BI [ N ]CTRL\-B Scroll \fIN\fP pages up. .TP .BI [ N ]CTRL\-D Scroll \fIN\fP half pages down. .TP .BI [ N ]CTRL\-U Scroll \fIN\fP half pages up. .TP .BI [ N ]gg Scroll to the top of the current page. Or if \fIN\fP is given to \fIN\fP% of the page. .TP .BI [ N ]G Scroll to the bottom of the current page. Or if \fIN\fP is given to \fIN\fP% of the page. .TP .B 0, ^ Scroll to the absolute left of the document. Unlike in Vim, 0 and ^ work exactly the same way. .TP .B $ Scroll to the absolute right of the document. .TP .BI [ N ]h Scroll \fIN\fP steps to the left of page. .TP .BI [ N ]l Scroll \fIN\fP steps to the right of page. .TP .BI [ N ]j Scroll page \fIN\fP steps down. .TP .BI [ N ]k Scroll page \fIN\fP steps up. .TP .BI m{ a-z } Set a page mark {\fIa-z\fP} at the current position on the page. Such set marks are only available on the current page; if the page is left, all marks will be removed. .TP .BI m{ A-Z } Set a page mark {\fIA-Z\fP} at the current position on the page. These marks are permanent across any page. .TP .BI '{ a-z } Jump to the mark {\fIa-z\fP} on the current page. .TP .BI '{ A-Z } Jump to the global mark {\fIA-Z\fP} on a (possibly) different page. .TP .B '' Jumps to the position before the latest jump, or where the last "m'" command was given. . .SS Hinting Hinting in neovimb is how you accomplish the tasks that you would do with the mouse in common mouse-driven browsers: open a URI, yank a URI, save a page and so on. When hinting is started, the relevant elements on the page will be marked by labels generated from configured `hint-keys'. Hints can be selected by using , or , , by typing the chars of the label, or filtering the elements by some text that is part of the hinted element (like URI, link text, button label) or any combination of these methods. If is pressed, the current active hint will be fired. If only one possible hint remains, this will be fired automatically. .P .BR Syntax: " ;{mode}{hint}" .P Start Hints mode. Different elements depending on \fImode\fP are highlighted and `numbered'. Elements can be selected either by typing their label, or by typing part of their text (\fIhint\fP) to narrow down the result. When an element has been selected, it is automatically clicked or used (depending on \fImode\fP) and hint mode ends. .P The filtering of hints by text splits the query at ' ' and use the single parts as separate queries to filter the hints. This is useful for hints that have a lot of filterable chars in common and many chars are required to make a distinct selection. For example ';over tw' will easily select the second hint out of {'very long link text one', 'very long link text two'}. .P The following keys have special meanings in Hints modes: .PD 0 .TP .B Selects the first highlighted element, or the current focused. .TP .B Moves the focus to the next hint element. .TP .B Moves the focus to the previous hint element. .TP .B , CTRL\-C, CTRL\-[ Exits Hints mode without selecting an element. .PD .TP .B Hint modes: .RS .PD 0 .TP .B f Is an alias for the \fB;o\fP hint mode. .TP .B F Is an alias for the \fB;t\fP hint mode. .TP .B ;o Open hint's location in the current window. .TP .B ;t Open hint's location in a new window. .TP .B ;s Saves the hint's destination under the configured `download-path'. .TP .B ;O Generate an `:open' prompt with hint's URI. .TP .B ;T Generate an `:tabopen' prompt with hint's URI. .TP .B ;e Open the configured editor (`editor-command') with the hinted form element's content. If the file in editor is saved and the editor is closed, the file content will be put back in the form field. .TP .B ;i Open hinted image in the current window. .TP .B ;I Open hinted image in a new window. .TP .B ;k Kill (remove) hinted element from the page. .TP .B ;p Push the hint's URI to the end of the Read It Later queue like the `:qpush' command. This is only available if neovimb was compiled with the QUEUE feature. .TP .B ;P Push the hint's URI to the beginning of the Read It Later queue like the `:qunshift' command. This is only available if neovimb was compiled with the QUEUE feature. .TP .B ;x Hints like ;o, but instead of opening the hinted URI, the `x-hint-command' is run in neovimb. .TP .BI [ \(dqx ];y Yank hint's destination location into primary and secondary clipboard and into the register \fIx\fP. .TP .BI [ \(dqx ];Y Yank hint's text description or form text into primary and secondary clipboard and into the register \fIx\fP. .PD .RE .TP .BR Syntax: " g;{mode}{hint}" Start an extended hints mode and stay there until is pressed. Like normal hinting, except that after a hint is selected, hints remain visible so that another one can be selected with the same action as the first. Note that the extended hint mode can only be combined with the following hint modes .IR "I o p P s t y Y" . .PD .TP .B Motion .RS Motions commands are like those for normal mode except that CTRL is used as modifier. But they can not be used together with a count. .P .PD 0 .TP .B CTRL-F Scroll one page down. .TP .B CTRL-B Scroll one page up. .TP .B CTRL-D Scroll half page down. .TP .B CTRL-U Scroll half page up. .TP .B CTRL-J Scroll one step down. .TP .B CTRL-K Scroll one step up. .PD .RE . .SS Searching .TP .BI / QUERY ", ?" QUERY Start searching for \fIQUERY\fP in the current page. \fI/\fP start search forward, \fI?\fP in backward direction. .TP .BR * , " #" Start searching for the current selected text, or if no text is selected for the content of the primary or secondary clipboard. \fI*\fP start the search in forward direction and \fI#\fP in backward direction. .sp Note that these commands will yank the text selection into the clipboard and may remove other content from there! .TP .BI [ N ]n Search for \fIN\fPnth next search result depending on current search direction. .TP .BI [ N ]N Search for \fIN\fPnth previous search result depending on current search .TP .B Perform a click on element containing the current highlighted search result. direction. . .SS Zooming .TP .BI [ N ]zi Zoom-In the text of the page by \fIN\fP steps. .TP .BI [ N ]zo Zoom-Out the text of the page by \fIN\fP steps. .TP .BI [ N ]zI Full-Content Zoom-In the page by \fIN\fP steps. .TP .BI [ N ]zO Full-Content Zoom-Out the page by \fIN\fP steps. .TP .B zz Reset Zoom. . .SS Yank .TP .BI [ \(dqx ]y Yank the URI or current page into register \fIx\fP and clipboard. .TP .BI [ \(dqx ]Y Yank the current selection into register x and clipboard. . . .SH COMMAND MODE Commands that are listed below are ex-commands like in Vim, that are typed into the inputbox (the command line of neovimb). The commands may vary in their syntax or in the parts they allow, but in general they follow a simple syntax. .P .BR Syntax: " :[:| ][N]cmd[name][!][ lhs][ rhs]" .sp Where \fIlhs\fP (left hand side) must not contain any unescaped space. The syntax of the rhs (right hand side) if this is available depends on the command. At the moment the count parts [N] of commands is parsed, but currently there is no command that uses the count. .sp To avoid this, the commands can be prefixed by one or more additional `:' or whitespace. .P Multiple commands, separated by a `|' can be given in a single command line and will be executed consecutively. The pipe can be included as an argument to a command by escaping it with a backslash. .br Following commands process the entire command-line string literally. These commands will include any `|' as part of their argument string and so can not be followed by another command. .P .PD 0 .IP - 2 autocmd .IP - cmap, cnoremap, imap, inoremap, nmap, nnoremap .IP - eval .IP - normal .IP - open, tabopen .IP - shellcmd .PD . .SS Command Line Editing .TP .B , CTRL\-[, CTRL-C Ignore all typed content and switch back to normal mode. .TP .B Submit the entered `ex` command or search query to run it. .TP .B CTRL\-H Deletes the char before the cursor. .TP .B CTRL\-W Deletes the last word before the cursor. .TP .B CTRL\-U Remove everything between cursor and prompt. .TP .B CTRL\-B Moves the cursor directly behind the prompt `:'. .TP .B CTRL\-E Moves the cursor after the prompt in inputbox. .TP .B CTRL\-V Pass the next key press directly to GTK. .TP .B CTRL\-R {a-z"%:/;} Insert the content of given register at cursor position. See also section about `:reg[ister]' command. . .SS Command Line History .TP .B Start completion of the content in the inputbox in forward direction. .TP .B Start completion of the content in the inputbox in backward direction. .TP .B Step backward in the command history. .TP .B Step forward in the command history. Yank the current selection into register \fIx\fP and clipboard. . .SS Open .TP .BI ":o[pen] [" URI ] Open the give \fIURI\fP in the current window. If \fIURI\fP is empty, the configured 'home-page' is opened. .TP .BI ":t[abopen] [" URI ] Open the give \fIURI\fP in a new window. If \fIURI\fP is empty, the configured 'home-page' is opened. . .SS Key Mapping Key mappings allow users to alter the actions of key presses. Each key mapping is associated with a mode and only has effect when the mode is active. The following commands allow the user to substitute one sequence of key presses by another. .P .BR Syntax: " :{m}map {lhs} {rhs}" .P Note that the \fIlhs\fP ends with the first found space. If you want to use space also in the {lhs} you have to escape this with a single `\\', as shown in the examples. .sp The \fIrhs\fP starts with the first non-space char. If you want a \fIrhs\fP that starts with a space, you have to use "". .P Standard key mapping commands are provided for these modes \fIm\fP: .PD 0 .TP .B n Normal mode: when browsing normally. .TP .B i Insert mode: when interacting with text fields on a website. .TP .B c Command Line mode: when typing into neovimb's command line. .PD .P Most keys in key sequences are represented simply by the character that you see on the screen when you type them. However, as a number of these characters have special meanings, and a number of keys have no visual representation, a special notation is required. .P As special key names have the format \fI<...>\fP. The following special keys can be used: , , , for the cursor keys, , , , , , - and -. .TP .PD 0 .BI ":nm[ap] {" lhs "} {" rhs } .TP .BI ":im[ap] {" lhs "} {" rhs } .TP .BI ":cm[ap] {" lhs "} {" rhs } Map the key sequence \fIlhs\fP to \fIrhs\fP for the modes where the map command applies. The result, including \fIrhs\fP, is then further scanned for mappings. This allows for nested and recursive use of mappings. .RS .sp .IP ":cmap h /home/user/downloads/" Adds a keybind to insert a file path into the input box. This could be useful for the `:save' command that could be used as ":save ^Gh". .IP ":nmap :set scripts=on:open !glib" This will enable scripts and lookup the first bookmarked URI with the tag `glib' and open it immediately if F1 key is pressed. .IP ":nmap \e \e 50G" Example which maps two spaces to go to 50% of the page. .RE .TP .BI ":nn[oremap] {" lhs "} {" rhs } .TP .BI ":ino[remap] {" lhs "} {" rhs } .TP .BI ":cno[remap] {" lhs "} {" rhs } Map the key sequence \fIlhs\fP to \fIrhs\fP for the mode where the map command applies. Disallow mapping of \fIrhs\fP, to avoid nested and recursive mappings. Often used to redefine a command. .TP .BI ":nu[nmap] {" lhs } .TP .BI ":iu[nmap] {" lhs } .TP .BI ":cu[nmap] {" lhs } Remove the mapping of \fIlhs\fP for the applicable mode. .PD . .SS Bookmarks .TP .BI ":bma [" tags ] Save the current opened URI with \fItags\fP to the bookmark file. .TP .BI ":bmr [" URI ] Removes all bookmarks for given \fIURI\fP or, if not given, the current opened page. . .SS Handlers Handlers allow specifying external scripts to handle alternative URI methods. .TP .BI ":handler-add " "handler" "=" "cmd" Adds a handler to direct \fIhandler\fP links to the external \fIcmd\fP. The \fIcmd\fP can contain one placeholder `%s` that will be filled by the full URI given when the command is called. .RS .P .PD 0 .IP ":handler-add mailto=urxvt -e mutt %s" to start email client for mailto links. .IP ":handler-add magnet=xdg-open %s" to open magnet links with xdg-open. .IP ":handler-add ftp=urxvt -e wget %s -P ~/ftp-downloads" to handle ftp downloads via wget. .PD .RE .TP .BI ":handler-remove " "handler" Remove the handler for the given URI \fIhandler\fP. . .SS Shortcuts Shortcuts allow the opening of an URI built up from a named template with additional parameters. If a shortcut named 'dd' is defined, you can use it with `:open dd list of parameters' to open the generated URI. .P Shortcuts are convenient to use with search engines where the URI is standardised and a single parameter is user defined. .TP .BI ":shortcut-add " shortcut = URI Adds a shortcut with the \fIshortcut\fP and \fIURI\fP template. The \fIURI\fP can contain multiple placeholders $0-$9 that will be filled by the parameters given when the shortcut is called. The parameters given when the shortcut is called will be split into as many parameters like the highest used placeholder. .sp To use spaces within the parameters, the parameters can be grouped by surrounding them with single-or double quotes-as shown in example shortcut `map'. .RS .P .PD 0 .IP ":shortcut-add dl=https://duckduckgo.com/lite/?q=$0" to setup a search engine. Can be called by `:open dl my search phrase'. .IP ":shortcut-add gh=https://github.com/$0/$1" to build URIs from given parameters. Can be called `:open gh fanglingsu neovimb'. .IP ":shortcut-add map=https://maps.google.com/maps?saddr=$0&daddr=$1" to search for a route, all but the last parameter must be quoted if they contain spaces like `:open map "city hall, London" railway station, London' .PD .RE .TP .BI ":shortcut-remove " shortcut Remove the search engine to the given \fIshortcut\fP. .TP .BI ":shortcut-default " shortcut Set the shortcut for given \fIshortcut\fP as the default, that is the shortcut to be used if no shortcut is given and the string to open is not an URI. It doesn't matter if the \fIshortcut\fP is already in use or not to be able to set it. . .SS Settings .TP .BI ":se[t] " var = value Set configuration values named by \fIvar\fP. To set boolean variable you should use 'on', 'off' or 'true' and 'false'. Colors are given as hexadecimal value like '#f57700'. Spaces or more equals signs in \fIvalue\fP just work without quotes: for example, ":set sans-serif-font=Some Sans Font". .TP .BI ":se[t] " var += value Add the \fIvalue\fP to a number option, or append the \fIvalue\fP to a string option. When the option is a comma separated list, a comma is added, unless the value was empty. .TP .BI ":se[t] " var ^= value Multiply the \fIvalue\fP to a number option, or prepend the \fIvalue\fP to a string option. When the option is a comma separated list, a comma is added, unless the value was empty. .TP .BI ":se[t] " var -= value Subtract the \fIvalue\fP from a number option, or remove the \fIvalue\fP from a string option, if it is there. When the option is a comma separated list, a comma is deleted, unless the option becomes empty. .TP .BI ":se[t] " var ? Show the current set value of variable. .IR VAR . .TP .BI ":se[t] " var ! Toggle the value of boolean variable \fIvar\fP and display the new set value. . .SS Queue The queue allows the marking of URIs for later reading. This list is shared between the single instances of neovimb. .TP .BI ":qpu[sh] [" URI ] Push \fIURI\fP or, if not given, the current URI to the end of the queue. .TP .BI ":qun[shift] [" URI ] Push \fIURI\fP or, if not given, the current URI to the beginning of the queue. .TP .B :qp[op] Open the oldest queue entry in the current browser window and remove it from the queue. .TP .B :qc[lear] Removes all entries from queue. . .SS Automatic commands An autocommand is a command that is executed automatically in response to some event, such as a URI being opened. Autocommands are very powerful. Use them with care and they will help you avoid typing many commands. .P Autocommands are built with following properties. .TP .I group When the [\fIgroup\fP] argument is not given, neovimb uses the current group as defined with ':augroup', otherwise, neovimb uses the group defined with [\fIgroup\fP]. Groups are useful to remove multiple grouped autocommands. .TP .I event You can specify a comma separated list of event names. No white space can be used in this list. .P .RS .PD 0 Events: .TP .B LoadStarting Fired before a new page is going to be opened. No data has been sent or received yet, the load may still fail for transport issues. .TP .B LoadStarted Fired if a new page is going to be opened. No data has been received yet, the load may still fail for transport issues. .TP .B LoadCommitted Fired if first data chunk has arrived, meaning that the necessary transport requirements are established, and the load is being performed. This is the right event to toggle content related setting like 'scripts', 'plugins' and such things. .TP .B LoadFinished Fires when everything that was required to display on the page has been loaded. .TP .B DownloadStarted Fired right after a download is started. .TP .B DownloadFinished Fired if a neovimb managed download is finished. .TP .B DownloadFailed Fired if a neovimb managed download failed. .PD .RE .TP .I pat Comma separated list of patterns, matches in order to check if a autocommand applies to the URI associated to an event. To use ',' within the single patterns this must be escaped as '\e,'. .RS .P .PD 0 Patterns: .IP "\fB*\fP" Matches any sequence of characters. This includes also '/' in contrast to shell patterns. .IP "\fB?\fP" Matches any single character except of '/'. .IP "\fB{one,two}\fP" Matches 'one' or 'two'. Any '{', ',' and '}' within this pattern must be escaped by a '\\'. \&'*' and '?' have no special meaning within the curly braces. .IP "\fB\e\fP" Use backslash to escape the special meaning of '?*{},' in the pattern or pattern list. .PD .RE .TP .I cmd Any `ex` command neovimb understands. The leading ':' is not required. Multiple commands can be separated by '|'. .TP .BI ":au[tocmd] [" group "] {" event "} {" pat "} {" cmd "}" Add \fIcmd\fP to the list of commands that neovimb will execute automatically on \fIevent\fP for a URI matching \fIpat\fP autocmd-patterns. neovimb always adds the \fIcmd\fP after existing autocommands, so that the autocommands are executed in the order in which they were given. .TP .BI ":au[tocmd]! [" group "] {" event "} {" pat "} {" cmd "}" Remove all autocommands associated with \fIevent\fP and which pattern match \fIpat\fP, and add the command \fIcmd\fP. Note that the pattern is not matches literally to find autocommands to remove, like Vim does. neovimb matches the autocommand pattern with \fIpat\fP. If [\fIgroup\fP] is not given, deletes autocommands in current group, as noted above. .TP .BI ":au[tocmd]! [" group "] {" event "} {" pat "}" Remove all autocommands associated with \fIevent\fP and which pattern matches \fIpat\fP in given group (current group by default). .TP .BI ":au[tocmd]! [" group "] * {" pat "}" Remove all autocommands with patterns matching \fIpat\fP for all events in given group (current group by default). .TP .BI ":au[tocmd]! [" group "] {" event "}" Remove all autocommands for \fIevent\fP in given group (current group by default). .TP .BI ":au[tocmd]! [" group "]" Remove all autocommands in given group (current group by default). .TP .BI ":aug[roup] {" name "}" Define the autocmd group \fIname\fP for the following ":autocmd" commands. The name "end" selects the default group. .TP .BI ":aug[roup]! {" name "}" Delete the autocmd group \fIname\fP. .P Example: .EX :aug github : au LoadCommitted * set scripts=off|set cookie-accept=never : au LoadCommitted http{s,}://github.com/* set scripts=on :aug end .EE . .SS Misc .TP .BI ":cl[eardata] [" dataTypes "] [" timespan "]" Asynchronously clears the website data of the given list of \fIdataTypes\fP modified in the past \fItimespan\fP. Note that the \fIdataTypes\fP must not contain spaces. If \fItimespan\fP is not given, all website data will be removed. Note that this effects all running instances of neovimb. .RS .P .PD 0 The \fIdataTypes\fP is a comma separated list of following types. .TP .B memory-cache Memory cache. .TP .B disk-cache HTTP disk cache. .TP .B offline-cache Offline web application cache. .TP .B session-storage Session storage data. .TP .B local-storage Local storage data. .TP .B indexeddb-databases IndexedDB databases. .TP .B plugin-data Plugin data. .TP .B cookies Cookies. Note that the cookies are not cleared in case a \fItimespan\fP is given. .TP .B hsts-cache HTTP Strict Transport Security cache. .TP .B - Can be used to clear all known data types in case a \fItimespan\fP is used. .PD .RE .RS .P .PD 0 The \fItimespan\fP is given as sequence of '[multiplier]\fIunit\fP' tupels with following units. .TP .B y year (365 days) .TP .B w week (7 days) .TP .B d day .TP .B h hour .TP .B m minute .TP .B s second .PD .P .I Example: .PD 0 .IP ":cleardata" to clear all known website data types without any timespan restriction. .IP ":cleardata - 5m" to clear all known website data types modified in the last 5 minutes. .IP ":cleardata local-storage,session-storage,cookies" to completely clear the cookies, local- and session-storage without time restrictions. .IP ":cleardata disk-cache 2d4h" to clear the disk cache that was modified in the past two days and four hours. .PD .RE .TP .BI ":sh[ellcmd]! " cmd Like :sh[ellcmd] but asynchronous. .sp Example: .EX :sh! /bin/sh -c 'echo "`date` $neovimb_URI" >> myhistory.txt' .EE .TP .TP .BI ":sh[ellcmd] " cmd Runs the given shell \fIcmd\fP syncron and print the output into inputbox. The following patterns in \fIcmd\fP are expanded: '~username', '~/', '$VAR' and '${VAR}'. A '\e' before these patterns disables the expansion. .P .RS .P .PD 0 The following environment variables are set for called shell commands. .TP .B neovimb_URI This variable is set by neovimb everytime a new page is opened to the URI of the page. .TP .B neovimb_SELECTION This variable is set to the current selected text on the page. .TP .B neovimb_TITLE Contains the title of the current opened page. .TP .B neovimb_PID Contains the pid of the running neovimb instance. .TP .B neovimb_WIN_ID Holds the X-Window id of the neovimb window. .TP .B neovimb_XID Holds the X-Window id of the neovimb window or of the embedding window if neovimb is compiled with XEMBED and started with the -e option. .EE .RE .TP .BI ":sh[ellcmd]! " cmd Like :sh[ellcmd] but asynchronous. .sp Example: .EX :sh! /bin/sh -c 'echo "`date` $neovimb_URI" >> myhistory.txt' .EE .TP .BI ":s[ave] [" path "]" Download current opened page into configured download directory. If \fIpath\fP is given, download under this file name or path. \fIpath\fP is expanded and can therefore contain '~/', '${ENV}' and '~user' pattern. .TP .BI ":so[urce] [" file "]" Read ex commands from \fIfile\fP. .TP .B :q[uit] Close the browser. This will be refused if there are running downloads. .TP .B :q[uit]! Close the browser independent from an running download. .TP .B :reg[ister] Display the contents of all registers. .RS .P .PD 0 Registers: .TP .BR \(dqa " \(em " \(dqz 26 named registers "a to "z. neovimb fills these registers only when you say so. .TP .B \(dq: Last executed `ex` command. .TP .B \(dq" Last yanked content. .TP .B \(dq% Curent opened URI. .TP .B \(dq/ Last search phrase. .TP .B \(dq; Contains the last hinted URL. .PD .RE .TP .BI :e[val] " javascript" Runs the given \fIjavascript\fP in the current page and display the evaluated value. .sp Example: :eval document.cookie .TP .BI :e[val]! " javascript" Like :eval, but there is nothing print to the input box. .TP .BI ":no[rmal] [" cmds ] Execute normal mode commands \fIcmds\fP. This makes it possible to execute normal mode commands typed on the input box. .sp \fIcmds\fP cannot start with a space. Put a count of 1 (one) before it, "1 " is one space. .sp Example: :set scripts!|no! R .TP .BI ":no[rmal]! [" cmds ] Like :normal, but no mapping is applied to \fIcmds\fP. .TP .B :ha[rdcopy] Print current document. Open a GUI dialog where you can select the printer, number of copies, orientation, etc. . . .SH INPUT MODE .TP .BR , " CTRL\-[" Switch back to normal mode. .TP .B CTRL\-O Executes the next command as normal mode command and return to input mode. .TP .B CTRL\-T Open configured editor with content of current form field. .TP .B CTRL\-V Pass the next key press directly to WebKit. .TP .B CTRL\-Z Enter the pass-through mode. . . .SH COMPLETIONS The completions are triggered by pressing `` or `` in the activated inputbox. Depending of the current inserted content different completions are started. The completion takes additional typed chars to filter the completion list that is shown. .TP .B commands The completion for commands are started when at least `:` is shown in the inputbox. If initial chars are passed, the completion will lookup those commands that begin with the given chars. .TP .B settings The setting name completion is started if at least `:set ` is shown in inputbox and does also match settings that begins with already typed setting prefix. .TP .RS .IP ":open foo bar" will complete only URIs that contain the words foo and bar. .RE .TP .B bookmarks The bookmark completion is started by `:open \fB!\fP`, `:tabopen \fB!\fP` or `:bmr ` and does a prefix search for all given words in the bookmark tags. .RS .IP ":open \fB!\fPfoo ba" will match all bookmarks that have tags starting with "foo" and "ba". If the bookmark does not have any tags set, the URL is split on `.' and `/' into tags. .IP ":bmr tag" will match all bookmarks that have tags starting with "tag". .RE .TP .B bookmark tags The bookmark tag completion allows the insertion of already used bookmarks for the `:bma ` commands. .TP .B search The search completion allows a filtered list of already done searches. This completion starts by `/` or `?` in inputbox and performs a prefix comparison for further typed chars. . . .SH SETTINGS All settings listed below can be set with the `:set' command. See \fBSettings\fP under \fBCOMMAND MODE\fP for syntax. .TP .BR accelerated-2d-canvas (bool) Enable or disable accelerated 2D canvas. When accelerated 2D canvas is enabled, WebKit may render some 2D canvas content using hardware accelerated drawing operations. .TP .BR allow-file-access-from-file-urls (bool) Indicates whether file access is allowed from file URLs. By default, when something is loaded using a file URI, cross origin requests to other file resources are not allowed. .TP .BR allow-universal-access-from-file-urls (bool) Indicates whether or not JavaScript running in the context of a file scheme URL should be allowed to access content from any origin. By default, when something is loaded in a using a file scheme URL, access to the local file system and arbitrary local storage is not allowed. .TP .BR caret (bool) Whether to enable accessibility enhanced keyboard navigation. .TP .B cookie-accept (string) Cookie accept policy {`always', `never', `origin' (accept all non-third-party cookies)}. .TP .B closed-max-items (int) Maximum number of stored last closed URLs. If closed-max-items is set to 0, closed URLs will not be stored. .TP .B completion-css (string) CSS style applied to the inputbox completion list items. .TP .B completion-hover-css (string) CSS style applied to the inputbox completion list item that is currently hovered by the mouse. .TP .B completion-selected-css (string) CSS style applied to the inputbox completion list item that is currently selected. .TP .B cursiv-font (string) The font family used as the default for content using cursive font. .TP .B dark-mode (bool) Whether to enable dark mode. Websites can use the `prefers-color-scheme' media query to adjust styles according to this option. .TP .B default-charset (string) The default text charset used when interpreting content with an unspecified charset. .TP .B default-font (string) The font family to use as the default for content that does not specify a font. .TP .B default-zoom (int) Default Full-Content zoom level in percent. Default is 100. .TP .B dns-prefetching (bool) Indicates if neovimb prefetches domain names. .TP .B download-command (string) A command with placeholder '%s' that will be invoked to download a URI in case 'download-use-external' is enabled. .RS .TP The following additional environment variable are available: .PD 0 .TP .B $neovimb_URI The URI of the current opened page, normally the page where the download was started from, also known as referer. .TP .B $neovimb_DOWNLOAD_PATH Setting value of 'download-path' which would be used normally for downloads. .PD .P .PD 0 .IP ":set download-command=/bin/sh -c ""cd '$neovimb_DOWNLOAD_PATH' \ && curl -sLJOC - -e '$neovimb_URI' %s""" .PD .RE .TP .B download-path (string) Path to the default download directory. If no download directory is set, download will be written into current directory. The following pattern will be expanded if the download is started '~/', '~user', '$VAR' and '${VAR}'. .TP .B download-use-external (bool) Indicates if the external download tool set as 'download-command' should be used to handle downloads. If this is disabled neovimb will handle the download. .TP .B editor-command (string) Command with placeholder '%s' called if form field is opened with $EDITOR to spawn the editor-like `x-terminal-emulator -e vim %s'. To use Gvim as the editor, it's necessary to call it with `-f' to run it in the foreground. .TP .B font-size (int) The default font size used to display text. .TP .B frame-flattening (bool) Whether to enable the Frame Flattening. With this setting each subframe is expanded to its contents, which will flatten all the frames to become one scrollable page. .TP .B fullscreen (bool) Show the current window full-screen. .TP .B hardware-acceleration-policy (string) This setting decides how to enable and disable hardware acceleration. .PD 0 .RS .TP .B ondemand enables the hardware acceleration when the web contents request it, disabling it again when no longer needed. .TP .B always enforce hardware acceleration to be enabled. .TP .B never disables it completely. Note that disabling hardware acceleration might cause some websites to not render correctly or consume more CPU. .RE .PD .TP .B header (list) Comma separated list of headers that replaces default header sent by WebKit or new headers. The format for the header list elements is `name[=[value]]'. .sp Note that these headers will replace already existing headers. If there is no '=' after the header name, then the complete header will be removed from the request, if the '=' is present means that the header value is set to empty value. .sp Note that webkit reused already set headers in case of a reload of a page. So if there are headers removed that where previously use to access a certain page and the page is reloaded or opened via back/forward history the header will still be sent. To apply the new header setting properly it's required to request another page or to open current page new by `O`. .sp To use '=' within a header value the value must be quoted like shown in Example for the Cookie header. .RS .P .PD 0 .IP ":set header=DNT=1,User-Agent,Cookie='name=value'" Send the 'Do Not Track' header with each request and remove the User-Agent Header completely from request. .PD .RE .TP .B hint-follow-last (bool) If on, neovimb automatically follows the last remaining hint on the page. If off hints are fired only if enter is pressed. .TP .B hint-keys-same-length (bool) If on, all hint labels will have the same length, so no hints will be ambiguous. .TP .B hint-timeout (int) Timeout before automatically following a non-unique numerical hint. To disable auto fire of hints, set this value to 0. .TP .B hint-keys (string) The keys used to label and select hints. With its default value, each hint has a unique label which can be typed to select it, while all other characters are used to filter hints based on their text. With a value such as asdfg;lkjh, each hint is `labeled' based on the characters of the home row. .IP If the hint-keys string starts with a '0' the keys are considered to follow the rules of numeric labeling. So that the ifrst char of the label will never start with the '0'. .IP Note that the hint matching by label built of hint-keys is case sensitive. In this neovimb differs from some other browsers that show hint labels in upper case, but match them lowercase. .IP To have upper case hint labels, it's possible to add following css to the `style.css' file in neovimb's configuration directory. .IP "span[neovimbhint="label"] {text-transform: uppercase !important;}" .TP .B hint-match-element (bool) If this is set to 'true' typed chars that are not part of the set 'hint-keys' are used to filter hinted DOM elements by their text value. If 'hint-keys' are set to chars instead of numbers it might be useful to disable matching of the elements by 'hint-match-element=false'. .TP .B home-page (string) Homepage that neovimb opens if started without a URI. .TP .B html5-database (bool) Whether to enable HTML5 client-side SQL database support. Client-side SQL database allows web pages to store structured data and be able to use SQL to manipulate that data asynchronously. .TP .B html5-local-storage (bool) Whether to enable HTML5 localStorage support. localStorage provides simple synchronous storage access. .TP .B hyperlink-auditing (bool) Enable or disable support for . .TP .B images (bool) Determines whether images should be automatically loaded or not. .TP .B incsearch (bool) While typing a search command, show where the pattern typed so far matches. .TP .B input-autohide (bool) If enabled the inputbox will be hidden whenever it contains no text. .TP .B input-css (string) CSS style applied to the inputbox in normal state. .TP .B input-error-css (string) CSS style applied to the inputbox in case of displayed error. .TP .B intelligent-tracking-prevention (bool) Whether WebKit's Intelligent Tracking Prevention (ITP) is enabled. .TP .B javascript-can-access-clipboard (bool) Whether JavaScript can access the clipboard. .TP .B javascript-can-open-windows-automatically (bool) Whether JavaScript can open popup windows automatically without user interaction. .PD .RE .TP .B javascript-enable-markup (bool) Whether JavaScript markup is enabled. Disabling can help with some older systems (ppc, ppc64, etc.) that don't have complete JavaScript support to run webpages without crashing. .TP .B geolocation (string) Controls website access to the geolocation API {`always', `never', `ask' (display a prompt each time)} .TP .B media-playback-allows-inline (bool) Whether media playback is full-screen only or inline playback is allowed. Setting it to false allows specifying that media playback should be always fullscreen. .TP .B media-playback-requires-user-gesture (bool) Whether a user gesture (such as clicking the play button) would be required to start media playback or load media. Setting it on requires a gesture by the user to start playback, or to load the media. .TP .B media-stream (bool) Enable or disable support for MediaSource on pages. MediaSource is an experimental proposal which extends HTMLMediaElement to allow JavaScript to generate media streams for playback. .TP .B mediasource (bool) Enable or disable support for MediaSource on pages. MediaSource is an experimental proposal which extends HTMLMediaElement to allow JavaScript to generate media streams for playback. .TP .B minimum-font-size (int) The minimum font size used to display text. .TP .B monospace-font (string) The font family used as the default for content using monospace font. .TP .B monospace-font-size (int) Default font size for the monospace font. .TP .B notification (string) Controls website access to the notification API, that sends notifications via dbus. {`always', `never', `ask' (display a prompt each time)} .TP .B offline-cache (bool) Whether to enable HTML5 offline web application cache support. Offline web application cache allows web applications to run even when the user is not connected to the network. .TP .B print-backgrounds (bool) Whether background images should be drawn during printing. .TP .B plugins (bool) Determines whether or not plugins on the page are enabled. .TP .B prevent-newwindow (bool) Whether to open links, that would normally open in a new window, in the current window. This option does not affect links fired by hinting. .TP .B sans-serif-font (string) The font family used as the default for content using sans-serif font. .TP .B scripts (bool) Determines whether or not JavaScript executes within a page. .TP .B scroll-step (int) Number of pixel neovimb scrolls if 'j' or 'k' is used. .TP .B scroll-multiplier (int) Multiplier to increase the scroll distance if window is scrolled by mouse wheel. .TP .B serif-font (string) The font family used as the default for content using serif font. .TP .B show-titlebar (bool) Determines whether the titlebar is shown (on systems that provide window decoration). Defaults to true. .TP .B site-specific-quirks (bool) Enables the site-specific compatibility workarounds. .TP .B smooth-scrolling (bool) Enable or disable support for smooth scrolling. .TP .B spatial-navigation (bool) Whether to enable the Spatial Navigation. This feature consists in the ability to navigate between focusable elements in a Web page, such as hyperlinks and form controls, by using Left, Right, Up and Down arrow keys. For example, if a user presses the Right key, heuristics determine whether there is an element they might be trying to reach towards the right, and if there are multiple elements, which element they probably want. .TP .B spell-checking (bool) Enable or disable the spell checking feature. .TP .B spell-checking-languages (string) Set comma separated list of spell checking languages to be used for spell checking. .br The locale string typically is in the form lang_COUNTRY, where lang is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. For instance, sv_FI for Swedish as written in Finland or pt_BR for Portuguese as written in Brazil. .TP .B status-bar (bool) Indicates if the status bar should be shown. .PD .RE .TP .B status-bar-show-settings (bool) Whether to show settings on the status bar. This shows on the right hand of the status bar some runtime settings that where specified on compile time. .TP .B status-css (string) CSS style applied to the status bar on none https pages. .TP .B status-ssl-css (string) CSS style applied to the status bar on https pages with trusted certificate. .TP .B status-ssl-invalid-css (string) CSS style applied to the status bar on https pages with untrusted certificate. .TP .B strict-ssl (bool) If 'on', neovimb will not load a untrusted https site. .TP .B stylesheet (bool) If 'on' the user defined styles-sheet is used. .TP .B tabs-to-links (bool) Whether the Tab key cycles through elements on the page. .sp If true, pressing the Tab key will focus the next element in the web view. Otherwise, the web view will interpret Tab key presses as normal key presses. If the selected element is editable, the Tab key will cause the insertion of a Tab character. .TP .B timeoutlen (int) The time in milliseconds that is waited for a key code or mapped key sequence to complete. .TP .B user-agent (string) The user-agent string used by WebKit. .TP .B user-scripts (bool) If 'on' the user scripts are injected into every page. .TP .B webaudio (bool) Enable or disable support for WebAudio on pages. WebAudio is an experimental proposal for allowing web pages to generate Audio WAVE data from JavaScript. .TP .B webgl (bool) Enable or disable support for WebGL on pages. .TP .B webinspector (bool) Determines whether or not developer tools, such as the Web Inspector, are enabled. .TP .B x-hint-command (string) Command used if hint mode ;x is fired. The command can be any neovimb command string. Note that the command is run through the mapping mechanism of neovimb so it might change the behaviour by adding or changing mappings. .RS .P .PD 0 .IP ":set x-hint-command=:sh! curl -e % ;" This fills the inputbox with the prefilled download command and replaces `%' with the current URI and `;' with the URI of the hinted element. .PD .RE .TP .B xss-auditor (bool) Whether to enable the XSS auditor. This feature filters some kinds of reflective XSS attacks on vulnerable web sites. . . .SH FILES .TP .IR $XDG_CONFIG_HOME/neovimb[/PROFILE] Directory for configuration data. If executed with \fB-p \fIPROFILE\fR parameter, configuration is read from this subdirectory. .RS .PD 0 .TP .I config Configuration file to set WebKit setting, some GUI styles and keybindings. .TP .I scripts.js This file can be used to run user scripts, that are injected into every page that is opened. .TP .I style.css File for userdefined CSS styles. These file is used if the config variable `stylesheet' is enabled. .PD .RE . .TP .IR $XDG_DATA_HOME/neovimb[/PROFILE] Directory for runtime data. If executed with \fB-p \fIPROFILE\fR parameter, data files are written from this subdirectory. . .RS .PD 0 .I cookies.db Sqlite cookie storage. .TP .I closed Holds the URIs of last closed browser windows. .TP .TP .I bookmark This file holds the list of bookmarked URIs with tags. .TP .I command box. .TP .I queue Holds the read it later queue filled by `qpush'. .PD .RE . .SH ENVIRONMENT .TP .B http_proxy, HTTP_PROXY If either environment variable is non-empty, the specified host and optional port is used to tunnel requests. For example: HTTP_PROXY=localhost:8118. . . .SH "REPORTING BUGS" Report bugs to the main project page on https://github.com/fanglingsu/neovimb/issues .br or on the mailing list https://lists.sourceforge.net/lists/listinfo/neovimb-users. . . .SH AUTHOR Daniel Carl