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.
> 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.
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.
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?
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
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.
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.
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 :(
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.
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.
It takes two seconds to decide upon which special-function key to press. Deciding among abstract symbols is a high-level cognitive function. Not only is this decision not boring, the user actually experiences amnesia! Real amnesia! The time-slice spent making the decision simply ceases to exist.
Hmm. Not to be "that vim guy", but when those navigation/search/etc become muscle memory, it's not really a high level function anymore to do things like searching.. at least in terms path decideability. The sort of amnesia they talk about here happens to me whenever I need to pull my hands away from the keyboard. Though, their study probably didn't have that many opinionated text editor nerds.
If you look at what Tog says was actually tested, every single test he describes is completely bogus. There's more detail on this in https://danluu.com/keyboard-v-mouse/, but briefly, a test he describes is:
> the author typed a paragraph and then had to replace every “e” with a “|”, either using cursor keys or the mouse. The author found that the average time for using cursor keys was 99.43 seconds and the average time for the mouse was 50.22 seconds
Sure, keyboard-only users who do that exact task who literally use the arrow keys plus backspace are slower than mouse users, but since keyboard-only users don't do bulk search and replace by navigating to each relevant character with arrow keys, that's a meaningless benchmark.
As pointed out in another comment ( https://news.ycombinator.com/item?id=28068986 ), the people who know sed and vim are likely to be power users, which are a really small part of the populace.
Sure, there are text replace tools within most programs, but that doesn't mean that even half of the people using computers will know how to use them, or will ever bother to learn, when there are alternatives available. To that end, it makes sense to optimize for either of the easiest approaches, be it either using basic keyboard commands or the mouse.
That's also why GUIs are more popular for personal computing, as opposed to CLIs, or TUIs. Of course, CLIs could also be improved ( think tar vs docker UX, which can be achieved with something like https://typer.tiangolo.com/ ) and TUIs are also somewhat underused (nmtui, ncdu and many others are great pieces of software).
As for the actual amount of money spent - that is indeed a "yikes", how does someone even spend so much?
> It takes two seconds to decide upon which special-function key to press. Deciding among abstract symbols is a high-level cognitive function. Not only is this decision not boring, the user actually experiences amnesia! Real amnesia! The time-slice spent making the decision simply ceases to exist.
That's not my experience at all. Once you learn a keyboard shortcut, it doesn't take two seconds to recall it. Were his tests on expert users, or on beginners?
Well it depends on how often you use it. There are a handful of shortcuts I use... Once every other week? It certainly takes me a second or two to remember exactly how to do it. Even if I've used them on and off for years.
Sure ctrl z everyones got down. But what about alt k to kill that one process in that one program you have to keep fixing for that one client?
Pretty much everything you do often enough will be automated away from conscious thought.
It ends up in a weird situation where if someone asks what the keyboard binding for, say, inserting a row into a org-mode table, I wouldn't be able to answer. Something with maybe a c in it, and a '-', not sure? Yet, once in the situation that needs it, the fingers move by themselves.
Also related, musicians don't spend two seconds figuring out how to play a note.
Musicians also regularly play all the notes on their instrument. There are many once/week tasks that you’ll spend more time trying to remember the shortcut you used last week than just grabbing the rodent.
Sure, but one of my most commonly used keyboard short cuts is the one that pops up a fuzzy search over all the available actions/settings. Whereas with the mouse i have to dig trough a ton of sub menus and often even have to google to find what I want.
The difference is between using a keyboard shortcut like vim's "yaw" to copy a word vs vim's "d3f," to delete the next three words. The former you can save to muscle memory and always do instantly. The latter you have to think about, because you need to adjust it to your needs in the moment. That will always take a moment of thinking time.
I have been mouseless for over 30 years. (The office being the exception but I still use it minimally.)
The issue is not speed, it's control. Precision, if you will. I can automate repeated tasks with the keyboard. Doing that with the mouse is beyond awkward; it's counterintuitive.
Mouse is for interaction. Keyboard is for automation.
(Obviously for some tasks, e.g., ones involving graphics, we need a mouse.)
Is automation faster than interaction. You tell me. Try doing everything your computer does by hand. I will give you $50 million for your efforts. Then report back with your discoveries.
Generally no one (seriously) programs a computer exclusively with a mouse. A keyboard is used. Surely, there must be a reason for this.
Of course, the "tech" company model of the world needs users to not be programmers. The mouse is taken as a signal "we have a human on the line". Automation is taken as a signal "it's a bot". Truly, the only significant difference between the two is that it is far more difficult to manipulate, analyse and serve ads to "bots" and charge advertisers money for it. Users who can program the computer to automate tasks can escape online advertising and tracking in ways that others cannot.
One of the most brilliant programmers I worked with had a 14-button mouse. It had cut/copy/paste/select all/etc all on his mouse. He hated typing and actually couldn't touch type. He would always look for code online he could just copy/paste with minimal modification. I thought he was out of his mind but the dude produced amazing results and I think to this day I've still learned more from him about programming than I have from any of the other amazing people I've worked with.
I love to think keyboard is king, but none of this matters—it's whatever floats your boat.
If someone designs a system for input where I can only use a mouse, for me thats a boat sinker. Not that I love keyboards, it's just they are better than anything else I have found.
> Sounds almost like a mini-keyboard that slides around on a pad. :)
...except that it was a one-to-one mapping of function to button kinda deal. He didn't have time for fancy things like key-combos!
Yeah, who knows what programming will look like in the future. I'm a huge stay-on-the-keyboard snob but also, I have `set mouse=a` in my vimrc because often I want to hold a drink in one hand scroll through code with another. Shoot-me-why-don't-ya!?? And heck, sometimes it's just that my right hand was already on my mouse to use a macOS feature and now now my left hand cmd-tabbed me back to vim. It's all about laziness, right? My right hand does quickly find itself back on the home row in the latter situation, of course.
Software / on screen virtual keyboards are a thing. You probably use one everyday if you have a smart phone. The same thing is available on your laptop / desktop as well, though not quite so convenient without t9 or swipe-typing.
I find myself wondering how much difference the feeling of speed makes for creating a "flow" state. It may be physically faster to achieve a task, but if there's a minor context switch between "thinking about what to do" and "mousing around to do it" that doesn't happen with the keyboard, with a corresponding context switch back to thinking about the actual task that all this moving the cursor around is part of... how much time do those cost?
How much of one's internal working memory has to be flushed of the image of what you're trying to create, so that you can visually process mousing through menus much more densely packed than anything back in 1989 when Tog wrote that reply?
Great point on the context switching. It made me think about how I've setup my keyboard and use my editor.
I always opt for a compact numpad-less keyboard with a trackpad right next to it. I like to have the trackpad as close to the keyboard as possible.
I'm a vim user, and what this means is that while I mostly use the keyboard, I can quickly switch over to the trackpad as an auxiliary input for certain movements.
I know the common refrain with vim is to learn how to do things without the mouse... and I certainly can do that pretty effectively. But after over 10 years of vim, I find that using a little bit of trackpad can actually save a lot of time.
I can't find it just now but I thought there was a followup study that looked only at operators familiar with the interface and in that case the results were overwhelmingly in favor of keyboarding (as most of us would expect).
The essence of the difference between keyboard and mouse interfaces is simply that the mouse introduces that extra mechanical layer between user’s intent and internal APIs, but offers the advantage of discoverability.
That advantage and disadvantage tradeoff heavily depends on the nature of core functionality, how it’s mapped to the UI by the developer/designer, and user’s overall experience and familiarity with software.
As with so many things, worth noting that 'people' vary widely across every relevant spectrum, and I can't imagine that the median hasn't also shifted since (checks notes) 1989 (!!!)
I think others have done far too good a job debunking this obvious misunderstanding for me to add much on that front thus I'd like instead to ask a different question.
Tog insists that professional users discard the evidence of their own decades of experience using a computer in favor of the results of his stopwatch but not only declines to show his exact results and methods but declines to even conduct an experiment which looks even slightly like a professional computer using completing a task preferring a nonsensical exercise that appears designed to be automated for even greater savings. Why then after the writer discredits their ability to understand the topic 32 years ago are we still discussing their words.
It's hardly necessary to touch much on his ideas about hierarchies of complexity or perceptible time as he only needs to venture outside his own area of expertise into new and exciting theories about neurology and perception to support the otherwise forlorn and unproven theory that using the mouse was inherently faster in the first place.
If you ever in the course of your programming find the need to formulate new theories of quantum physics to explain why everyone else is wrong and you are correct you may want to step back and consider whether you have departed from the beaten path or perhaps from reality.
So why are we still wasting bandwidth on him?
Incidentally this reply was composed in Emacs. I sadly have a bad habit of misspelling words that spell check has alas done little to alleviate. Each time I misspelled a word instead of taking my hands off of the keyboard I hit a hotkey to go back to the first misspelled word tracking backwards from cursor. Most of the time the first suggestion was correct and I merely hit Enter. Once I had mangled it so badly that I had to hit a few characters to set it once again upon the right track. So 95% of the time 2 keystrokes, rarely 4 to correct misspellings after which I could continue typing from wherever I left off.
Sometimes I found that I didn't like a particular paragraph and wished to rewrite it. This can be accomplished in Emacs evil mode with cip meaning change in paragraph. This erases the current paragraph cursor is in regardless of where in the paragraph you are in other times I just wanted to rewrite part of a sentence in normal mode capital C deletes onward from point and leaves you in insert to continue typing.
Less cognitively demanding? That's debatable. The mouse is way less demanding for my brain when trying to point at or select something in my IDE. Almost frictionless.
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.
I think keyboard-only being faster is a red herring, much like all the frequent arguing about learning to touch type to be "faster".
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 in general.
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.
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.
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.
it mirrors the command line experience. Command line is faster/move convenient once you've learnt how, but finding out how to use it involves reading a manual basically. Each individual task involves a search for a command line command that executes it.
Whilst the learning process for GUI is intuitive because it depends on a chain of tasks that are presented to the user as a visual dashboard.
I've been using awesome wm with a slightly customized settings. This plus vimium gets me to >99% keyboard only. When I have to use a Mac, my slow down is so noticeable.
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.
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.
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.
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
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.
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.
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.
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.
For macOS, if you like Vimium, you'll like Vimac https://vimacapp.com/ as well. It supersedes vimium but vimium is still better while working in the browser context.
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.
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.
> "With the Vimium extension installed, pressing f will make every visible link on the page get a one-to-three letter shortcut."
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.
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.
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 possible.
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!)
Sort of (depends on terminology): A form is a set of controls laid out in 2D. But they are ordered and discrete so you can just ignore their positioning in x,y and instead navigate in their order instead (e.g tabbing through controls) making it a 1D input!
By “2D input” in this context I mean input where there isn’t also such a navigation option and you must input one or more coordinates and there is no way to enter the coordinates as numbers. For example the input surface (image) in a drawing program like Microsoft paint.
I think you're equating "random" with keyboard and "sequential" with mouse, but I also think of keyboard as "serial" and keyboard + mouse as "parallel".
yes. But text UIs are, arguably, infinite-dimensional (because language is). Thus a 2D input problem is a severely limited particular case, that allows for very specific and useful optimizations helped by a mouse, pad or trackball.
The article notes that you can use MouseKeys on Windows. MouseKeys is great, but only works if your keyboard has a numeric keypad.
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.
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.
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.
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.
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).
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, 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.
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.
[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.
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 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.
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.
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.
> Keyboard shortcuts and commands have a discoverability problem that has not been commonly solved [...]
You might want to have a look at KeyCombiner Desktop[1], an application that can show the shortcuts for the current app without leaving it. On macOS, it even shows shortcuts for the current browser tab.
This solved the problem for me. Disclaimer: I made KeyCombiner
That's quite close to what the IBM/Lenovo Trackpoint offers.
No, it's not a trackball (it operates by pressure rather than rolling), but the navigation is quite precise, and leaves both hands on the keyboard and home-row keys.
I've reached the point I'd like that for a desktop keyboard as well as laptop.
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 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 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.
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.
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'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.
Touch screens on laptops have really made things nice for mouseless browser use. (eg, when you can't keyboard select a field or button)
I mapped a button to disable mouse input since the pad is right under my wrists when I type. For selecting one or two radio buttons or text fields, it's quicker to use the screen.