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.
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.
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.
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 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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.)
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.
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
179 comments
[ 5.1 ms ] story [ 204 ms ] threadSo is Karabiner (https://wiki.nikitavoloboev.xyz/macos/macos-apps/karabiner) to map opening apps to two keys.
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.
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.
I managed to get ctrl-o/v the wrong way round when I first posted it, but I've fixed it now : )
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.
The more consistent something is, the less you have to remember. But it can be really hard to do things consistently for various reasons.
[0] - https://github.com/bvaughn/react-virtualized
https://news.ycombinator.com/item?id=28051562
Back to vimium.
- 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
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.
So this doesn't work for me and it doesn't seem possible to change the shortcut on Firefox :(
Not all languages that use é have a use for è.
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.
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...
[1]: https://github.com/dexterleng/vimac
[1]: https://github.com/dexterleng/vimac
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.
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.
So for logging into a WiFi hotspot, it’s a tricky proposition.
It helps against RSI.
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.
[1] https://ultimatehackingkeyboard.com/product/trackball
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.
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.
* roller mouse * left hand vertical mouse * right hand vertical mouse * trackpad * foot pedal
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.
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 wish there was a hybrid solution (e.g. tablet with separate wheel for zooming) which is easy to set up in Linux.
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.
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.
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.
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.
Junior: TrackPoint
Senior: Keyboard Only
Partner: Has someone else use the computer
[0]: https://i3wm.org/
[1]: https://swaywm.org/
0: https://rmpr.xyz/Frankentile/
[0] http://links.twibright.com/download/binaries/win32/