Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve tag order for non-QWERTY layouts #385

Closed
chylex opened this issue Nov 17, 2021 · 4 comments
Closed

Improve tag order for non-QWERTY layouts #385

chylex opened this issue Nov 17, 2021 · 4 comments
Assignees
Labels

Comments

@chylex
Copy link
Collaborator

chylex commented Nov 17, 2021

Finally decided to look into

* TODO: Support more layouts, perhaps generate automatically.

I'm automatically generating a map of distances between each pair of keys based on the KeyLayout.rows. The algorithm assumes 1/4-key uniform stagger, with a heuristic that slightly increases cost of traveling across rows.

There are some differences between the existing manual layout and the automatically generated one in QWERTY, but I think it overall looks pretty reasonable, maybe better in places:

obrazek

Also, a look at the bottom of the list to find which combinations are considered the worst, I think the automatic generation is a bit better here in terms of symmetry and some of the combinations:

obrazek

Non-QWERTY

Of course, the important part is that this should be much better for non-QWERTY layouts. For example, here is a comparison for COLEMAK:

obrazek

obrazek

Obviously, the first difference is that the automatically generated tag order prefers td (directly next to each other) over ty (6 keys apart). Overall, the old system kinda falls apart after it past the hardcoded KeyLayout.priority order.

I'll clean things up and commit, so you can take a look before a PR.

@chylex chylex added the feature label Nov 17, 2021
@chylex
Copy link
Collaborator Author

chylex commented Nov 17, 2021

chylex@03fddf7

@breandan
Copy link
Collaborator

I was hoping someone would stumble across that comment and implement the keyboard travel distance metric. Thanks for showing the visual diff, it's interesting to see how the manual ordering compares with your computed metric. As an added bonus, alternate layouts now have much better key prioritization. Awesome contribution!

@breandan
Copy link
Collaborator

Given your prolific contributions to AceJump over the last year, I've invited you to become a collaborator with push access. Should you wish to contribute this feature, we would be honored to have you make our 1000th commit!

Screen Shot 2021-11-20 at 4 09 21 PM

@chylex chylex self-assigned this Nov 21, 2021
@chylex
Copy link
Collaborator Author

chylex commented Nov 21, 2021

Thanks, committed!

@chylex chylex closed this as completed Nov 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants