I attempted to create something like this some years ago: https://github.com/mihaifm/vim.ahk
It's pretty difficult, applications have vastly different behaviour even in regard to simple commands. Still, it was a fun experiment.
Agree on Vimium in Chrome - I have to check whether it's available on Firefox.
I've never heard of R# (and it's hard to Google) - what is it?
[1]: https://addons.mozilla.org/en-GB/firefox/addon/vimium-ff/
[2]: I can slag Tridactyl off as I wrote a lot of it. It's still my favourite one.
Why do you say it's janky? I love it and it feels pretty polished!
The only issue I have is when selecting the HN upvote/downvote arrow links with 'f' the letter hints overlap :D
- `gi` doesn't work reliably on enough pages for it to be useful, ditto for `g;`.
- we outright break a handful of websites unless you `seturl [url] noiframe true`
- our mini-language is dreadfully inconsistent (e.g. `winopen -private` but also `hint -qb`). Corollary: composite commands steal semi-colons from JavaScript.
- most importantly, entering stuff into the command line is not a pleasant experience compared to our competitors due to lag and various things that block input but shouldn't (this is worse on Windows and generally gets worse the bigger and older your Firefox profile is)
I still like it, though. I'm glad you do too!
For your problem, I'd suggest making site specific binds: e.g. `bindurl news.ycombinator.com ;u hint -Jc [title="upvote"]` and, as a guess, `bindurl news.ycombinator.com ;d hint -Jc [title="downvote"]`, but I'm not cool enough to have downvote buttons so I don't actually know if that last one will work.
This is simply not possible with other browsers where the UI outside the actual website was only designed with a mouse cursor in mind. And that contradicts the idea of not constantly needing to switch to the mouse and back.
Some of this lack of concern for using the cursor is probably because all of the keyboards I use have trackpoints.
But I do use VsVim in Visual Studio and also have a guide on how to do that with R#, I use Vim emulation in all the Jetbrains products as it's really well done, also in VSCode, Vimium in all my browsers. Also use AutoHotKey to add Vimish type navigation to windows controls.