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

WIP: Key selector redesign #591

Closed
wants to merge 175 commits into from
Closed

WIP: Key selector redesign #591

wants to merge 175 commits into from

Conversation

algernon
Copy link
Collaborator

@algernon algernon commented Oct 13, 2020

This is a draft PR, a heavy work in progress. The goal is to replace our current key selector (and keymap database) with something that's easier to work with, for both users and developers.

Goals:

  • Allow users to select keys with considerably less clicks.
  • Allow us to support multiple languages and layouts (us-qwerty, hu-qwertz, bépo, stb).

Builds:

Current status:

Screenshot from 2020-12-04 15-26-22

TODO

Must have

  • Make OneShot keys available on the selector
  • Move the layout dropdown from the keyboard settings to the editor - postponed due to technical difficulties
  • Save and remember the layout chosen
  • On start, load the saved keyboard layout.
  • Sort the available layouts alphabetically in the dropdown
  • Finish up modifier+key and DualUse support
    • Modifier+key, and combinations of it, should be supported for all base keys.
    • DualUse should be in the DB
    • DualUse should be wired up on the selector
  • Migrate the rest of the old database to the new, so all known keys display properly
    • Leader
    • LED keys
    • Macros
    • Mouse Control
    • OneShot
    • SpaceCadet
    • Steno
    • TapDance
  • Add a direct keycode editor widget for unknown keycodes
  • Update the rest of the keyboards to work with the new system
    • Keyboardio Atreus
    • Keyboardio Model01
    • Dygma Raise - postponed
    • ErgoDox
    • KBDFans KBD4x
    • OLKB Planck
    • Splitography
    • Technomancy's Atreus
  • Figure out how to display all 5 modifiers and the DualUse switch, preferably without increasing the height of the selector.
    • Add a new entry to the vertical tab, and use a similar method we use for ModifierKeyboard104.

Nice to have

  • Make the key selector Slide resizable via dragging. (See here for some hints)
  • As part of the above, the keymap widget should be independently scrollable, and the selector should slide over it from the bottom.
  • Rebuild the database on top of the new foundation, including all the keys we had in the old db.
  • Make the text more readable. We can do this by showing only a single label with bigger font size (instead of 1-3 labels)
  • Possibly rearrange the keyboard a bit to save vertical space:
    • Esc would move before the backtick, and we'd push the rest of the row to a "Function row" tab
  • Support vertical text (for numpad Enter, for example) - this affects the device keymaps too, those should support it too
  • Figure out ideal text lengths, and short names for our keys that have longer names.
  • Add a generic keymap formatter that the selector and the keymap can both use
    • This should turn {label: {name: "ShiftToLayer", target: 1}} to {label: {top: "ShiftToLayer", bottom: "1"}} or something along those lines

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
@algernon algernon added enhancement New feature or request screen: editor labels Oct 13, 2020
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
algernon and others added 28 commits December 29, 2020 23:23
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Doing so resulted in some annoying behaviour when the expanded state of boxes
were changed after changing the keycode to one in a different section, while
having multiple boxes open at the same time.

We just set the initial state on first render, and then leave it up to the user
to expand/collapse as they see fit, without second guessing.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Not sure if this is the right way, as we _can_ have keyboards with led effects
but no Colormap. But lets try this for now.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Instead of showing the currently selected key on the button that pops up the
picker, describe what it does: Pick a key.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Doesn't quite work yet, is mostly a wireframe of things to come.

Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
Signed-off-by: Gergely Nagy <algernon@keyboard.io>
@algernon
Copy link
Collaborator Author

algernon commented Jan 5, 2021

I'm going to close this one, because the scope has increased substantially since, and I feel it's better to do a separate PR for that. I'll open that later today or tomorrow, once I cleaned up the branch a bit.

@algernon algernon closed this Jan 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants