Web browser
A built-in web browser that shows HTML, Markdown and basic CSS, runs JavaScript, and loads pages from local disks or over the web (HTTP and HTTPS).
Tabs, the toolbar and the start page
The browser opens on its start page: the built-in documents (marked ✳) and every file on the RAM disk, USB sticks and hard disks, in one scrolling list. Enter opens the highlighted document.
Above it are a tab strip and a toolbar: back and forward, reload, the start page, the address bar, a bookmark button, and the Marks and History panels. Type a web address in the bar and press Enter to go there.
Bookmarks are saved on disk, so they are still there after a restart; history is kept for as long as the machine is running. Both open as a panel under the toolbar, and both are lists you can scroll.
| Key | What it does |
|---|---|
| Backspace | Back to the previous page |
| ← / → | Step through the links on the page |
| Enter | Follow the selected link |
| ↑ / ↓ / PgUp / PgDn | Scroll the page |
| Ctrl+T | New tab |
| Ctrl+L | Jump to the address bar |
| Ctrl+D | Bookmark this page |
| Ctrl+F | Find on this page - type to search, Enter for the next match, Esc to close |
| Ctrl+S | Save this page to disk |
| Ctrl+B / Ctrl+H | Bookmarks / History panel |
| F5 | Reload |
HTML, Markdown & CSS
The browser lays out headings, word-wrapped paragraphs, bold and italic, code, links, lists and preformatted text, for both HTML and Markdown — all typeset with real TrueType typography: large bold headings, a monospace face for code, and true italics.
JavaScript
The browser runs the JavaScript on a page and adds its output to the page, with a console panel at the
bottom for console.log messages.
Scripts can also work with the page itself while it is open: finding elements
(getElementById, querySelector), reading and changing their text, attributes and
HTML, creating and removing elements, responding to clicks, and running work later with
setTimeout and setInterval. A change a script makes appears straight away -
the page is laid out again and redrawn.
Choosing the engines
The page at uno:engine - reachable from the welcome page, or by typing it in the address
bar - lets you switch three things while the browser is running. No rebuild, no
restart: each takes effect on the next page you open.
- the renderer: the flow painter, UnoDOS's own (the default), or the unoweb engine, which does a full cascade, block layout and display list, and handles images and forms;
- the script engine: unojs, UnoDOS's own (the default), or quickjs, a vendored full modern JavaScript engine;
- the CSS cascade: the built-in one (the default), or libcss, the CSS engine from the NetSurf project.
All three default to UnoDOS's own. The alternatives are there so a page that leans on newer JavaScript or more complete CSS has somewhere to go, and so the two can be compared on the same page - open a page, switch, reload, and look at the difference.
Tables, floats and forms
Pages that use the ordinary furniture of the web lay out properly: tables as real grids with columns sized to their contents, floats with text flowing around them, positioned elements, and forms - click a field, type into it, and press Enter or the submit button to send it.
Over the network
Type a web address and press Enter; UnoDOS connects, looks up the site, loads the page and runs any JavaScript on it. A page's own images and stylesheets are fetched too.
Real sites are bigger than they look. A page whose visible content starts sixty kilobytes into the file - which is ordinary for a large site - now arrives whole; the browser grows its buffers to the page rather than stopping at a fixed size. If a page is genuinely too big to hold, the status line says so instead of quietly showing you part of one.
Three things make that feel quicker than it used to. The page is drawn as it arrives rather than only when the last byte lands, so you start reading immediately. A page and everything it references travel over one connection instead of opening a new one each time. And a page you have already seen is remembered for a short while, so going back to it is instant. Sites that need you to sign in work too - cookies are kept for as long as the browser is running.