Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    321comments
  2. Science Is Open Software(jepedersen.dk ↗)
    15comments
  3. SDCC – Small Device C Compiler(sourceforge.net ↗)
    6comments
  4. Cloudflare Quick Tunnels(cloudflare.com ↗)
    262comments
  5. Saving another 100TB of RAM(cloudflare.com ↗)
    57comments
  6. How to Write with an LLM(sockpuppet.org ↗)
    293comments
  7. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    10comments
  8. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    67comments
  9. Xcode 27.1 Beta Release Notes(developer.apple.com ↗)
    75comments
  10. Show HN: LiveWorld – Every 24/7 YouTube live camera on one globe(liveworld.info ↗)
    31comments
  11. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    79comments
  12. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    80comments
  13. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    61comments
  14. OpenJev(openjev.com ↗)
    249comments
  15. The Farnese letter(simonklee.dk ↗)
    5comments
  16. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    12comments
  17. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    discuss
  18. Claude Code now reads AGENTS.md if there is no Claude.md(claude.com ↗)
    204comments
  19. Minimal Phone 2(minimalcompany.com ↗)
    199comments
  20. LispBM is a concurrent Lisp for microcontrollers with message passing(lispbm.com ↗)
    2comments
  21. Cyclomatic Complexity in C#(ndepend.com ↗)
    15comments
  22. Goroutine Leak Profiles(go.dev ↗)
    discuss
  23. Alibaba open-sources AI model that can detect cancer and nearly 150 conditions(scmp.com ↗)
    8comments
  24. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    38comments
  25. How SpaceX streamlined the Raptor engine(construction-physics.com ↗)
    52comments
  26. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    94comments
  27. Two parallel neural ectoderm progenitors contribute to the developing brain(newscientist.com ↗)
    60comments
  28. The Implications of Linguistic Illegibility for LLM Security(arxiv.org ↗)
    22comments
  29. C++26: Trivial infinite loops are no longer undefined behaviour(sandordargo.com ↗)
    214comments
  30. Flock Offers Employees Buyouts as Customers Flee(wired.com ↗)
    1comments

A Mathematical Keyboard Layout (2018)

76 pointsby 5y agoterathon.com
44 comments
5y agoHN ↗

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?

5y agoHN ↗

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.)

5y agoHN ↗

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 "−" displays the minus sign, although I just use MathJax when proper mathematics typesetting is required in HTML pages.

5y agoHN ↗

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).

5y agoHN ↗

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)

5y agoHN ↗

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.

5y agoHN ↗

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

5y agoHN ↗

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.

5y agoHN ↗

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.

5y agoHN ↗

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

5y agoHN ↗

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

5y agoHN ↗

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.

5y agoHN ↗

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?

5y agoHN ↗

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.

5y agoHN ↗

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/

5y agoHN ↗

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.

5y agoHN ↗

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

5y agoHN ↗

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.

5y agoHN ↗

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).

5y agoHN ↗

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

5y agoHN ↗

What advantage would this have over snippets?

5y agoHN ↗

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?

5y agoHN ↗

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 ç

5y agoHN ↗

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 !

5y agoHN ↗

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?

5y agoHN ↗

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?

5y agoHN ↗

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...)

5y agoHN ↗

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.

5y agoHN ↗

(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.)

5y agoHN ↗

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.

5y agoHN ↗

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)

5y agoHN ↗

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

5y agoHN ↗

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.

5y agoHN ↗

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

5y agoHN ↗

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.