diff options
Diffstat (limited to 'src/layout.rs')
| -rw-r--r-- | src/layout.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/layout.rs b/src/layout.rs index 0ebad27..4c77be4 100644 --- a/src/layout.rs +++ b/src/layout.rs @@ -60,7 +60,16 @@ impl Layout { pub fn new_random_from<R: RngCore>(kbd: &Layout, rng: &mut R) -> Layout { let mut layout = kbd.keys; - layout.shuffle(rng); + // layout.shuffle(rng); + let mut count = rng.gen_range(1..=15); + while count > 0 { + let a = rng.gen_range(0..NUM_KEYS); + let b = rng.gen_range(0..NUM_KEYS); + let k = layout[b]; + layout[b] = layout[a]; + layout[a] = k; + count -= 1; + } Layout::keys_to_layout(layout) } } |
