dariogoetz / keyboard_layout_optimizer

A keyboard layout optimizer supporting multiple layers. Implemented in Rust.
https://dariogoetz.github.io/keyboard_layout_optimizer/
GNU General Public License v3.0
92 stars 18 forks source link

Add support for the Lily58 keyboard #66

Closed cristobaltapia closed 1 year ago

cristobaltapia commented 1 year ago

Hi, thanks for sharing this optimizer! I was playing with this nice tool to configure my Lily58 keyboard and came out with this keyboard config. I tried to fill all variables as best as possible, but I think that it would be good to have some review.

The layout looks like this: (looks better on my terminal as in Github)

            ┌───┐                              ┌───┐
        ┌───┤ 4 ├───┬───┐              ┌───┬───┤ 9 ├───┐
┌───┬───┤ 3 ├───┤ 5 │ 6 │              │ 7 │ 8 ├───┤ 0 ├───┬───┐
│ 1 │ 2 ├───┤ u ├───┼───┤              ├───┼───┤ l ├───┤ ^ │ - │
├───┼───┤ p ├───┤ a │ q │              │ b │ m ├───┤ f ├───┼───┤
│ j │ z ├───┤ i ├───┼───┤              ├───┼───┤ r ├───┤ x │ ß │
├───┼───┤ s ├───┤ e │ o ├───┐      ┌───┤ d │ t ├───┤ n ├───┼───┤
│ ⇩ │ c ├───┤ ü ├─━─┼───┤   │      │   ├───┼─━─┤ , ├───┤ h │ ⇘ │
├───┼───┤ y ├───┤ ä │ ö ├───┘      └───┤ w │ g ├───┤ . ├───┼───┤
│ ⇧ │ v ├───┘   └───┴───┘              └───┴───┘   └───┤ k │ ⇧ │
└───┴───┘ ┌───┬───┬───┐ ┌───┐      ┌───┐ ┌───┬───┬───┐ └───┴───┘
          │ ⇚ │ ♕ │ ♔ │ │ ␣ │      │   │ │ ♔ │ ␣ │ ⇙ │            
          └───┴───┴───┘ └───┘      └───┘ └───┴───┴───┘            

I used the Ortho keyboard as base. Would you be open to add this configuration to the main repo?

Cheers!

dariogoetz commented 1 year ago

Sure, I don't mind. Are you still working on it (because the PR is named [WIP])?

cristobaltapia commented 1 year ago

Great. I marked it as [WIP] since I was not sure about some conventions. Mostly these two points:

  1. for the finger_resting_positions: I suppose these is the keys where the fingers lay on the "home" row, right? Looking at the configuration for the ortho keyboard, it seems that these positions are in the upper row. So I changed it to be on the home row. Is that correct?
  2. fixed_keys I suppose that the default is to let all letters free plus .,. If so, I will change that, as I had fixed the ., during testing.
dariogoetz commented 1 year ago
  1. The finger_resting_positions are the positions, where your fingers would hover, when they are not typing. Usually, this would be the home row. The positions for the ortho config are simply not correct, I think. These positions are only used for the kla_distance metric.
  2. Yes. The fixed_keys are those keys that will stay in their positions as defined in the base_layout. You need to specify the first-layer characters of all keys where fixed_keys is false in the layout string on the commandline.

If this resolved all your questions, I would be happy to merge the new config

cristobaltapia commented 1 year ago

@dariogoetz thanks for the clarifications. I have made a small change accordingly. Now it should be ready to merge. :)