reddit / emacs

Is there an emacs mechanical keyboard exists?

madahadamahu · 2022-04-16 02:43
There is a Vim mechanical keyboard in the market: https://preview.redd.it/pwg8c8k50tt81.jpg?width=1600&format=pjpg&auto=webp&s=14f5cb2faa41ed0287c4a1a12b9d7c0904f72db1 It is selling on WASD: [VIM by Skeletor 61-Key Custom Mechanical Keyboard](https://www.wasdkeyboards.com/vim-by-skeletor-61-key-custom-mechanical-keyboard.html) I didn't find a type for emacs. Is there a good product like the picture above?
CochinoChingon · 2022-04-16 02:54
Considering that Emacs uses chords, I think it'd be near impossible to have a keyboard layout that could show something similar.
lexarcana1 · 2022-04-16 03:00
The [Key64 keyboard](https://www.key64.org), the predecessor of the Ergodox (which has spawned an enormous number of descendants) was designed specifically to work with emacs. All of these keyboards are great for emacs. For instance, on my original Ergodox, I have Meta and Control on my thumbs, with Alt and Hyper on my index fingers. Not only no emacs pinky, it is actually a pleasure to type `C-` and `H-`combinations. If you specifically want labeled keycaps, then you are probably out of luck. While you may be able to set up a group buy, the sheer variety of keybinding customization that you see in this sub likely indicates that there is insufficient common non-evil keybindings to justify a group buy.
[deleted] · 2022-04-16 03:51
[removed]
ambirdsall · 2022-04-16 05:07
Seriously. How could you possibly label keycaps in a way that can coherently remind you about, say, `C-x u` vs `C-x C-c` vs `C-c C-c` vs `C-M-f` vs...
publicvoit · 2022-04-16 06:19
For the reasons already posted here, I also don't think that such a print would make any sense for Emacs. If you're looking for a flexible keyboard that supports an user of GNU Emacs (and all other software tools) in an ergonomic way, I'd recommend [Kinesis Advantage keyboard such as the version 2](https://karl-voit.at/2021/05/23/advantage2-modifications/).
madahadamahu · 2022-04-16 07:46
Just for basic usage: https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf
AuroraDraco · 2022-04-16 08:25
Damn, this keyboard actually looks pretty good
onetom · 2022-04-16 10:48
something happened to the key64.org site, but here is a version of it from 2019: https://web.archive.org/web/20190501020156/https://www.key64.org/
Lucius_Martius · 2022-04-16 11:37
There's also the [Keymacs](https://keymacs.com/) keyboard.
ftrx · 2022-04-16 11:58
I struggle since years finding a good keyboard, it's not just a matter of keycaps: most modern keyboards are crap made by ignorance and pushed by blind economics. Not joking, not an insult: modern keyboards are designed to be or equal to the most classic IBM QWERTY *regularly adding useless keys* and missing many useful keys or a race to reduce OEM costs selling smaller and smaller keyboards a "excellent space-saving super-engineered devices" while they are just an effort to reduce their cost and justify a super-overprice. The most effective keyboard IMO and IME is a key a function so not just 15 function keys, where three are mostly branded to useless insert/scroll lock/pause|print keys but MANY functions keys, AT LEAST a left side keypad like the one on the right and two function keys rows. Since today it's *extremely* cheap instead of wasting money and endangering and annoying users with super-big crapware a simple flash storage built-in in the keyboard with a read-only/read-write/restore to default button and a damn config file + docs on it, a simplified xmodmap style one, one key per row, columns to program the meaning of that key, nothing more, nothing less. An OPTIONAL slick GUI can be offered for dummies. No "service" (daemon), kernel module (driver) etc needed. Optional keycap printing service, optional cheap transparent pre-cutted, user-printable stinkers for laser and inkjet printers to easy key customization. Ended the rant... My Emacs keyboard actually il a classic Unicomp PC122 (formerly IBM battlecruiser) witch have a bit of keys, unfortunately in the USB version too many are just copies. Similarly function key from 13 to 24 are just shift+F1-12... Yama K550 (crappy programmable keys since they insert keypress delay in sequence), Logitech G910 (usable with a kernel module + a python daemon + another to handle backlit) are others I've used without much satisfaction. Cloud Nine C989M could be an option but it's a cheap plastic membrane keyboard not suited to an Emacser IMO. For those reasons I say "that's no Emacs keyboard" and not really Vim ones... In the past we have had few but are long gone... People do not know how to use a keyboard, producer just want consuming consumers not people who produce content with their hands so...
ftrx · 2022-04-16 12:01
Personally while living in Emacs (EXWM) I do label myself my keyboard binding things a key a function a mod+key a function and no key cording at all. I was a hardcore vimmer, I do not like anymore it's modal editing and similarly I do not like Emacs classic chording considering both very inefficient...
nanounanue · 2022-04-16 13:49
Could you share your layout?
electricity-wizard · 2022-04-16 16:37
Not exactly mechanical but [Hhkb](https://hhkeyboard.us/) has control in a good spot for emacs. That’s the reason I got one. It’s wonderful and I can’t see myself going back.
jrbattin · 2022-04-16 16:51
It’s extreme, but I feel like the the closest might be something like: https://keymacs.com Or a Space Cadet: https://www.reddit.com/r/MechanicalKeyboards/comments/7wubx0/i_hear_space_cadet_is_popular/?utm_source=share&utm_medium=ios_app&utm_name=iossmf
qiAip · 2022-04-16 20:06
There is one! The Keymacs - it’s 100% handmade and costs accordingly though. You can map a hell of a lot of key combinations to all the extra blank keys. :) https://keymacs.com
lexarcana1 · 2022-04-16 21:33
You will need some version of [my xkb configuration](http://cgit.lexarcana.com/cgit.cgi/dotemacs/tree/xkb/ergodox.xkb) to map all 5 modifiers, along with my keymap below for TMK firmware: static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap 0: Default Layer * * ,--------------------------------------------------. ,--------------------------------------------------. * | Escape | Fn0 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | _- | Del | BkSp | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * | F3 | 1 | W | E | R | T | ? | | " | Y | U | I | O | += | F4 | * |--------+------+------+------+------+------| / | | ' |------+------+------+------+------+--------| * | ~` | Q | S | D | F | G |------| |------| H | J | K | L | P | |\ | * |--------+------+------+------+------+------| F1 | | F2 |------+------+------+------+------+--------| * | LShift | A | X | C | V | B | +RAlt| | +RAlt| N | M | <, | >. | :; | RShift | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * | F5 | Z | F6 | LGui | LAlt | | LAlt | Left | Up | Dn | Rght | * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | Home | End | | PgUp | PgDn | * ,------|------|------| |------+------+------. * | | Fn3 | Play | | Fn1 | Fn4 | | * | Space| Tab+ |------| |------| Enter| Space| * | | LCtl | Fn6 | | Fn7 | +LCtl| | * `--------------------' `--------------------' */ KEYMAP( // layout: layer 0: default // left hand ESC, FN0, 2, 3, 4, 5, 6, F3, 1, W, E, R, T, SLSH, GRV, Q, S, D, F, G, LSFT,A, X, C, V, B, FN2, F5, Z, F6, LGUI,LALT, HOME, END, MPLY, SPC,FN3, FN6, // right hand 7,8, 9, 0,MINS, DEL, BSPC, QUOT,Y, U, I, O, EQL, F4, H, J, K, L, P, BSLS, FN8, N, M, COMM,DOT, SCLN,RSFT, LALT,LEFT,DOWN,UP ,RGHT, PGUP,PGDN, FN1, FN7,FN4, SPC ), KEYMAP( // layout: layer 1: F-keys + mouse + media // left hand TRNS,TRNS, F2, F3, F4, F5, F6, TRNS, F1,TRNS,TRNS,TRNS,TRNS,TRNS, FN5,MS_L,MS_U,MS_D,MS_R,PAUS, CAPS, FN9,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,PSCR, INS,TRNS,TRNS, TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, // right hand F7, F8, F9, F10, F11,TRNS,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS, F12,TRNS, BTN1,BTN2,BTN3,BTN4,BTN5,TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,VOLU,TRNS, TRNS,TRNS,MPRV,VOLD,MNXT, TRNS,TRNS, TRNS, TRNS,TRNS,TRNS ), KEYMAP( // layout: layer 2: dealing with Windows // left hand ESC, FN0, 2, 3, 4, 5, 6, F3, 1, W, E, R, T, SLSH, GRV, Q, S, D, F, G, LSFT,A, X, C, V, B, FN2, F5, Z, F6, LGUI,LALT, HOME, END, FN12, SPC,FN3,FN10, // right hand 7,8, 9, 0,MINS, DEL, BSPC, QUOT,Y, U, I, O, EQL, F4, H, J, K, L, P, BSLS, FN8, N, M, COMM,DOT, SCLN,RSFT, LALT,LEFT,DOWN,UP ,RGHT, PGUP,PGDN, FN1, FN11,FN4, SPC ), }; /* id for user defined functions */ enum function_id { TEENSY_KEY, }; /* * Fn action definition */ static const uint16_t PROGMEM fn_actions[] = { ACTION_LAYER_TAP_KEY(1,KC_F7), // FN0 - momentary switch to Layer1/F7 ACTION_LAYER_TOGGLE(1), // FN1 - toggle Layer1 ACTION_MODS_TAP_KEY(MOD_RALT, KC_F1), // FN2 - right alt on hold, F1 on tap ACTION_MODS_TAP_KEY(MOD_LCTL, KC_TAB), // FN3 - left control on hold, tab on tap ACTION_MODS_TAP_KEY(MOD_LCTL, KC_ENT), // FN4 - left control on hold, enter on tap ACTION_FUNCTION(TEENSY_KEY), // FN5 - Teensy key ACTION_MODS_TAP_KEY(MOD_RGUI, KC_LBRC ), // FN6 - right gui on hold, left bracket on tap ACTION_MODS_TAP_KEY(MOD_RGUI, KC_RBRC ), // FN7 - right gui on hold, right bracket on tap ACTION_MODS_TAP_KEY(MOD_RALT, KC_F2), // FN8 - right alt on hold, F2 on tap ACTION_LAYER_TOGGLE(2), // FN9 - toggle Layer2 ACTION_MODS_TAP_KEY(MOD_RCTL, KC_LBRC ), // FN10 - right control on hold, left bracket on tap ACTION_MODS_TAP_KEY(MOD_RCTL, KC_RBRC ), // FN11 - right control on hold, right bracket on tap ACTION_LAYER_TOGGLE(0), // FN12 - toggle Layer0 }; void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) { print("action_function called\n"); print("id = "); phex(id); print("\n"); print("opt = "); phex(opt); print("\n"); if (id == TEENSY_KEY) { clear_keyboard(); print("\n\nJump to bootloader... "); _delay_ms(250); bootloader_jump(); // should not return print("not supported.\n"); } }
tapesales · 2022-04-16 22:53
This is useless. The text is too small to be readable, and you wouldn’t want to be constantly looking at your keyboard. Work on touch-typing. There’s no such thing as an emacs keyboard.
thetemp_ · 2022-04-17 02:22
Have to agree. What's more useful when learning is to print out a cheatsheet and refer to it while entering commands. Even better if it's a graphic in the shape of the keyboard layout. But I haven't seen many like that for Emacs. Plenty for Vim though.
nanounanue · 2022-04-17 05:16
Thank you!