Skip to content

Releases: gdh1995/vimium-c

Add `Compatibility of Escape`

23 Dec 16:52
Compare
Choose a tag to compare
  • openUrl: now can run simple javascript: URLs whose code looks like JavaScript, even on web-extension pages
    • Warning: Vimium C DOES NOT check whether your code is safe or not
    • a 3rd-party extension may also inject VimiumInjector.eval to disable this or do whatever it likes
  • add a new option Compatibility of Escape to allow pages to hide their popup dialogs on Escape (philc/vimium#3917)
  • text substitution:
    • fix broken rules which have lower-case keys
    • add a built-in key of u to substitute URLs from pages
    • add an action of latinize (aka latin) (#495)
    • openUrl: now substitute words after filling masks
  • darkMode and reduceMotion: add a new state to be always enabled
  • scroller: fix support of child frames
  • focusInput/switchFocus: also modify a wholly-selected range when .select is not null
  • runKey: when mask, support $c to refer command count
    • for a single "key node", add a new prefix of $l to avoid waiting for a new tab loading
  • enterInsertMode, now support $then to run on exit (#493)
  • scroll*: add wait: number | boolean to specify a precise and fixed delay and override Keyboard settings (#518)
  • VisualMode: fix some bugs about its own key mappings
  • search engines: now ${s:...} will work just like $s{...}
  • LinkHints.activateCopyLinkText and copyWindowInfo: support ${field1 || field2}
  • map yv to LinkHints.activateModeToSelect by default
  • key mappings: remove support for $key and $desc

Rewrite logic about updating settings (experimental)

07 Nov 18:14
Compare
Choose a tag to compare
  • Firefox: fix the Options page would break in a tab container
  • fix some key handlers didn't support composed keys, like LinkHints autoUnhover=<esc> (325 (comment))
  • LinkHints: use then={...} to configure following Vomnibar / Visual Mode
  • Scroller: support scrollable=host-regexp##css-selectors;hostRe2##selectors2 to select default scrollable elements
  • .filter of tab commands: add limit=number|"count" and discarded=false
  • captureTab: add copy and download=false on Firefox
  • Custom CSS: add a new section named #find:selection to render selection areas (#481)
  • add vimium://urls/key1|key2:query words, to open multiple URLs in one command
    • for example, vimium://urls/g|bing:$S will open Bing and Google search results
  • dispatchEvent: now can dispatch to <body> if no element is focused (still call $else though)
  • fix some other bugs and issues

support shorter key mappings

28 Oct 08:57
Compare
Choose a tag to compare
  • runKey now support mask=true|""|<placeholder>
    • in run <v-lh> LinkHints.activate$s mask= \n run Fq lh WithQueue, Fq works like LinkHints.activateWithQueue
  • fix Vomnibar may fail to switch to another tab on Firefox
  • fix broken moveTabToNewWindow and moveTabToIncognito on Firefox (#461)
  • fix the extension icon was never updated to represent current working status (#468)
  • improve openBookmark: if .mask then fill .title with one unknown key
    • runKey now treats unknown options as command options (o. can be stripped)
    • in map <v-ob> openBookmark title="v:$s" mask \n run ot ob 1, ot works like openBookmark title=v:1
  • improve editText: its replace command supports placeholder and URL-encoding text
    • e.g.: editText run="replace,_$s%20%s_" will replace "abc" with "_abc abc_"
  • add more options to moveTabToNewWindow and moveTabToNextWindow (#458)
  • search engines: add some famous engines to the default list (#462)
  • text substitution: now allow numbers and underscore in keys
  • the settings template is update to demonstrate latest syntaxes in key mappings
  • fix some found bugs

inline options in runKey

12 Oct 03:07
Compare
Choose a tag to compare
  • better compatibility
    • keyboard: with some system-level shortcuts of composed keys
    • with some extensions with card-style UI
    • avoid reporting issues on latest Chromium browsers which recommends userAgentData
  • URL matching: support new URLPattern in W3C spec.
  • key mappings: runKey supports inline options which look like #a=b&c=d%20e (wiki added)
    • key mappings: add a new syntax of run key otherKeys as an alias of runKey key keys="otherKeys"
    • add openBookmark and vimium://run/<key-tree> to run long command sequences with complicated options
    • now support nested calls (but still refuse to call itself directly)
  • LinkHints/focusInput: always add elements matching .clickable even in other modes
  • LinkHints: improve autoUnhover (#325) and add a trick to copy image URLs (#399)
  • Vomnibar: support mapKey from keys to <v-*> (trigger commands) or <enter>
  • dispatchEvent: add a new mode: key=Key,keyCode[,Code=Key]
  • text substitution: remove old /[dDr]/ keywords in "flag" parts
  • improve .filter in tab-related commands
  • fix some other small bugs

runKey supports command trees

16 Aug 09:09
Compare
Choose a tag to compare
  • improved key mappings
  • Vomnibar: fix URLs with space characters would break
  • map: fix bugs of $then and $else, and apply them to much more commands
    • for example, enterFindMode supports $then="enterVisualMode", and scroll* runs $then when something is scrolled
    • most commands operating tabs support $then and $else
  • runKey command: change syntax of .keys, to support command trees
  • env: now host only considers about top frame URL; add iframe: boolean | string to match iframes
  • mapKey: support <...:n> and they will only take effect in normal mode
  • LinkHints: image mode: now can open simple SVG images
  • Firefox: some commands operating tabs will run faster when repeating count is 1
  • fix w and e in VisualMode on Chrome 90+ on Windows
  • fix passNextKey on macOS
  • fix a bug about filter in closeOtherTabs; joinTabs and sortTabs now supports filter
  • some other improvements and bug fixes
  • 1.92.1
    • keyMappings: not treat a line as an error if with $if={...}
      • add unmap! to unmap a key sequence when it exists - aka ignoring errros
    • word around some configurations of Dark Reader
    • fix settings has no backup in storage.local when syncing is disabled
  • 1.92.2
    • fix some new bugs
    • add a new command of dispatchEvent to simulate dispatching events (options are used to init events)
    • .filter option: support sub-arguments like url=... and host=...
    • LinkHints.*: .toggle option: accept [+-]?(\[attr~?=.*\]|\.?\S*) to modify attributes and classNames
  • 1.92.3
    • Chrome: fix Vimium C Options can not show if only setting syncing is enabled
  • 1.92.4
    • fix a crash during import settings
    • small improvements on runKey

Run a sequence of commands by $then and $else

25 May 16:39
Compare
Choose a tag to compare
  • key mappings: now a name of key can include _ ("underscore")
    • so a key can be named <v-hint_mode1> - much more readable
    • now all directives support $if
    • add $then:Key $else:Key for many commands, to run a sequence of commands
      • please search Req.FallbackOptions in source code to find which support them
    • runKey: add a simpler syntax: expect="envName1:keySeq1,env2:key2"
  • open URL: now most options can work together (orthorhombic)
    • change meaning of reuse=last-wnd-bg: create an active tab but not activate the last window
    • add replace:URLPattern to find (match) a tab by URL and replace it with a target URL
    • improve URL detection when open copied URL, and add copied=urls|any-urls to open a list of copied URLs
    • most commands to open URL now support options including keyword testUrl replace position sed window
    • createTab is now full featured and works just like an alias of openUrl (#344)
    • Vomnibar: decode file:/// URLs on Windows system
  • LinkHints: add lots of options to do whatever needed
    • improve in focus (#328), newtab (#340), downloading (#332) and video,audio (#323)
    • add .evenIf:enum typeFilter:enum textFilter:RegExp anyText:bool to allow/refuse elements
    • LinkHints.click: add an object option directOptions={} to iterate in matches (phlic#595)
  • text substitution: add some actions and allow non-EN context keys for users to customize rules
  • Vomnibar: now can remove session items on Firefox
  • goNext: fix logic of its match option
  • performFind: add query:string restart:bool to search given query directly
  • enterInsertMode: allow non-word character as key (#325)
  • UI: support forced-colors and use thicker borders on a high-DPI screen (scaling >= 200%)
  • injection: use [data-block-focus] to grab focus on other extensions' pages (#164)
  • optional permissions: add support for chrome://*/*
  • fix some bugs

Support optional permissions

05 Apr 17:10
Compare
Choose a tag to compare
  • add new options to request optional permissions like downloads
    • with downloads, closeDownloadBar will be able to keep your tab groups unchanged
    • if the flag #extensions-on-chrome-urls is enabled, now work on the native New Tab Page on Chrome 85+
      • note: only tested on Chrome, and other browsers like MS Edge may refuses this injection
    • contentSettings has been moved to optional, so in a fresh installation toggleCS may not work but show an error tip
  • fix a compatibility issue about fullscreen on new MS Edge
  • VisualMode: fix behavior of w on Firefox
  • LinkHints: support exclude: css-selector to exclude special elements
  • add vimium://sed, sed-p and sed2
  • Firefox: allow restoring an incognito tab if incognito="force"
  • Chrome: moveTab now keeps tab in its group, unless group="ignore"
  • add some other options to commands like zoomIn, toggleMuteTab
  • fix some bugs

refuse to open known "harmful" URLs

08 Feb 14:00
Compare
Choose a tag to compare

1.88.2

  • refuse to open known "harmful" URLs and show a tip: for example, the ...\condrv\kernelconnect will trigger an error
  • key mappings: env: add fullscreen: boolean to detect element-wise fullscreen mode
  • LinkHints.click: add direct="element" match=... index=<number>|"count" to directly select any element and click
  • Scroller: support keepHover=true|"auto"|false|"never"|<number>
    • "auto" to detect 3 times of losing frames (interval > 20ms) and then prevent hover effects
    • false means to prevent by default, unless there's selected text; never means to ignore selection status
    • <number> means a minimum latency for "auto", if it >= 20
  • Scroller: fix broken scrollPx* and some other issues
  • Vomnibar: if in domain mode (query starts with :d ), then show a list of matched domains
  • Vomnibar: fix an order bug on pagedown
  • goNext: prefer the value of [aria-label] if text is very short (up to 2 characters, like icons)
  • improved vimium://show #!image

runKey: map differently on some websites

03 Jan 15:26
Compare
Choose a tag to compare
  • add map *** runKey expect={env1:key1} keys=<default_key> with env name ...conditions
  • add LinkHints.click to click selected text, focused element or the nearest clicked
  • ignoreKeyboardLayout: add a partly-checked state which requires Alt to ignore layouts
  • FindMode: use normalize to normalize text before finding and get a more accurate count
  • when operate multiple tabs, not limit the range to one side if count < 10
  • gotoRoot: if there're sed rules marked with "r", then use them to learn sub roots
  • omnibox: move title before URL - just like Firefox/Chrome/Edge
  • Vomnibar: now can query an encoded URL in browser history
    • add noSessions=false|true|always|start (#224, #261)
    • also add clickLike to change behaviors on *-Enter (#263)
  • increase minimum_chrome_version to 47
  • some other enhancements
  • fix some bugs including that goToRoot and showTip may break

support high refresh rates and can mark any element clickable

22 Nov 20:12
Compare
Choose a tag to compare

v1.87.2: fix a crash preventing Vomnibar and Scroller from working (#250)
v1.87.1: fix crashes in the Firefox / Edge store versions (#251)

new features:

  • scroll*: support a monitor with a high refresh rate
  • LinkHints: support clickable=<CSS-selector> to mark any element clickable
    • also support match=<CSS-selector> to show hints for matched elements only
    • goNext and focusInput also support them
  • goNext: support substituting a tab URL and jumping to it
    • need to convert the index number of URL into ${index[/[start]:[end]:[step]]} first
    • the default key when substituting is n, and goNext now supports sed
    • the later parts are optional, and the shortest format is ${curIndex}
    • goNext will use a new URL of index + step, or find an element as a fallback if a tab URL is not converted
    • if absolute, then use command count as the new index
    • now can skip checking the rel attribute by noRel
  • Vomnibar: run sed with a key of "o" on enter if the input line is selected
  • Vomnibar: math calculator: now support rad, +−×÷, 3² + 4² and °
  • a new command of runKey with keys:string[]: act like another key which is selected in its keys option using command count
  • a new command of sendToExtension: send messages to other extensions
  • vimium://status now supports toggle-enabled/toggle-disabled/toggle-reset
    • switch in only 2 statuses, still with an optional list of hooked keys
  • when displaying an image, Ctrl+C will copy a HTML part on a latest Chrome
    • then it can be pasted directly in MS Word

breaking changes:

  • add a timeout of 30 seconds after pressing a prefix key
  • add a few search engines into the default list
    • some of them are default only when browser language is Chinese
  • keyboard event: not use a code if it looks like Key* while the event.key is long (philc#3317)

bug fixes:

  • scroll: fix keepHover=false breaks all UI until a LinkHints command
  • Chrome: the watcher for click event listeners: fix a naive security bug
  • fix some edge cases