gittyeric / ergodox-macro-hax

A hack to get around the 4-button max Macro limit in Oryx for Ergodox / Moonlander keyboards.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ideas & feedback concerning Macro reconfigurability by forking the repo

Phoscur opened this issue ยท comments

As of #1, we are now able to build and release firmware binaries, but it might not be straight forward/well documented enough. (Readme could use some redaction and simplification after we finish this draft)

Because I added my-macros.ts with my configuration, only that one is currently being used, so to take advantage that file needs to be modified by someone forking (in addition to the Github Secrets LAYOUT_ID & LAYOUT_FOLDER to be filled for the forked repo pipeline).

My idea yesterday suggests to move my-macros.ts categorically into macros/<username>.ts, I think I can get the username of the repo owner in the pipeline, else this may become a third configuration by secret e.g. MACRO_FILE.

Also, it might be possible to get rid of LAYOUT_FOLDER just like the npm run copy task just skips over it with wildcards. That copy task however should be purged of the neo keymap name if possible... we can use this ticket to collect any minor issues you have using the new Github Action Pipeline and npm scripts.

I like the idea of user folders or app-based folders. In a more "main" file the user could then compose lots of app scripts or something nifty like that if we wanted to overkill it.

@gittyeric can you elaborate, what you mean with "compose lots of app scripts"? We could also create a big shared registry for macros, and then only apply those that actually are in the keymap. Conflicting macro configurations will force users to discuss and find common ones? I don't see the standard yet but we could start creating one!

For example I am still looking for a good macro key config to mute myself in Discord globally, I've tried a couple but my current one still collides with another browser shortcut - annoying - at least Discord let's me freely choose, but it would be easier to have a good moonlander standard default.

@eric-fulfil please checkin here when you configured the repo pipeline and attempted build your firmware with it!
This run only build mine https://github.com/gittyeric/ergodox-macro-hax/runs/4903918283 because configuration overrides are not set (LAYOUT_ID+FOLDER secrets).
We should see it fail as you add the secrets, because my-macros.ts cannot be applied on your keymap.

@Phoscur you are on fire with this. I'm way way bogged down with life till March and my wife barely uses her hand-me-down Moonlander ๐Ÿ˜† , so I'll tell ya what. Since I can't promote you past Collaborator in GH we can either:

  1. You can tell me every step to take to maintain including what to fill into GH Actions for testing. My devops is decent enough to track some of your awesome GH Actions pipelines but not quite 100%.
  2. Deprecate this repo and I'll point the README to your fork.

You've picked up the baton so I'll leave the fate of this work in your hands, but again I'm happy to help in the world of #1.

... If you REALLY want to go next level, check out the layout I'll be burried with ๐Ÿ˜† :

IMG_20211206_122403 (1)

Hundreds of custom UHK macros that I easily edit daily, a hand built Ploopy 8-ball trackball with custom CAD design to fit into my UHK + custom FW for 1D arrow key pounding at a time (it's my text edit navigator and scroller), thumb cluster on the left with mini 2D scroll ball, and of course a Contour Rollermouse fit delicately underneath the custom printed stand so no mouse/KB hand back-and-forth movement. Oh and the pads on the rollermouse let me type while walking on a treadmill. I love Ergodox but had to say goodbye awhile ago to get this far!

Great to see you have such a great custom setup fit to your needs! I still think your wife, like any moonlander user, would benefit from further automation and architecting of macros, do you think she would want to be a tester?

I have some other unrelated GH Actions pipeline plans, enthousiastic about Microsoft just gifting us these compute resources ;)

You've picked up the baton so I'll leave the fate of this work in your hands, but again I'm happy to help in the world of #1.

I appreciate you collaborating with me, so for now I am happy being an active fork ;) My goal is to make it really easy so I also do macro or layout adaption more often. The biggest hassle was compiling (getting qmk to work), so users should now be able to focus on creating macros (at least that is what I am hoping to do now)!

Hundreds of custom UHK macros that I easily edit daily

Why and how so many, categorized? Please elaborate!

You can tell me every step to take to maintain including what to fill into GH Actions for testing

Yes please, fill in secrets LAYOUT_ID (url hash in oryx) and LAYOUT_FOLDER (underscored layout name in its source archive), then we should see the predicted macro mismatch error on the next workflow run (push or manual trigger).

commented

@Phoscur , some bad news, I got my UHKv2 and it rocks so hard at macros I ended up giving away my Moonlander as a graduation present. There's still a lot of demand for this repo and I no longer have any way of testing changes. Since you've done such great work on this I wanted to push the idea again of your fork becoming the canonical one and I can update the README here to link to yours whenever you're ready for it.

I souped up the ol' Moonlander and gave it a new home to a budding graphics designer ๐Ÿ˜† :

IMG_20220428_104338

Screen holder folds + left wristpad folds up to allow tablet draw mode vs typing mode lol.

Re: Your UHK questions, if you're willing to give up ortholinear it's superior hands down, except for the 3 month lead time of finally getting your gritty fingers on it. The macros are flat and uncategorized but in alphabetical order so I improv categories with Macro name prefixes:

image

The left thumbcluster is also a total gamechanger I could never live without, I have 2 backup sets so I can be burried with my setup in 40 years. Macros software does 97% of what I want very quickly with no code so I'l eat the last 3%.

Cool arm rests/supports! My next task is to create a stand up extension for my desk. Then I'll be missing this kind of arm support... dude this is so much fun to exchange these ideas!! We should make a discussion topic where everyone posts his setup with pictures :D

push the idea again of your fork becoming the canonical one and I can update the README here to link to yours whenever you're ready for it

What's the default process for this? Does every fork need to adopt the new upstream then, or can it be forwarded somehow? I guess you are adding git add remote upstream and git branch --set-upstream-to instructions to the README? -> created #9

What are we achieving with this? @gittyeric
I could have merged the last PR without your comment (I have permissions to do that), I was pretty close but I wanted to engage in discussion first.

I think we should wait for branches to diverge or at least for this current topic to get an implementation in my fork before starting this migration, which will only put us back collaborationwise. I fear this bringing us to a halt with the current very slow speed.
This collaboration with you is a strong motivator for me, you don't need to do much to keep that up (check in once a month?)! I will try to take over completely in time, but we need a replacement for me as an additional tester and collaborator too!

Maybe @storcium or @DaynosaurusRex would like to do this, interested in this topic of macro reconfigurability/sharing macros per user? Please try to activate the compile workflow for the layout firmware in Github Actions of your fork! I am currently waiting on a (semi-)successful reproduction of my pipeline with another layout in a different fork.
Compiling the firmware after a layout change in ORYX just by pressing a button in Github works for me, I want it to work for you too!

@Phoscur that all sounds good to me. Whenever you feel it's best timing I can open a PR that mostly just points the README to your fork, with a command or two for people who have forked this repo to be able to merge up to your latest fork.

Apologies for the sluggish responses, I'll check in on this account more often to keep things moving. Also feel free to keep pushing PRs through as you see fit, I'll check in every few weeks more as a CYA security audit to make sure nothing obviously nasty sneaks in.

...I think I'll post more of my setups in a Medium article soon to expand the conversation to more nerds on ultra ergonomics experiments ๐Ÿค“

Hey guys, I've been making great progress on the implementation of the idea of this topic, please check out the new folder structure!

https://github.com/Phoscur/oryx-macro-hax/
(PR Phoscur#3)

I'm not sure yet how much the topics relate, but #18 should be a new pillar stone for layer & macro sharing between layouts:
https://github.com/Phoscur/oryx-layer-inserter

Leaving this issue open for more ideas & feedback!

commented

Closing in favor of of Phosphor's now-canonical fork!