Going mouseless
felipecortez.net
felipecortez.net
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.
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.
We’ve done a cool $50 million of R&D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
• Test subjects consistently report that keyboarding is faster than mousing.
• The stopwatch consistently proves mousing is faster than keyboarding.
This contradiction between user-experience and reality apparently forms the basis for many user/developers’ belief that the keyboard is faster.
Even if it's subconscious and technically faster, or even an illusion - I feel like mouse is consuming more cognitive resources.
The feedback loop with keyboard can feel quite different, in flow it feels like you issue commands and look for immediate response.
Also, when doing a repetitive task you quickly pick up key rhythms and patterns without needing prodigous memory to recall every possible "shortcut".
What I am not sure the user interface testing covered is making users perform the same task 50 times per day.
I don't think that using keyboard to control mouse has the same advantages as a keyboard-native interface.
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.
> 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?
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?
Not really.
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.
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.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.
I certainly use a keyboard to program, but I also make good use of my mouse (well, touchpad) for text selection, changing windows, etc.
Yeah, looks like there is a reason for this. Keys are only present in keyboards and not mouse..
I love to think keyboard is king, but none of this matters—it's whatever floats your boat.
However I wonder if the person(s) who authored the code he copied and pasted also used only mouse, let alone one with 14 buttons.
"... it's whatever floats your boat."
True. https://en.wikipedia.org/wiki/ColorForth
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.
...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.
colorForth intrigues me.
> 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.
:%s/e/|/g
93 seconds? More like 3 seconds.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?
Perhaps the key takeaway is that Apple optimizes interfaces for people who don't know how to use a computer.
OECD Skills Studies > Skills Matter
http://dx.doi.org/10.1787/9789264258051-en
https://www.nngroup.com/articles/computer-skill-levels/
https://old.reddit.com/r/dredmorbius/comments/69wk8y/the_tyr...
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?
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.
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.
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.
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.
Two entirely distinct learning processes.
EDIT: I've found some, should be "customizable" with Karabiner customization on top
https://github.com/trishume/QuickMouse
https://github.com/h2ero/XEasyMotion
Some great discussion here: https://gist.github.com/lornajane/3892c39098cf70baa9c7a1874c...
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.
[0]: https://i3wm.org/
[1]: https://swaywm.org/
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.
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'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.
Out of curiousity, how are you binding Vimac?
I'm binding it to where the right-shift key should be, and it's worked well, but always curious about alternative setups.
So is Karabiner (https://wiki.nikitavoloboev.xyz/macos/macos-apps/karabiner) to map opening apps to two keys.
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.
If you do it all the time, it's worth fixing it.
right now I'm investigating automation through powershell (ie com object yields the DOM and js runtim)
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!)
Are not most GUIs are a 2D input mechanism?
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 know my conclusion from your comment is supposed to be "keyboard is faster", but I'm not sure that's true. https://www.asktog.com/TOI/toi06KeyboardVMouse1.html
You would have to claw my trackpad from my cold dead hands.
For photo editing, the interactions with the photo directly require fine control in two dimensions with the cursor.
Many GUIs are just interfaces to modal switches, or a categorical variable with usually a finite number of options.
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.
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 : )
Junior: TrackPoint
Senior: Keyboard Only
Partner: Has someone else use the computer
I still have to use KeyCombiner Desktop's instant lookup[2] feature from time to time to look up its more unusual bindings.
A somewhat related blog post: Learning all VSCode shortcuts evolved my developing habits [3]
[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.
[3] https://tkainrad.dev/posts/learning-all-vscode-shortcuts-evo...
I wish there was a hybrid solution (e.g. tablet with separate wheel for zooming) which is easy to set up in Linux.
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.
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
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.
I think such things are commercially available. At least I'm fairly sure I saw them advertised on the Internet, not many years ago.
It helps against RSI.
UHK also has a mouse layer if you don't want the module.
Not having to move your fingers off the keyboard is what really saves me time, and has completely cured my tennis elbow.
Can't recommend it enough
For longer mouse task I switch to a real mouse anyway.
Or am I misunderstanding exactly when we put a year in the title?
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.
Touch screens on laptops have really made things nice for mouseless browser use. (eg, when you can't keyboard select a field or button)
The trackpoint makes it even better since your hands do not move from the keyboard in the first place