4 ms·
So do shift, control, and function, in these same contexts. Like these modifier keys, Option's primary function isn't "switching the function of other keys".
by SeanLuke 3y ago
So do shift, control, and function, in these same contexts. Like these modifier keys, Option's primary function isn't "switching the function of other keys". Its primary function is, and always has been, as a secondary shift key for entering text.
- derefr 3y ago"Secondary shift key" is a bad model for it, though; the Shift key has a very specific meaning (ever since typewriters): it temporarily shifts an imaginary "selector" within the keymap matrix between the lower-case vs upper-case "rows" of the keymap; with the aim that it should be either intuitive or visually evident on the keyboard, what the "upper-case equivalent" of a given lower-case character is. Option in its AltGr ("Alternative Graphics"!) form doesn't do anything so intuitive; the symbols it gives you have no clear relation to your keymap, and often aren't printed on the keys, either. This is because Option/AltGr comes from an entirely different heritage and thought process. IIRC, way back when, there were actually electromechanical typewriters with support for loading in two fonts — two separate literal matrixes of letterpress metal glyphs. I think some of the later IBM Selectrics (the ones that have the font on a "ball" and rotate it around to select the glyph) could do this. These had an AltGr-Lock kind of key, that would switch the active font — literally juggling the balls around inside the typewriter. Some would use this to just switch between e.g. roman vs italic fonts within the same font family; or to switch between "compatible" font families from the same type foundry, where the same glyphs occur in the same positions. But others, working in multi-language environments, would use this to quickly switch between fonts of font-families designed for entirely different scripts. You could have a latin-script font loaded in as primary, and a greek-script or cyrillic-script font loaded in as secondary. Obviously, in these cases, the glyphs on your keyboard would only be accurate for (at most!) one of the languages you're using. You'd just have to touch-type the other. Computer Option/AltGr keys, when they were invented, did essentially the digital version of the same thing. They weren't for selecting different glyphs from a single coherent glyph-set; rather, they were for momentarily switching between a primary and secondary glyph-set, that have nothing to do with one-another and might actually have many redundant glyphs between them. This was a result of PC hardware OEMs doing customer discovery for addressable markets, and finding that many markets either had one dominant language with a lot of characters; or ~two dominant languages, each with not-that-many characters. This in turn resulted in two alternate realities, where which reality you experienced depended on your market: 1. The evolution of computers that shipped with an OS with a single built-in "code page" that was a fixed combination of a primary and secondary script into a single 8-bit repertoire; with a keyboard layout where AltGr would be a momentary switch to let you type characters from the secondary script; and where characters from both scripts could be on screen at once, as they were actually all part of the same page; and 2. the evolution of computers that shipped with an OS with multiple supported "code pages", where each code-page was entirely dedicated to a single script; and where some key combination would allow you to switch the active code page for the entire OS (possibly restarting the shell in the process.) This would allow you to alternatively work on documents in multiple different scripts, but never to combine scripts in a single document†. Computers in these markets didn't get an AltGr key. † Unless one of the scripts did something very clever, like Shift-JIS did: the "Shift" in the name is to indicate that, somewhat like UCS-2, all the thousands of two-byte https://en.wikipedia.org/wiki/JIS_X_0208 https://en.wikipedia.org/wiki/JIS_X_0208 characters are encoded using only surrogates from the upper 128 slots of the SJIS code page — leaving the lower 128 free to be a (rough) mirror of ASCII.
- SeanLuke 3y agoUnlike AltGr, the option key didn't just define alternate code pages. It also was employed in a scheme by which you could add accents to a variety of characters: for example, option-i, then u, would make û, and option-i, then o, would make ô. The Mac/Lisa had its own high-bit ASCII codemap four years before Latin-1 came into being. The original Mac also came with a special piece of overlay software -- the keyboard viewer -- which still exists on MacOS 40 years later and which was used to display the current keystates and mechanisms for creating accents.