Skip to content

Fix ortho layouts and add planck_mit#20

Merged
severindupouy merged 4 commits into
OneDeadKey:mainfrom
opulpo:main
Jun 28, 2026
Merged

Fix ortho layouts and add planck_mit#20
severindupouy merged 4 commits into
OneDeadKey:mainfrom
opulpo:main

Conversation

@opulpo

@opulpo opulpo commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

This PR is targeted at orthogonal layouts.

Il removes extra trailing commas in ortho layouts, and a missing closing parenthese in planck_grid, that would make qmk compile fail.

It also updates planck_grid which I believe incorrectly had an extra top row and a 2u space key.

Il finally adds the actual 2u space key Planck layout, planck_mit.

Tested to work with KPrepublic’s CSTC40 rev3, which has a planck_mit layout.

Comment thread shared/layouts.h Outdated
Comment thread shared/layouts.h

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

todo:

Hello, thanks for your contribution!

Some points to complete the PR :

  • update the docs/supported_keyboards.md, add the new LAYOUT_planck_mit in the list.
  • if you know enough about git, can you split in 2 commits, 1 for the fix, 1 for introducing planck_mit ?
  • please reword the commit's messages following https://www.conventionalcommits.org (so 1 commit fix: blabla and 1 commit feat: support planck_mit layout)

If you have question or need help, tell me.

Comment thread shared/layouts.h Outdated
@opulpo

opulpo commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

options that seemed more relevant to Selenium were removed: LEFT_HAND_SPACE and RESTORE_SPACE, the latter causing the left thumb key mapped to LSFT_T(KC_BSPC) trigger spaces on tap, even without holding another key beforehand.

Actually I overlooked that one, and realized afterwards that RESTORE_SPACE was actually an Arsenik option only. I’m not sure how it applies to Arsenik however, since Arsenik makes sense with a space bar in the middle :

#define RESTORE_SPACE
/* Having Space accessible to only one thumb may create some problems, especially
 * when trying to type Shift + Space or Lafayette / AltGr + Space (depending if
 * your space key is on your left or right hand). When active, backspace gets
 * temporarily replaced by space when the original space key is held
 *
 * (Requires `VIM_NAVIGATION`)
 */

In practice anyway, leaving the option enabled would make my LTHUMB_TUCK key mapped to LSFT_T(KC_BSPC) actually fire Space rather than Backspace on tap (without holding any other key).

Not sure what to do then, the code that triggers with RESTORE_SPACE enabled is still there in keymap.c. Is this option a leftover of something initially intended for Selenium?

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef RESTORE_SPACE
    static bool thumb_mod_same_hand_as_space_held = false;
    if ((keycode & 0xff) == KC_SPC && record->tap.count == 0) thumb_mod_same_hand_as_space_held = record->event.pressed;
#endif

    // Let QMK do its thing on key releases.
    if (!record->event.pressed) return true;

#ifdef RESTORE_SPACE
    if ((keycode & 0xff) == KC_BSPC && !thumb_mod_same_hand_as_space_held && record->tap.count > 0) {
        tap_code(KC_SPC);
        return false;
    }
#endif

@opulpo opulpo requested a review from severindupouy June 27, 2026 08:41
@opulpo

opulpo commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

One last comment :) this conversation seems to raise the issue of having all supported layouts in a shared folder. Shouldn’t Arsenik and Selenium each have their own supported layouts folder, i.e. only layouts with a middle space bar for the former, and only layouts with mirrored thumb clusters for the latter?

@severindupouy severindupouy mentioned this pull request Jun 27, 2026
@severindupouy

Copy link
Copy Markdown
Collaborator

Hi @opulpo.

I think you don't have a clear view of the aekeynox project approach. No problem with that, aekeynox is complex and very opinionated.

So please, follow my lead :

  • the compile fixes and planck_mit are good — let's land only those. Please scope this PR down to them (two focused commits, conventional messages, closing Generating an Arsenik layout seems to output a Selenium layout #21), and drop the changes to arsenik/internals.h and arsenik/options.h. The planck_mit should have the correction I pointed out (k52 placement).

The other points you're raising looks to be questions, they belongs in separate issues if you want to open discussions. But as I read them, they rest on misreadings of the current code:

  • shared/layouts.h is keyed by board geometry, not by keymap. Arsenik already runs on split/mirrored boards (output/crkbd, lily58, sofle), so it isn't "middle-spacebar only," and a per-keymap layout folder would duplicate every board.
  • RESTORE_SPACE is a default-on Arsenik option, not a Selenium leftover. By design it makes the thumb Backspace keys type Space on tap — real Backspace is the dedicated corner key, and the thumbs revert to Backspace while a space-layer key is held. The LSFT_T(KC_BSPC)-tap-emits-Space you flagged is the option working as intended, not a malfunction.

For questions, the place to have discussions is in issues. Then we could agree whether it's actually a problem, and eventually open a related PR.

Happy to review focused contributions — let's get the fixes + planck_mit merged.

@opulpo

opulpo commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Hi @severindupouy , I understand that my additional changes were out of place and somewhat careless.

  • the compile fixes and planck_mit are good — let's land only those. Please scope this PR down to them (two focused commits, conventional messages, closing Generating an Arsenik layout seems to output a Selenium layout #21), and drop the changes to arsenik/internals.h and arsenik/options.h. The planck_mit should have the correction I pointed out (k52 placement).

I updated the PR as requested. Please note there’s an additional merge commit since I mistakenly opened the PR with my fork’s main instead of my dedicated fix branch.

I’m still unsure that it closes #21, since the keymap obtained does not match Arsenik on a middle-spacebar-layout as described and illustrated on its dedicated Github page and webpage, but that may be by design and a non-issue.

@severindupouy severindupouy merged commit 38e716b into OneDeadKey:main Jun 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants