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.
For anyone considering doing this for speed reasons:<p><i>We’ve done a cool $50 million of R&D on the Apple Human Interface. We discovered, among other things, two pertinent facts:</i><p><i>• Test subjects consistently report that keyboarding is faster than mousing.</i><p><i>• The stopwatch consistently proves mousing is faster than keyboarding. </i><p><i>This contradiction between user-experience and reality apparently forms the basis for many user/developers’ belief that the keyboard is faster.</i><p><a href="https://www.asktog.com/TOI/toi06KeyboardVMouse1.html" rel="nofollow">https://www.asktog.com/TOI/toi06KeyboardVMouse1.html</a>
Whenever I <i>don’t</i> have a mouse, I notice. Immediately.<p>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.)<p>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.
I think keyboard-only being faster is a red herring, much like all the frequent arguing about learning to touch type to be "faster".<p>I don't doubt many hackers and programmers truly enjoy doing everything from the keyboard, and that they can do it really fast too. However, I simply don't buy this is an ideal we should strive for <i>in general</i>.<p>The mouse has an awesome UX property: it has zero friction for discoverability. It's always there, I know I can point and click and interact with something, I know I can drag stuff and I know I can group and select. Some UIs break this expectation, sure, but more often than not it will work.<p>I don't have to memorize shortcuts or develop "muscle memory" and can instead devote my brain power to the actual task I want to solve. If I stay a long time away from a certain editor or tool, I don't have to worry about forgetting its shortcuts -- the mouse is always there, reliable as always.<p>I'm an experienced programmer and a power user in many cases, and I do remember my share of shortcuts. But give me a mouse, anytime -- maybe I spent years away from your app, but I'll know how to use it, and fast. And those shortcuts be damned.
Is there a keynav like utility for MacOS? Maybe a Karabiner/Hammerspoon other scripts?<p>EDIT: I've found some, should be "customizable" with Karabiner customization on top<p><a href="https://github.com/trishume/QuickMouse" rel="nofollow">https://github.com/trishume/QuickMouse</a><p><a href="https://github.com/h2ero/XEasyMotion" rel="nofollow">https://github.com/h2ero/XEasyMotion</a><p><a href="https://shortcatapp.com/" rel="nofollow">https://shortcatapp.com/</a><p>Some great discussion here: <a href="https://gist.github.com/lornajane/3892c39098cf70baa9c7a1874cddf233" rel="nofollow">https://gist.github.com/lornajane/3892c39098cf70baa9c7a1874c...</a>
I've used the ZSA Moonlander (<a href="https://www.zsa.io/moonlander/" rel="nofollow">https://www.zsa.io/moonlander/</a>) 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.<p>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.
If you're using MacOS and are looking for system-wide Vimium, checkout out Vimac[1]. Works really well!<p>[1]: <a href="https://github.com/dexterleng/vimac" rel="nofollow">https://github.com/dexterleng/vimac</a>
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.<p>[0]: <a href="https://i3wm.org/" rel="nofollow">https://i3wm.org/</a><p>[1]: <a href="https://swaywm.org/" rel="nofollow">https://swaywm.org/</a>
If you're interested in a mouseless browser experience, another great option is qutebrowser: <a href="https://qutebrowser.org/" rel="nofollow">https://qutebrowser.org/</a>
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.
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.<p>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?<p>I think it's kind of a parlor trick really, but it does impress the younger and less experienced team members to some degree.
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.<p>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.
For macOS, if you like Vimium, you'll like Vimac <a href="https://vimacapp.com/" rel="nofollow">https://vimacapp.com/</a> as well. It supersedes vimium but vimium is still better while working in the browser context.<p>I'm also actively trying to go mouseless and Vimium+Vimac and setting custom keybindings to move/click my mouse on my ZSA Moonlander keyboard are currently helping me excellently.<p>In many cases, moving your hand to the mouse, finding the cursor, moving it and clicking it is a lot slower than a keystroke combo like F-SD.
I do similar but on mac and using Safari. <a href="https://github.com/televator-apps/vimari" rel="nofollow">https://github.com/televator-apps/vimari</a> is great for this.<p>So is Karabiner (<a href="https://wiki.nikitavoloboev.xyz/macos/macos-apps/karabiner" rel="nofollow">https://wiki.nikitavoloboev.xyz/macos/macos-apps/karabiner</a>) to map opening apps to two keys.
> "<i>With the Vimium extension installed, pressing f will make every visible link on the page get a one-to-three letter shortcut.</i>"<p>This is a UX which happens quite often, but doesn't seem to get discussed much. I want to say it's more of a hybrid between keyboard and mouse even though it's all keyboard driven. I mean popping up numbers temporarily over things you might act on, then they vanish and might not be the same number on the same thing next time. e.g. a meta key in a web browser which overlays the tabs with numbers, you press a number to switch to the tab, then the numbers vanish.<p>The point would be that you don't have to read through them to work out which one you want, you don't have to manually count "how many things from the left" or "what's a unique substring to search for", you are already looking at the one you want so the number which appears on it is pseudo-eyeball-tracking, look at the thing you want, press the meta key, type the number which appears, ignore the other numbers. Like line numbers and Vim "49G" to jump to line 49, Win+Digit to run taskbar items, Windows menu underlined accelerators.
I'm at a courthouse, their software is web based and it's so horrendously inefficient. They tried to make a few keybindings but it's mostly mouse driven. Not even Enter to submit the main form. Gah. Lead dev please remember how fast a keyboard is and how important it is to go swift on simple jobs duties. Ergonomy and efficiency.
A mouse or trackpad is a 2D input device. Unless you have a 2D input problem (dragging nodes in a graph, drawing a free form curve, selecting a point on a map…) then it was never the right tool to begin with.<p>Navigating discrete UI elements or making simple UI actions of the kind that can be mapped to keyboard input - that’s easily doable with a keyboard. Occasionally it’s just a tad harder with keyboard than with mouse (web pages are notoriously useless with keyboard) but it’s <i>possible</i>.<p>I wouldn’t last a day without going crazy without a mouse though. People who say they have gone mouseless also seem to argue they have zero 2D input and basically use text and ignore all other workloads. That’s not exactly solving the problem (not that I think it can be solved any better than just using a mouse!)
My attempt to make a practical keyboard-driven cursor app for Windows:<p><a href="https://github.com/ndandoulakis/SlickCursor" rel="nofollow">https://github.com/ndandoulakis/SlickCursor</a>
The article notes that you can use MouseKeys on Windows. MouseKeys is great, but only works if your keyboard has a numeric keypad.<p>Since I've used ThinkPads for many years, I wrote a program some time ago I called JKLmouse. It gives similar functionality to MouseKeys, but works on ThinkPad and other laptop keyboards that don't have a numeric pad.<p>It does help to have actual mouse buttons like on a ThinkPad. If you have laptop where the only way to do a mouse click is by pressing on the touchpad it won't work so well, because just the act of pressing the touchpad is likely to move the mouse pointer slightly.<p>JKLmouse and the TrackPoint work together nicely. You can use the TrackPoint for larger mouse motions and then use the keyboard for precise positioning, all seamlessly.<p>There is an installer, but for programmers I suggest instead installing AutoHotkey separately, and then download and configure JKLmouse.ahk to run at startup. If I do say so myself, I think it's a good example of some well-written AutoHotkey code. Maybe it will give you some ideas of other things you can do with AutoHotkey.<p><a href="https://www.jklmouse.com/" rel="nofollow">https://www.jklmouse.com/</a>
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.
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.<p>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.
Vimium was one of the first tools I learned shortcuts for with KeyCombiner[1].<p>I still have to use KeyCombiner Desktop's instant lookup[2] feature from time to time to look up its more unusual bindings.<p>A somewhat related blog post: Learning all VSCode shortcuts evolved my developing habits [3]<p>[1] <a href="https://keycombiner.com/" rel="nofollow">https://keycombiner.com/</a><p>[2] A feature to look up shortcuts without leaving your current app. Can show shortcuts of the current app, current browser tab (macOS only), and shortcuts that you manually curated in collections.<p>[3] <a href="https://tkainrad.dev/posts/learning-all-vscode-shortcuts-evolved-my-developing-habits/" rel="nofollow">https://tkainrad.dev/posts/learning-all-vscode-shortcuts-evo...</a>
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).<p>I wish there was a hybrid solution (e.g. tablet with separate wheel for zooming) which is easy to set up in Linux.
I program with a Magic Trackpad 2. There's not too much I can't do with gestures vs a keyboard. It's much faster than using two hands. I also set it up for 3-finger drag and that's the killer app within the app. With that, moving windows around is dramatically faster than a mouse. I can select text with 3-finger drag and then two-finger tap for the context menu to see: definitions, copy/paste, delete etc..). Navigating my laptop is more enjoyable when I can use all five fingers for different things. Apple should take this feature out of the Accessibility menus and put it where it belongs with the trackpad prefs.
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.
For me, the key to "mouseless" is going to be the Tex Shinobi[0]. I haven't quite worked up the confidence to buy one yet (partially because current mechanical keyboard still works frustratingly well), but I look forwards to the day I could get something like this for TrackPoint synergy across all my typing surfaces.<p>[0] <a href="https://tex.com.tw/products/shinobi" rel="nofollow">https://tex.com.tw/products/shinobi</a>
Keyboard is faster when instructing the computer for actions that you execute all the time. For situations where it’s practical to learn a keyboard input, it’s great.<p>Where this interface paradigm breaks down are in contexts where the input is novel. Keyboard shortcuts and commands have a discoverability problem that has not been commonly solved in way that makes them faster than the mouse for new/rare users.
OS X users could try <a href="https://github.com/pqrs-org/KE-complex_modifications/blob/master/src/json/mouse_keys_mode_v4.json.rb" rel="nofollow">https://github.com/pqrs-org/KE-complex_modifications/blob/ma...</a>
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.<p>It helps against RSI.
I use text-mode links whenever I can, works great (even on Windows [0]).<p>[0] <a href="http://links.twibright.com/download/binaries/win32/" rel="nofollow">http://links.twibright.com/download/binaries/win32/</a>
A little off topic, but I got a UHK with the trackpoint module. It's been amazing.<p>UHK also has a mouse layer if you don't want the module.<p>Not having to move your fingers off the keyboard is what really saves me time, and has completely cured my tennis elbow.<p>Can't recommend it enough
Well Trackpoints are a thing still and way better than moving the mouse with the keys.
Yes you can get desktop keyboard with trackpoints too.<p>For longer mouse task I switch to a real mouse anyway.
I’ve used vi for 25 years now. Every shortcut and key combination is burned into unconscious memory. This holds true for all other applications used on a regular basis.
I've been doing this for the past 15 years. I use bash, tmux, (n)vim and git. It runs in whatever WM and on any OS I'll encounter. If your environment is a few simple tools, it's basically future proof and very portable. I like to keep config files fairly minimal as well so I don't become dependant on custom keybinds or functionality.<p>Touch screens on laptops have really made things nice for mouseless browser use. (eg, when you can't keyboard select a field or button)