This document aims to represent all notable changes to Vieb.
Vieb is a Vim Inspired Electron Browser made by Jelmer van Arnhem and contributors, and can be copied under the terms of the GPL-3.0 or later versions. See the README.md or LICENSE file for more info and details about Vieb and its license. Links in the changelog are part of github.com/Jelmerro/Vieb. The releases page also contains the most important changes per release, but the list below contains much more technical details. The releases of Vieb aim to follow semantic versioning.
- Adblock resources file handling, now uses the JSON format for increased coverage
- Argument interface scale not accepting fractional scaling in some cases
- Occasional scaling issue that affected the position of the menu suggestions
- Safer check for document.head.innerText to prevent errors in page console
- Missing space in "New tab" wording of English translation
- Electron 33.1.0 (was 30.0.6)
- Chromium 130.0.6723.91 (was 124.0.6367.207)
12.0.0 - 2024-05-15
- Setting "lang" with partial translation support
- Default mappings for navbar modes to select suggestions with C-j and C-k
- Default mappings for cancelling recordings using
q<Esc>
andq<C-[>
- Clone tab buttons to mouse menu of a tab, to either edit or navigate directly
- Actions "p.mediaFaster" and "p.mediaSlower" to control audio/video playback speed
- Experimental optional DRM builds to the build script (default release is not affected)
- Setting "adblockernotifications" to control which notifications should be shown for the adblocker
- Build option for compressing just an asar file of the app to run directly with Electron
- Tab and system audio sharing option support to the improved display capture popup
- Greasemonkey scripts to work with single match argument instead of multiple include statements
- Download pausing and removal to be via uuid instead of index to be more reliable
- Special pages to no longer use a reversed rendering order, making selecting and styling easier
- Special pages to no longer use a fixed minimum width
- Additional cut/copy/paste keys to also work in the navbar (S-del, C-Insert & S-Insert)
- Styling category to be correct for filebrowser (previously page, now file)
- Stored urls of closed tabs to also be in human readable format to better account for special pages
- Special pages to always use the vieb:// prefix again for simpler datafolder switching
- Shift modifier to be less strict for popup input keys
- Display capture popup to be outside of the page as a proper notification
- Greasemonkey scripts that broke when the header was directly next to the script
- Greasemonkey scripts not working if multiple match the same domain by using an IIFE
- Setting "mouse" not working at all in 11.0.0 due to incorrect setting type
- Downloads not kept on restart since V10
- Startup urls not opening in existing instance if the protocol was missing
- String settings not accepting double quote escaping properly in 11.0.0
- Markdown local images not loading properly on Windows due to Windows file paths being weird
- File explorer not working on Windows since 10.4.0 due to Windows file paths being weirrd
- Root url actions breaking the file explorer on Windows by navigating above the root
- Electron 30.0.6 (was 28.0.0)
- Chromium 124.0.6367.207 (was 120.0.6099.56)
11.0.0 - 2023-12-07
- Settings of type list and object, that can also be set with lists or objects with ":set"
- Setting "loadingindicator" to control where the page load status should be shown
- Setting "passthroughkeys" to send keys to the page per site/domain/regex without leaving normal mode
- Option to write command to save pages as MHTML instead of just HTML
- Setting "windowfullscreen" to allow the fullscreen state to be kept after restart (default "restore")
- Setting clear syntax from booleans ":set noexample", to work for objects, arrays and numbers too
- Default value for "dialogconfirm" to "notifyallow"
- Default value for "nativetheme" to "dark"
- Disabled favicons to be empty instead of showing the broken image indicator
- Mapsuggest and notification alignment in default colorscheme
- Table of contents to be always open, it is either opened and shown or not shown at all
- Table of contents to remember the scroll position on hide, until the page is reloaded, for easy toggling
- Default theme suggest position to be below the tabs
- Setting "mousevisualmode" now works with double and triple click selections
- Default screenshot suggestions, highlight behavior and styling to be more prominent
- Setting "modifiers" to use full key names: for example
<Ctrl>
instead of justCtrl
- Escaping in set commands now only works with double quotes, no longer with single
- Setting "suspendplayingtab" in favor of "suspendtimeoutignore" with the right range
- Option "system" for "nativetheme"
- Option "ask" for "permissionmediadevices"
- Setting "restorewindowmaximize" in favor of "windowmaximize" with value "restore"
- Setting "restorewindowposition" in favor of "windowposition" with value "restore"
- Setting "restorewindowsize" in favor of "windowsize" with value "restore"
- Download success notification showing in info color instead of success color
- Occasional error popup when viewing SVGs directly because of style injection refusal
- Markdownviewer not supporting local images due to file access limits
- GUI-related settings not hiding after follow and pointer actions due to pointer being in mouse override position
- Mapped insert mode inputs with shifted keys sending the keys twice or not at all when unshifted variant exists
- Non-recursive insert mode special keys not always being called with the correct name (hence arrows not working)
- Electron 28.0.0 (was 27.1.0)
- Chromium 120.0.6099.56 (was 118.0.5993.144)
10.6.0 - 2023-11-17
- Settings "windowmaximize" to replace "restorewindowmaximize" and allow fixed defaults
- Settings "windowposition" to replace "restorewindowposition" and allow custom positions
- Settings "windowsize" to replace "restorewindowsize" and allow custom sizes
- Revert deprecation of "tocpages", current empty default wil remain in 11.x.x
- More setting related errors to show the incorrect value
- Setting "restorewindowmaximize" (will be removed in 11.x.x) in favor of using "windowmaximize" with "restore"
- Setting "restorewindowposition" (will be removed in 11.x.x) in favor of using "windowposition" with "restore"
- Setting "restorewindowsize" (will be removed in 11.x.x) in favor of using "windowsize" with "restore"
- Nativetheme not updating correctly because of incorrect deprecation statement in previous release
- Electron 27.1.0 (was 27.0.4)
- Chromium 118.0.5993.144 (was 118.0.5993.129)
10.5.0 - 2023-11-10
- Setting "suspendtimeoutignore" to specify ranges to exclude from the "suspendtimeout" setting
- Setting "suspendplayingtab" (will be removed in 11.x.x) in favor of using "suspendtimeoutignore" with the right range
- Default value for "dialogconfirm" being "notifyblock" (will change to "notifyallow" in 11.x.x)
- Default value for "nativetheme" being "system" (will change to "dark" in 11.x.x, "system" will be removed)
- Default value for "tocpages" being "" (will change to "vieb://help" in 11.x.x)
- Option "ask" for "permissionmediadevices" (will be removed in 11.x.x)
- Table of contents background being transparent
- Cache not being cleared correctly on quit on Windows resulting in background processes remaining
- Electron 27.0.4 (was 27.0.0)
- Chromium 118.0.5993.129 (was 118.0.5993.54)
10.4.0 - 2023-10-12
- Clickable headers to the filebrowser to go up multiple directories at once
- Extra CSS color variables names for filebrowser, still using the same default colors
- Entry "top" in the toc to go back to the top of the page
- Argument "--execute" to run arbitrary runtime commands from the CLI and get its output
- Option "allowkind" to setting "permissionmediadevices" to only list the device type/kind without labels or ids
- Startup flag "--devtools-theme" and ENV var VIEB_DEVTOOLS_THEME to control devtools theme (default remains dark)
- Command "buffers" to list all the open tabs as "index: url"
- Eslint rules to be more strict with better jsdoc and types
- Url modification functions for subdomain and parent urls to be more accurate
- Clicks on tabs while inside navbar modes to switch tab instead of only going to normal mode
- Rare error popup on quit on some Linux desktop environments
- Location mock not being accurate leading to broken functionality on Gitlab and other sites
- Command "tabnewcontainer" not opening with the right name if using "containernewtab=s:external"
- Extra horizontal scrollbar on failedload and filebrowser pages since last release
- Some selections with email addresses being encoded as if a url on copy
- Setting explorehist not working since 10.0.0 due to incorrect import
- Potential duplicate ids in toc generation if a page already has the generated id
- Config file read from ENV VIEB_CONFIG_FILE always being changed to lowercase
- Chrome pages not being styled directly when changing colorscheme
- Pages without div or main incorrectly using colorscheme instead of a white background
- Permission mediadevices throwing an error instead of returning an empty list for blocking media device list
- Colorscheme verticaltabs breaking the history page layout due to duplicate ids
- Electron 27.0.0 (was 27.0.0-alpha.3)
- Chromium 118.0.5993.54 (was 118.0.5949.0)
10.3.0 - 2023-08-28
- Table of contents that can be triggered for pages via
tocpages
or using the<showTOC>
,<toggleTOC>
and<hideTOC>
actions - Default ozone-platform-hint=auto flag to Linux releases with a desktop file to improve Wayland support
- Command
unmap!
to remove multiple mappings by using<Any>
as a wildcard
- Failedload and filebrowser pages are now styled with themes like other special pages
- Undo/redo navbar logic to prevent duplicate entries in the edit history
- Commands to list the name and arguments of failing commands more often
- Fullscreen to also toggle when the window is made fullscreen via Linux specific OS fullscreen features
- Simple text pages that disable JavaScript blocking the colors and fontsize being applied
- Actions "toParentSubdomain" and toRootSubdomain" not working with dashes in the domain name
- Media device query being denied if done via the allow list with
mediadevicesfull
- Navbar selection being cleared when dragging outside of the navbar
- Media indicator not showing in numberedtabs colorscheme
- Domain name function not removing port number resulting in wrong paths for
userstyle
anduserscript
if viewing a page with custom port number
- Electron 27.0.0-alpha.3 (was 25.4.0)
- Chromium 118.0.5949.0 (was 114.0.5735.248)
10.2.0 - 2023-08-09
- Setting "permissionidledetection" to control access to the Idle Detection API, default remains blocked
- Setting "permissionwindowmanagement" to control access to the list of screens and their position, default remains blocked
- Use urls and titles in a command with
<useCurrentUrl>
,<useCurrentOrigin>
,<useCurrentTitle>
and<useCurrentDomain>
- Overflow wrap not splitting words as needed for download title
- Permission check via navigator.permission.query always being allowed, it now uses the permission to correctly inform sites
- USB permission not being blocked in the permissionsasked setting
- Electron 25.4.0 (was 25.2.0)
- Chromium 114.0.5735.248 (was 114.0.5735.134)
10.1.1 - 2023-07-11
- Stored urls to be of the human readable format to better account for special pages
- Adblocker to show a notification if enabled but not present for all builds
- AppImage builds to better handle special pages for changing runtime folder
- Encoding issues since 10.0.0 in markdownviewer, readerview and sourceviewer
- Mappings that send keys to insert mode delayed not working since 10.0.0
- Potential circular reference to parent iframes resulting in freezes
- Electron 25.2.0 (unchanged)
- Chromium 114.0.5735.134 (unchanged)
10.1.0 - 2023-06-22
- Option "external" to "pdfbehavior" setting to open the pdf with externalcommand automatically
- Settings starting with "no" or "inv" not being able to be listed without "?" nor reporting the correct name
- Actions "nextPage" and "previousPage" no longer working for link elements
- Pointer scrolling to search results not working correctly due to Electron's inconsistent API
- Infinite loading issue for unresponsive pages due to loadurl rework
- Newtab actions for pointer mode not working due to tab still loading
- Errors for ipc calls to webview that are still being created by only sending data to webview with ready dom
- First navigation issue that requires a second mouse click to navigate by delaying the useragent reroll
- Relative feed URLs only returning the path (they are now prefixed with the current url as needed)
- Firefox version calculation being ahead of time due to delayed Firefox releases
- Electron 25.2.0 (was 25.1.1)
- Chromium 114.0.5735.134 (was 114.0.5735.106)
10.0.0 - 2023-06-15
- Blocklist uBlock Origin filters to the default list of blocklists
- Setting "requestheaders" to append custom headers to any request
- More default mappings: Firefox/Chromium inspired and mute/pin/internaldevtools mappings
- Settings "userscriptscope", "userstylescope" and "darkreaderscope" to control which pages scripts, styles and darkreader should run
- Suggestions for ranges
- Argument option to the mute command to force a mute state, such as
:mute! true
- Argument option to the pin command to force a pinned state, such as
:pin! false
- Setting "followlabelposition" to control where the label of follow elements should appear
- Set command syntax to rotate between a custom set of values, such as
:set example!value1|value2|value3
- Setting "permissionusb" to list usb devices (default remains blocked, previously grouped as "unknown")
- Types and documentation using JSDoc to most of the source code
- More position options for opening new tabs using "tabnewposition"
- More focus positions after closing a tab using "tabclosefocus"
- Additional flags for ranges to filter suspended/real pages and audio/silent tabs
- Setting "pdfbehavior" to control what happens with PDF files (default changed from viewing to download)
- Support for the context menu key with default mapping to opening the menu
- Setting "historyperpage" to control the amount of history entries to show per page
- Action "pointer.copyTitleAttr" to copy the title attribute of a hovered element
- Action "pointer.copyPageTitle" to copy the page title of the hovered link if in the history
- Full interface scaling startup flag "--interface-scale", which can be combined with custom font sizes to achieve many different ratios
- Setting "notificationlimitsmall" to control how many newlines should be the limit for small/large notifications
- Option "largeonly" to the "nativenotification" setting to only show large ones natively
- Actions "pageRSSLinksList" and "pageRSSLinkToClipboard" to list and copy RSS feed urls found on the page
- Setting "replacespecial" is now by default set to "special"
- Default mapping
<C-c>
will now copy in normal, pointer and visual mode as well - Setting "restoretabs" is now an enum that accepts different options
- Setting "notificationforpermisions" is now an enum that accepts different options
- Example configs to not include as much duplication as before
- Userstyles are now applied even if darkreader fails to apply
- Mapstring splitting to be more accurate when recursively including < and >
- Mappings for recording macros to be more in line with Vim, by mapping and unmapping them on start/stop
- Buffer commands to show all matching commands instead of the first one (especially useful for ranges)
- Pin command to better preserve tab order when using ranges
- JavaScript execution to always allow user interaction APIs
- Svg and "data:" favicons to be used if present in the list, otherwise still pick the first
- History page rendering mechanism to support large history files much better using pagination and background rendering
- Setting "guifontsize" now accepts a much wider range of values to accommodate interface scaling
- Erwic mode permissions to now ask for displaycapture instead of blocking it (Vieb default is still to block)
- Favicon mapping storage now uses a debounce mechanism similar to browsing history to improve performance
- Crashed tabs to allow navigating and reloading by recreating them as a new tab at the same position
- Action "openNewTab" in favor of ":tabnew" command
- Setting "clearhistoryonquit" in favor of "clearhistoryinterval=session"
- Setting "search" in favor of the functionality identical "searchengine" setting
- Setting "tabnexttocurrent" in favor of "tabnewposition" enum
- Setting "tabclosefocusright" in favor of "tabclosefocus" enum
- Image and svg follow links not showing since 9.0.0
- Scrollbar styling not working on pages that block custom CSS
- Userstyles not working on pages that block custom CSS
- Display capture styling not working on pages that block custom CSS
- Index-based ranges not working correctly for some commands
- Navigation delay system updating the current page instead of the right one
- Navigation delay system preventing page navigations for new tabs that are not loading
- Favicon not showing or spinner still rotating for suspended tabs
- Insert mode being left if interacting with the page menu
- System clipboard being used incorrectly on Windows and Mac on selections due to selection clipboard not existing on those systems
- Commands "tabnew" and "tabnewcontainer" not converting arguments to a url (preventing searches from working too)
- Mouse hover remaining on follow element when moving the mouse outside of the window
- Mappings being listed as modified when they were overwritten by the very same entry using :map
- Follow links which vary in height/width compared to parent potentially causing follow highlight to switch between them periodically
- Setting "containernames" not updating listed container immediately and not switching at all for new tabs and mouse clicks
- White background on special pages when reloading them multiple times
- Erwic settings not being saved with :mkviebrc if similar to regular Vieb defaults
- Settings "notificationforpermisions" being set to "none" not preventing notifications from being stored
- Keyboard focus being lost when opening pages that do not allow JavaScript to be run
- Suspendonrestore value "none" suspending all tabs instead of none
- Tabs with file paths open not being stored for next startup
- Incremental search sometimes moving two entries when searching the same string
- Electron 25.1.1 (was 23.2.0)
- Chromium 114.0.5735.106 (was 110.0.5481.192)
9.7.1 - 2023-05-04
- Setting "tabnexttocurrent" boolean in favor of "tabnewposition" enum
- Setting "tabclosefocusright" boolean in favor of "tabclosefocus" enum
- Electron 23.2.0 (unchanged)
- Chromium 110.0.5481.192 (unchanged)
9.7.0 - 2023-04-02
- Command "clear" to wipe browsing data based on intervals or partial urls (currently only history)
- Setting "clearhistoryinterval" to more finely control the deletion of history on quit by interval
- Option "url" to the list of mouse features to control interaction with the input box while already typing (default on)
- Option "leaveinsert" to the list of mouse features to control if clicking outside the page should leave insert mode (default on)
- Option "notification" to the list of mouse features to control if clicking the download notification should open the file (default on)
- Setting "mousedisabledbehavior" to control if elements with no enabled mouse interaction should optionally drag the window (nothing by default)
- Setting "guiscrollbar" to control if and when the scrollbar should appear on pages (default remains always on)
- Documentation for all modes by mode name instead of just the action name (also means better sorted actions)
- More values to "dialogconfirm" to automatically allow the confirm dialog without needing to show it
- More default mappings that are similar to Firefox/Chromium
- Favicon icons to the buffer command suggestions for better recognition
- Actions "startRecording", "stopRecording" and "runRecording" to record key presses and later execute them (macros/records in Vim)
- Resetting focus now happens on every user interaction instead of on a timer
- Url can now be selected from outside explore mode directly (and keep the selection if switching to explore mode)
- History storage is now slightly faster by only wiping empty entries on write
- Settings now have links to documentation about the type of value they can contain
- Naming scheme of setting types is now more streamlined and better documented
- Searchword urls are now filled in with the resolved url in the suggestions while you type
- Seachwords will now also activate if prefixed with spaces
- Filetype suggestions coming from history are now correctly colored in history color instead of file suggest color
- Default theme now shows the default cursor instead of the text cursor on the url box if interaction is disabled
- Locales are now included in regular releases but still excluded from lite builds (see
build.js
) - All mouse features now have a "mouse-something" className added to the body if enabled to allow more customization in colorschemes
- Action "menuOpen" will now keep working even if the settings are set to never, this does not affect regular right clicks
- Userstyles are now also applied when the DOM is ready, not just when the page is fully loaded
- Commands "screencopy" and "screenshot" will show the screen highlight even without entering all 4 dimension values
- Single key mapping commands now also combine different modes into one map command if all modes have the same mapping
- Buffer commands now search for matches the same way as explore mode, as do the suggestions
- Setting "clearhistoryonquit" in favor of "clearhistoryinterval=session"
- Default value for "replacespecial" being "newtab" (will change to "special" in 10.x.x)
- Setting "search" in favor of the functionality identical "searchengine" setting
- Ctrl-c default mapping for the stopLoadingPage action instead of the new Esc
- Boolean toggling "restoretabs" in favor providing a value (toggle commands will stop working in 10.x.x)
- Boolean toggling "notificationforpermisions" in favor providing a value (toggle commands will stop working in 10.x.x)
- Action "openNewTab" in favor of running the ":tabnew" command
- Vieb right click menu not working due to removed .path in events
- Follow filtering being cancelled when interacting with the navbar using the mouse
- Explore mode history not storing the first change in the Ctrl-z/Ctrl-y history
- Middle mouse paste not updating explore mode's Ctrl-z/Ctrl-y history
- Self closing tabs not being cleaned up correctly due to Electron devtools close call being unsafe
- Text selection still briefly being visible outside explore mode when toexplore mouse feature is disabled
- Websocket connections being blocked when setting custom resourcetypes due to casing error
- Mousefeature history always being on even if not in the list of enabled features
- Mode selector not being as big as it should be and therefor closing the dropdown occasionally
- Sites without a div and without proper background not getting the default white background
- Pointer mode help commands going to the action if they have the same name
- Ctrl-F4 to close tab default mapping not working
- Default text value for prompt dialogs not being used
- Iframe position not being shifted correctly for iframes inside a same origin iframe
- Electron 23.2.0 (was 23.1.1)
- Chromium 110.0.5481.192 (was 110.0.5481.104)
9.6.0 - 2023-02-23
- Mouse setting "copyselect" is no longer available/needed for copying text by selecting, as it wasn't blocked correctly anyway
- Mouse selections will now copy to the selection clipboard, instead of the default one, and at all times
- Userscript domain name not working at all by using an internal url instead of the page url
- Explore, command and search mode not being exited when dragging the mouse
- Electron 23.1.1 (was 22.0.3)
- Chromium 110.0.5481.104 (was 108.0.5359.179)
9.5.1 - 2023-01-20
- COOP is now enabled again as the old workaround for Twitter navigations is no longer needed
- SharedArrayBuffer is now enabled to make web workers more useful and faster
- Attempting to navigate a page that isn't ready for navigation will now wait until it's ready
- CORS issues when using darkreader
- Exception in devtools when using newtaburl
- Middle-mouse pasting not working in command and search mode as it would switch to explore mode incorrectly
- Electron 22.0.3 (was 22.0.0)
- Chromium 108.0.5359.179 (was 108.0.5359.62)
9.5.0 - 2022-12-14
- Startup argument "--unsafe-multiwin" to have multiple windows in the same datafolder and skip the single instance safety check
- Command "translatepage" to translate the page using Deepl API or LibreTranslate
- Settings "translateapi", "translatekey", "translatelang" and "translateurl" to customize translation settings for ":translatepage"
- Setting "permissionclipboardwrite", as clipboard writing was recently moved to a permission by Electron (default remains allowed)
- Settings "replacespecial" and "replacestartup" to control when new pages should re-use/replace the current tab
- Rpm and deb releases are now symlinked in /usr/bin correctly on updates after this one
- Confirm char "!" for special page commands now opens them in a new tab regardless of the new "replacespecial" setting
- Recursive key mappings not working correctly when the timeout is reached and there are also multi-key mappings
- Cache errors/corruption on Windows upon restart after clearing/disabling cache
- Setting externalcommand is now actually used for opening new tabs externally (fallback remains the default browser)
- Exception popup on Linux when quitting if using window frame borders
- Valid urls without protocol not always being recognized as a startup argument
- Electron 22.0.0 (was 22.0.0-beta.5)
- Chromium 108.0.5359.62 (was 108.0.5359.40)
9.4.0 - 2022-11-16
- Percentage based scrolling when using "gg" or "G" with a count, similar to Vim
- Action "startFollowCopyLink" for copying links of selected elements in follow mode
- Setting "darkreadermode" to switch between light and dark schemes/modes for darkreader
- Settings "resourcetypes", "resourcesallowed" and "resourcesblocked" to control allowed/blocked resource types
- Setting "shell" to control the shell to use for system commands
- Live indicator of current theme preference to the nativetheme help documentation
- Maximum values of darkreader brightness and contrast settings from 100 to 200 percent
- Buffer-like command suggestions to be in sync with actual behavior
- Buffer-like command suggestions to include the page url
- Check if the entire body is scrollable instead of the window for global scroll actions and scrollpos
- Prevent navigation to invalid urls to make sure a page can always be interacted with
- Shell now reads "$SHELL" instead of defaulting to "/bin/sh" for system commands
- Action "openNewTabWithCurrentUrl" not working at all in last release due to unsafe check
- Duplicate downloads due to page restart workaround (which is now fixed by Electron)
- Electron 22.0.0-beta.5 (was 21.1.0)
- Chromium 108.0.5359.40 (was 106.0.5249.91)
9.3.0 - 2022-10-10
- Setting "reloadtaboncrash" to automatically recreate a crash tab with the last known url
- Indicator for unresponsive tabs in the form of a small red border on the left of the unresponsive tab
- Setting "userscript" to run custom JavaScript on pages, optionally using the GreaseMonkey API
- Modifiers/shifted keys for searching, marks and follow mode now work more reliable
- Tabs will no longer refuse to navigate when there is a beforeunload listener that calls preventDefault
- When the current tab is crashed, you can no longer enter irrelevant modes in it
- Initial tab load issues on some devices for specific pages
- Split state not being kept when switching container name based on containernames setting
- Multiple useragents being set sometimes causing duplicate page loads
- BatteryManager errors for insecure pages, since it's an HTTPS-only API
- Follow mode and other main process calls not succeeding when there are crashed tabs present
- Electron 21.1.0 (was 21.0.1)
- Chromium 106.0.5249.91 (was 106.0.5249.61)
9.2.1 - 2022-10-04
- Enter key will now also send keypress events when executed by a mapping
- Pick first matching rule from permission allow, block or ask lists
- Permission allow list can now include labels for mediadevices using "mediadevicesfull"
- Media device requests being mislabeled as display capture permission requests in some cases
- Electron 21.0.1 (was 21.0.0)
- Chromium 106.0.5249.61 (was 106.0.5249.51)
9.2.0 - 2022-09-28
- New themes: light-compact, paper-compact and paper
- Backwards searching if search is started with a shifted key (by default
?
)
- Pinned and mute state are now remembered for tabs affected by "containernames" container switching
- Pinned tabs will now be correctly reopened by "containernames" container switching
- Mouse scrolling on Vieb elements will now scroll the underlying page if the "pageoutsideinsert" mouse feature is on (default)
- Search will now find the next match if searching for the same string again
- Default blocklist urls to use adblockplus instead of easylist due to fetch issues
- Follow mode borders showing over labels
- Follow mode mouse hover appearing when not needed
- Backwards searching not working in previous release due to typo
- Special characters not working in custom viewers (markdown, reader and source)
- Electron 21.0.0 (was 20.1.1)
- Chromium 106.0.5249.51 (was 104.0.5112.10)
9.1.0 - 2022-09-07
- Settings "searchscope" and "searchemptyscope" to make local tab-specific searches
- Default mapping for emptySearch using
Backspace
- Adblocker can now update custom blocklists by adding a "list.json" file to the blocklists folder
- Failed load error page to include certificate permission setting if related to cert errors
- Preload path of adblocker not being correct for all builds
- All remaining runtime error popups related to subframe access issues (they are now shown in the console)
- Erwic datafolder not resolving "~" correctly
- Fixed atob issues by updating to an Electron release with a correct implementation
- Electron 20.1.1 (was 20.0.2)
- Chromium 104.0.5112.102 (was 104.0.5112.81)
9.0.0 - 2022-08-14
- Special type of notification for dialog inform notifications, which can be colored separately
- Setting "suggestbouncedelay" to control the debounce delay of suggestions, to handle fast typing better
- Setting "darkreaderblocklist" to block specific sites (regular expressions) from using darkreader, even if enabled
- Setting "userstyle" to toggle loading of custom CSS files into the page, either globally or per-domain
- Actions "toggleMarkdownViewer" and "toggleMarkdownViewerNewTab" to toggle the new theme supported "markdownviewer"
- Setting "nativetheme" to control the theme to report to pages, used by the "prefers-color-scheme" CSS rule
- Quickmarks to store and reload scroll positions, pointer positions and page urls quickly
- Commands "marks", "restoremark", "delmarks", "pointerpos", "restorepointerpos", "delpointerpos", "scrollpos", "restorescrollpos" and "delscrollpos" to list and delete quickmarks
- Settings "quickmarkpersistence", "pointerpostype", "pointerposlocalid", "scrollpostype", "scrollposlocalid", "markposition" and "markpositionshifted" to control quickmarks
- Actions "storeScrollPos", "restoreScrollPos", "p.storePos", "p.restorePos", "makeMark" and "restoreMark" to add and load quickmarks
- Webpack compilation to the released builds, for better tree-shaking and minified code
- Separate "lite" build/release that does not have any dependency packages installed
- Only show notification popup for notifications with lots of newlines
- Examples are now downloaded as blobs instead of files to allow them to be bundled in the asar file for releases
- Startup argument "--debug" is now called "--devtools" to avoid nodejs argument conflict
- Give "storenewvisits" a new option for "markdownviewer"
- Logic for staying in follow mode after selecting something is now more consistent in remembering the previous mode
- Main process devtools are now always undocked to prevent window size issues
- Follow mode logic to use the much faster async IntersectionObserver instead of sync API
- Follow mode logic to be faster if fewer element types are queried
- Use Electron's clickOnSearch implementation in favor of Vieb's custom one
- Setting "containernames" now also works for current tab navigation, unless you tell it not to with the "~newtab" suffix
- Use regex to detect SVG favicons instead of relying on "is-svg" dependency
- Use nodejs filesystem API instead of relying on "rimraf" dependency
- All runtime dependencies are now loaded safely, and will show a message when missing (this makes ALL dependencies optional)
- Custom icon and name are now shown on the version page as well
- Only include en-US locale in builds to decrease build size significantly
- Invalid or missing chrome:// pages are now redirected to their Vieb counterpart (if it exists) or the help page
- Extension support, see this Github issue to learn more
- Setting "firefoxmode" in favor of setting the "useragent" setting to a Firefox useragent
- Suspended tabs sometimes failing to wake up correctly
- Commands :rclose and :lclose not working correctly when there are suspended tabs
- Race condition in opening new tabs with urls that would sometimes unsuspend them twice
- White background on some pages that load page styling async and in reloaded iframes
- Error popup from the main thread regarding discarded frames
- White background on pages with dark color-scheme preference and no custom styling
- Electron 20.0.2 (was 19.0.6)
- Chromium 104.0.5112.81 (was 102.0.5005.115)
8.1.0 - 2022-06-29
- Darkreader with many settings like "darkreader" and "darkreadercontrast" to toggle and control darkreader theming
- Sponsorblock with settings "sponsorblock" "sponsorblockcategories" to toggle and control blocking
- Reduced the amount of mouse movement events while inside pointer mode, greatly reducing CPU usage
- Setting "useragent" is now separated by tildes
~
instead of commas,
as to allow commas to appear in useragents - Settings with
,
separator with each entry having a~
separator can now be removed with just the part before the first~
- Explore mode suggestion logic should now be faster after first search by caching page titles
- Extension support, see this Github issue to learn more
- Compact layout overflowing below the visible window, now uses grid layout
- Shifted space and backspace not working in navbar as a regular space/backspace
- DOM issue when trying to send iframe details before DOM is ready
- Electron 19.0.6 (was 19.0.3)
- Chromium 102.0.5005.115 (was 102.0.5005.63)
8.0.0 - 2022-06-08
- Setting "useragent" to use any number of custom useragents (either one, or a list that is randomly used per page load)
- Settings "encodeurlcopy" and "encodeurlext" to control the percent encoding/decoding of the urls
- Script-based blocking of ads in the adblocker, for example to block Youtube and Twitch ads
- Support for "prompt" dialogs, and thus "show" and "notifyshow" are now valid values for "dialogprompt"
- Mouse option named "movepointer" which moves the pointer to the click location
- Actions "toggleSourceViewer" and "toggleSourceViewerNewTab" to toggle the new theme supported "sourceviewer"
- Actions "toggleReaderView" and "toggleReaderViewNewTab" to toggle the new theme supported "readerview"
- More default themes: numberedtabs and compact (thanks to @stevkazt)
- Setting "windowtitle" now accepts a custom string with variables instead of hard-coded formats (linking to password managers should be easier now)
- Dialog settings are now all blocked with notifications by default
- Duplicate download numbering now starts from (1) instead of (2)
- Duplicate download name for files that end in "tar.something" will now have the counter before the ".tar"
- Iframes are now isolated properly, making them faster and more secure (no more infinite loop to set listeners for them)
- Privacy overrides are now always done with a preload, making them faster and more secure (no more infinite loop to patch them)
- Increase default timeoutlen above Vim's level because it makes more sense for Vieb
- Rename "fontsize" to "guifontsize" to make it more clear where the font size applies
- Url detection logic to be more in line with the actual spec, resulting in simpler implementation
- Downloadpath is now empty by default and will read
XDG_DOWNLOAD_DIR
/xdg-user-dirs (with the same fallback to~/Downloads
as before) - Give "storenewvisits" new options for "sourceviewer" and "readerview", and rename "builtin" to "special" to make more sense
- Action "toLastUsedTab" in favor of using ":buffer #" in line with other buffer-like commands that support "#"
- Startup option to enable strict site isolation, it is now strictly isolated at all times
- CSS transitions from default theme (specifically on the mode selector)
- Command "reloadconfig" did actually reset the settings instead of just reload them
- Urls prefixed with a protocol not being checked if they are navigable urls at all (possibly resulting in broken tabs if navigated to)
- Race condition on unsuspending tabs and opening tabs with a url directly that led to empty pages
- Composing keyboards typing out the keys in addition to the composed keys on macos
- Internal errors for looping over pages when some of them are suspended (in case of zooming, page capturing, or save page)
- Follow links (or their labels) not being visible if an element continues outside the visible section of the page
- Electron 19.0.3 (was 18.0.1)
- Chromium 102.0.5005.63 (was 100.0.4896.60)
7.2.0 - 2022-03-31
- Setting "suspendplayingtab" to control if tabs playing media should be suspended by suspendtimeout
- Settings "dialogalert", "dialogconfirm" and "dialogprompt" to control if dialogs should show and/or be logged at all
- Permissions for serial and other human interface devices (permissionserial, permissionhid, both blocked by default, same as before)
- Default mappings that make use of the last used tab argument (for example "close #") of buffer like commands (prefixed with "B")
- Useragent was modified to the upcoming reduced/simplified version of the final phase of https://www.chromium.org/updates/ua-reduction/
- Battery API now returns fixed "no battery" values instead of being undefined
- The SSL error filter now includes more ERR codes by looking for
_CERT_
and_SSL_
instead of using a fixed list - Attempt to delete blocked navigator properties from navigator object completely instead of returning undefined
- Disable useragentdata client hints API completely (previously only in Firefox mode)
- The last used tab variable will now as a fallback pick the first tab instead of opening a new search tab with "buffer" and "Vexplore"
- Plugins and mimeTypes overrides in favor of default hard-coded PDF plugin and mimetype lists (as per Firefox and Chromium)
- Reloadconfig command not resetting permissions (and other webview/main thread settings) in some cases
- Crash when pressing cancel in the print dialog (fixed by upgrading Electron)
- Interaction with other pages not working when the debugger is paused (due to overlay, which is now disabled by default for new sessions)
- Electron 18.0.1 (was 17.0.1)
- Chromium 100.0.4896.60 (was 98.0.4758.82)
7.1.2 - 2022-02-20
- Split resize actions (increaseWidthSplitWindow etc.) not being able to resize multiple times in the same direction
- Electron 17.0.1 (was 17.0.0)
- Chromium 98.0.4758.82 (was 98.0.4758.74)
7.1.1 - 2022-02-10
- Telegram channels and a Matrix space now exist and were added to the version page
- AppImage builds being broken
- Electron 17.0.0 (unchanged)
- Chromium 98.0.4758.74 (unchanged)
7.1.0 - 2022-02-06
- Setting "newtaburl" to set a custom url for the new tab page
- Actions "p.mediaDown" and "p.mediaUp" to lower or raise the volume of media elements (audio or video)
- Allow "search" to be empty to disable searching completely (also fixes the same ":mkviebrc full" warning of followelement-type settings)
- Custom btoa and atob implementations not working if the argument is a number (even if that's technically more correct)
- Unclickable follow mode link if it's the only link on the entire page
- Warning when running a ":mkviebrc full" config (because the followelement-type settings didn't allow an empty value)
- White background for XML documents
- First page in history always being the new tab page
- Focus element action failing to get the length of elements that don't have a value (textarea, contenteditable div, etc.)
- Argument issue with scriptnames command preventing it from working
- Electron 17.0.0 (was 17.0.0-beta.4)
- Chromium 98.0.4758.74 (was 98.0.4758.11)
7.0.0 - 2022-01-16
- Range prefix support for many different commands
- Buffer-like commands now accept "#" to specify the last used tab
- Actions "startFollowNewSplit" and "startFollowNewVerSplit" to open links in splits with follow mode
- Setting "inputfocusalignment" to align input fields consistently on focus from follow mode
- Command "runjsinpage" to run any JavaScript inside the current page or pages matching a range
- Context menu options for opening any link in a split of vsplit, such as "split audio link" or "vsplit selected text"
- Pointer mode actions for opening splits of media urls, hovered urls or selected text, such as "splitAudio" or "vsplitText"
- Two new types of links in follow mode: media (audio/video elements) and images (img, svg and background images)
- Setting "followelementpointer" to control which elements should appear in follow mode when used to move the pointer
- Setting "notificationforsystemcommands" to enable or disable notifications for successful or failed system commands
- Setting "followchars" to specify exactly which characters should be used to select elements on the page
- Setting "followfallbackaction" to control what happens on pressing chars not part of followchars (new default is to filter results)
- Command "tabnew" and "tabnewcontainer" to open a new tab programmatically optionally with a custom container name
- Setting "containernames" to control which container names should be used for new tabs with a specific url (based on regex patterns)
- Desktop capture API is now called from main thread and shows the app icons
- Command "reload" to "reloadconfig" to avoid confusion
- Actions "reload" and "reloadWithoutCache" are now called "refreshTab" and "refreshTabWithoutCache" to avoid confusion
- Consistency between menu items and reduced the amount of words in them for easier scanning
- Override for atob and btoa functions so they accept a wider range of characters instead of throwing errors (fixes Protonmail login issue)
- Longtime workaround for electron-builder to manually create the mac zips (they are now valid zip archives instead of being broken)
- Compatibility linter plugin compat, as it's no longer needed due to widespread release of newer node versions
- Resolve file paths with query param characters in them and update the url accordingly
- Background color override not checking for background images before applying
- Mouse forward and back buttons not working on Windows
- Rare crash when the devtools would remain after deleting the webview and you would then interact with it, they are now closed along with the page
- Potential switch to insert mode after clicking on multiple links before leaving follow mode (by using Shift or right-clicking)
- Electron 17.0.0-beta.4 (was 15.3.1)
- Chromium 98.0.4758.11 (was 94.0.4606.81)
6.2.0 - 2021-11-14
- Actions "pageTitleToClipboard", "pageToClipboardHTML", "pageToClipboardMarkdown", "pageToClipboardRST" and "pageToClipboardEmacs" for easier pasting in editors
- Setting "followelement" to filter which kind of elements should be shown in follow mode
- Scriptnames command will now print the script index before the file path
- Automatic suspend timers of "suspendtimeout" will be restarted when the value is updated
- Searchwords now support multiple %s replacements in a single comma-separated query
- Privacy overrides now override the prototype getter instead of the function directly
- Alignment of calculated elements that relied on fixed numbers when using custom stylesheets
- Default mapping for previous tab using CtrlShift-Tab not working
- Audio and video control labels in context menu not being updated for elements with sourcesets
- Incorrect media type being used for the context menu media controls in some cases, such as a video element playing only audio
- Index for the buffer-like commands being shifted if the results are filtered
- Target blank links opening in new tab when using the mouse to click on them
- Relative urls opened using the window.open proxy doing a web search instead of navigation
- Electron 15.3.1 (was 15.0.0-beta.7)
- Chromium 94.0.4606.81 (was 94.0.4606.31)
6.1.0 - 2021-09-19
- Mouse feature "screenshotframe" which allows you to drag the screenshot frame to a specific position
- Visual feedback for follow feature of the mouse using new highlight on hover
- Make special mouse button dragging resize the screenshot frame by changing the width and height instead of position arguments
- Examples with custom commands are now in a separate example file that isn't used by default, due to its explicit and non-native nature
- Crash on uploading files due to Electron bug in beta 4
- Characters with different naming in Electron compared to JavaScript and Vim not being recognized as such in mappings
- Electron 15.0.0-beta.7 (was 15.0.0-beta.4)
- Chromium 94.0.4606.31 (unchanged)
6.0.0 - 2021-09-12
- Setting "suspendbackgroundtab" to toggle if tabs opened in the background should be suspended (on by default)
- Setting "tabopenmuted" to control if new tabs should be muted (default off, can also be set for background tabs only)
- Setting "tabreopenmuted" to control if reopened tabs should keep their muted state (default is "remember")
- Startup option to control the autoplay policy of media in webpages (default changed to require document interaction)
- Make "!" behind close commands (close, lclose, rclose) also close pinned tabs regardless of the "closablepinnedtabs" setting
- DOM attribute "focus" that gets set on body, this can be used in themes to change styling when (un)focused
- Action "toggleAlwaysOnTop" to toggle the always on top state of a window, will try to use the native method for it
- Suspend toggle option to the contextmenu when right-clicking on a tab
- Command "nohlsearch" to hide the search but not clear the query (as done with emptySearch)
- Support for zooming the page with the mouse by scrolling while holding Control (similar to regular browsers) if mouse is enabled
- Double clicking on a tab (or the tabbar) now opens a new tab, at the end or next to it, depending on tabnexttocurrent
- Action "p.moveToMouse" to start pointer mode at the current mouse position
- Setting "permissioncertificateerror" to ask or even allow custom/invalid certificates (default remains to block them)
- Actions "menuTop", "menuBottom", "menuSectionUp" and "menuSectionDown" to give more flexibility of movement inside the menu
- Setting "searchpointeralignment" to control where the pointer should align to when moving between searches in pointer mode
- Actions "nextSuggestionSection" and "prevSuggestionSection" to jump between section in the explore mode suggestions
- Setting "menusuggest" to control if suggestions for explore and command mode should have a dropdown menu
- Feature "copyselect" to the "mouse" setting for automatically copying selected text to the clipboard (disabled by default)
- Actions "scrollLeftMax" and "scrollRightMax" to scroll the page to the absolute maximum left or right
- Command "screenshot" to save screenshots of the page to the downloads folder or a custom location, optionally of a specific page region
- Command "screencopy" to copy screenshots of the page to the clipboard, optionally of a specific page region
- Actions "moveTabStart" and "moveTabEnd" to move a tab all the way to the start or the end of the tabbar
- Many default mappings common in other browsers to the default mappings (if they don't conflict), including numpad mappings
- Link color is now also taken from the current colorscheme for unstyled pages, making links more readable by default
- Setting "startuppages" now accepts optional container name, pinned status and muted status options using "~"
- Unsupported startup arguments are now passed to Chromium, which makes running Vieb on wayland possible
- Logo is now an SVG image with a slightly bolder font for the letters
- Strip packaged builds of unused assets by only including files using opt-in filters
- Apply search actions to all visible splits
- Use workarea instead of entire screen for detecting snapped windows
- Improve reliability of the mousefocus and top of page hover actions
- Make "nextSearchMatch" and "previousSearchMatch" move the pointer to the search match when called from pointer mode
- Newtab related actions in pointer mode are now prefixed with "t" instead of "n" to make room for searching with "n" and "N"
- Firefox release versions in firefoxmode to more realistic numbers because of recent Firefox release date delays
- Same domain check was improved to strip subdomains if needed (for both firefoxmode=google and the new certificateerror caching)
- Scroll position detection when searching which supports auto scrolling before finding the match and after (Electron doesn't do this in a fixed order)
- Algorithm for finding a matching tab based on text now matches the suggestions more accurately for buffer-like commands
- Setting "commandhist" and "explorehist" to optionally and by default store commands/navigations persistently
- Native clipboard actions to custom JavaScript actions which also translate spaces to "%20" for cutting and copying urls
- Mouse setting now accepts a list of features to enable instead of being a boolean toggle for all features
- Action "menuOpen" now opens the menu of the current tab when called from normal mode instead of the page menu
- Action "menuOpen" now opens the suggestions menu when a suggestion is selected instead of the url menu
- List-like settings can now be emptied using the "no" prefix, such as ":set noredirects"
- Selecting text inside an input field will now also switch to insert mode, if "toinsert" is enabled by the mouse setting
- Action "p.insertAtPosition" now also checks parent nodes to work better with SVG images
- List-like settings will no longer accept duplicate identical values in the list
- Buffer commands can now wrap from the end of the tabbar by providing a negative index
- Spellcheck suggestions should now also work for elements that are not input fields (but still not on Windows due to Electron bugs)
- Numbers with actions bound to them that are pressed when there is already a count will no longer execute the action but append the count
- Setting "search" to a list of search urls instead of a single url, which will be selected at random each time
- Numpad keys not typing out numbers in navbar related modes
- Special page navigations sometimes prompting to open externally when stored in the history
- Settings that affect special pages not applying in realtime when there are suspended tabs
- Media playing indicator not being cleared when the page is suspended
- Suggestions for suspend command showing already suspended tabs
- Pointer mode help commands not always working
- Visual mode activating when only moving the scrollbar if "mousevisualmode" is set to "activate"
- Numpad keys not being recognized as such when entered inside the page using insert mode
- Write command path bugs due to previous code rework in 5.x.x releases
- Electron 15.0.0-beta.4 (was 13.1.4)
- Chromium 94.0.4606.31 (was 91.0.4472.106)
5.3.0 - 2021-06-30
- Action "increaseFirstNumber" and "decreaseFirstNumber" for modifying the first number of the url
- Action "increaseLastNumber" and "decreaseLastNumber" for modifying the last number of the url
- Action "increasePortNumber" and "decreasePortNumber" for modifying the port number of the url
- Action "nextPage" and "previousPage" for going to the next or previous page based on website pagination
- Action "nextPageNewTab" and "previousPageNewTab" for going to the next or previous page in a new tab
- Action "toParentUrl" and "toRootUrl" for removing levels/directories at the end of the url (separated by "/")
- Action "toParentSubdomain" and "toRootSubdomain" for removing subdomains from the url (separated by ".")
- Support for certain numpad keys in recursive insert mode mappings
- Funding link to my personal Github sponsors page: Jelmerro
- Mappings
*
andtx
etc. in visual mode now return to normal mode, similar to Vim - Non-recursive insert mode mappings can now refer to a key with native functionality (if supported by Electron)
- Follow mode can now click on JavaScript links without reloading the page
- Action "increasePageNumber" and "decreasePageNumber" now only read the page query parameters, use the new actions for old functionality
- Text copy and download actions not doing the right thing when called from the context menu
- Splits being swapped in the grid if splitting directly to an already open page
- Menu actions being cancelled if parent mode has a multi-key mapping
- Folders with many items not being scrollable in the file explorer
- Electron 13.1.4 (was 13.1.2)
- Chromium 91.0.4472.106 (was 91.0.4472.77)
5.2.0 - 2021-06-20
- Action "repeatLastAction" to repeat the last called action or mapstring
- Action "p.restoreSelection" to restore the previously selected text in visual mode
- Mapping to execute the last executed command again (requires commandhist to be on "useronly" or "all")
- Cheatsheet for default mappings and general usage of Vieb to the help page, website and readme
- Example config for Vivaldi, Surfingkeys, Pentadactyl, Saka Key and Vim Vixen
- Support for numpad/keypad keys in mappings, such as k3, kEnd or kPlus
- Actions for visual mode to search, open, open in new tab, open externally or download selected text
- Setting "mousevisualmode" to control what happens when you select text with the mouse in relation to visual mode
- More consistent opening of splits when many tabs are open
- Further improvements to the encoding and decoding of urls
- Keycodes for popups are now acquired the same way as regular keys, so that they work on different keyboard layouts
- Action "editWithVim" can now also be used to edit text in search, explore and command mode (besides just input fields in insert)
- Action "nop" is now a regular action, old name "Nop" will continue to work due to recent case-insensitive action names rework
- Window state is now also saved after a series of actions, instead of only before it and on quit
- Missing help docs for media related actions, such as pausing, muting and looping
- All actions being reported as countable even though some of them aren't
- Call command and custom mappings not always executing first part of the mapping from normal mode
- Uncountable actions being executed multiple times when not recursively called
- Broken symlink for Linux installers in /usr/bin
- Electron 13.1.2 (was 13.1.1)
- Chromium 91.0.4472.77 (unchanged)
5.1.0 - 2021-06-09
- Open command to navigate to a website or search term directly with a command
- Setting "permissionsensors" to control motion sensor reading (default remains blocked, previously grouped as "unknown")
- Setting "permissionscreenwakelock" to allow sites to prevent dimming/sleeping (default remains blocked, previously grouped as "unknown")
- Setting "mapsuggest" and "mapsuggestposition" to show and control the suggestions for multi-key mappings (by default 50 on the topright)
- Setting "modifiers" to control which keys should not be registered on their own, but only when used as a modifier
- Setting "smartcase" to make searches with capital letters case sensitive while remaining case insensitive by default (setting on by default)
- Command "scriptnames" to print the list of config files loaded at startup (and optionally those sourced by them using "!")
- Command "source" to load other config files either relative to the current one or by an absolute path at runtime
- Small indicator for links on special pages to show which ones will open an external web page
- Example config for qutebrowser
- Actions and context menu options for controlling audio and video playback, such as toggling controls/loop/mute
- Vertical tabs theme now displays multiple pinned tabs horizontally with wrapping
- Redirects are now saved to correctly set the favicon and title in those cases
- Call command now accepts any valid mapstring instead of only simple actions
- Help command now accepts different types of punctuation and casing to find the right section (which is now escaped as well)
- Action names are now case-insensitive and optionally without the "action." prefix, or with the shorter "a." or "p."
- All action names get sanitized to the shortest name possible with the new system, old names are still completely supported just not shown
- Blobs are now recognized as valid urls, just like other common URI schemes
- Default styling of notifications and the new mapsuggest across all themes
- Mappings with multiple keys that get aborted by starting another mapping will now both get executed similar to Vim
- Notification popup text can now be selected and will show all lines completely (last one was sometimes hidden)
- More broad selectors for finding pagination on the page to make page number actions work for more sites
- Help command now accepts any mapped sequence of keys and will open the first action or command those keys are mapped to
- Split commands not switching to the tab directly, which meant that mappings with splits didn't work properly
- Recursive mappings with multiple keys for a single action not being interpreted correctly in all cases
- Context menu actions for navigation history and refresh always being listed even if not available
- Empty new tabs always having a single history entry for the same empty page
- Pointer modes being exited when opening the context menu
- Screensharing throwing a Promise error in 5.0.0
- Media keys being off by default in 5.0.0 (they should be on by default, just as documented)
- Twitter not loading due to media keys overwriting Chromium arguments to fix COOP issue in 5.0.0
- Suggestions for write command not working recently
- Mouse clicks and context menu sometimes throwing errors due to missing DOM api for detecting matching selector on some elements
- Background image urls not always being correctly detected if there are also other types of backgrounds present such as gradients
- Commands with dashes breaking the check for valid keys and therefor not being recognized
- Help command showing suggestions for custom commands (which don't have help)
- Custom commands not having suggestions for existing commands (command and delcommand)
- Encoding issues when navigating to urls with asian characters in them
- Electron 13.1.1 (was 13.0.1)
- Chromium 91.0.4472.77 (was 91.0.4472.69)
5.0.0 - 2021-05-26
- Setting "suggestorder" that merges all explore mode related settings into one, with additional functionality
- The "suggestorder" is a list-like setting that accepts different suggestion types, with optional count and sort order arguments
- Suggestions for searchwords using the new "suggestorder" setting by default
- Default mapping for quitting Vieb with
<A-F4>
which doubles as the mapping that gets executed for other close requests - Copy link option for audio, video and images in the context menu
- Copy image option for images, background images and SVG elements in the context menu (they are categorized as images in that order)
- Pointer action "swapPosition" to switch the current pointer location with the start location of the visual selection
- Command syntax to cycle fixed-set strings using the "!" suffix, similar to boolean type settings
- Startup arguments "--config-order" and "--config-file" to better control which config files get loaded
- Command mapping list to the header of commands on the help page
- Setting "menupage" to control when the context menu of the webpage should appear, possibly over the website's menu
- Setting "menuvieb" to control when the context menu should appear for the Vieb elements like the navbar and the tabbar
- Pointer mode actions for most context menu options, such as "pointer.downloadAudio", "pointer.newtabVideo" and "pointer.copyImageBuffer"
- Setting "commandhist" to control which commands should be stored in the history
- Setting "explorehist" to control which navigations should be stored in the history
- Prefix "!" to command mode that will run system commands directly
- Unsupported startup arguments are now ignored with a warning instead of preventing startup (they could be chromium args)
- More names than before are allowed for containers, as it works with a small blocklist instead of an allowlist for characters
- More names for seachwords are now allowed as part of the keyword, for similar reasons as above
- Container names in Erwic configs will no longer replace special characters, but will report and exit
- Word separator keybindings in the navbar will now detect separators for non-latin scriptures using a list of allowed separators
- Default value of "permissionmediadevices" and "permissionnotifications" from "ask" to "block" to reduce the amount of popups
- Startup arguments now accept values separated by
=
instead of spaces or no value at all - Renamed "rotateSplitWindow" to "rotateSplitWindowForward" to be more consistent with the recently introduced "Backward" variant
- Calling action "menuOpen" from navbar input modes now opens the context menu of the navbar
- Don't load regular tabs on startup, but suspend them (they are not loaded until you switch to them)
- Common URI schemes and IPv6 addresses are now recognized as links by explore mode and when navigating
- Remove side effects of lock keys by mapping them to Nop by default
- Reworked eslint config to be more strict and more accurately represent the desired code style
- Default config parse order is now "user-first", use "--config-order=datafolder-first" to revert to the old behavior
- Startup argument urls are now resolved as files if possible, both absolute and relative paths are supported (relative to CWD)
- Download image action of pointer mode now uses the same logic as the context menu
- Long urls in popups are now not only wrapped at 50 characters, but also maxed at a 1000, after that the rest is hidden
- Setting "nativenotification" to a "Fixed-set string" to allow using native notifications for small messages and show popups for long ones
- Preload scripts for Erwic can still be loaded by tabs even if the file doesn't exist on startup
- Setting "storenewvisits" is now a list of types that should be stored, instead of a toggle for all forms of history
- Permissions for "mediadevices" and "notifications" are now blocked by default instead of asking each time
- Setting "suggestfiles" in favor of the new "suggestorder" setting
- Setting "suggestfilesfirst" in favor of the new "suggestorder" setting
- Setting "suggestexplore" in favor of the new "suggestorder" setting
- Setting "respectsitecontextmenu" in favor of the new "menupage" setting
- Action "closeTab" in favor of the ":close" command
- Broken FreeBSD build target, it's not supported by Electron or Electron Builder
- Tempfile for the vimcommand not working on mac due to spaces in filename
- Spellcheck languages not working correctly when using multiple containers
- Navbar input position not following the caret when text is longer than the input box
- Maximizing the window with double-click that could also incorrectly switch to a tab that happens to be at the second click location
- Middle mouse having side effects in the tab bar on Windows
- Quotes in settings messing with the :mkv command output
- Left-click in pointer mode not clicking on the right location when the page is zoomed
- Container color not always being updated if a color rule is removed from the list
- Search mode not clearing the url correctly if opened from the mouse dropdown selector
- Electron 13.0.1 (was 12.0.5)
- Chromium 91.0.4472.69 (was 89.0.4389.128)
4.5.1 - 2021-04-28
- Rimraf errors sometimes being shown on Windows when quitting
- Electron 12.0.5 (unchanged)
- Chromium 89.0.4389.128 (unchanged)
4.5.0 - 2021-04-28
- Setting "quitonlasttabclose" to quit Vieb when closing the last tab instead of opening an empty tab
- Vimium-inspired and Tridactyl-inspired example viebrc configs to the help page
- Video and audio context menu actions
- Suggestions for typos in the context menu under the new group "Suggestions"
- Action "menuOpen" to open the menu for the currently active insert mode element (or simply at the pointer location)
- Code is now checked by eslint for compatibility with the latest Chromium
- Renderer process now uses modules instead of globals, similar to other code
- Adblocker now updates by making regular web requests from the main partition instead of using the Node request module
- Icon is now optional when manually installing extracted extensions
- Suggestions will now also appear when commands or urls are typed out using mappings (after mapping is done)
- Insert mode with multiple keys are now correctly blocked from their native function, and are repeated properly if the mapping isn't finished
- Native navbar actions (such as "End") are now implemented by Vieb itself so they can be referenced by recursive mappings
- Renderer process no longer uses external modules, rimraf communicates with main, hazardous has been rewritten inside Vieb
- Context menu is now grouped by category to make different types of actions more clear
- Windows not always focusing correctly when closing popups or starting Vieb (mostly a Windows-only bug)
- Built-in special pages not always having the correct title and icon when they are suspended
- Adblocker updating twice at the startup when it's set to "update"
- Action "clickOnSearch" not working when zooming the page
- Mappings containing numbers not being able to override the repeat counter
- Lock key mappings not working when blocked individually instead of being part of a mapping
- File suggestions not working for partial matches for the last two releases
- Extension remove command suggesting the full path instead of the id on Windows
- File explorer not working on Windows
- Clearonquit-type settings not working for all releases due to very persistent electron-builder bugs that exclude "unused" dependencies
- Electron 12.0.5 (was 12.0.4)
- Chromium 89.0.4389.128 (was 89.0.4389.114)
4.4.0 - 2021-04-14
- Command "only" to hide all splits and only show the current tab fullsize
- Action "toFirstSplitWindow" to switch focus to the first (top-left) window split
- Action "toLastSplitWindow" to switch focus to the last (bottom-right) window split
- Action "toNextSplitWindow" to switch focus to the next window split by appearance order (top to bottom, left to right)
- Action "toPreviousSplitWindow" to switch focus to the previous window split by appearance order (top to bottom, left to right)
- Action "exchangeSplitWindow" to exchange the current window split with the one next to it in the current position
- Action "rotateSplitWindowBackward" to rotate window splits counter-clockwise (as opposed to clockwise with the existing rotate action)
- Action "toLastUsedTab" to switch between the two last used tabs or window splits (uses timeoutlen for determining used tabs)
- Default mappings for all the new actions and also the quit command: ZZ
- Check for favicon file existence before setting it as the tab icon
- Also check for matching urls in follow mode links before deciding to keep showing the same one
- Settings "splitbelow" and "splitright" being swapped in functionality
- Extract process of installing extensions not working in last release due to rework and electron-builder bugs
- History info being transferred to the current tab instead of the tab that actually requested it
- Action "editWithVim" not working in last release due rework and missing filename argument
- Electron 12.0.4 (was 12.0.2)
- Chromium 89.0.4389.114 (was 89.0.4389.90)
4.3.0 - 2021-04-05
- Command "lclose" to close all tabs to the left of the current one (respects closablepinnedtabs)
- Command "rclose" to close all tabs to the right of the current one (respects closablepinnedtabs)
- Overall structure and module loading of Vieb
- Follow mode now only uses the input focus when switching to insert mode
- Download confirmation now nicely formats the file size
- Potential error when selecting text or executing related actions and hovering over pseudo-elements
- Switching to other tabs while viewing a fullscreen video making Vieb unresponsive to any bindings
- Incorrect fullscreen styling in the default theme when using window splits
- Electron 12.0.2 (unchanged)
- Chromium 89.0.4389.90 (unchanged)
4.2.1 - 2021-03-28
- Build issues due to electron-builder require statement constraints
- Electron 12.0.2 (unchanged)
- Chromium 89.0.4389.90 (unchanged)
4.2.0 - 2021-03-27
- Startup argument "--disable-media-keys" to disable Vieb from capturing media keys for player controls
- Environment variables for the datafolder and Erwic configuration (can be overridden with CLI arguments)
- Notifications for the final step of loading an extension (either success or failed due to Electron incompatibility)
- Context menu actions, map commands and default mappings (mmap etc.) to navigate and select menu items
- Test coverage report is now generated while testing which is useful to make sure you test all scenarios
- Follow and pointer mode logic for switching to insert mode, should make input focus more reliable
- Delcommand now shows suggestions for user commands that are added
- Select all option of the contextmenu is now listed for shadow roots and iframes
- Action "editWithVim" now works for input elements within shadow roots and iframes
- Map command listing now groups mappings that are the same for all modes into a single :map command
- Search is no longer cleared when navigating to a new page
- Require modules and specific functions only when needed (should be faster)
- Extension zip and folder are now deleted when the installation fails, so it can be retried
- Follow mode now remembers link positions even when returning to other modes, thus keys are more consistently assigned
- Examples not loading on the help page for released builds
- Side effects for Tab key in normal mode by setting it to Nop by default
- Extension path removal bugs on Windows due to backslashes
- Second instances not ignoring datafolder argument when started in certain ways on Windows
- Clipboard actions in contextmenu and visual mode now work in shadow roots and iframes
- Download image pointer action now works in shadow roots and iframes
- Action "clickOnSearch" not working if the page was scrolled
- Follow mode and related actions not working on chrome:// pages due to querySelectorAll oddities
- Follow mode not focusing input field correctly when holding Shift on keydown
- Electron 12.0.2 (was 12.0.0)
- Chromium 89.0.4389.90 (was 89.0.4389.69)
4.1.0 - 2021-03-04
- Zip target for 64 bit Windows releases
- Startup argument "--window-frame" to show the system's native window frame border around the Vieb window
- Allow suitable startup arguments to be set by ENV variables as well
- Spelllang not recognizing languages that should be supported when loading the option on startup from a viebrc
- Custom message with external request details not appearing for openexternal permission
- Zoom level interfering with the right-click menu location
- Insert mode not always activating when clicking on input elements (select elements or clicking on sub-elements of an input)
- Electron 12.0.0 (unchanged)
- Chromium 89.0.4389.69 (unchanged)
4.0.0 - 2021-03-02
- Command "mute" to toggle the audio playback status of a tab (either mute or unmute)
- Setting "respectsitecontextmenu" to toggle if Vieb should show its menu on websites that already provide one
- Setting "suspendonrestore" to restore tabs lazily (loading tabs only once they're visible)
- Setting "suspendtimeout" to automatically suspend background tabs after a delay
- Command "suspend" to manually suspend any background tab right now
- Setting "permissiondisplaycapture" to block or ask screensharing permission (you can select the source with follow mode or the mouse)
- Setting "permissionsasked" to ask for permissions on specific sites, it overwrites permissionsblocked and permissionsallowed configs
- Follow mode support for shadow roots using similar implementation as iframes
- Nop action that does nothing, can be used to prevent side effects for keys in insert mode (site won't register them, similar to mappings)
- Support for modifiers in recursive insert mode mappings
- Support for lock keys in mappings, such as CapsLock
- Setting "externalcommand" to configure the external command that will be used to open links externally
- Action "openLinkExternal" to open the highlighted url or current page url with an "externalcommand"
- Setting "tabclosefocusright" to decide if the right (or left) tab should get focused when closing a tab
- Setting "tabreopenposition" which configures the position that should be used to restore tabs: previous, left or right (default)
- Setting "follownewtabswitch" to toggle if follow mode for new tabs should switch to them on follow mode exit
- Command "makedefault" to make Vieb the default browser (or at least try to)
- Open-url handler to open a new tab for urls that are passed to Vieb via mac's alternative app argument system
- Startup option to enable strict site isolation, to make Google services more reliable, at the cost of blocking follow mode inside iframes
- Experimental command to install extensions: "extensions install" which you call when currently on an extension page
- List or remove installed extensions with "extensions list" and "extensions remove", or using the special page of the same name
- Iframe detection on pages now also works for frames in framesets, embeds and for object tags
- Enable "respectsitecontextmenu" by default to be able to use the right-click menus of websites without Vieb interfering
- Mapped keys in insert mode won't be detected by the website, this prevents all side effects for mappings, including those for split devtools
- Default settings: Mouse is now on, new tabs with the mouse now switch to it, infinite maximum number of command suggestions and ignorecase is now on
- Most number ranges now go much higher (close to
MAX_INT
) and are only disabled if set to 0 - Restore the previous search selected when entering search mode (no history, just the previous one)
- Allow multiple languages to be passed to the "spelllang" option (and the "system" value is now handled better)
- The "spell" setting will now immediately take effect, also for existing tabs
- Privacy fixes for navigator properties and media info now run in iframes on a timer, can't be waterproofed without this
- Migrations for old tab structure used in 2.x.x and older
- Fallback to name field for Erwic config files
- Support for search setting values that don't include a "%s" to be replaced by the search
- Action "openNewTabAtAlternativePosition", which is now implemented with a mapping that toggles the setting
- Darkreader plugin in favor of installing the darkreader extension from the Mozilla or Chrome store
- Potentially incorrect execution for following links with a custom datamethod attribute (such as put or post)
- Follow mode not loading on some pages due to querySelectorAll sometimes returning undefined instead of an empty NodeList
- Potential parse errors for invalid urls being stored or opened by pages
- Mouse action listeners potentially being wiped within iframes if re-added to the DOM
- Action "insertAtFirstInput" now works for subframes and for labels that link to hidden fields
- Right click menu potentially appearing when using follow mode on Windows
- Electron 12.0.0 (was 11.2.1)
- Chromium 89.0.4389.69 (was 87.0.4280.141)
3.4.0 - 2021-01-31
- Action "action.reorderFollowLinks" to change which type of follow links appear on top
- Basic detection for pseudo-elements in follow mode, such as switches using ::before as the only visible section
- Right-click menu to websites (when in insert mode or when mouse is enabled)
- Right-click menu for Vieb interface (when mouse is enabled)
- Follow mode support for iframes
- ARM64 build for macOS
- Reduce timer for follow mode, due to the many speed improvements and simplifications
- Labels will now correctly match the type of element they refer to (instead of always assuming the clickable type)
- Default order of elements in follow mode to align with functionality as it was before 3.3.0 (can still be shown with "action.reorderFollowLinks")
- Only display a single line of the url if it's really long (overflow is suggested with ellipsis)
- Pin command can now take an argument to search for a tab by name or index, similar to buffer commands
- Mouse events not getting registered properly when clicking inside iframes
- Potential error on websites when trying to access the return value of the window.open function
- Electron 11.2.1 (was 11.1.1)
- Chromium 87.0.4280.141 (was 87.0.4280.88)
3.3.0 - 2021-01-18
- Action "action.pageToClipboard" for copying the current page url to the clipboard
- Action "action.openFromClipboard" to open pages from the clipboard (optionally in a new tab by calling that action first)
- Action "action.exploreHistoryNext" and "action.exploreHistoryPrevious" for finding previous site navigations in explore mode
- Startup argument to optionally turn off hardware acceleration (by default still turned on)
- Better scrollbar color and sizing: it's now fullwidth and transparent to make search results visible below it
- Actions now contain more checks to prevent locks when Vieb has yet to load the first tab
- The builds of the Mac app are now part of an application category
- Website calls to window.prompt are now instantly returned with the cancel action instead of throwing an error
- Expand the list of supported filetypes and protocols for generated builds
- Colorschemes not being saved with the mkviebrc command
- Anchor tags potentially overriding the user's choice of opening links in the current tab by implementing a custom onclick that prevents the default
- Vertical colorscheme not displaying the pointer at the right location
- Explore mode not clearing the existing selection when opened as part of a mapstring (homepage command didn't work as described)
- Help page not resolving references to pointer chapter correctly
- Permissionsallowed setting not working for correctly for mediadevices if permissionsblocked was unset
- Electron 11.1.1 (unchanged)
- Chromium 87.0.4280.88 (unchanged)
3.2.0 - 2021-01-01
- Searchwords setting to configure custom words that you can use as a prefix in explore mode to search websites directly
- New theme/colorscheme for having vertical tabs on the left of the screen instead of the regular tabbar
- Keep a reference to the input field when using the external editor, will keep working when unfocused and with multiple editors
- Middle mouse pasting not working even when mouse is enabled
- Some sites not loading due to Electron bug related to COOP electron/#25469
- Searching for buffers with matching index not being suggested in the list
- Potential startup issues with some custom settings in the viebrc (including containercolors)
- Electron 11.1.1 (was 11.0.3)
- Chromium 87.0.4280.88 (was 87.0.4280.67)
3.1.0 - 2020-12-06
- Clickable file location on the downloads special page which will open the file in the default application
- Clickable download finish notification that will open the file in the default application (if using the mouse)
- Additional Vieb config location for colorschemes, viebrc and blocklists inside "~/.vieb"
- New permission groups for midi, persistentstorage and clipboardread (all 3 remain by default blocked, but are no longer grouped as unknown)
- Internaldevtools command that opens developer tools for the main Vieb window
- Follow mode will now detect form labels that have invisible embedded inputs but no "for" attribute
- Follow mode now detects absolutely positioned sub-elements of links, where the base link isn't shown
- Multiple speed improvements to follow mode
- More explicit permission messages that list both the permission name and the setting that was read to decide the permission
- Internal devtools now opened undocked by default (both with --debug and :internaldevtools)
- The frame and menu are no longer shown for instances started with --debug (internal devtools and always shown window remain)
- Tab restore not working correctly when disabled, due to duplicate entries being stored when closed
- Line height issue that prevented underscores from showing correctly in some cases
- Random switching between tabs if they execute click or focus events
- Electron 11.0.3 (was 11.0.2)
- Chromium 87.0.4280.67 (unchanged)
3.0.0 - 2020-11-21
- Local file suggestions to explore mode and to relevant commands
- Red border in command mode when the entered command is invalid (for example due to unmatched quotes)
- Setting 'suggestfiles' setting to control when/if file suggestions should appear ('all' by default)
- Setting "suggestfilesfirst" to control if file suggestions should appear before/after history in explore mode
- Setting "closablepinnedtabs" which is disabled by default (meaning pinned tabs can't be closed)
- Setting "containernewtab" to control which container all new tabs should use (default is still "main")
- Setting "containersplitpage" to control which container all split pages should use (default is "s:usecurrent")
- Setting "containerstartuppage" to control which container the startup pages should use (CLI arguments, default is still "main")
- Setting "containercolors" to show container tabs in a custom color based on the container name
- Setting "containershowname" to optionally show the name of the container between the mode and url in the navbar
- Setting "containerkeeponreopen" to toggle the remembering the container name and to use the "containernewtab" setting instead
- Setting "permissionclosepage" to control if pages are allowed to close themselves (previously they couldn't, new default is allowed)
- Setting "incsearch" to enable incremental search (enabled by default)
- Restart command to restart Vieb
- Close command that works similar to the hide command, but instead will close any tab by index (or matching title/url)
- Special container names to open tabs externally, in tabs with a matching domain, or use the same container as the current tab
- Support for SVG favicons by giving it an explicit ".svg" extension if detected by "is-svg"
- Devtools that can be opened as a split window or in a separate tab, in addition to the existing windowed developer tools
- Added "pointer.downloadLink" action that downloads the hovered link in pointer mode
- Colorschemes that can change every single line of CSS inside Vieb: all built-in pages and the app now use the same default theme CSS
- Built-in light colorscheme that displays all built-in pages and the app in a light theme
- Built-in flipped colorscheme that displays all GUI elements at the bottom of the window (in reverse order)
- Suggestions are now scrollable when they don't fit the window
- The setting 'suggesthistory' has been renamed 'suggestexplore' as it might also include file suggestions now
- Command suggestions are now by default set to 1000, as the operation is simple and suggestions are scrollable
- Increased the upper limit for the number of suggestions (for both command and explore mode)
- Pinned tabs can no longer be closed, unless the 'closablepinnedtabs' setting is enabled
- Search setting parsing, you can now include %s as a substitute for the entered search
- Default duckduckgo search engine options now include a persistent header and infinite scrolling
- Tabs are now always modifiable in Erwic mode, because containers can now be managed at runtime
- Multiple tabs of the same special page can now be opened using the commands, as some of them are container specific
- The startup argument "--portable" has been replaced with "--datafolder", use "--datafolder ./ViebData" for old functionality
- Erwic now uses the "datafolder" startup argument instead of a JSON field for the datafolder location configuration
- Tab list can now be scrolled horizontally using the mouse wheel
- Make use of system fonts as much as possible: "DejaVu Sans Mono" -> "Courier" -> "monospace", in that order
- Visual appearance of Vieb: logo is now smaller, everything is now styled with colorschemes and popups are more in line with other elements
- Old tabs file format (3.x.x releases will migrate to the new format, 2.x.x releases will not read the 3.x.x format)
- Conversion from old format will be removed in future Vieb 4.x.x releases
- Supplying a "name" to an Erwic app, use a "container" field instead
- Old line-based history format parser (1.x.x users should update to 2.x.x first, if they want to keep their history)
- Startup argument "--console" is removed in favor of "--debug", debug can do the same plus more and doesn't have mouse focus issues
- Typo in the "storenewvisits" setting (there will be no automatic migration from the name with a typo to the correct one)
- Pointer not updating the location when bringing back the GUI while in fullscreen
- Permission for media devices sometimes being detected as a microphone permission
- Mouse back/forward buttons being ignored when the mouse setting is enabled
- Shift being ignored when pressing named keys that can be pressed with and without Shift such as "Space"
- Border of split pages moving the page slightly when switching (border is now always there but in gray)
- Updating the adblocker files when Vieb is installed on a read-only file system
- Favicons being accepted even though the HTTP status code was an error (such as 404)
- Abort error for aborting page loads in the debug console (using --debug)
- Don't keep closed pages in memory while the 'keeprecentlyclosed' setting is off
- Electron 11.0.2 (was 10.1.1)
- Chromium 87.0.4280.67 (was 85.0.4183.93)
2.4.0 - 2020-09-05
- Erwic option at startup to open a fixed set of tabs in a separate instance (docs are in Erwic.md)
- WebGL2RenderingContext calls to get parameters not being invoked in the right context
- App path (usually the asar file) being opened as a file on startup for some custom builds (including Arch)
- New tab page is no longer the first entry in the history of tabs that are opened with a url
- Reopening tabs in bulk (usually at startup) running out of index in rare occasions
- Electron 10.1.1 (was 9.2.0)
- Chromium 85.0.4183.93 (was 83.0.4103.122)
2.3.0 - 2020-08-08
- Firefox mode to replicate the Firefox useragent and navigator properties
- List-like settings for allowing or blocking permissions based on the website (using regex)
- Setting to optionally notify when websites request a permission, including the reason for allowing/blocking
- Filter on the history page to find or remove sites from the history based on title or url
- Redirects are now applied before making a request, making them safer and more reliable
- Don't expose the supported mimeTypes through the navigator
- Better protection for hiding the GPU model
- Window snapping on Windows
- Lack of typing ability for some text inputs after selecting them with follow mode
- Spaces not working as expected in mappings
- Electron 9.2.0 (was 9.0.5)
- Chromium 83.0.4103.122 (was 83.0.4103.119)
2.2.3 - 2020-07-05
- Refactor countable actions to be more consistent and reliable
- Order of page increase and decrease actions, it's now always: inpage relations > port > url page number > first number in the url
- Default download path not saving files to the home directory ("~" was not correctly expanded)
- Catch errors from the adblocker to prevent occasional error popups from cosmetic filtering
- Count not working for the increase and decrease page number actions (such as ports or page numbers)
- Electron 9.0.5 (was 9.0.4)
- Chromium 83.0.4103.119 (was 83.0.4103.104)
2.2.2 - 2020-06-21
- Improve the follow mode speed by reusing DOM calls and only using an interval (no more page observers)
- Disable the remote module entirely
- Load the preload from the main process and prevent changes to its location
- Width of the pinned tabs when playing media
- Regular tabs not always opening to the right of all the pinned tabs
- Potential filename length issue for favicon storage
- Electron 9.0.4 (was 9.0.3)
- Chromium 83.0.4103.104 (was 83.0.4103.100)
2.2.1 - 2020-06-11
- Data urls not being displayed on the new tab page
- Electron 9.0.3 (unchanged)
- Chromium 83.0.4103.100 (unchanged)
2.2.0 - 2020-06-10
- Darkreader setting to apply a dark theme to all websites visited (off by default)
- Pacman archive as a new included build target (for Arch Linux)
- Arm64 architecture builds for most Linux and Windows releases
- Windowtitle setting to optionally include the page title and/or url in Vieb's window title
- Recursive insert mode mappings are now possible
- Tabcycle toggle to jump from the first or last tab with next and previous tab actions (on by default)
- Pin command to toggle pinned tabs, which are exactly the width of the favicon and are always restored on restart
- GUI settings to autohide the navbar and/or tabbar depending on events or always
- User action for toggling fullscreen mode (different from webpage requested fullscreen)
- Downloadmethod setting to change the download behavior
- Mouse specific setting to switch to newly opened tabs automatically (by default turned off, previously it would switch every time)
- Allow the entire window to be used as a drag region if the mouse setting is off and you are not in insert mode
- Minimum tabwidth to 28, due to styling changes in the navigation bar (default behavior is still just the icon)
- Remove the usage of the remote module entirely
- Strict CSP to all of Vieb's pages, which prevents all scripts from running outside of the webviews and preloads
- Insert mode mappings not triggering built-in actions, such as Home or PageUp
- Not all named keys being correctly detected and converted to the right casing
- Digits to repeat actions not being applied when part of a mapping before a built-in action
- Animated SVG images sometimes breaking follow mode (due to href being an object instead of a string)
- Electron 9.0.3 (was 9.0.0)
- Chromium 83.0.4103.100 (was 83.0.4103.64)
2.1.0 - 2020-05-19
- Conversion from and to percent-encoding for urls in the navbar, the url hover and in special pages
- Setting named requesttimeout, to stop a page from loading after a timeout (default is 20 seconds)
- Search string now excludes special characters, instead of only keeping the word characters (this affects non-latin writing scripts)
- Urls not being wrapped in the media device permission request dialog
- Electron 9.0.0 (was 9.0.0-beta.15)
- Chromium 83.0.4103.64 (was 83.0.4102.3)
2.0.0 - 2020-04-13
- Mouse setting to enable mouse support outside of insert mode
- When the mouse is enabled, switch tabs, modes or focus by clicking on it
- New location from where the viebrc file will be read: ~/.viebrc (aside from the viebrc in Vieb's data folder)
- Dark theme and security settings for the website developer tools (:devtools)
- Window splitting using Vexplore, vsplit, Sexplore and split to display multiple sites at the same time
- Use <C-w> sub-bindings to move, relocate or rotate the window splits
- Map command for configuring keyboard mappings (including recursion, nmap, imap, mapclear, etc.)
- Noremap command for non-recursive keyboard mappings (refer to Vieb actions using <action.reload>)
- Tab status indicators, orange for current tab (in multiple layout) and blue for playing media
- Elements with mouse hover actions are now available in follow mode (displayed in gray)
- Popup message for long notifications, with Vim bindings to scroll and close
- Notification special page to view a list of previous notifications of the current session
- New help documentation with descriptions for all commands, settings and actions
- Basic check and compare for prerelease part of semantic versions
- Tests for the version compare function
- Favorite pages setting for manually providing a list of pages that should always appear on the new tab page
- Spellcheck integration (on by default), use spell and spelllang to configure
- New permission for mediaDevices, new default is to ask the user instead of allowing all
- Rename all settings to be lowercase and without dots, similar to Vim
- Set command syntax is now much more similar to Vim with support for all of Vim's set operators
- Booleans can now be set and unset using "ignorecase" or "noignorecase"
- Allow all settings to be changed at runtime, as they can be saved for the next startup with :mkv
- List-like settings are now much more similar to Vim, as they are a comma separated string, with += and -= support
- Viebrc is now named 'viebrc' instead of 'viebrc.json' and is configured by Vieb/Vim commands instead of JSON
- All suggestion settings are now of the number type instead of boolean, and specify the number of entries to suggest (0 to disable)
- Rename the modes: nav to explore and cursor to pointer, to allow for single key identifiers of the modes
- Improvements to mode switching by centralizing mode switching code in the modes file
- Click on multiple elements without having to manually re-enter follow mode by holding Shift
- History storage format is now JSON, for easier parsing and better title storing
- Entries on the history page can now be removed without reloading all history again
- Buffer command can now be used to navigate to new locations (this is also true for the new split and Explore commands)
- Allow <A-F4> and <M-Q> to be mapped as if they are regular keys (most likely to the quit command)
- Reload command no longer resets all settings before running the commands from the viebrc files
- Browsing data of popup windows are now stored in a separate memory-only partitions
- Hide hardware related info, such as GPU model and battery data
- Strip Vieb and Electron from the useragent when downloading favicons
- Old history storage format (TSV has been replaced with JSON), filename remains "hist"
- Conversion from old to new history format, will be removed in 3.0.0
- Support for parsing the "viebrc.json" file, settings are now configured with Vieb commands in "viebrc" or "~/.viebrc"
- Broken page loads for sites using custom EventTargets instead of only DOM Nodes
- Text input actions, such as select all, not working on Mac
- Undo and Redo not being enabled on any system for the navigation bar
- Electron 9.0.0-beta.15 (was 8.0.1)
- Chromium 83.0.4102.3 (was 80.0.3987.86)
1.1.0 - 2020-02-15
- Tests for isUrl function
- Update to the http basic login system to work with the new Electron version
- Open the login dialog in the center of the Vieb browser window
- Running the last command again no longer adds a duplicate to the command history
- Improved url detection as a result of testing the function properly
- The optional 'full' argument of the write command, the full page is now always saved
- Popup dialog for failed favicon downloads (now ignored)
- Empty title in history overriding the older proper title
- Print command only working once without reloading
- Commands not supporting escaping of spaces using quotes
- Electron 8.0.1 (was 6.1.5)
- Chromium 80.0.3987.86 (was 76.0.3809.146)
1.0.0 - 2019-11-30
- Unreachable pages now show an error page with instructions
- Blocked HTTP redirects now show an error page with instructions
- New tab page with top visited sites listed (newtab.showTopSites)
- Setting to disable the added new tab page
- Setting to automatically enter nav mode in new tabs (or not)
- Container tabs, which don't share any data with other tabs (such as cookies or cache)
- Tab titles are now yellow when they are container tabs
- Tabs are now bright red when they have crashed
- Keys can now be mapped to any supported command, such as "F1": ":help" (previously "F1": "COMMAND.help")
- Hardcopy (or print) command to print the current page with a printer
- Configure custom redirects in the settings with regex patterns
- History of previously executed commands during the current session
- Minimal width setting for tabs which by default is set to 22 (just the icon)
- Write command to save the current page as HTML, optionally including resources (full) or to a custom location
- Mkviebrc command to save the current settings to the viebrc.json, optionally including the defaults
- Local file browser for directories with improved file navigation
- Favicon setting to disable favicons or configure the cache duration for favicons (cache per session by default)
- Favicons are now present on the new tab and history pages
- Open pages in a new tab without directly switching to them (while holding Shift in newtab follow mode)
- Buffer command to easily switch between all the open tabs (with autocompletion)
- Roboto Mono font for all UI elements (with fallback to system monospace)
- Horizontal scroll actions for cursor and visual mode (with added default bindings for it)
- Shortcut to stop the page from loading (by default mapped to Ctrl-C from normal mode)
- Number increment keys to modify page or port numbers using Ctrl-X and Ctrl-A
- Vim form edit mode to edit form fields using vim or any other editor (gvim by default for cross-system compatibility)
- Portable run option to startup arguments (--portable) to store all Vieb data inside a local ViebData folder
- Overflow setting for the tabs, which can be used to wrap, scroll or hide them when they overflow
- Moved the setting for new tab position to the newtab collection (newtab.nextToCurrentOne)
- Reduce duplicate code to execute commands by grouping them in an object
- Commands can now be entered partially to execute them (if only 1 command matches)
- The setting "clearCacheOnQuit" is now "cache": "clearonquit" (default)
- Cache setting is now simply named cache and has an additional "none" setting to disable cache completely
- Permissions now show the page url in the ask dialog
- The openExternal permission is now by default on ask, which shows the external url that will be opened
- Rework the follow mode invocation to simplify the keybindings and fix some specific mode switches
- Follow mode is now always allowed (no more setting), and will update the visible links by listening to mutations
- Show plain text pages with a dark background and white text
- Also respect font sizes for special pages such as help, version or history
- Rewrite of settings chapter in the help page, including real-time preview of your settings
- Follow mode can now be combined with cursor and visual mode, to move the cursor to the element location
- Cursor now changes color gradually over time so it's more visible on conflicting background colors
- Digits repeating actions are now only applied when needed, and are executed in one go wherever possible
- Permission for openExternal is now set to "ask" by default instead of the setting "block"
- Download method setting: confirm and ask are gone, automatic (previous default) is now the only download mode
- The setting allowFollowModeDuringLoad is removed because the links are now auto-updating
- Sort all html input fields correctly by type in follow mode (input file, image and reset)
- Missing elements in follow mode using jsaction, ARIA roles or contenteditable
- History suggestions not sorting by visits correctly
- Downloads are much more consistent and less prone to race conditions
- Removing active downloads no longer mismatches the info with the progress of another download
- Rounding issues with selecting or inspecting elements using the cursor mode
- Argument issue when running Vieb using npm start and opening links with it when Vieb was already open
- Check the html element styling when detecting an unset background color (not only the body)
- Keybindings bug for chained keys being overwritten when adding new ones to the same key
- Tabs not switching to the correct tab on startup
- Page scrolling not working when the page is still loading
- Incorrect page titles when navigating tab history
- Cursor mode not detecting background images to download (when pressing "d")
- Scrolling to previous input when re-entering insert mode (now using blur)
- Electron 6.1.5 (was 6.0.10)
- Chromium 76.0.3809.146 (unchanged)
0.7.0 - 2019-09-19
- Support for keys being pressed in order with different actions (such as 'gg' or the new 'gi')
- Shortcut to enter insert mode at the first text input using 'gi'
- New option to open tabs next to the current one (using t and u) (now the new default)
- Keybinding to open tabs at the inverted position to the setting configured (so at the end by default)
- Keybindings to move the current tab left or right in the tab navigation bar (ctrl-j or ctrl-k)
- Settings to configure permissions such as microphone or camera access, options are: block, allow or ask
- Boolean toggle for settings, for example:
set caseSensitiveSearch!
- Support for multiple set command arguments, such as:
set caseSensitiveSearch! notifications.system=true notifications?
- Set command suggestions are no longer hard-coded
- Set command write syntax is now similar to Vim:
set permissions.camera=ask
- The question mark for the set command read option is now optional:
set permissions?
now equalsset permissions
- User agent replacement to work for beta/dev versions
- Permissions changed to block access by default for most permissions
- Also make Control-BracketLeft reset the repeating digits counter to zero
- Electron 6.0.10 (was 6.0.6)
- Chromium 76.0.3809.146 (was 76.0.3809.138)
0.6.0 - 2019-08-30
- Block ads and trackers with easylist and easyprivacy (set "adblocker" to "static" or "update")
- Optionally auto-update these included filter lists directly from easylist.to (set "adblocker" to "update")
- Related settings for the new adblocker (aside from options mentioned, can also be turned "off" or set to "custom")
- Additional lists that can be added manually in the blocklists subfolder inside the config folder
- Projects that are important to Vieb are mentioned at the bottom of the help page
- Set command support for reading a setting, for example "set adblocker?"
- Tabs not requested to open in the foreground are now opened in a new tab
- Improved support for onclick and onmousedown elements in follow mode
- Increased the default notification duration from 5 to 6 seconds
- More vertical space between headers on the help page
- Location not displaying during load (and staying empty on failed page loads)
- Default settings sometimes displaying in black text on help page
- Buggy favicon on some sites after navigating on the same page
- Electron 6.0.6 (was 6.0.0-beta.15)
- Chromium 76.0.3809.138 (was 76.0.3809.74)
0.5.0 - 2019-07-29
- CHANGELOG file to keep a full list of changes
- Save and restore the window state by default
- Allow specific window properties to be kept or ignored (position, size, maximized state)
- Press "Shift with t" to open a new tab with the current url pre-filled in nav mode
- Simple setting to clear all cookies on quit
- Made version and help output from the CLI more consistent
- Argument --debug now also shows the Electron frame and toolbar (--console remains unchanged)
- Simplified the readme by moving more info to the help page
- Improved the styling and update check of the version page
- Made follow in new tab slightly faster
- Missing folders and files from cache clear and localstorage clear
- Actually apply the digitsRepeatActions settings on startup (set command already worked)
- Always hide the hover url when leaving insert or cursor mode
- Allow escape to reset the digit repeat counter (also don't trigger other actions when doing so)
- Follow mode not working on pages with text nodes (getClientRects is not a function on those)
- Electron 6.0.0-beta.15 (was 5.0.6)
- Chromium 76.0.3809.74 (was 73.0.3683.121)
0.4.0 - 2019-07-01
- Cursor mode to replicate mouse actions
- Mouse hover in cursor mode
- Inspect element in cursor mode
- Image download in cursor mode
- Left and right clicking in cursor mode
- Enter insert mode at the cursor position
- Many basic Vim movement options in cursor and visual mode
- Copy selected text in new visual mode
- Some additional movement options in normal mode
- Link preview in cursor and insert mode
- Enter in normal mode now clicks on the selected search result
- Digits can now be used to enter the number of times an action should be executed
- Support in follow mode for labels as long as they have the 'for' attribute
- Support for 'onmousedown' click handlers in follow mode
- Some better suggestions to the set command (such as 'downloads.')
- Cursor mode toggle example for Firefox, similar to Caret browsing
- Funding link to my personal ko-fi page: Jelmerro
- Follow mode now handles overlapping elements, greatly improving the suggestions
- History is now loaded on startup to work faster when suggesting in nav mode
- History will never re-read the file, because it's entirely processed in memory
- Limit the amount of history suggestions appearing to 20
- The history page will add all history DOM elements in bulk (much faster)
- Downloads are now handled in the main thread to improve consistency
- All checks with if statements now use includes wherever possible
- Follow mode does not leave the mouse hovering anymore, because now there is cursor mode to do so
- Split up the url regex into multiple parts to make it fast for long urls
- Make the history ordering a bit more simple and predictable
- Increased maximum fontSize from 20 to 30 pixels in height
- Limit the history of previously closed tabs to 100 (which should be plenty)
- Strip Vieb and Electron info more reliably from the useragent (should now be similar to Chrome)
- Disable the sharing of local WebRTC ip addresses, only public ip addresses are now shared
- Scrolling to the top or bottom of the page on some pages not working
- Losing focus when switching between certain modes
- Same for possibly losing focus when a website enters fullscreen
- Periodically toggle mouse focus to fully load websites that wait for the mouse to move
- Actually save the recently closed tabs when that setting is on, but tabs.restore is off
- Missing or blurry icons on Windows and some Linux installers
- Electron 5.0.6 (was 5.0.2)
- Chromium 73.0.3683.121 (unchanged)
0.3.0 - 2019-06-07
- Browsing history is now stored when visiting pages
- History can be viewed or be deleted by visiting the new history page
- Suggestions for browsing history when in nav mode
- Suggestions for commands when in command mode
- Restore tabs option when restarting Vieb
- Reopen previously closed tab action mapped to 'u' key by default
- Downloads can now be stored between sessions
- Many new settings for tabs, history and downloads (mostly related to history)
- Custom font size option to scale all elements of the Vieb user interface
- Clear cache on quit option (enabled by default)
- Clear localstorage on quit option (disabled by default)
- More allowed keys to the input field for all modes (such as 'ctrl shift arrows')
- Arrow keys for switching suggestions to the Firefox and Chromium examples
- Eslint configuration to more accurately represent the repository style guide
- Allow commands to start with a single ':', which will be ignored
- Allow multiple login popups, one for each opened tab
- Improve the url detection to more accurately follow the domain specification
- The zoom in and zoom out default keybindings in normal mode
- Startup arguments starting with a single dash being opened as a website
- Special pages not being detected on Windows
- Follow mode duplicate key options for a certain amount of links
- Electron 5.0.2 (was 5.0.1)
- Chromium 73.0.3683.121 (unchanged)
0.2.2 - 2019-05-09
- New alternative shortcuts to go move in history for the current tab
- Preloads on special pages not working on some released builds
- Fix for unsupported 'visibility: collapse' styling
- Electron 5.0.1 (was 5.0.0-beta.8)
- Chromium 73.0.3683.121 (was 73.0.3683.104)
0.2.1 - 2019-04-07
- Use path module instead of url modifications for all paths
- Show no output when a search result has zero matches
- Proper focus when entering search mode
- Electron 5.0.0-beta.8 (was 5.0.0-beta.7)
- Chromium 73.0.3683.104 (was 73.0.3683.94)
0.2.0 - 2019-03-29
- New download support (aside from a basic popup each time)
- Confirm and automatic download configurations
- Added a basic download history for the current session
- Moved the new download page and existing help and version pages to special pages (vieb://help for example)
- Support for fullscreen requests of pages (by hiding the navbar, entering insert mode and a new escape keybinding)
- Added example keybinding and setting configurations for Firefox and Chromium
- Moved most information regarding configuration from the readme to the help page
- Default duckduckgo search engine to use a dark theme
- Improved CLI startup arguments for packaged apps
- Split the preload into multiple separate preloads
- Improved electron-builder configuration (separate file with much better settings)
- Vieb is now a single window application (single-instance): when already open, new urls will be opened as tabs
- Disable follow mode for iframes again due to a couple of issues with it
- Electron 5.0.0-beta.7 (was 4.0.5)
- Chromium 73.0.3683.94 (was 69.0.3497.106)
0.1.0 - 2019-02-17
- Initial project structure and files
- Normal mode with a fair amount of options
- Added settings to Vieb using the viebrc.json file
- Follow mode to click on urls or buttons
- Search mode to find text in the page
- Insert mode to use the mouse in Vieb
- Command mode with implementations for: version, help, reload, devtools, set and quit
- Support for CLI startup arguments
- Notifications for failed commands or other errors
- Electron 4.0.5
- Chromium 69.0.3497.106