Pages: dark mode, spell checking, DRM
Dark mode
colors.webpage.preferred_color_scheme(auto,lightordark) is what pages see inprefers-color-scheme. It applies immediately.colors.webpage.darkmode.enabled = truerenders light pages dark with Chromium's automatic dark mode. It applies at once to open tabs, and can be set per site, e.g.:set -u docs.example.com colors.webpage.darkmode.enabled falsefor a site that's already dark.colors.webpage.bgis the color a new tab shows before its page paints; set it to a dark color such as#1e1e2eso loading pages don't flash white.
Saving and printing
| Command | What it does |
|---|---|
:print | Opens the system print dialog |
:print --pdf ~/page.pdf | Saves the page as a PDF, backgrounds included |
:screenshot ~/shot.png | Saves what the tab shows as an image; .jpg and .webp work too. It won't replace an existing file without --force. |
gf, :view-source | Shows the page's source in a new tab |
:debug-dump-page ~/page.html | Saves the page's current HTML, as scripts have changed it |
wi, :devtools | Opens or closes the developer tools; :devtools-focus brings them to the front |
Spell checking
Off by default. Turn it on with a list of languages, e.g. c.spellcheck.languages = { "en-US", "de-DE" } in config.lua or :set spellcheck.languages '["en-US"]'. Chromium then downloads each dictionary once from Google (redirector.gvt1.com) and underlines mistakes as you type.
To keep that request away from Google, install dictionaries yourself first: :spell-install en-US de-DE, or :spell-install alone to pick from the 47 languages (type a code or a name such as german) downloads them from Chromium's own dictionary repository at a fixed version, checks each file against a checksum built into riptide, saves it where Chromium looks, and turns the language on. Chromium then uses that file and fetches nothing.
From the keyboard, in a text field:
:spell-suggestlists fixes for the word at the text cursor as completions.Tabpicks one,Returnreplaces the word, and you're back in insert mode.:spell-addadds that word to your dictionary.
Nothing is bound by default. For example, rt.bind("<Ctrl-s>", "spell-suggest", "insert"). Right-click suggestions work too.
Widevine (DRM)
Off by default. With c.content.widevine = true and a restart, Chromium downloads Google's Widevine CDM (about 21 MB) into the data directory, and it loads from the next start. Chromium has no switch for a single component, so component updates are on during that one run. Once the CDM is installed they go back off, and the CDM itself isn't updated. To update or remove it, delete <data>/WidevineCdm.
Limits: only VP9/AV1 streams work (prebuilt CEF has no H.264/AAC), Linux Widevine is the software-only level (L3) that services often cap at lower resolutions, and this hasn't been checked against Google's Widevine terms for third-party browsers.