You are not logged in.

#1 2024-06-21 15:12:46

Registered: 2011-11-09
Posts: 8

ebrowser: keyboard-friendly minimal suckless web browser
The address bar is used for urls/bang-like searches/commands/find-in-page/status etc.
The browser can be configured at all levels of Javascript: OS (nodejs)/Browser (nodejs & web js)/webpage

- lightweight (less than 20k bytes) without bundled electron.
- much less memory footprint than edge/chrome browser and highly performant.
- keyboard friendly with vim-style keymaps and command line support in address bar.
- [global redirection]( to bypass censorship.
- user scripts at will. Ex. pressing "tr" to translate the page (need mapkeys.json config).
- customizable.

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.

#### Address bar commands
- "/" for find-in-page
- ":" for address bar commands
  - ac [bookmark/history path w/o ext] : load ".rec" file for autocomplete.
  - b [bookmarkfilename w/o ext] : bookmark current page in file.
  - bml [filename w/o extension]: load/execute the javascript file.
  - cert : allow invalid certificates w/o arguments, otherwise restore to default.
  - clear : the arguments could be
    - cache : clear cache
    - dns : clear dns cache
    - storage: clear site storage data.
    - {[options]( … ataoptions)}
  - ext [extension path]: load unpacked Chrome extension.
  - 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.
  - 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.
  - nc/uc : No Cookie forwarding/Use Cookie forwarding with global redirection.
  - nh/uh for No/Use url history.
  - nj/uj for No/Use external Javascript files.
  - nr/ur for No/Use "redirect.json" for domain redirection.
  - np : no proxy.
  - 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".
  - ua [useragentName] : set user agent for future tabs. default user agent w/o arguments.
  - update [updateurl] : update the app. updateurl is optional.
  - pdf [filename w/o extension] {[options]( … pdfoptions)} : print to PDF file. All arguments are optional; empty option "{}" to capture long screenshot as vector graphics.
- "!" address bar commands
  "!xx ..." evaluates "xx.js" with the whole text as arguments[0].

#### Commands in no-focus mode (this mode is similar to vi Normal mode)
Pressing "ESC" to enter no-focus mode if not sure.
- ":" for address bar commands
- "/" for find-in-page with address bar
- "!" for "!" address bar commands

The other commands are defined in "mapkeys.json", which will map keys to address bar commands.

#### Configuration files
- "config": lines of address bar commands.
- "search.json": search engines as shortcut-queryUrl pairs.
- "default.autoc": predefined strings for address bar auto completion.
- "gredirect.json": global redirection urls as array of urls
- "redirect.json": domain-replacementDomain pairs, default to be applied.
- "mapkeys.json": keys-addressbarCommands pairs. The addressbar commands are multiple lines of address bar command separated by "\n".
- "proxy.json": name-[ProxyConfig]( … oxy-config) pairs
- "uas.json" : name-useragent pairs

#### Javascript at three levels
- Web page: urls like "javascript:" or bookmarklet command ":bml" run in web page.
- Browser (or renderer process) : "!xx" evaluates "xx.js", which could manipulate address bar etc.
- OS level (or main process) : ":js" to execute the following js code with all OS APIs available.

#### New usages
- Vector designing with web tech to replace Adobe Illustrator/Inkscape.
  - Design with web tech.

  - Printing to pdf with customized paper size.
  - Magnify the pdf paper size to the required size.


  - Adjust window width and use addressbar command line ":Pdf {}" to export vector graphics.
  - Use imageMagick to convert to any other vector graphics format.


#2 2024-06-21 15:23:02

Registered: 2011-11-09
Posts: 8

Re: ebrowser: keyboard-friendly minimal suckless web browser

This post is published using ebrowser.


Board footer

Powered by FluxBB