|
11 | 11 | "\n",
|
12 | 12 | "The [Engram layout](https://github.com/binarybottle/engram-layout) is a keyboard layout optimized for comfortable touch typing in English created by [Arno Klein](https://binarybottle.com), with open source code to create other optimized key layouts.\n",
|
13 | 13 | "\n",
|
14 |
| - " K U O Y W L G B Q\n", |
15 |
| - " H I E A T R S N J \n", |
16 |
| - " V Z X C D M F P \n", |
17 |
| - " \n", |
| 14 | + " Y P O U G D L B Q\n", |
| 15 | + " H I E A R T S N J \n", |
| 16 | + " V Z X C M K W F\n", |
| 17 | + "\n", |
18 | 18 | "The Shift key accesses characters (top) that look similar to the numbers:\n",
|
19 | 19 | "\n",
|
20 | 20 | " ! = ? + $ @ ^ & % *\n",
|
|
30 | 30 | " ~ ! = ? + $ @ ^ & % * < >\n",
|
31 | 31 | " # 1 2 3 4 5 6 7 8 9 0 [ ] Caps\n",
|
32 | 32 | "\n",
|
33 |
| - " Tab K U O Y ' \" W L G B Q - /\n", |
34 |
| - " Back H I E A , . T R S N J Enter\n", |
35 |
| - " Shift V Z X C ( ) D M F P Shift\n", |
| 33 | + " Tab Y P O U ' \" G D L B Q - /\n", |
| 34 | + " Back H I E A , . R T S N J Enter\n", |
| 35 | + " Shift V Z X C ( ) M K W F Shift\n", |
36 | 36 | "\n",
|
37 |
| - " Ctrl Fn Cmd Alt Space Alt Ctrl Arrows" |
| 37 | + " Ctrl Fn Cmd Alt Space Alt Ctrl Arrows" |
38 | 38 | ]
|
39 | 39 | },
|
40 | 40 | {
|
|
253 | 253 | " \n",
|
254 | 254 | "I applied the same algorithm as in Steps 1 and 3, but to each side separately (to make it computationally tractable), then to the remaining letters, and finally to the command characters on the left side. \n",
|
255 | 255 | "\n",
|
256 |
| - "The top-scoring full layouts had vowels on the left side and command characters on either side:\n", |
257 |
| - " \n", |
258 |
| - " J U O Y W S M Q Z score: 0.04264\n", |
259 |
| - " H I E A T N R C X \n", |
260 |
| - " P K G D L F B V\n", |
| 256 | + "The top-scoring layouts had all vowels arranged the same way on the left, with command characters on either right or left, and additional small differences: \n", |
261 | 257 | "\n",
|
262 |
| - " Q U O Y W S M J Z score: 0.04264\n", |
263 |
| - " H I E A T N R C X \n", |
264 |
| - " P K G D L F B V\n", |
| 258 | + " K U O Y W D L B Q\n", |
| 259 | + " H I E A T S R N J \n", |
| 260 | + " V Z X C G M F P\n", |
| 261 | + " \n", |
| 262 | + "Switching UOY to YOU improves the ease of typing of some of the most frequent bigrams listed below (AY,YO,CY). The only advantage to UOY is that Y is an infrequent letter set in a hard-to-reach key.\n", |
265 | 263 | "\n",
|
266 |
| - " K U O Y W L G B Q score: 0.04263\n", |
| 264 | + " K Y O U W D L B Q\n", |
| 265 | + " H I E A T S R N J \n", |
| 266 | + " V Z X C G M F P\n", |
| 267 | + "\n", |
| 268 | + "Switching SR to RS or TR to RT:\n", |
| 269 | + "\n", |
| 270 | + " K Y O U W D L B Q\n", |
267 | 271 | " H I E A T R S N J \n",
|
268 |
| - " V Z X C D M F P\n", |
| 272 | + " V Z X C G M F P\n", |
| 273 | + "\n", |
| 274 | + " Y P O U G D L B Q\n", |
| 275 | + " H I E A T R S N J\n", |
| 276 | + " V Z X C M K W F\n", |
| 277 | + "\n", |
| 278 | + " Y P O U G D L B Q\n", |
| 279 | + " H I E A R T S N J \n", |
| 280 | + " V Z X C M K W F\n", |
269 | 281 | " \n",
|
270 | 282 | "### 5. Arrange punctuation marks and characters in easy-to-remember places\n",
|
271 | 283 | "\n",
|
|
286 | 298 | "\n",
|
287 | 299 | "Resulting in:\n",
|
288 | 300 | "\n",
|
289 |
| - " J U O Y ' \" W S M Q Z\n", |
290 |
| - " H I E A , . T N R C X \n", |
291 |
| - " P K G D ( ) L F B V\n", |
| 301 | + " Y P O U ' \" G D L B Q\n", |
| 302 | + " H I E A , . R T S N J \n", |
| 303 | + " V Z X C ( ) M K W F\n", |
292 | 304 | "\n",
|
293 | 305 | "Shift accesses similar-looking characters above the numbers:\n",
|
294 | 306 | "\n",
|
|
2028 | 2040 | "\n",
|
2029 | 2041 | " Left: Right:\n",
|
2030 | 2042 | "\n",
|
2031 |
| - " - - O - - S - \n", |
| 2043 | + " - - O - - S - -\n", |
2032 | 2044 | " - I E A T R N -\n",
|
2033 | 2045 | " - - - - - - - -\n",
|
2034 | 2046 | " \n",
|
|
2361 | 2373 | },
|
2362 | 2374 | {
|
2363 | 2375 | "cell_type": "code",
|
2364 |
| - "execution_count": 64, |
| 2376 | + "execution_count": 71, |
2365 | 2377 | "metadata": {},
|
2366 | 2378 | "outputs": [
|
2367 | 2379 | {
|
|
2371 | 2383 | "KUOY-SR 0.04401807153800817\n",
|
2372 | 2384 | "KUOY-RS 0.043997091340504314\n",
|
2373 | 2385 | "KYOU-SR 0.0438722799049078\n",
|
2374 |
| - "KYOU-RS 0.043851327891499675\n" |
| 2386 | + "KYOU-RS 0.043851327891499675\n", |
| 2387 | + "YPOU-TR 0.043941330819070576\n", |
| 2388 | + "YPOU-RT 0.04394065704343464\n" |
2375 | 2389 | ]
|
2376 | 2390 | }
|
2377 | 2391 | ],
|
|
2390 | 2404 | "print('KYOU-SR', t)\n",
|
2391 | 2405 | "letters = ['K','Y','O','U', 'H','I','E','A', 'V','Z','X','C', 'W','D','L','B', 'T','R','S','N', 'G','M','F','P']\n",
|
2392 | 2406 | "t = score_layout(data_matrix, letters, bigrams, verbose=False)\n",
|
2393 |
| - "print('KYOU-RS', t)" |
| 2407 | + "print('KYOU-RS', t)\n", |
| 2408 | + "letters = ['Y','P','O','U', 'H','I','E','A', 'V','Z','X','C', 'G','D','L','B', 'R','T','S','N', 'M','K','W','F']\n", |
| 2409 | + "t = score_layout(data_matrix, letters, bigrams, verbose=False)\n", |
| 2410 | + "print('YPOU-TR', t)\n", |
| 2411 | + "letters = ['Y','P','O','U', 'H','I','E','A', 'V','Z','X','C', 'G','D','L','B', 'T','R','S','N', 'M','K','W','F']\n", |
| 2412 | + "t = score_layout(data_matrix, letters, bigrams, verbose=False)\n", |
| 2413 | + "print('YPOU-RT', t)" |
2394 | 2414 | ]
|
2395 | 2415 | },
|
2396 | 2416 | {
|
|
2422 | 2442 | " H I E A T S R N J \n",
|
2423 | 2443 | " V Z X C G M F P\n",
|
2424 | 2444 | "\n",
|
2425 |
| - "Switching SR to RS:\n", |
| 2445 | + "Switching SR to RS or TR to RT:\n", |
2426 | 2446 | "\n",
|
2427 | 2447 | " K Y O U W D L B Q\n",
|
2428 | 2448 | " H I E A T R S N J \n",
|
2429 | 2449 | " V Z X C G M F P\n",
|
2430 | 2450 | "\n",
|
2431 | 2451 | " Y P O U G D L B Q\n",
|
2432 |
| - " H I E A T R S N J \n", |
| 2452 | + " H I E A T R S N J\n", |
2433 | 2453 | " V Z X C M K W F\n",
|
2434 | 2454 | "\n",
|
2435 |
| - " RT Y P O U G D L B Q\n", |
| 2455 | + " Y P O U G D L B Q\n", |
2436 | 2456 | " H I E A R T S N J \n",
|
2437 | 2457 | " V Z X C M K W F\n",
|
2438 | 2458 | "\n",
|
|
2538 | 2558 | "top_permutation5, letter_permutations5, scores5 = permute_and_optimize(keys24, SpeedStrengthFlow24x24, bigrams, all_letters5, move_positions5, fixed_positions5, ntop=10, verbose=False)"
|
2539 | 2559 | ]
|
2540 | 2560 | },
|
| 2561 | + { |
| 2562 | + "cell_type": "code", |
| 2563 | + "execution_count": null, |
| 2564 | + "metadata": {}, |
| 2565 | + "outputs": [], |
| 2566 | + "source": [ |
| 2567 | + "keys24 = [1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16, 17,18,19,20, 21,22,23,24]\n", |
| 2568 | + "all_letters5 = \n", |
| 2569 | + "['Y','P','O','U', 'H','I','E','A', 'V','Z','X','C', 'G','D','L','B', 'R','T','S','N', 'M','K','W','F']\n", |
| 2570 | + "move_positions5 = [0,1,12,15,20,21,22,23]\n", |
| 2571 | + "fixed_positions5 = [2,3, 4,5,6,7, 8,9,10,11, 13,14, 16,17,18,19] \n", |
| 2572 | + "top_permutation5, letter_permutations5, scores5 = permute_and_optimize(keys24, SpeedStrengthFlow24x24, bigrams, all_letters5, move_positions5, fixed_positions5, ntop=10, verbose=False)" |
| 2573 | + ] |
| 2574 | + }, |
2541 | 2575 | {
|
2542 | 2576 | "cell_type": "markdown",
|
2543 | 2577 | "metadata": {},
|
|
2677 | 2711 | " OY 1020190223 o x"
|
2678 | 2712 | ]
|
2679 | 2713 | },
|
2680 |
| - { |
2681 |
| - "cell_type": "markdown", |
2682 |
| - "metadata": { |
2683 |
| - "colab_type": "raw", |
2684 |
| - "id": "lSk8xYCfDzS6" |
2685 |
| - }, |
2686 |
| - "source": [ |
2687 |
| - " \n" |
2688 |
| - ] |
2689 |
| - }, |
2690 | 2714 | {
|
2691 | 2715 | "cell_type": "markdown",
|
2692 | 2716 | "metadata": {
|
|
2776 | 2800 | "\n",
|
2777 | 2801 | " # 1 2 3 4 5 6 7 8 9 0 < >\n",
|
2778 | 2802 | "\n",
|
2779 |
| - " K U O Y ' \" W L G B Q\n", |
2780 |
| - " H I E A , . T S R N J \n", |
2781 |
| - " V Z X C ( ) D M F P \n", |
2782 |
| - " \n", |
| 2803 | + " Y P O U ' \" G D L B Q\n", |
| 2804 | + " H I E A , . R T S N J \n", |
| 2805 | + " V Z X C ( ) M K W F\n", |
| 2806 | + "\n", |
2783 | 2807 | "Shift to access similar-looking characters above the numbers, and swap the Backspace and Caps lock keys:\n",
|
2784 | 2808 | "\n",
|
2785 | 2809 | "\n",
|
2786 | 2810 | " ~ ! = ? + $ @ ^ & % * < >\n",
|
2787 | 2811 | " # 1 2 3 4 5 6 7 8 9 0 [ ] Caps\n",
|
2788 | 2812 | "\n",
|
2789 |
| - " Tab K U O Y ' \" W L G B Q - /\n", |
2790 |
| - " Back H I E A , . T S R N J Enter\n", |
2791 |
| - " Shift V Z X C ( ) D M F P Shift\n", |
| 2813 | + " Tab Y P O U ' \" G D L B Q - /\n", |
| 2814 | + " Back H I E A , . R T S N J Enter\n", |
| 2815 | + " Shift V Z X C ( ) M K W F Shift\n", |
2792 | 2816 | "\n",
|
2793 | 2817 | " Ctrl Fn Cmd Alt Space Alt Ctrl Arrows\n",
|
2794 | 2818 | "\n",
|
|
0 commit comments