179 comments

[ 5.1 ms ] story [ 204 ms ] thread
Thanks for the keynav pointer. I switched from a mouse to a trackball due to shoulder pain, and it has really helped. Still, anytime I can use the keyboard instead of the mouse it makes me happy.
I remember trying this a decade ago with uzbl and vimperator. It was okay for a while, but uzbl unfortunately failed to gain momentum, and vimperator was nixxed more and more for various reasons.

The article in the link makes it sound like vimium is the last holdout of the resistance. It would be nice if it were possible to have other options again.

On Firefox there's also Surfingkeys. I've been using that for the last year or so. Can't remember the exact reason I switched but it's been working well so far.
On Firefox, Tridactyl is actively developed and very feature rich. The only minor annoyance I have with it is that it sometimes overrides shortcuts other webapps have defined, which makes it difficult to work with eg. linear.app or RES for reddit. You can blacklist sites from Tridactyl, but then you have to choose between only native shortcuts, which can miss some crucial actions but are otherwise better than tridactyl, or only tridactyl.
I think bindurl and unbindurl would solve most of your complaints: if you just want a few Tridactyl binds use blacklistadd then `:bindurl [URL] --mode=ignore ...`; if you want just a few webapp binds use `:unbindurl [URL] ...`.

There's also Ctrl-v in normal mode that lets you send one key sequence to ignore mode - I use it on YouTube with `Ctrl-v f` to toggle fullscreen. Ctrl-o works similarly but for normal mode from ignore mode.

Hey, awesome to get a reply from you! Thanks for all your work on tridactyl, it's made life a lot easier!
You're welcome, glad you like it!

I managed to get ctrl-o/v the wrong way round when I first posted it, but I've fixed it now : )

I use tridactyl on firefox and it works very well.
I went readless on mobile. Text doesn't wrap, can't zoom out to fit lines into view...
Same here, but I turned on reader mode on mobile Safari and was able to read it
Sorry about that. I wrote the style sheet in a hurry and forgot to test it on mobile, although zooming out worked for me.
Firefox has a neat trick to only search in links. Press ' (single-quote) and at the bottom, a text input field appears with the hint "Quick find (links only)". Type two or three characters will focus the link in question, just press enter to navigate.
Wow, TIL. Thanks!
This used to pair nicely with "/" which opens up the normal quick search. Unfortunately this is broken on the "modern" web as many web pages "helpfully" override the "/" key to make it go to their search box which, of course, is not at all what that key should do. There doesn't seem to be any way to stop web pages stealing this key and I've slowly learnt to use the comparatively clumsy "Ctrl+F" instead as I'm too scared to try "/" now.
Special mentions to the github actions log output, which not only overrides ctrl+f with their own search, but have a completely broken search. Which means logs are unsearchable. Thanks a lot.
Does it open the browser search if you press ^F a second time?
Unless they're doing something wonky like hiding content that is not in the viewport (thus reimplementing scrolling), you may be able to work around that by using ctrl-f from the URL bar, denying them the opportunity to hijack ctrl-f. So ctrl-l ctrl-f.
A Firefox extension I want (or maybe I'll make one day) would be one that prevents javascript from detecting any key input while holding right ctrl or left ctrl specifically.
Not sure if it's a feature or not, but setting the page permissions for "Override keyboard shortcuts" still allows '/' to work, but will disable 'esc' for closing the search modal/popout - and as '/' is a keyboard shortcut, I have no idea why it still lets the site take it over
> Unfortunately this is broken on the "modern" web as many web pages "helpfully" override the "/" key

Argh this kind of thing makes me really cross. So many sites seem to feel the need to reimplement things that are already part of most browsers or even in the spec. It's not just overridng default shortcuts, but custom context/rightclick menus, custom 'links' (where clicking them runs javascript code to window.open, instead of being a real link), custom form fields that advertise 'excellent accessibility', where the fields would have been accessible anyway if they didn't decide to reimplement them, disabling text selection, overriding focus styles because the accessible styles 'look ugly' ... the 'modern' web is pain.

Anyway, this wasn't going to be a rant. My point was going to be that consistency is key. Your comment on '"Ctrl+F" instead as I'm too scared to try "/" now' really resonated with me, because I've thought about this before. I've found that a feature or shortcut is only useful if it's consistent. I can't build muscle memory or be confident using a feature if it only works 90% of the time. Or even 99%.

I've tried tridacyl and other vim-style plugins for browsers several times in the past, but always end up uninstalling them in disappointment, because it's not possible to have a consistent experience. 99% of the time it works perfectly, but then there are the handful of sites or browser specific pages (eg. about: or view-source:) where it doesn't work at all, or doesn't work consistently so one must disable it. Then muscle memory totally breaks; you need to learn two sets of keybindings for the same context, and that introduces a hesitation for every keypress, which kills speed and enjoyment.

I’ve always had in mind “you can’t have simplicity without consistency”. Applies to user interfaces, code structure, and APIs as well.

The more consistent something is, the less you have to remember. But it can be really hard to do things consistently for various reasons.

I mostly agree, but every now and then there is actually a good reason to override/re-implement them. For example, let us say you are using virtualized components [0], so all available elements have not necessarily been rendered to the DOM (making Control-F useless).

[0] - https://github.com/bvaughn/react-virtualized

I would still argue in these cases that the site shouldn't override the built-in keybinds. Maybe a custom search field/button, and maybe a custom keybind. But when I press Ctrl+F, I always want the same type of search to be initiated. Otherwise, there is no consistency, and efficiency suffers.
I wasn't even aware / was for quick search. I always used Ctrl+F, which is incidentally much easier on my localized keyboard. But trying it right now, I notice that / and Ctrl+F opens different dialogs? One is called "Quick Find", the other "Find in Page", with the latter offering additional options, even though both seem to do the same thing? What is up with that?
Interesting, up to this day I thought that browser search is Cmd/Ctrl+F and webapp search is typically “/”. I got used to that to the point that I find it convenient.
Discovered this when some vim-like plugin failed. Realized it's about 90% of the reason I was using a vim-like plugin.
I just tried using it when I realized I couldn't upvote your comment as the link has no text.

Back to vimium.

Slightly more involved, but still serviceable:

- start typing the text on a link near the icon you want to click (for this comment, `thomasa`...)

- then press Shift+Tab to highlight the previous link

I ditched my vim-like plugin when I realized I could ctrl-f, ctrl-enter to follow links in chrome.
Vimperator provided an incredible Vim-like experience for Firefox.

Sadly, the transition to a new plugin architecture killed it and Tridactyl doesn't come even close. Some things are not possible with the new Firefox APIs, and many websites steal keyboard focus thereby ruining the Vim-like experience. Really frustrating.

I'm using the US International keyboard mapping, to type ' I have to type ' + space. The goal is to add the possibility to wrote letters like é (' + e).

So this doesn't work for me and it doesn't seem possible to change the shortcut on Firefox :(

ctrl-shift will switch back and forth between selected keyboards in windows, so you can keep the keyboard in ENG US most of the time (allowing you to use the ' shortcut in Firefox), and use ctrl-shift to switch to ENG INTL when needed.
There's a variant of the US layout called altgr-intl where instead of making ' a dead key you can do RightAlt-e for é.
Is that literally the same character for both? On my layout `e leads to è whereas alt-gr+e = é. é != è in many languages.
janus24 specified "é (' + e)". That's neither ` nor è.

Not all languages that use é have a use for è.

So I use a keyboard layout (Irish) from a country where this a need some people have but not frequently. There is the compose feature, but it's located in the button underneath escape (labelled ` ¬ ¦), not overloading single quote.

The one issue with that arrangement is you run into video game server admin/modding tutorials and the like and they describe pressing "~" for the console, and it's hardcoded to the keycode and doesn't consider the keymap, so it's actually looking for that button, except getting a literal ` requires a double tap of ` rather than all the UI elements telling you it's ~.

Oh and quoting code blocks in markdown can be kind of annoying. Or inline variable names that start with a letter that supports the accent.

But I think I'd take those limitations over losing single quote.

Wow! One more reason to stick with Firefox. Thanks!
I so forgot about this. Incredible.
Thanks, this is awesome. I totally expect to rely on this feature after using it for a few weeks and expect Mozilla to yank it out for usability reasons.
Thank you so much for this. Used it since more or less day one and never knew about this feature.
It's a lot easier with a touchscreen.
Is there a keynav like utility for MacOS? Maybe a Karabiner/Hammerspoon other scripts?

EDIT: I've found some, should be "customizable" with Karabiner customization on top

https://github.com/trishume/QuickMouse

https://github.com/h2ero/XEasyMotion

https://shortcatapp.com/

Some great discussion here: https://gist.github.com/lornajane/3892c39098cf70baa9c7a1874c...

Vimium extension(I don't even use vim) and split keyboard browsing experience is such a god-send to me, maybe I should donate some to these dev..
Same thing happened to me quite a while ago when my mouse didn’t work consistently and started exploring keyboard ways of doing all work... and it did improve my keyboard shortcut awareness and usages. I still use them... I feel that keystroke of older keyboards was better than modern laptops. The key press was longer and somehow I like it more than modern ones.
Some laptops have mechanical switches nowadays, I haven't tried them but they couldn't possibly be worse than normal laptop keyboards.
Surprised there was no mention of using a tiling window manager like Xmonad, RatPoison etc. That can really cut down on mice usage.
Even just using shortcut keys to tile windows is better than using a mouse.
Before I switched to a tiling window manager, I had my global shortcuts in KDE set up with all the available quick-tiling actions. Win+S would maximize a window, Win+{W,A,D,X} would move and resize the window to cover the {upper,left,right,bottom} half to the screen, and Win+{Q,E,Z,C} would similarly move and resize the window to one of the screen's quadrants. The shortcuts seem arbitrary, but are deliberately chosen to arrange into a nice square on the keyboard. That setup worked nicely for me for several years, until I converted to a true tiling window manager (Sway).
Using a Rollermouse, I never have to leave home-row when moving the pointer, so not such a loss of time compared to a normal mouse. The mouse-bar is just a centimeter off the space bar, so I just move it around with my thumbs. Index+thumb if I need more precision. No more elbow pain as well.
This is what I liked about the old ThinkPad nipples. I would still buy a laptop with that setup and no trackpad, tbh.
New ThinkPads still have these! They have trackpads too but you can disable them in the bios to avoid accidental clicks.
Yeah I just genuinely want the option of no touchpad at all, the much loved X200 was the last mode that offered this.
I know what you mean. They somehow irritate my skin in a way that doesn't make any sense for a smooth surface to do.
If you're using MacOS and are looking for system-wide Vimium, checkout out Vimac[1]. Works really well!

[1]: https://github.com/dexterleng/vimac

I tried it about a year back and it was missing to much back then to be usable day to day for me. Took a look again now and it does look like there’s a lot of improvements, will have to give it another go.
This looks cool, especially hint mode. Wondering what scroll mode adds though, compared to just using the existing Mac OS shortcuts (or Pg Up/Pg Dn)
Hmm. This sounds like a modern day amish :) i guess some sort of tiling window manager could better suit it
It's a good skill to have. I think sysadmins kind of acquire it naturally, with much work being done in the terminal. I'm fairly proficient on my own computer with my own hotkeys, though I'm sure I could take it further with some effort. I still use a mouse frequently in the browser, but for the bulk of my work my hands don't leave the keyboard.

I'm not sure whether it's significantly faster than an "expert mouse user" but I also don't think it's slower. I haughtily think that my killing and yanking is more precise than it would be clicking, but who knows?

I think it's kind of a parlor trick really, but it does impress the younger and less experienced team members to some degree.

Whenever I don’t have a mouse, I notice. Immediately.

Been staying in hotels recently. The wifi login for IHG hotels varies a bit, but often has either tabs or a checkbox that is not keyboard accessible because it is not part of the focus order. Obviously this sucks for people with disabilities, but it also sucks for people with Android TV devices (in my case, a Chromecast.) Now obviously, one of those things is more important than the other (although unfortunately, I bet I know which complaint would be more likely to lead to a change.)

So yeah, I’ve always got a bluetooth keyboard/mouse combo for this reason. (It’s a bit pricey, but a K830 works well.) It’s a bit sad that websites and apps are so careless with accessibility, but unfortunately, for that reason, it’s hard to truly go mouseless. At least this page describes how to set up a virtual mouse, because yeah, you’re going to need it.

If you want to ditch the physical keyboard/mouse, there are apps that let you use your phone as a Bluetooth keyboard/mouse.
The trouble is that having WiFi access is often a prerequisite for said apps. Some options also require rooting, which I have done, although it is fairly impractical.

So for logging into a WiFi hotspot, it’s a tricky proposition.

Doable with cwm (window manager with being everything manageable with a keyboard), st (pick any terminal here), tmux (better than spawning lots of terminals) and vimb (keybindings based web browser, but you can use the mouse if you want too) under BSD/Linux.

It helps against RSI.

I've used the ZSA Moonlander (https://www.zsa.io/moonlander/) as my main driver for the past 6 months, except I've replaced the right hand thumb pad with a custom mouse mod. I basically pulled the electronics from a Logitec trackball mouse and machined a casing for it to clip to the keyboard once the thumb buttons are removed.

It's been wonderful. I'm reaching the stage where I'm just as dexterous now with my thumb as I was with my regular mouse, and my right hand isn't constantly searching for the home row when I return to type. I can't recommend it enough.

This sounds really interesting! Do you have photos/a link to share?
As a fellow Moonlander user, I'd love to see a write-up of what you did.
Unsure if I could live without the right thumb cluster but would be really interested in a write-up/photos of this project.
Take care of your hands. I went on a crusade to go mouseless a few years ago, and eventually it resulted in RSI from typing so much. Focus on your posture, take breaks, stretch your hands and fingers, get an ergonomic keyboard, etc.

An under-appreciated benefit of using a mouse (as a programmer) is that it "switches things up" on your hands so that you aren't doing the same repetitive motions all day long. You can be marginally faster with a mouseless workflow, but you're definitely not very productive when you can't type for months due to RSI.

My computer-related RSI prevention tips:

Get separate mouse and keyboard wrist rests.

Use a vertical mouse instead of a traditional one.

Use more than one type of mousing device and switch up from time to time. Graphic tablets with digital pens take some getting used to but are excellent.

Look up RSI forearm stretches and take breaks to stretch your arms and hands for a few moments at least every few hours. I'm also a big fan of gyro ball exercisers.

Get an ergonomic chair with movable arm rests that can keep your arms at around the same height as the desk your working at.

Started having severe wrist pain 20 year ago. I got a bean bag wrist pad. No pain ever so long as I use bran bag ones. Comes back quick without.
I second the alternation idea, I have something like 4 input devices I alternate between to "spread the load" across different limbs and body parts. People experiment with different keyboard layouts too that basically remap the characters to different keys on the keyboard.

* roller mouse * left hand vertical mouse * right hand vertical mouse * trackpad * foot pedal

What are some vertical mouse recommendations? I currently have an ancient Anker vertical mouse and am curious if one of the $100+ mice is worth the upgrade.
My first vertical mouse was by Evolulent. Cost like $90 and it was great, but the slip feet wore away, the company made it very difficult to contact them, were sorta rude on the phone, and then said no to free replacement feet. I used slip tape for a while but eventually gave up.

That experience made me not want to buy another from them, so I bought the Anker wired vertical mouse for like $12. It lasted for three years, but the scroll wheel started going. Three years for such a cheap and good mouse was acceptable to me so I bought another, but the scroll wheel on the new one started going in less than a year (I’m not gaming with these things and I take good care of them, I just scroll a lot). To their credit, Anker sent me a free replacement with no hassles.

I still have the free replacement as a backup, but decided maybe it was time to try something fancier again, so I bought a Jellycomb wireless vertical mouse for $30 with a really cool split chassis design. The ergonomics were great, but once again the scroll wheel didn’t last.

My most recent purchase (about six months ago) was a Logitech MX Vertical for $94. The build quality is better than all the others and I like it very much except for one thing: the shape of it and the rubberized surface make my hand a bit hotter than I’d like. I’ve mostly gotten used to it, but it’s noticeable.

It costs 5x what the Anker does. Is it 5x better? No. But it is better, and I wanted something that I (hopefully) can keep for more than a few years. Jury’s still out on that front, though.

> the shape and rubberized surface made my hands hot

That’s the main blocker for me buying the Logitech or an Evoluent: aspects like that make me long for a try before you buy at this $100/mouse mark. The extra button is what got me considering the Evoluent over the other options, but they also have a bunch of slightly differing models that makes me even more indecisive. Thank you for your mouse reviews.

I'm using a simple Wacom tablet. However, I still switch to the mouse for some tasks (Inkscape, KiCAD), because of the scrollwheel (indispensable for quick zooming).

I wish there was a hybrid solution (e.g. tablet with separate wheel for zooming) which is easy to set up in Linux.

Now go fingerless on your smartphone. Oh, we make an exception there do we?
I think the snark is overboard, but I get what you are saying - but I will defend the article in that it's a neat experiment and it sort of highlights gaps in accessibility, like others in the thread have noted.

However, my first computer was a Commodore 64 and I currently have a Commodore 64 emulator I love playing around with - and doing everything in keyboard commands is a pita for things like word processors and spreadsheets even when you have the shortcuts in muscle memory.

There's a reason the mouse was so successful.

Physical keyboards on smart phones were glorious. Not all the apps would let you go through fields using only the keyboard (and some keyboards didn't have enough navigation keys, anyway), but when it worked well, it worked well.

Sadly, it cost money to include a keyboard, so the race to the bottom means you can't find them anymore. Just like real back buttons.

Personally, I don't want a physical keyboard on my phone.

I am irritated that the menu button was taken away on Android, that was good UI.

Now every app does menu differently which is a massive step backwards for discoverability and consistency.

I wish I could, frankly, but smartphone UIs are just not designed for it sadly. Heck, input boxes don't even autofocus on Android (presumably because a virtual keyboard pops up over half the screen for most people once they focus an input) so I need to jab the login field before I can start typing.

Whether or not Ctrl-C and Ctrl-V actually copy paste within any given application is about 50/50 (and not always the same between copy and paste!).

Since the big new version of Mobile Firefox it no longer scrolls when you send it scroll events (presumably there's a child frame or something).

Then again, Android is just generally not ready for production in a lot of ways other than keyboard support (the latter of which I sort of forgive them for -- phone keyboards are unfortunately quite rare these days).

So yes, we make an exception, but it's due to necessity not desirability.

Investment bankers are judged for using the mouse when using excel. It’s a rite of passage to be completely mouseless
Intern: Uses the mouse

Junior: TrackPoint

Senior: Keyboard Only

Partner: Has someone else use the computer

If you're on linux, consider trying a tiling wm like i3 [0] or sway (wayland) [1]. New windows automatically place themselves in a nice place and don't overlap. It's extremely (if not entirely) keyboard driven and pretty configurable.

[0]: https://i3wm.org/

[1]: https://swaywm.org/

Last time I checked there was no equivalent to these, or any sort of actual tiling manager in MacOS; is this still the case? (For anyone to answer, if you know.)
Amethyst is pretty good
I think that was replaced by Rectangle.
Rectangle and Amethyst are both great, but only Amethyst will auto-tile your windows as you open them, like i3. Rectangle just exposes keybindings to resize the selected window.
I use Yabai and it works very well. Similar to i3 in how it tiles, and quite customizable.
After using bare WMs for years, I finally settled on i3 inside KDE[0]. Because I found it painful to manage everything myself (polkit, cgroups, ...) plus I already relied on a couple of features from DEs. It's fun for learning purpose, but not so much when you just want things to get out of your way, especially on a laptop

0: https://rmpr.xyz/Frankentile/