Hacker News new | past | comments | ask | show | jobs | submit login
A Mathematical Keyboard Layout (2018) (terathon.com)
76 points by susam on April 4, 2021 | hide | past | favorite | 50 comments



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 → ℝ

- :infinity → ∞

- :neq → ≠

- :pm → ±

[1]: https://github.com/federico-terzi/espanso


Thank you for having let me discover Espanso, it's exactly what I needed!


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.


Are you using a custom `.compose` in your home? If so, doesn't it incur delay in other xkb functionalities (loading a custom file from ~)

How do you type ∂ (Unicode: U+2202)?


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.

Of course you HAVE already turned on your Windows 10 clipboard history, RIGHT? ;) https://www.howtogeek.com/671222/how-to-enable-and-use-clipb...


There is an implementation of xcompose for windows. I think it's called 'wincompose' or something like that.


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/


Ukelele is one of those amazing apps that you love more the less you use it. I've been using this keyboard as my daily driver since 2007:

https://github.com/2grep/ScienceNotes



Get the real deal: https://www.pckeyboard.com

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

The trackball Unicomp is IMO the best keyboard being manufactured (right now they are out of stock until Q3 2021): https://www.pckeyboard.com/page/category/ClassicTrackball

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?


Depending on your version of MacOS, I'd recommend Karabiner-Elements for remapping: https://karabiner-elements.pqrs.org/


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.

[0] https://github.com/bradrn/Conkey

[1] https://github.com/akamchinjir/osxkb


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/


> Are there other custom-printed keyboard companies I should consider?

Get a clear or white keyboard cover. As a last resort spray paint one white.


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:

https://github.com/ibus/ibus (example: https://github.com/sphaerophoria/ibus-memebox) https://github.com/fdw/rofimoji/

Hopefully at some point I'll find the time to adapt them to my purposes.


The new official French AZERTY standard is pretty good too :

http://norme-azerty.fr/en/

Hopefully the various administrations will start to push it to replace old keyboards...

There's also a BÉPO version, which would have been even better, but I guess that would be too much inertia to fight?


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.


(Ctrl+Alt is a lot better than nothing, but it more or less forces you to move your hand off the home row, which is pretty undesirable.)


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 ç


That's because those are extremely common in French.

Also why ç was moved to C, since it's much less common.

And now since you can do both of these methods, you can finally write upper case properly in French on Windows !


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.

Can you confirm?


Not strictly zero :

https://www.ldlc.com/fiche/PB00279741.html

Also I think that Cherry made some ?

But of course, until the State will start enforcing the norm, it will remain an amateur-only thing.


[flagged]


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.

https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...


Thanks. I killed it. Sorry for all the troubles I caused (especially that bug that caused it to make the same comment every minute).

I wrote a run down/post mortem at https://news.ycombinator.com/item?id=26693882 :)


Hmm, weird that Firefox just landed me on the http version by default??


You can use an add-on like HTTPZ[1] to load HTTPS versions of sites automatically.

[1]: https://addons.mozilla.org/firefox/addon/httpz/


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.


Thank you for the feedback. I added FAQ to the README and answered this question: https://github.com/fishy/https-bot/blob/main/README.md#this-...


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.


Could be done with qmk and any mechanical keyboard supporting it (and much more but it is common to hear about people having a vim layer).


There's Programmer Dvorak with dedicated keys for ";", "{", "}", "[" and more.


What advantage would this have over snippets?


C-x-8-RET has been most useful to me for unicode maths symbols.

Having said that, I have a layer on my keyboard dedicated to APL symbols. I highly recommend QMK keyboards for shennanigans like these


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.

New link is here: https://www.microsoft.com/en-us/download/details.aspx?id=102... Remember to turn on windows features for old .NET before you install MSKLC


> 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?


Compare the following two examples:

5 − 2 = 3

5 - 2 = 3

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 "&minus;" 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.)


> I wonder what the difference is.

A properly rendered minus is identical to the horizontal stroke of a plus (whereas hyphen is frequently shorter and/or incorrectly vertically aligned).


I guess a possibility would also be to use one of these https://ergodox-ez.com/. They allow quite some customization.


no division symbol ÷ ?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: