Releases: gdh1995/vimium-c
Releases · gdh1995/vimium-c
Add `Compatibility of Escape`
openUrl
: now can run simplejavascript:
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
(akalatin
) (#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
: whenmask
, 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
- for a single "key node", add a new prefix of
enterInsertMode
, now support$then
to run on exit (#493)scroll*
: addwait: number | boolean
to specify a precise and fixed delay and overrideKeyboard settings
(#518)- VisualMode: fix some bugs about its own key mappings
- and
mapkey <...:v> <v123>
will make visual mode run a action ofid=123
- see https://github.com/gdh1995/vimium-c/blob/master/background/key_mappings.ts#:~:text=visualKeys_
- and
- search engines: now
${s:...}
will work just like$s{...}
LinkHints.activateCopyLinkText
andcopyWindowInfo
: support${field1 || field2}
- map
yv
toLinkHints.activateModeToSelect
by default - key mappings: remove support for
$key
and$desc
Rewrite logic about updating settings (experimental)
- Firefox: fix the Options page would break in a tab container
- it may causes bugs on Firefox and Chromium. For example the process of updating settings may be affected
- if any potential problem is found, please file a new issue on https://github.com/gdh1995/vimium-c/issues
- fix some key handlers didn't support composed keys, like
LinkHints autoUnhover=<esc>
(325 (comment)) LinkHints:
usethen={...}
to configure following Vomnibar / Visual ModeScroller
: supportscrollable=host-regexp##css-selectors;hostRe2##selectors2
to select default scrollable elements.filter
of tab commands: addlimit=number|"count"
anddiscarded=false
captureTab
: addcopy
anddownload=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
- for example,
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
runKey
now supportmask=true|""|<placeholder>
- in
run <v-lh> LinkHints.activate$s mask= \n run Fq lh WithQueue
,Fq
works likeLinkHints.activateWithQueue
- in
- fix
Vomnibar
may fail to switch to another tab on Firefox - fix broken
moveTabToNewWindow
andmoveTabToIncognito
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 keyrunKey
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 likeopenBookmark title=v:1
- improve
editText
: itsreplace
command supports placeholder and URL-encoding text- e.g.:
editText run="replace,_$s%20%s_"
will replace "abc
" with "_abc abc_
"
- e.g.:
- add more options to
moveTabToNewWindow
andmoveTabToNextWindow
(#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
- 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 ofrunKey key keys="otherKeys"
- add
openBookmark
andvimium://run/<key-tree>
to run long command sequences with complicated options - now support nested calls (but still refuse to call itself directly)
- key mappings: add a new syntax of
LinkHints
/focusInput
: always add elements matching.clickable
even in other modesLinkHints
: improveautoUnhover
(#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
- improved key mappings
Vomnibar
: fix URLs with space characters would breakmap
: fix bugs of$then
and$else
, and apply them to much more commands- for example,
enterFindMode
supports$then="enterVisualMode"
, andscroll*
runs$then
when something is scrolled - most commands operating tabs support
$then
and$else
- for example,
runKey
command: change syntax of.keys
, to support command treesenv
: nowhost
only considers about top frame URL; addiframe: boolean | string
to match iframesmapKey
: support<...:n>
and they will only take effect in normal modeLinkHints
: image mode: now can open simple SVG images- Firefox: some commands operating tabs will run faster when repeating count is 1
- fix
w
ande
inVisualMode
on Chrome 90+ on Windows - fix
passNextKey
on macOS - fix a bug about
filter
incloseOtherTabs
;joinTabs
andsortTabs
now supportsfilter
- 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
- add
- word around some configurations of
Dark Reader
- fix settings has no backup in
storage.local
when syncing is disabled
- keyMappings: not treat a line as an error if with
- 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 likeurl=...
andhost=...
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
- 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
- please search
runKey
: add a simpler syntax:expect="envName1:keySeq1,env2:key2"
- so a key can be named
- 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 ofopenUrl
(#344)Vomnibar
: decodefile:///
URLs on Windows system
- change meaning of
LinkHints
: add lots of options to do whatever needed- text substitution: add some actions and allow non-EN context keys for users to customize rules
Vomnibar
: now can remove session items on FirefoxgoNext
: fix logic of itsmatch
optionperformFind
: addquery:string restart:bool
to search given query directlyenterInsertMode
: 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
- 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 installationtoggleCS
may not work but show an error tip
- with
- fix a compatibility issue about fullscreen on new MS Edge
- VisualMode: fix behavior of
w
on Firefox LinkHints
: supportexclude: css-selector
to exclude special elements- add
vimium://sed
,sed-p
andsed2
- see 41e2396 for detailed usages
- Firefox: allow restoring an incognito tab if
incognito="force"
- Chrome:
moveTab
now keeps tab in its group, unlessgroup="ignore"
- add some other options to commands like
zoomIn
,toggleMuteTab
- fix some bugs
refuse to open known "harmful" URLs
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
: addfullscreen: boolean
to detect element-wise fullscreen mode LinkHints.click
: adddirect="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 effectsfalse
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
- add
map *** runKey expect={env1:key1} keys=<default_key>
withenv name ...conditions
- now Vimium C can trigger different commands on different websites / for different active elements
- see https://github.com/gdh1995/vimium-c/wiki/Map-a-key-to-different-commands-on-different-websites
- 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
- increase
minimum_chrome_version
to47
- some other enhancements
- fix some bugs including that
goToRoot
andshowTip
may break
support high refresh rates and can mark any element clickable
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 rateLinkHints
: supportclickable=<CSS-selector>
to mark any element clickable- also support
match=<CSS-selector>
to show hints for matched elements only goNext
andfocusInput
also support them
- also support
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
, andgoNext
now supportssed
- the later parts are optional, and the shortest format is
${curIndex}
goNext
will use a new URL ofindex + 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 bynoRel
- need to convert the index number of URL into
- 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
withkeys:string[]
: act like another key which is selected in itskeys
option using command count - a new command of
sendToExtension
: send messages to other extensions vimium://status
now supportstoggle-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 likeKey*
while theevent.key
is long (philc#3317)
bug fixes:
- scroll: fix
keepHover=false
breaks all UI until aLinkHints
command - Chrome: the watcher for click event listeners: fix a naive security bug
- fix some edge cases