Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
vimium-c
A keyboard shortcut browser extension for keyboard-based navigation and tab operations with an advanced omnibar
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
readability
Readability is a library written in Go (golang) to parse, analyze and convert HTML pages into readable content. Originally an Arc90 Experiment, it is now incorporated into Safari’s Reader View. (by cixtor)
Vimium was my introduction to software engineering :) I contributed a bunch of code to it back in 2011-2012. Glad to see it still being in use!
I'm quite proud of the little test I wrote to figure out which DOM APIs could be used to detect the visibility of different kinds of elements, in order that we could display link hints correctly: https://github.com/philc/vimium/blob/master/test_harnesses/v...
If you're sending untrusted strings to the native messenger, it would be best to escape them with shellescape - https://github.com/tridactyl/tridactyl/blob/f2479c64761358c6...
Otherwise a malicious website targeting Tridactyl users who use the native messenger could gain shell access when you triggered your command on them.
For the privacy-conscious interested in SK, it may be worth a read of this GH issue: https://github.com/brookhong/Surfingkeys/issues/1796
I empathise with the author wanting to make a buck but it's hard to reconcile the approach he took with the level of trust granted to this extension.
It certainly would be but looking at the options tells me that they're hooking into MacOS's widget libs and on Linux there's just so many. What I get by with to go mouseless is Tridactyl for Firefox, warpd for when I need a pointer, and when I absolutely, positively need a mouse, mouse emulation on QMK keyboards never fails me. I only need it these days for dealing with MacOS outside of my Linux VM. I also use keyd in order to remap keyboard shortcuts.
https://github.com/rvaiya/warpd
I also recommended vimium-c (https://github.com/gdh1995/vimium-c). It's like vimium on steroid: with a bunch of additional useful features.
For those looking to replace the mouse at the OS level on macOS (similar vibe), Scoot is pretty good for that... https://github.com/mjrusso/scoot
I used to be a loving VimFX [0] user. It had intelligent link hints (essentially, links it thinks you are likely to want, e.g. because they're big, get single-key shortcuts). The scrolling was actually native, as in equivalent to hitting the arrow keys. I don't think any of the other Vim emulator plugins ever replicated that. Vimium doesn't, Tridactyl doesn't, and Vim Vixen was horribly broken.
Apparently VimFX still runs via some hacks on modern Firefox versions? The last release was even in 2022. Maybe I should give it a try again.
[0] https://github.com/akhodakivskiy/VimFx
[2] https://github.com/tridactyl/native_messenger
(I'm one of the authors) Love seeing this on HN today! It seems to get some front page attention every couple of years. Thank you everyone for the encouragement!
Related: last week I published a very similar extension, but for Google Sheets. https://github.com/philc/sheetkeys
Tridactyl does let filter links like that with `:set hintfiltermode vimperator` and `:set hintchars 1234567890`.
Vim Vixen unfortunately has been unmaintained since May [1]. If anyone knows ueokande personally, could they let him know that I would be happy to help get some releases out? I sent an email yesterday but I am not optimistic as it seems like quite a few people have tried over the last few months.
[1]: https://github.com/ueokande/vim-vixen/pull/1437
I work at Superhuman. We used to have code to detect Vimium, though we evidently we removed it very recently, while working on something tangentially related. It was working but definitely finicky over the years.
The initial way we checked for it was looking for document.body.matches('*[_vimium-has-onclick-listener]') but apparently that stopped working in 2018. We then used a variation of this code: https://github.com/hackape/Detect-Vimium/blob/master/detect-... which seems to work still.