Skip to content

feat(custom-keymap): Custom Keymap Style (@thewickest) #6375

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

Open
wants to merge 63 commits into
base: master
Choose a base branch
from

Conversation

thewickest
Copy link

Description

Captura de pantalla 2025-03-14 a las 23 23 43
Pasted Graphic

New Keymap Style inside the Keymap section. This serves as a custom keymap where you can put the JSON content generated in the Keyboard Layout Editor or pages that generates equivalent content.
Features:

  1. If you include an object with an X in the array of keys, it will be treated as a blank key
  2. If you include an object with an W and a size, the size of the key will increment. Possible sizes right now are (1, 1.25, 1.5, 1.75, 2.25, 2.50, 6.25)
  3. If you want to maintain the dynamic features of the keymap style, you will have to fullfill the keymap with you prefered layout (qwerty, dvorak, etc).
  4. For adding and space, just write "spc" inside the key.

Checks

  • Adding quotes?
    • Make sure to include translations for the quotes in the description (or another comment) so we can verify their content.
  • Adding a language or a theme?
    • If is a language, did you edit _list.json, _groups.json and add languages.json?
    • If is a theme, did you add the theme.css?
      • Also please add a screenshot of the theme, it would be extra awesome if you do so!
  • Check if any open issues are related to this PR; if so, be sure to tag them below.
  • Make sure the PR title follows the Conventional Commits standard. (https://www.conventionalcommits.org for more info)
  • Make sure to include your GitHub username prefixed with @ inside parentheses at the end of the PR title.

feature(custom-keymap): Custom Keymap Style(@thewickest)

@monkeytypegeorge monkeytypegeorge added frontend User interface or web stuff packages Changes in local packages labels Mar 14, 2025
@thewickest thewickest changed the title Custom Keymap Style (@thewickest) feature(custom-keymap): Custom Keymap Style(@thewickest) Mar 14, 2025
@thewickest thewickest changed the title feature(custom-keymap): Custom Keymap Style(@thewickest) feat(custom-keymap): Custom Keymap Style(@thewickest) Mar 14, 2025
@github-actions github-actions bot added the waiting for update Pull requests or issues that require changes/comments before continuing label Apr 17, 2025
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Apr 17, 2025
@Miodec
Copy link
Member

Miodec commented Apr 18, 2025

I tried a simple 60% and its not aligned

image

Also JD40

image

Ergodox is cursed

image

@Miodec Miodec added the waiting for update Pull requests or issues that require changes/comments before continuing label May 7, 2025
@github-actions github-actions bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Jun 5, 2025
@thewickest thewickest marked this pull request as draft June 5, 2025 21:48
@thewickest
Copy link
Author

Okey some updates about the feature.
After some tests I have realized that there were some features missing from the Raw syntax that we are using here:
Improvements:

  • All basic features are working now. Width, height, spacing between keys (horizontal and vertical) and tilted keys. Other more visual features like stepped keys, ghosted keys, color, etc, have been ignored to maintain the same style in the whole application.
  • You can included any character that can be shifted. Normal key letters, numbers, etc. They will be shifted using the English layout. So "," will be "<", "/" will be "?", etc. We should include more languages in the future as the keyboard layout option does. We probably can reuse everything that is already created in the layout setting.
  • For long texts (more than 3 characters) that are not include in any main key (shift, enter, arrow, Delete, etc) we have to take into account that the user could write anything inside of it so it is up to the user to make the layout "pretty". It would be really difficult to make the texts bigger or smaller depending on the length of the text and also adapt it to the size of the key.

Considerations

  • Because of everything that I mentioned before, things like more than one character per key is not working. We could make it work but that would break the style of the website I think.
  • I have tested many different layouts but edge-cases are a thing and we could have some of them. With rotations and spacing between keys maybe. It shouldn't but it could happen at some point.
  • And also, it wouldn't make much sense to use this feature with the layout setting. As I mentioned, we could adapt it to use it with a different language rather than a different layout. If the user wants another layout (dvorak for example) they can include it manually. That way he/she can include whatever custom layout they want.

Future Improvements

  • As it was mentioned in this thread we could have something like a UI for creating a custom style inside the setting section, although I think it would have a lot of work and I don't know if it is really worthy for this feature.
  • Include the remaining languages rather than the English layout. With languages I mean, the different types of shifted keys that are different depending on the language.

@thewickest thewickest marked this pull request as ready for review June 11, 2025 09:10
@github-actions github-actions bot added the waiting for review Pull requests that require a review before continuing label Jun 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
frontend User interface or web stuff packages Changes in local packages waiting for review Pull requests that require a review before continuing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants