Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    P

    Precondition

    precondition.github.io · Personal blog · on HN since 2021

    Precondition writes about keyboard customization, including home row mods, thumb key layouts, and QMK heatmaps.

    Visit blogHN submissions
    Hardware & ElectronicsProductivity
    What HN says

    HN commenters recommend its home row mods guide to people with ergonomic keyboard problems who are willing to remap keys.

    Stats for nerds
    23HN people shared it
    13linked in comments
    35story points
    Jun 2026last shared
    2022people per year2026

    Top posts on HN

    1. 1
      A guide to Home Row Mods
      21 people · 31 points · first shared 2021 · 1 comments on HN
    2. 2
      Pressing E with the Thumb? (2020)
      1 person · 4 points · first shared 2025 · Discussion on HN
    3. 3
      Qmk heatmap
      1 person · first shared 2024

    What HN people wrote when they linked it

    • ConscatMay 2023

      By default in Emacs, `M-x` is analogous to Ctrl+Shift+p. Most users like a vertical completion candidate interface for it, such as the `vertico.el` package (among very very many other options). You can even get it in the middle of the screen with the `posframe.el` package.

      Emacs comes with `cua-mode`, which provides some more modern conventions like `C-s` to save, `C-o` to open files, etc., however most users find that the default system does make sense once you learn it. `C-c`, `C-u`, and `C-x` prefixes have very consistent meanings by default across all major modes, and by convention across basically all elisp packages.

      I don't use QWERTY, so I find the rebinder package very useful (https://github.com/darkstego/rebinder.el), but I think it can improve the ergonomics of those prefixes across any keyboard layout. My equivalents to `C-x` and `C-u` are on my home-row. I also use home-row mods (https://precondition.github.io/home-row-mods) which make the feel of interacting with Emacs very smooth.

      Keybinding discovery is also very easy between the `C-h` family, The `which-key.el` package, and the `helpful.el` package. The `M-x` menu also shows keybindings, even by default.

      What's really nice about Emacs is that changing keybindings is very easy, and between hooks, advices, and modes, the keybindings and their behavior are incredibly flexible.

    • zubairshaikApr 2024

      For a full size keyboard, I'd highly recommend the Glove80 [0] instead. For something more compact and portable, look at ZSA's own Voyager [1].

      The reason I'd recommend the Glove80 is because a keywell is just so much nicer to type on, especially if you want to actually be able to use the number row without straining your fingers. Their thumb cluster is also the most sane one that I've come across, and the absolute though put into the design is astounding and commendable [2]. The article is definitely worth a read.

      I recommend the Voyager especially if you are a believer in 1DFH (1-distance-from-home)[3]. It has very few keys so you'll have to learn about layers [4] and/or home-row mods[5] or my favorite callum-style mods [6].

      [0] https://www.moergo.com/

      [1] https://www.zsa.io/voyager/

      [2] https://www.moergo.com/pages/glove80-ergonomic-keyboard-design-journey-1

      [3] https://zealot.hu/absolem/

      [4] https://blog.zsa.io/layers-explained/

      [5] https://precondition.github.io/home-row-mods

      [6] https://github.com/callum-oakley/qmk_firmware/tree/master/users/callum

    • bramhaagFeb 2026

      A split keyboard might still bring you some relief. Modifiers/enter/backspace/etc are usually moved away from your weakest fingers (pinkies) to your strongest (thumbs). I have Ctrl, Alt, backspace, delete, space, enter and shift all on my thumb clusters.

      Here's an example of what that might look like: https://kinesis-ergo.com/wp-content/uploads/KB360-GBR_FRONT-2000x1205-1.jpg (though in the default configuration, shift is still on your pinky; you can customize this on most keyboards, or on OS level).

      The rabbit hole goes very deep. Another option is home row mods: https://precondition.github.io/home-row-mods. A combination of thumb clusters and home row mods can reduce your finger strain a lot.

    • estearumNov 2025

      Other symbols don't appear on the keycaps just like there's only an upper or a lowercase letter on each key on your keyboard. Your keyboard also doesn't tell you there's ¶ or ‡ underneath the 7 key!

      Layers sound pretty crazy but if you start slow and adapt towards them, they're just amazingly useful.

      Putting all your modifier keys on the homerow is probably the most immediately understandable use of layers: https://precondition.github.io/home-row-mods

      These let you type every character/key combo without awkward pinky stretches.

      A somewhat bespoke layer usecase that I find valuable as a programmer is holding "S" on my left hand sets characters hjkl; to the open-surround characters like ({[<

    • __sJun 2026

      I've switched to programmable ergo keyboards where there's a whole slew of options (https://precondition.github.io/home-row-mods just covers home row mods)

      I've always hated stateful control. Always ripped out caps lock key from my boards (or later figured out remapping), same for insert mode

      That's carried over, even with options like one shot mods, & cutting down to under 40 keys (& playing with 28, yesterday received a https://github.com/kilipan/zilpzalp), I still don't find stateful control necessary. More layers, combos, & tap-hold go far

    • heatmiserNov 2023

      Knowing that I have my hardware "doing what it says" removes a meaningful amount of mental overhead from the equation. I recently switched to homerow modifiers[0] and it was nice to have that done seamlessly across all of my devices by only having to connect my keyboard.

      [0]: https://precondition.github.io/home-row-mods

    Related

    Nayukinayuki.io90 people

    Creating a QR Code step by step

    Nayuki
    Personal · last shared 2026
    Agner Fogagner.org293 people

    An optimization guide for assembly programmers and compiler makers (2018) [pdf]

    Agner Fog
    Personal · last shared 2026
    Xah Leeergoemacs.org73 people

    Using Voice to Code Faster than Keyboard

    Xah Lee
    Personal · last shared 2021
    Red Blob Gamesredblobgames.com199 people

    Hexagonal grids for games

    Red Blob Games
    Personal · last shared 2026
    PyPy Blogmorepypy.blogspot.com242 people

    Let's Remove the Global Interpreter Lock

    PyPy Blog
    Company · last shared 2024
    Minuum Blogminuum.com17 people

    Model Your Users: Algorithms Behind the Minuum Keyboard

    Minuum Blog
    Company · last shared 2026
    Oleg Kiselyovokmij.org251 people

    How the OCaml type checker works (2022)

    Oleg Kiselyov
    Personal · last shared 2026
    Keyboard Builders' Digestkbd.news27 people

    The story of Signature Plastics

    Keyboard Builders' Digest
    Publication · last shared 2026