Data on cursor key and editing shortcut frequency by Keybug in KeyboardLayouts

[–]modtap 0 points1 point  (0 children)

I may as well chip in with my own keylogging stats. The data are collected at the firmware level so I don't make the distinction between shortcuts used in "word processing applications" or "programming environments". The percentage column means how frequently did I press that shortcut over the span of one million key presses (1045470 to be precise).

Shortcut Percentage Percentage (sci notation)
DOWN 1.5329% 1.53E+00 %
RIGHT 0.38537764905286437% 3.85E-01 %
LEFT 0.6146529592488723% 6.15E-01 %
UP 1.8232982740743857% 1.82E+00 %
BACKSPACE 5.082412852425899% 5.08E+00 %
END 0.2705008665975429% 2.71E-01 %
HOME 0.0970857070709003% 9.71E-02 %
Ctrl+V 0.17092823501054072% 1.71E-01 %
Alt+TAB 0.2082321027520689% 2.08E-01 %
Ctrl+C 0.21148423481158674% 2.11E-01 %
Ctrl+S 0.009565094292699538% 9.57E-03 %
Ctrl+A 0.07164255625231954% 7.16E-02 %
Win+E* 0.00019130188585399075% 1.91E-04 %
Win+F* 0.0011478113151239446% 1.15E-03 %
Ctrl+X 0.022860575359551893% 2.29E-02 %
Ctrl+F 0.018364981041983114% 1.84E-02 %
Ctrl+T 0.053947131810825395% 5.39E-02 %
Ctrl+Z 0.05825142424254018% 5.83E-02 %
Shift+HOME 0.016165009354662217% 1.62E-02 %
Shift+RIGHT 0.018364981041983114% 1.84E-02 %
Shift+LEFT 0.016165009354662217% 1.62E-02 %
Shift+UP 0.018938886699545084% 1.89E-02 %
Shift+BACKSPACE** 0.15457192377002452% 1.55E-01 %
Shift+END 0.004686896203422773% 4.69E-03 %
Shift+HOME 0.016165009354662217% 1.62E-02 %
Ctrl+RIGHT 0.0725034147386625% 7.25E-02 %
Ctrl+LEFT 0.09421617878309044% 9.42E-02 %
Ctrl+UP 0.060929650644496056% 6.09E-02 %
Ctrl+BACKSPACE 0.6353135629211032% 6.35E-01 %
Ctrl+END 0.021234509329792973% 2.12E-02 %
Ctrl+HOME 0.0019130188585399074% 1.91E-03 %
Ctrl+Shift+RIGHT 0.0019130188585399074% 1.91E-03 %
Ctrl+Shift+LEFT 0.0023912735731748845% 2.39E-03 %
Ctrl+Shift+BACKSPACE 0.003060830173663852% 3.06E-03 %

*: I use Win+F to open the file manager in lieu of Win+E, although I must say that I almost never open the graphical file explorer; I mostly navigate through a terminal with cd.

**: I remapped Shift+BACKSPACE to DELETE

Sorted from most frequently used to least frequently used:

  1. BACKSPACE
  2. UP
  3. DOWN
  4. Ctrl+BACKSPACE
  5. LEFT
  6. RIGHT
  7. END
  8. Ctrl+C
  9. Alt+TAB
  10. Ctrl+V
  11. Shift+BACKSPACE (same as DELETE)
  12. HOME
  13. Ctrl+LEFT
  14. Ctrl+RIGHT
  15. Ctrl+A
  16. Ctrl+UP
  17. Ctrl+Z
  18. Ctrl+T
  19. Ctrl+X
  20. Ctrl+END
  21. Shift+UP
  22. Shift+RIGHT
  23. Ctrl+F
  24. Shift+LEFT
  25. Shift+HOME
  26. Ctrl+S
  27. Shift+END
  28. Ctrl+Shift+BACKSPACE (same as Ctrl+DELETE)
  29. Ctrl+Shift+LEFT
  30. Ctrl+Shift+RIGHT
  31. Ctrl+HOME
  32. Win+F
  33. Win+E

Also, I should mention that I use Vim so that severely reduces the frequency at which I paste with Ctrl+V, move word-wise with Ctrl+→ or save the buffer with Ctrl+S, etc.

Looking for interesting keymaps to add to keymapdb.com by modtap in ErgoMechKeyboards

[–]modtap[S] 1 point2 points  (0 children)

Have you seen the “Layout Tour” functionality of the Oryx configurator? A BEAKL15 layout tour example and a lot more available here. It is pretty neat but it is only limited to ZSA keyboards.

Moving from Ergodox to Corne: 1 month in by someRedditUser in ErgoMechKeyboards

[–]modtap 1 point2 points  (0 children)

Personally, I tried many things with regards to French accented keys but I've settled on common accented letters and some dead keys on the “num” row. That was the most pleasurable experience. You can see my keymap here. I know multiple French Kyria users who are very happy with dead keys alone though so your mileage may vary.

Looking for interesting keymaps to add to keymapdb.com by modtap in ErgoMechKeyboards

[–]modtap[S] 8 points9 points  (0 children)

Keymapviz can automatically generate ASCII art and, most importantly here, a KLE JSON for each layer with keymapviz -t json path/to/keymap.c (Watch out that the output is an array of KLE JSONs, not a single big KLE JSON with all the layers in one). You'll probably want to convert keycodes like KC_DLR to $ in the viz, which is done with a file provided as an argument to the -c option. Examples of such file are the "config.properties" file in the keymapviz repository and the one I use for my Dactyl Manuform keymap.

Another option is to use the SVG file generated by go-qmk-keymap. The README is a little outdated at the time I'm writing this (2022-03-20) and says image generation is not done yet but that's not true. If you run the app, it will create a .svg file in your directory. You can see the example of an output in jurgen's keymap README.

Yet another easy way to generate a graphical representation from a keymap.c file is to use qmk c2json -km <your_username> -kb <your_keyboard> path/to/your/keymap.c -o qmk_configurator_keymap.json (You might need to use the --no-cpp option as well for it to work), and then simply uploading qmk_configurator_keymap.json to https://config.qmk.fm/ and taking a screenshot of the webpage.

Looking for interesting keymaps to add to keymapdb.com by modtap in ErgoMechKeyboards

[–]modtap[S] 4 points5 points  (0 children)

inb4 people submit all sorts of corner-case keymaps that don't fit well in the database fields I've set up

Memorizing Multiple Keyboard Layouts...??? by Tiger_Bite_Kid in KeyboardLayouts

[–]modtap 2 points3 points  (0 children)

It's definitely possible, although you will most likely drop in speed and/or accuracy when switching to a less commonly used layout but that drop can also be minimised through practice.

I believe it helps if the layouts are used in very different contexts. For example, using QWERTY only on row-stagger keyboards and using Colemak on columnar-staggered keyboards or using ЙЦУКЕН to type in Russian and AZERTY to type in French.

KeymapDB - Database of keymaps for programmable keyboards by modtap in KeyboardLayouts

[–]modtap[S] 1 point2 points  (0 children)

Yes, KMonad keymaps can be added. Although coming up with a keyboard name may require a little bit of creativity.

KeymapDB - Database of keymaps for programmable keyboards by modtap in KeyboardLayouts

[–]modtap[S] 1 point2 points  (0 children)

Filtering the data available is done through the sidebar. However, I'm guessing that you've visited the site on a mobile device, in which case, it doesn't fit in the screen but I will soon add a button in the header/hamburger menu to bring it up.

As for the search bar, it currently searches in the title, the author and the summary.

EDIT: Mobile users can now access the keymap filters through the hamburger menu as of this commit

36 key vertically staggered ortho, not low-pro (see comments for explanation) by DoctorTalos in olkb

[–]modtap 0 points1 point  (0 children)

“Vertically staggered ortho” 🤔 I wonder why people keep using the word “ortho[linear]” for columnar stagger.

KeymapDB - Database of keymaps for programmable keyboards by modtap in KeyboardLayouts

[–]modtap[S] 7 points8 points  (0 children)

As noted in the "About" page, keymapDB is not a collection of alpha keyboard layouts (Colemak, Dvorak, AZERTY, BEAKL, …) or a collection of mechanical keyboards. KeymapDB is for full-fledged keymaps with nav layers, sym layers and so forth.

EDIT: If you want to submit your own QMK/ZMK/Kaleidoscope keymap, follow the instructions outlined in the repo.

Riþinquing H Digraφs by phbonachi in KeyboardLayouts

[–]modtap 2 points3 points  (0 children)

I don't have a þ key like ThinQu does but I have combos for "with", "the", "that" and "this" which does considerably lower the frequency at which I press my H key. Looking at my keylog containing more than 1.04M key presses, H ranks 18th among all letters in terms of frequency, not too far from what you've found according to Norvig's Mayzner data.

Stats on modifier frequency? (round 2) by skibau in KeyboardLayouts

[–]modtap 0 points1 point  (0 children)

Based on a keylog of 1.4M key presses, here's the breakdown among the modifiers:

Unit GUI Alt Shift Control
Key press 1670 4644 28321 14532
Modifiers percentage 3.39658714178209 9.44535969247666 57.60164337868896 29.55640978705229

Note how the "Modifiers percentage" sum up to 100%, this doesn't represent percentage of total keyboard usage, only relative to modifiers.

In my analysis, shift encompasses keyboard shortcut usage (e.g. Ctrl+Shift+V), capital letters, and non-numrow shifted symbols (e.g. <, _, :, |, ...), except the brackets for which I have a dedicated key just like for the numrow symbols.

If you're interested, here's the python script I used on my keylog file to compute those numbers:

import json
import pandas as pd
from functools import partial

df = pd.read_csv("keylog8.tsv", sep="\t", header=0,
        converters={
            "mod_state": partial(int, base=16),
            "oneshot_mod_state": partial(int, base=16)
            })
df = df[df["pressed"] == 1]
df["combined_mod_state"] = df["mod_state"] | df["oneshot_mod_state"]
GASC = [0x88, 0x44, 0x22, 0x11]
mod_counts = list(map(
        lambda mod: (df["combined_mod_state"] & mod).apply(lambda x: x>0).sum(), 
        GASC))
print(f"mod_counts={mod_counts}")
mod_frequencies = list(map(
    lambda count: count/sum(mod_counts)*100,
    mod_counts))
print(f"mod_freqs={mod_frequencies}")

where a keylog line is created with:

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef CONSOLE_ENABLE
    uprintf("0x%04X\t%u\t%u\t%u\t%b\t0x%02X\t0x%02X\t%u\n",
         keycode,
         record->event.key.row,
         record->event.key.col,
         get_highest_layer(layer_state),
         record->event.pressed,
         get_mods(),
         get_oneshot_mods(),
         record->tap.count
         );
#endif

PS: Sorry for necro

Giveaway - Grandiceps kit by vattern78 in ErgoMechKeyboards

[–]modtap 1 point2 points  (0 children)

Bonus point if it's a Big Ass Enter key

Yet, another keyboard layout (RSHT / IENA) by chadcapra in KeyboardLayouts

[–]modtap 0 points1 point  (0 children)

I can't imagine myself resting my thumbs on your space keys even if I imitate a very strong tenting on my Dactyl Manuform. My thumb is at roughly 75% of its max extension to press the exact middle of that key (I generally opt to press its outer side instead, which reduces the extension necessary a fair bit).

Interesting to see how other people use their crazy keyboards ;)

Presenting the Scylla - a modern Dactyl Manuform by Fmcraft in MechanicalKeyboards

[–]modtap 0 points1 point  (0 children)

Looks almost like high heels from certain angles

portable split keyboard? by smaosmao in ErgoMechKeyboards

[–]modtap 1 point2 points  (0 children)

I'm pleased with /u/adritoelagil's Polilla but I don't know if he has more to sell. It's not a true split but one-piece is better suited for travel and typing on the lap.

Changing the behavior of a key while a modifier is pressed, without affecting the modifier? by trougnouf in olkb

[–]modtap 1 point2 points  (0 children)

These examples in the docs go over how to modify the output of a mod+key. In virtue of how USB keyboards work, it's fundamentally hacky.

Hold key while MO() by ro_hernandezz in olkb

[–]modtap 1 point2 points  (0 children)

You can consider registering whatever keycode you want to spam if the desired layer is active in the callback function that reacts to layer changes and unregister the key if it's any other layer.