Term-keys – Lossless keyboard input for Emacs

Finally make every shortcut count—fans cheer, Mac users side‑eye

TLDR: Term-keys promises reliable shortcuts for Emacs in terminal apps by custom-encoding every key combo. Commenters are intrigued but wary: one asks for real examples, while a Mac/Colemak veteran recalls years of pain and still retreats to the GUI—hopeful, but bracing for setup friction.

Emacs die‑hards are buzzing over term‑keys, a new package promising lossless keyboard input—meaning your wild key combos won’t get lost in the terminal. It teaches terminals to understand every mash‑up of keys and modifiers, across a buffet of apps like kitty, wezterm, Alacritty, Konsole, macOS Terminal and more. Setup is simple in theory—install via term-keys package and flip it on—then tame your terminal. In practice, the community mood is… cautiously thirsty.

Top comment vibes: one fan admits, “this feels like something I want,” but begs for examples before daring to remap their life. Over in Mac land, a veteran confesses a decade of trying to make terminal Emacs play nice with their “litany of weird keybindings,” then crawling back to the GUI every time. That’s the drama: terminal purists vs. GUI refugees, with Colemak switchers reliving the “muscle-memory wipe” like a keyboard horror flick.

There’s hype for the promise—no more missing Ctrl+Shift+Alt combos, no more mysterious key loss—yet a chorus warns that configuration might be a mini‑boss fight: you touch Emacs, term‑keys, and your terminal, and you repeat it whenever you tweak. The memes write themselves: “Ctrl+Shift+Alt+Hope.” If it delivers, this could be the editor power‑user’s endgame; if not, back to clicking icons.

Key Points

  • term-keys gives Emacs lossless keyboard input in terminals by uniquely encoding key/modifier combinations.
  • Installation requires adding the author’s ELPA archive and installing term-keys via standard package tools.
  • Setup involves configuring Emacs, optionally configuring term-keys, and configuring the terminal emulator.
  • The package is customizable via Emacs’ customize interface; supported key sets are defined via a function hook.
  • Configuration instructions are provided for many terminals (e.g., urxvt, xterm, kitty, wezterm, Alacritty, Konsole, macOS/Windows Terminal), and terminal settings must be updated when term-keys config changes.

Hottest takes

"This feels like something I want but it's hard to be sure" — wild_egg
"So many times over the last decade I’ve journeyed to get terminal Emacs working... But I always end up back in the GUI" — jsw
"I switched to Colemak... I don’t recommend this in hindsight" — jsw
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.