Skip to content

Add ability to disable HRM with emulation active - #83

Closed
Ashenfae wants to merge 12 commits into
OneDeadKey:mainfrom
Ashenfae:hrm_emulation
Closed

Add ability to disable HRM with emulation active#83
Ashenfae wants to merge 12 commits into
OneDeadKey:mainfrom
Ashenfae:hrm_emulation

Conversation

@Ashenfae

Copy link
Copy Markdown
Collaborator

Currently the emulation keymap systematically have HRM activated

This allows to disable HRM when using emulation and EZ or TT settings

@Nuclear-Squid Nuclear-Squid left a comment

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.

This looks pretty good, but we should probably use rename all of the HRM_x to the keycode sent on tap. So HRM_Q for ergol over azerty for left pinky, for instance.

Comment thread include/aekeynox/emulations/dvorak.dtsi Outdated
@Ashenfae

Copy link
Copy Markdown
Collaborator Author

This looks pretty good, but we should probably use rename all of the HRM_x to the keycode sent on tap. So HRM_Q for ergol over azerty for left pinky, for instance.

Done 🫡

Comment on lines +1 to 28
#if defined HT_HOME_ROW_MODS || defined HT_TWO_THUMB_KEYS
#define HRM_A H_A A
#define HRM_O H_S O
#define HRM_E H_D E
#define HRM_U H_F U
#define HRM_H H_J H
#define HRM_T H_K T
#define HRM_N H_L N
#define HRM_S H_SEMI S
#else
#define HRM_A &kp A
#define HRM_O &kp O
#define HRM_E &kp E
#define HRM_U &kp U
#define HRM_H &kp H
#define HRM_T &kp T
#define HRM_N &kp N
#define HRM_S &kp S
#endif

&base_layer {
display-name = "Base";
bindings = <SELENIUM_KEYMAP_BINDINGS(
&kp TAB , &kp SQT &kp COMMA &kp DOT &kp P &kp Y , &kp F &kp G &kp C &kp R &kp L , &kp BACKSPACE ,
&kp ESCAPE , H_A A H_S O H_D E H_F U &kp I , &kp D H_J H H_K T H_L N H_SEMI S , &kp ENTER ,
&kp ESCAPE , HRM_A HRM_O HRM_E HRM_U &kp I , &kp D HRM_H HRM_T HRM_N HRM_S , &kp ENTER ,
&kp LSHIFT , &kp SEMI &kp Q &kp J &kp K &kp X , &kp B &kp M &kp W &kp V &kp Z , &kp RSHIFT ,
LTHUMB_TUCK , LTHUMB_HOME , LTHUMB_REACH , RTHUMB_REACH , RTHUMB_HOME , RTHUMB_TUCK
)>;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I’m surprised this works. I’d expect an error when re-defining HRM_* everywhere.

Alternatively, would this work?

Suggested change
#if defined HT_HOME_ROW_MODS || defined HT_TWO_THUMB_KEYS
#define HRM_A H_A A
#define HRM_O H_S O
#define HRM_E H_D E
#define HRM_U H_F U
#define HRM_H H_J H
#define HRM_T H_K T
#define HRM_N H_L N
#define HRM_S H_SEMI S
#else
#define HRM_A &kp A
#define HRM_O &kp O
#define HRM_E &kp E
#define HRM_U &kp U
#define HRM_H &kp H
#define HRM_T &kp T
#define HRM_N &kp N
#define HRM_S &kp S
#endif
&base_layer {
display-name = "Base";
bindings = <SELENIUM_KEYMAP_BINDINGS(
&kp TAB , &kp SQT &kp COMMA &kp DOT &kp P &kp Y , &kp F &kp G &kp C &kp R &kp L , &kp BACKSPACE ,
&kp ESCAPE , H_A A H_S O H_D E H_F U &kp I , &kp D H_J H H_K T H_L N H_SEMI S , &kp ENTER ,
&kp ESCAPE , HRM_A HRM_O HRM_E HRM_U &kp I , &kp D HRM_H HRM_T HRM_N HRM_S , &kp ENTER ,
&kp LSHIFT , &kp SEMI &kp Q &kp J &kp K &kp X , &kp B &kp M &kp W &kp V &kp Z , &kp RSHIFT ,
LTHUMB_TUCK , LTHUMB_HOME , LTHUMB_REACH , RTHUMB_REACH , RTHUMB_HOME , RTHUMB_TUCK
)>;
#if defined HT_NONE || defined HT_THUMB_TAPS
#undefine H_A
#define H_A &kp
#undefine H_S
#define H_S &kp
#undefine H_D
#define H_D &kp
#undefine H_F
#define H_F &kp
#undefine H_J
#define H_J &kp
#undefine H_K
#define H_K &kp
#undefine H_L
#define H_L &kp
#undefine H_SEMI
#define H_SEMI &kp
#endif
&base_layer {
display-name = "Base";
bindings = <SELENIUM_KEYMAP_BINDINGS(
&kp TAB , &kp SQT &kp COMMA &kp DOT &kp P &kp Y , &kp F &kp G &kp C &kp R &kp L , &kp BACKSPACE ,
&kp ESCAPE , H_A A H_S O H_D E H_F U &kp I , &kp D H_J H H_K T H_L N H_SEMI S , &kp ENTER ,
&kp LSHIFT , &kp SEMI &kp Q &kp J &kp K &kp X , &kp B &kp M &kp W &kp V &kp Z , &kp RSHIFT ,
LTHUMB_TUCK , LTHUMB_HOME , LTHUMB_REACH , RTHUMB_REACH , RTHUMB_HOME , RTHUMB_TUCK
)>;

If it works, we could extract the #if…#endif block into a separate hrm.dtsi file, and use it in all emulated layouts.

@fabi1cazenave

Copy link
Copy Markdown
Contributor

Solved by #99.

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