/* Key info that is reused or otherwise nice to define in one place.
 */

export const keyInfo = {
  qwerty: ["Unchanged from normal QWERTY layout asdf"],
  fKeys: [`The function keys.`],
  sysCtrls: [
    `Rarely used system control keys.`,
    `I rarely need them, but it's good to have them available.`,
  ],
  numpad: [
    `Numpad keys I can hit with my right hand while the left hand holds down the key to enter this layer.`,
    `Technically these keys send different keycodes than the 0-9 keys above qwerty, so they can be used for special function keys in some applications.`,
    `This is currently an experiment to see if I can get faster with a numpad than I can with the number row on the base layer.`,
  ],
  brackets: [
    `
      Brackets work really well for me here, and shift keys work really poorly for me here,
      so this odd key placement is a win-win for me.
    `,
    `
      The most important aspect of this placement is that these are <em>not</em> <kbd>shift</kbd> keys.
      When I got my first split keybard (an <a href="/blog/earliest-ergodox-keymap/">ErgoDox</a>),
      using shift with either hand had become excruciating,
      and I desperately needed to shift without using my pinky.
      To accomplish this, I remapped
      <keymap-indicator id="l-t-1-5"><kbd>shift</kbd></keymap-indicator>
      to under the thumb.
      However, moving shift to a new location without removing the normal QWERTY shift mapping gave me too much of a crutch,
      so I needed to remove shift from its normal location.
    `,
  ],
  command: [
    "This key represents either <kbd>cmd</kbd>/<kbd>⌘</kbd> on macOS or <kbd>win</kbd> on Windows. Keeping it in this location makes it relatively easy to hit any application shortcut without remapping them in the operating system or straining your hands.",
    `A small nitpick: this key is more convenient to hit on the <a href="/blog/earliest-ergodox-keymap/">ErgoDox</a>, where it sits lower and is easier to hit with the thumb.`,
  ],
  option: [
    `
        This key represents either <kbd>opt</kbd>/<kbd>⌥</kbd> on macOS or
        <kbd>alt</kbd> on Windows. This location is easy to hit with your thumb,
        and having two of them means you don&apos;t have to stretch much.
      `,
    `
        As <kbd>opt</kbd> + a left/right arrow key is a very common chord,
        it&apos;s worth noting that this placement works well with my
        <keymap-indicator id="l-t-5-5">left side</keymap-indicator> arrow layer.
        I can chord <kbd>opt</kbd>+<kbd>arrow layer</kbd> with my left index finger and thumb without any strain,
        and use the right hand to move the cursor with the arrow keys.
      `,
  ],
  control: [
    `
        Keeping this key out from under my pinky is vital &mdash;
        <em>especially</em> since there are some Emacs habits I haven't been able to break despite switching to vim in 2019.
        (I guess using an editor for twenty years leaves a mark.)
      `,
    `
      Happily, this is a really excellent location for <kbd>ctrl</kbd>,
      much better than the default QWERTY location, and only possible on a keyboard like this,
      because it&apos;s easier to chord with any key on the board.
    `,
    `
      On a normal keyboard, I remap the key in the
      <keymap-indicator id="l-f-1-9"><kbd>capslock</kbd></keymap-indicator>
      position to <kbd>ctrl</kbd>; for this layout, I had to remove that mapping
      to stop me from falling back to old habits.
    `,
  ],
  volumes: [
    `
    It&apos;s nice to have dedicated volume keys, but isn&apos;t a necessity.
    I&apos;ve also experimented with using these keys to enter different
    function layers, which works well too.
  `,
  ],
  navArrows: [
    `Home row arrow keys.`,
    `The right hand keys minic vim's HJKL.`,
    `The left hand keys mirror this, except that they use the pinky instead of having the index finger cover two keys.
    (Though I am very careful about pinky strain, this placement is worth it to me, and feels quite comfortable.)`,
  ],
  navBlocks: [
    "Placing these above the arrow keys makes them easy to remember. It's nice that I can hit them all with my left hand when my right hand is on the mouse.",
  ],
  navBackForwards: [
    "These are shortcuts used for navigating back and forth in web browser -inspired programs.",
    "I name them after macOS for <kbd>⌘</kbd>+<kbd>[</kbd>/<kbd>]</kbd> Windows for <kbd>^</kbd>+<kbd>[</kbd>/<kbd>]</kbd>, but they're really more application specific than strictly confined to one operating system or another.",
    "Very useful to be able to hit these with the left hand while the right hand is on the mouse.",
  ],
  expose: [
    "Keys to invoke the macOS Exposé feature.",
    "Technically I set these in macOS System Settings to <kbd>⌘</kbd>+<kbd>F10</kbd>/<kbd>F11</kbd>/<kbd>F12</kbd>.",
  ],

  functionLayer: [
    `Activate the function layer, which contains the <kbd>F1</kbd> through <kbd>F20</kbd> keys, as well as keys like <kbd>Insert</kbd>, <kbd>Caps Lock</kbd>, etc.`,
    `Click the Function Layer button above to see the keys on that layer.`,
  ],
  navLayer: [
    "Enter the navigation layer, which contains arrow keys, <kbd>pgup</kbd>, <kbd>pgdn</kbd>, <kbd>home</kbd>, <kbd>end</kbd>, and various application-specific function keys.",
    `Click the Navigation Layer button above to see the keys on that layer.`,
  ],
  adv360Layer: [
    "Enter the Advantage360 Layer, which contains Advantage360-specific functionality like switching Bluetooth profiles and changing the backlight.",
    `Click the Advantage360 Layer button above to see the keys on that layer.`,
    `(Kinesis refers to this as the "Mod Layer").`,
  ],
  keypadLayer: [
    "Enter the Keypad Layer, which contains a number pad and some application-specific keys.",
    `Click the Keypad Layer button above to see the keys on that layer.`,
  ],
  whisperInvoke: [
    `Invoke <a href="https://superwhisper.com/">superwhisper</a>.`,
    `I don't use my pinky to hit this; instead, I move my left hand over and hit it with the middle finger. The way I use superwhisper is occasionally I invoke it to type at least one sentence, and usually more like a paragraph. I'm not hopping back and forth between superwhisper and typing regular text, so this isn't inconvenient, and it makes something useful out of this otherwise useless key.`,
    `In the keyboard firmware, this is mapped to something like <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>F1</kbd>, and superwhisper is configured to listen for that key combination.`,
    `Normally, of course, this is a capslock key, but I don't have a lot of use for that. On a regular keyboard I might remap this to <kbd>ctrl</kbd>, but on the Advantage360 I can map ctrl to a thumb key, which is much better for me, and that leaves this key open for use as a special function key like this.`,
  ],
  aerospace: [
    `Invoke command-mode in the <a href="https://github.com/nikitabobko/AeroSpace">AeroSpace</a> window manager for macOS.`,
    `I configure AeroSpace to have a "main mode" where the keys type letters, and an "alt mode" where the keys are used for entering commands, analogous to vim's "insert" and "normal" modes. This key enters "alt mode".`,
    `In the keyboard firmware, this is mapped to something like <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>F10</kbd>, and AeroSpace is configured to enter "alt mode" when I press that combination.`,
    `You can see my config <a href="https://github.com/mrled/dhd/blob/master/hbase/.config/aerospace/aerospace.toml">on GitHub</a> if you like.`,
  ],
  gridcraft: [
    `Invoke my <a href="https://pages.micahrl.com/GridCraft/">GridCraft</a> app launcher via <a href="https://hammerspoon.org">Hammerspoon</a>.`,
    `In the keyboard firmware, this is mapped to something like <kbd>ctrl</kbd>+<kbd>alt</kbd>+<kbd>F11</kbd>, and Hammerspoon is configured to invoke GridCraft when it receives that key combination.`,
    `You can see my config <a href="https://github.com/mrled/dhd/blob/master/hbase/.hammerspoon/gridConfig.lua">on GitHub</a> if you like.`,
  ],
};
