Comment by RobGR
18 hours ago
This is a really interesting and complete writeup.
I have been helping someone who has little experience with Windows or Mac, but used DOS for years ( until pretty recently ) and I've set them up with a simple Debian Linux running XFCE4 as the desktop. I've found that I have to teach them and also document a lot of basic computer idioms -- Control-C / X / A / V to copy, cut, select all, paste; but also more basic things, like the fact there are two pointers on the screen -- one for the mouse and one for the keyboard -- if you slide the mouse pointer to a specific point and press a keyboard key, the new key will not appear where the arrow is, it will appear where the text cursor is.
A big one was tabs. I had to get a couple of manilla folders and show them the actual tabs, and hold it up next to the browser with several tabs, and suddenly it snapped with them what the interface was trying to represent.
Control-A will select all of a web page, unless you are in the text entry box of a form, then it selects just the things in that text entry box.
I started writing this up in a little manual, it got to a dozen pages fast, and I haven't put very much in it.
If anyone knows of a place where some portion of all of this is written down, post a link !
A friend of mine used to give computer courses back in the 90s (to people that had never used a computer before).
At one point he said "You need to move the mouse up" and one of the participants actually lifted the mouse physically from the desk - which was perfectly correct for someone not being used to computers.
I always remember this when I think "isn't this obvious?" with regards to usage patterns on computers.
During my M.Tech in Comp. Sci, I was requested to volunteer to be a lab assistant in a diploma course in programming in C for non-technical people. A Ph.D. in Philosophy was complaining that his program was not compiling. He wrote "exist(0)" instead of "exit(0)". I found this so interesting. Existentialism was on his mind, I guess. The program clearly exits by not existing any more? Can't argue with that!
I corrected him and went on my rounds. I remember that a bank manager was the best of the batch. By the time I circled back to my philosophy friend, he quietly changed "exit()" back to "exist()" and the program was not compiling again! This anecdote stayed in my mind.
Not gonna lie, exist(0) sounds badass and ought to be a system API of some kind.
2 replies →
I remember that a lot of older folks had trouble understanding when to use a single click and when a double click. Clicking twice rapidly was also difficult for them, and they would consistently jerk the mouse and drag things around. Having every part of the interface in earlier windows draggable and reactive made this even more frustrating, since for them things would just disappear from the desktop.
Double-click is difficult for my six-year-old, too.
1 reply →
There were plenty of stories back in the day about assistants being asked to copy a floppy.
Some used a photocopier.
"which was perfectly correct for someone not being used to computers."
I disagree.
Even someone with no experience with computers understands, generally speaking, that the mouse is tracking the surface of the desk somehow. I have had this conversation many times (or did, back in the 1990s when mice were more novel for most people). Nobody picked it up.
The ones who do in these anecdotes are, IMO, examples of the sort of people who absolutely shut their brains off in protest when asked to work with new tech. I have been blessed in that I have only very, very rarely been asked to work with or even know such people.
Anecdotally, when I use simple command idioms like ctl-tab to change tabs, alt-tab to change applications, or press alt in an application to bring up the single letter shortcuts for navigating menus my students are blown away.
I have to actively teach them how to use and navigate file folders, how to make an appointment in Outlook, and other fundamental user operations. I don't blame them, I blame the developers primarily of browser based cloud apps and OS's.
Edited to add: this includes using ctl and arrows to move by whole words, etc. fundamental stuff in the apps they would have been using since a young age. Not to mention how to use the fn key to access the other functions of Function keys, and fn-esc to switch the behavior globally on their laptops.
> the fact there are two pointers on the screen -- one for the mouse and one for the keyboard -- if you slide the mouse pointer to a specific point and press a keyboard key, the new key will not appear where the arrow is, it will appear where the text cursor is.
I remember using an (early?) Apollo computer that worked that way... I was warned by the person showing me, and a bit later he accidentally bumped the mouse while I was typing! Letters all over...
I believe this was in the era before X windows took off for unix boxes. I miss SunTools - it was nice and simple.
Focus follows mouse was a thing in the X11 era too. We are still in the X11 era, and it is still a thing. (-: Until X11 window managers like IceWM vanish entirely, it will remain a thing.
* https://ice-wm.org/manual/#focus-models
> if you slide the mouse pointer to a specific point and press a keyboard key, the new key will not appear where the arrow is, it will appear where the text cursor is.
Out of curiosity: were they unfamiliar with the mouse, or were there programs that used a single cursor for both the keyboard and mouse? (I am aware that many text mode programs used a block for both cursors, but haven't seen a program where the two functions were combined.)
They were familar with a mouse from DOS based drawing and diagram programs. Most of those did not have keyboard and mouse input active at once, you were using the mouse, or you were in a different mode to enter text. Some of them had one pointer, so you could be typing, bump the mouse, and put characters in the wrong place.
Were they the old tabs that looked like tabs, or the newer tabs that look like buttons?
The tabs in question covered modern Firedox, xfce4-notes-plugin, and I think gedit. It was the concept of tabs, not the appearance. None of them looked that much like the tab on a manilla file folder.
In the obscure ui choices department, I am that weirdo who uses openbsd as a desktop system, At one point not thinking I did ctrl+a in a firefox textentry and much to my surprise it did the right thing and moved the cursor to the beginning of the line.
I had no idea using unix vs windows cursor movement was even an option, because linux never picks the correct method, Still have no clue how it is set(a gtk option? but qt apps are set the same.) But salutes to whatever obsd porter picked it, really made my day.
macOS supports emacs-like bindings natively: Ctrl-A/Ctrl-E for line start/end, Ctrl-K to kill, Ctrl-Y to yank, Ctrl-F/Ctrl-B for forward/back, etc.
They are defined in /System/Library/Frameworks/AppKit.framework/Resources/StandardKeyBinding.dict. You can create ~/Library/KeyBindings/DefaultKeyBinding.dict to augment or override those.
Anything built on AppKit that uses the standard text system (NSTextView, NSTextField, and the field editors that back them) supports those bindings “for free”.
For non-native apps, Karabiner Elements⁽¹⁾ is the answer, using a config like this⁽²⁾.
⁽¹⁾ https://karabiner-elements.pqrs.org/
⁽²⁾ https://github.com/pdelfino/karabiner-config
GNOME:
or GTK:
I have it enabled but it can be very confusing: depending on whether you're in a text field or not, in say a browser, ^W will mean delete word or close tab. And sure enough closing a tab will sometimes but not always focus the URL box of the previous tab.
There used to be an obscure internal GTK setting to properly separate control plane from command plane like on (then named) Mac OS X but IIRC it's long gone / hardcoded to only GTK on macOS.
EDIT: Found it, GTK up to 3 had proper <Primary> vs <Control>. In what I would consider to be a fatal regression, GTK 4 just aliases <Control> and <Primary>, leaving the apps to do the work.
https://gaphor.org/2022/12/10/gtk4-macos-keybindings/
> In what I would consider to be a fatal regression, GTK 4 just aliases <Control> and <Primary>, leaving the apps to do the work.
Gtk4 makes some many dumb decisions, that I always code new programs against Gtk3. They also deleted so many useful widgets and essentially said "We don't care implement it yourself". I can't afford my programs to become unusable just because they completely lost the plot, so I intend to keep using Gtk3 forever.
Ctrl+a to carriage return the cursor seems work universally everywhere on a Mac. It even works on Microsoft products, incredible coming from the company that poorly reinvents everything and completely disrespects the default behaviors.
I always find this curious, is readline implemented at the hardware level or something? There’s just no effing way that was a priority ticket on Microsoft Teams given all the obnoxious weirdness of their chat text field.
And bizarrely, ctrl+k, ctrl+w, and ctrl+e are more seldom. Maybe 50-50 chance for those. But trusty ctrl+a is always there.
I have been using Linux / GNOME as my primary environment for the last 20 years, but at my current job, that was not an option, so I'm on macOS.
I tried for a week to get used to the unfamiliar key bindings for text input, but then I gave up—I'm a vim user after all!—and found a system setting to use the bindings I am more familiar with. This was picked up by many applications, but notably _not_ by the Microsoft suite, which appears to have the default macOS bindings hard coded...
To me Ctrl+A was always "Select All", and it worked reliably on every system I had (except once when at my office I had a computer with unix bindings and the administrator told me he can't change them so I only used my laptop).
It’s an OS level thing (well, OS + standard widget library). As long as the app is using a native macOS text field, the OS has (and has since I think the first versions of osx) support for basic emacs movement keys, no extra effort on the app developers part.
> because linux never picks the correct method
Because linux is not an operating system. A specific operating system will have some specific behaviour.
Another surprise was discovering that Ctrl-J adds a newline in Claude Code. I'm fairly certain this is a feature of the environment, not CC, but it works everywhere I've tried it. KDE Konsole on Debian.
It's the Carret Notation: https://en.wikipedia.org/wiki/Caret_notation
That's because C-J IS ANSI Carriage Return. It's basically the absence of any special treatment.
3 replies →
I don’t have any resources but this is fascinating to read about, thanks for sharing! So many things we just assume make sense which really don’t.
Their misunderstanding of not being able to hover their cursor over something and interact using the keyboard honestly has me wondering why I thought the real way was intuitive, their logic there makes sense
> have been helping someone who has little experience with Windows or Mac, but used DOS for years ( until pretty recently ) ...
The year is 2026. Who the heck has been using DOS (!?) until "pretty recently"? On what machine?
A school teacher at a small charter school, teaching various levels of math and a few foreign languages. This person was pretty technically proficient - they used a linux to access the web, but it was set up to boot a browser in to full-screen kiosk mode, and they pretty much just searched webpages and printed things out sometimes, no email really.
The DOS was DRDOS 7.22, and it was very elaborately set up -- it boots from a CDROM or USB flash disk as a live disk. On the disk is every assignment, homework, or test for any of the various courses he taught, carefully organized. They are in WordPerfect 5.1 with a few graphics in another program, and a graphing ( as in X-Y cartesian plots ) program also, all ancient freeware DOS. The three programs come up instantly on boot in different terminate-and-stay-resident screens, that you switch to with a control-alt combo, very like switching terminals in text mode linux.
This meant he could take a CDROM to school, pop it in the horibly slow and ad-laden windows computer some government program had given the school for free, boot, disconnect the printer from the network to the constarnation of other teachers and plug in a USB cable, and print his assignments, and never bring back viruses. The students when they learned of this situation would search out old viruses on the web and try to infect everything.
But using windows and mac was pretty limited to a little bit of browsing, and occasionally going to a dedicated machine with the right program already set up, to enter grades and time sheets and etc.
Well, not really DOS, but company where I did migration (15+ years ago) from 4GL and AIX to Linux and Aubit 4GL did exactly that. They all used HyperTerminal (after me, putty) to connect and start all sorts of apps, think, SQL AND UI at the same time, terminal apps, with keyboard shortcuts that MUST be exactly the same, otherwise you would have mutiny.
They are sold a few years ago, new owner just needs a good (and huge) location in the city, if they continued, nothing would change for people working there. They saw Windows as something just for minesweeper and solitaire, nothing else.
My travel agent wife was unhappy when they GUIfied Sabre. Luckily there was enough complaints they brought back some terminal access/shortcuts for the ‘advanced’ users…
Maybe the GP is friends with George RR Martin.
This is perhaps an indirect confirmation that The Winds of Winter is back on track.
I'm still using DOS to control a galvo-steered LASER animation system from 30 years ago. 133MHz Pentium, non-MMX, 16MB RAM, 16MB Voodoo3.
> Who the heck has been using DOS (!?) until "pretty recently"? On what machine?
Not "DOS" in the classical sense, but a good corporate travel agent will probably spend the majority of their day in Amadeus or Sabre on a terminal emulator app - and be much, MUCH faster than clicking around in web portals.
Yes I don't disagree... Up to not long ago I knew employees at at least one bank still having one DOS app to navigate between customers' bank accounts (with all the family links / various accounts) and it was fast and quick.
But that's quite different from "someone using only DOS up to only 2026".