The older neo keyboard layout and its newer variants like bone (https://neo-layout.org/Layouts/bone) follow a similar approach to provide more symbols, and they're additionally optimized for typing.
These layouts provide several additional layers which give easy access to ASCII special characters, greek letters and frequently used math symbols.
Also there is layer 4, which is pure gold in itself. It provides cursor movement keys, backspace, enter and a numpad close to your home position. I personally couldn't go back once I had tried it.
(Beware that these layouts include the umlauts äöüß as they were designed for german writing, and make use of the additional key for '<' in the lower left corner of german keyboards)
Very cool that the author had a custom keyboard made with their keymap printed on it.
Personally I like being able to type math symbols on occasion but don't do so often enough to benefit from a custom keyboard layout that I'd then have to memorize. I didn't have a good way to do this until about a year ago, when I learned about Espanso [1] which is a cross-platform text expander. I installed it and set it up to substitute various (vaguely LaTeX-inspired) macros to UTF-8 strings. For example, typing the following keystrokes
x = R cos(:phi) sin(:lambda :minus :lambda:nought)
becomes x = R cos(φ) sin(λ − λ₀)
I chose ':' as a prefix for all my macros but this is just a self-enforced convention; you can configure a substitution for any sequence of keystrokes. Since I gave all the characters names that made sense to me, I don't have to think much when I type them.
A few of the substitutions I get the most mileage out of:
- The Greek alphabet, both upper and lowercase (:theta → θ and :Omega → Ω)
- Double-struck letters for numerical sets; e.g. :RR → ℝ
I do something similar with espanso on Linux, but I chose / instead of :, and my commands are mostly Latex commands. On Windows I do it with AutoHotKey. I have superscript and subscript numbers too.
Nice. An alternative is to use a Compose key. I have Caps Lock mapped to Compose, and for example Compose-g-D yields “Δ” (“greek D”) and Compose-<-= yields “≤”, etc.
I use WinCompose (on Windows 10) with a custom .XCompose file. I don’t use ∂, but if I would I’d probably bind it to Compose-p-d for “partial differential”. The default bindings are Compose-Compose-p-a-r-t and Compose-*-.-.-d, which isn’t very convenient.
I use the Compose file for this as well, in addition to configuring a “dead Greek” key for quick access to the Greek αλφαβετ. I even have a few phrases, such as my email address, in there: works everywhere, from my editor to text boxes on websites. There are no delays.
On Win10 the quick and dirty solution is to select a character on its own, copy it to the clipboard, then, in your clipboard history, pin that particular selection. Nearly every time you use it you'll have to scroll to the bottom of your clipboard history and then probably back up again a bit, but that's not all that bad.
Oh yes, undoubtedly there are more sophisticated fixes. This is just the minimum-effort, stock approach, which should hopefully also be robust and widely compatible.
I like the approach that the AUCTeX and/or CDLaTeX modes in emacs take: if I want Greek letters or math symbols, I hit the backtick, then the mnemonic or binding for the Greek symbol/operator I want. I know you can’t extend this to Twitter or something, but I would never want to anyway.
(https://ftp.gnu.org/gnu/auctex/11.88-extra/tex-ref.pdf)
Some nice symbol selection here. It’s a great thing to customize your keyboard layout. On the Mac side, there’s a nice tool called Ukelele: https://software.sil.org/ukelele/
You can get an APL keycap set for your existing Unicomp keyboard, or do a custom order for any of their models. They will even print you custom keycap sets: https://www.pckeyboard.com/page/category/Buttons
Buckling spring is just a superior (although less durable) key switch technology than the Honeywell switches used in Symbolics keyboards (and most other keyboard switch mechanisms as well). One thing that the Symbolics keyboards did right is having both the APL and Greek legends on keycaps.
But none of this matters if you do not have the right software. GNU Emacs greek and TeX input-methods, and the C-x 8 iso-transl keymap (which you can extend) makes writing mathematical symbols really easy.
This has inspired me to try to make my own custom keyboard. Does anyone know of a good keyboard remapping tool for the Mac? I have BetterTouchTool, but I've found it's not reliable on my machine. (And probably other people's machines, which is why it includes a "Restart" option in its menu.)
I like the keyboard company the article links to, but the keyboards it offers don't have the full range of function keys that macOS supports (It's four short). Are there other custom-printed keyboard companies I should consider?
To port my keyboard layout [0] to OSX, I used ‘osxkb’ [1], which outputs an OSX keyboard layout bundle given a simple textual specification file. It was originally created specifically to port Conkey to OSX, but should be entirely usable for other purposes as well.
If you want to do something like the article, with a custom layout (e.g. defining characters for Option and Shift+Option), then what you want (as hyperjeff mentioned above) is Ukelele https://software.sil.org/ukelele/
I wrote myself a very similar keyboard layout a while ago: https://github.com/bradrn/Conkey. It differs in being primarily oriented towards linguistics rather than maths, but I’ve ended up being able to type almost a superset of the same symbols that this one allows. Aside from this, the main difference appears to be that Lengyel’s keyboard layout is more ergonomic, at the cost of allowing less symbols.
I wrote myself a small plugin for Sublime Text that allows me to enter common math symbols as unicode characters by virtue of a selection popup. So, for instance, I hit Ctrl+m, type "subs" (for subset – it does fuzzy matching), hit enter et voilà, I get "⊂". Finally, math in LaTeX is no longer a pain to read!
While it works very nicely, it's of course unavailable outside Sublime, so I've been looking for alternatives and came across the following projects:
It seems impressive in general. But are users still going to be stuck with the awful pox that is an important hold-to-use modifier key, Alt Gr, that appears on only one side of the spacebar? All this statistical analysis and the result is another layout which is deeply incompatible with proper touch-typing?
Well, that would require even more radical keyboard layout changes I guess ?
And I assume that less common characters have been put there ?
But I assume that you're talking about {}, which some programmers use quite frequently, and which are still locked behind AltGr, though in a better position than before?
(Also, there's always Alt+Ctrl, though it's certainly not ideal either...)
I'm talking about the fact that there's only one Alt Gr, on the right of the spacebar, but many characters behind an Alt Gr modifier on the right-hand side of the keyboard. You can't type any of those characters using the correct form for touch-typing, which is to hold the modifier key with one hand while pressing the letter key with the other.
Seems weird to have specific keys for à é è when you could just combine them e.g. '+a '+e as is the case in the US international keyboards. Ditto for ç
I have friends in Europe, and they told me there is ZERO commercial availability: they can't pay Dell, Lenovo, HP ... to get desktops or laptops with that layout.
I appreciate the positive intention but please don't do this. We generally don't allow bots to post to HN because signal/noise ratio goes down under this sort of repetition.
A stricter version of this (which I prefer) is baked into latest Firefox: Tick Enable HTTPS-Only Mode in all windows at the bottom of about:preferences#privacy. It upgrades to HTTPS whenever available, and otherwise shows you a warning that you're about to load an unsecured HTTP site.
What about a keyboard layout for programming? Dedicated keys for “if”, “for”, parentheses, braces, etc? This can’t be that hard to set up, there must be plugins in Vim, Emacs, and others.
interesting, the "Microsoft Keyboard Layout Creator" MSKLC seems to be moved, I just downloaded it one month ago to setup US English Internaitional to be identical as what is found on linux.
> I can’t stand using a hyphen to mean negative or subtract
I wonder what the difference is. Maybe in unicode one is slightly longer than the other, but at the end of the day, aren't they both just a horizontal line?
The first one is correct. It contains the Unicode character 'MINUS SIGN' (U+2212). The second contains the Unicode character 'HYPHEN-MINUS' (U+002D) which is not suitable for representing the minus sign in mathematical typesetting.
Also, see https://i.imgur.com/ngFI3JB.png for a few examples typeset with MathJax. The first example has a proper minus sign (correct) whereas the second one contains a hyphen (incorrect). By the way, in plain HTML, the character entity reference "−" displays the minus sign, although I just use MathJax when proper mathematics typesetting is required in HTML pages.
In proportional fonts, the minus sign is significantly longer and usually slightly higher and thinner than the hyphen (so it lines up with the horizontal bar of the + sign). If you’re used to it, it looks much better than a hyphen. (Similar to using real quotation marks instead of the straight ones etc.)
A properly rendered minus is identical to the horizontal stroke of a plus (whereas hyphen is frequently shorter and/or incorrectly vertically aligned).
These layouts provide several additional layers which give easy access to ASCII special characters, greek letters and frequently used math symbols.
Also there is layer 4, which is pure gold in itself. It provides cursor movement keys, backspace, enter and a numpad close to your home position. I personally couldn't go back once I had tried it.
(Beware that these layouts include the umlauts äöüß as they were designed for german writing, and make use of the additional key for '<' in the lower left corner of german keyboards)