<h3id="ebrowserhttpsgithubcomtorappinfoebrowser-keyboard-friendly-minimal-suckless-web-browser"><ahref="https://github.com/torappinfo/ebrowser">Ebrowser</a>: keyboard-friendly minimal suckless web browser</h3>
<p>Ebrowser is designed with the philosophy of <ahref="https://github.com/torappinfo/uweb">Android uweb browser</a> (<ahref="https://gitlab.com/jamesfengcao/uweb">gitlab</a>).</p>
<li>CSS/JS for domains, similar to <ahref="https://jamesfengcao.gitlab.io/uweb/en/sitejs/index.html">uweb</a>, but use sitejs/[domain].js or sitecss/[domain].css, not [domain root].js/css.</li>
<p>Note: Usually electron apps are heavyweight as they use browsers for simple things. Ebrowser uses core chromium effectively and very lightweight. Recommend to install electron separately.</p>
<p>Later on, you can run "npm install electron" to update electron/chromium or "npm install ebrowser" to update ebrowser independently.</p>
<p>Mirror urls could be used like ":update https://uwebzh.netlify.app/misc/ebrowser". All the mirrors listed on <ahref="https://uwebzh.netlify.app/en/readme/index.html">uweb browser</a> could be used. The update url needs to be changed accordingly to be the folder "misc/ebrowser" under the mirror site root url.</p>
<p>Like any popular browser, the very first word in address bar if defined in "search.json" identifies a search engine. Moreover, the address bar serves as command line interface:</p>
<li>gr [gredirect index]: global redirection with corresponding index. Use the first global redirection url if no argument. Disable global redirection with any index out of the range.</li>
<li>js [js code] : execute JS code at OS level. Note: "javascript:..." is special url and thus works in the current web page, while ":js ..." commands can do any OS operations.</li>
<li>up [proxyName] : use proxy. privous proxy or the first proxy in proxy.json w/o [proxyName]. ":up" command also disables global and domain redirections, which are not restored by ":np".</li>
<li>update [filename] : update the app w/o argument, otherwise retrive the [filename] from remote. The filename could be any file on <ahref="https://jamesfengcao.gitlab.io/uweb/en/readme/index.html">mirror sites</a> (this repository is part of it).</li>
<li>pdf [filename w/o extension] {<ahref="https://www.electronjs.org/docs/latest/api/web-contents#contentsprinttopdfoptions">options</a>} : print to PDF file. All arguments are optional; empty option "{}" to capture long screenshot as vector graphics.</li>
<li>"search.json": <ahref="https://jamesfengcao.gitlab.io/uweb/en/search/index.html">search engines</a> as shortcut-queryUrl pairs, where "%s" would be replaced by search query.</li>
<li>"default.autoc": predefined strings for address bar auto completion.</li>
<li>"gredirect.json": global redirection urls as array of urls</li>
<li>"redirect.json": domain-replacementDomain pairs, default to be applied.</li>
<li>"mapkeys.json": keys-addressbarCommands pairs. The addressbar commands are multiple lines of address bar command separated by "\n".</li>
<li>"menu.json": array of strings for <ahref="https://jamesfengcao.gitlab.io/uweb/en/urls/index.html">user-defined menus</a>. The array has submenu name and address bar commands alternately.</li>
<li>"download.json" : array of strings to define buttons for downloading dialog. The even-indexed strings are texts to show on the button. The odd-indexed strings are address bar commands with "%u" as the downloaded url.</li>
<!-- This document is licensed under the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at <https://www.gnu.org/licenses/>. -->