Skip to content

Latest commit

 

History

History
210 lines (156 loc) · 10.1 KB

README.md

File metadata and controls

210 lines (156 loc) · 10.1 KB

wellum-description-english

Wellum — 36-keys callum-styled keyboard layout

Эта статья также доступна на 🇷🇺 Русском языке.

wellum-preview

Table of contents

About firmware

The firmware/layout is intended for use with Universal Layout - a system-wide layout for Windows, Linux, and macOS. On the project page, you can find all the necessary instructions for installing and modifying this layout.

The firmware/layout is based on callum and works on QMK, which is designed for wired keyboards. A version for wireless keyboards that work on ZMK is currently under development.

Terms

  • Modifiers: Shift, Ctrl, Alt or Gui
  • Layer keys: SYM or NAV

Keyboard layers

  • Hold SYM to activate the symbols layer.
  • Hold NAV to activate the navigation layer.
  • Hold SYM and NAV together to activate the numbers layer.
  • Hold ALT to activate the special symbols layer.

Base layer

wellum-layer-base

Don't worry! Letters Ё, Ъ and Щ are placed on ALT layer.

Symbols

wellum-layer-sym

Navigation

wellum-layer-nav

On the left half, there are the Game Layer, Print Screen, and various macros:

Key Macro
SW TAB Swapper (for windows in Windows/Linux)
SW WIN Tabber (for tabs in browser and terminal)
PREV TAB Ctrl + Shift + Tab
NEXT TAB Ctrl + Tab
SPACE LEFT Ctrl + Gui + Left
SPACE RIGHT Ctrl + Gui + Right

On the right half, there are Vim-like arrow keys, Home/End (on top), and Page Up/Down (on the bottom).

The Escape, Enter and Tab keys are duplicated on both halves, which is convenient for use in various software and editors where only the left hand is on the keyboard while the right hand holds the mouse.

Numbers and F-keys

wellum-layer-num

Special symbols

wellum-layer-alt

The Russian letters that did not fit into the 2x15 grid and various symbols, many of which are arranged mnemonically, are placed in a layer:

Symbol Input method
Ё Alt + Е
Ъ Alt + Ь
Щ Alt + Ш
Alt + Р

In place of the space is located the non-breaking space character, which prevents text from being divided between lines only at that point, and instead forces the entire group of adjacent words to move to the next line together.

The ALT layer also includes < > « » [ ] (available for both languages) and the => ligature, which is convenient for developers.

Gaming layer

wellum-layer-game wellum-layer-gfn

WASD is shifted one column to the right to accommodate Tab, Shift, and Ctrl in almost familiar positions. This is also relevant for ergonomic keyboards due to the vertical offset of the keys, where the key under the middle finger is higher than the others.

Additionally, the layer with numbers contains two rows of digits and frequently used gaming keys:

Key Description
G Grenade
J Journal
I Inventory
M Map
T Chat

How One-shot Sticky Modifiers work

When you hold layer key, modifiers will be added to a queue and remain pressed until some non-modifier key or layer key is pressed.

For example, to press the Windows Gui key without any combinations, you need to:

  • hold down the layer key
  • press the Gui modifier
  • release the layer key and press it again.

And if you need, for example, to press the Ctrl+Shift+T combination, you have several options:

  1. The first one:
    • Hold down the SYM layer key.
    • Type the K (Ctrl) and J (Shift) modifiers in any sequence.
    • Release the SYM layer key.
    • Type T.
  2. The second one:
    • Hold down the NAV layer key.
    • Type the D (Ctrl) and F (Shift) modifiers in any sequence.
    • Release the NAV layer key.
    • Type T.

As soon as the T key is pressed, the queue of modifiers will be activated, cleared, and the Ctrl+Shift+T combination will be entered.

Moreover, if you hold down the modifier keys but release the layer key, the modifiers will remain held down, allowing you to use them in combinations with keys from the other half of the keyboard.

How Swapper and Tabber work

The Swapper key NAV+W and the Tabber key NAV+Q are macros for Alt+Tab and Ctrl+Tab, respectively. When pressed, they leave the Alt or Ctrl modifiers held down.

Thus, by pressing W and Q again, you can switch between windows in Windows, tabs in a Web Browser, or Terminal.

These keys are compatible with the Shift modifier, which allows you to reverse the direction of window/tab switching.

How to install?

To build the firmware, you will need the latest version of QMK.

  • Copy the contents of the firmware folder to the <your_keyboard>/keymaps/wellum folder.
  • Build and flash with the standard build/flash command for your keyboard, specifying the ':wellum' variant.
  • If LAYOUT_split_3x5_3 is not defined for your keyboard in info.json, you need to create it yourself. Follow the instructions below.
  • Install Universal Layout for your OS.

How to create LAYOUT_split_3x5_3?

For the firmware build, keymap.c relies on LAYOUT_split_3x5_3, but it may not be defined for most keyboards. To fix this, you need to duplicate your current LAYOUT_split_***_* and name it LAYOUT_split_3x5_3. After that, you need to remove the keys that do not fit into the new grid. For example, for LAYOUT_split_3x6_3, you need to remove the rows corresponding to the far left and far right columns. In total, the layout array should have exactly 36 elements.

"LAYOUT_split_3x6_3": {
    "layout": [
        { "matrix": [0, 0], "x": 0, "y": 0.25 },  // far left, delete
        { "matrix": [0, 1], "x": 1, "y": 0.25 },
        { "matrix": [0, 2], "x": 2, "y": 0.125 },
        { "matrix": [0, 3], "x": 3, "y": 0 },
        { "matrix": [0, 4], "x": 4, "y": 0.125 },
        { "matrix": [0, 5], "x": 5, "y": 0.25 },
        { "matrix": [4, 0], "x": 8, "y": 0.25 },
        { "matrix": [4, 1], "x": 9, "y": 0.125 },
        { "matrix": [4, 2], "x": 10, "y": 0 },
        { "matrix": [4, 3], "x": 11, "y": 0.125 },
        { "matrix": [4, 4], "x": 12, "y": 0.25 },
        { "matrix": [4, 5], "x": 13, "y": 0.25 }, // far right, delete
        { "matrix": [1, 0], "x": 0, "y": 1.25 },  // far left, delete
        { "matrix": [1, 1], "x": 1, "y": 1.25 },
        { "matrix": [1, 2], "x": 2, "y": 1.125 },
        { "matrix": [1, 3], "x": 3, "y": 1 },
        { "matrix": [1, 4], "x": 4, "y": 1.125 },
        { "matrix": [1, 5], "x": 5, "y": 1.25 },
        { "matrix": [5, 0], "x": 8, "y": 1.25 },
        { "matrix": [5, 1], "x": 9, "y": 1.125 },
        { "matrix": [5, 2], "x": 10, "y": 1 },
        { "matrix": [5, 3], "x": 11, "y": 1.125 },
        { "matrix": [5, 4], "x": 12, "y": 1.25 },
        { "matrix": [5, 5], "x": 13, "y": 1.25 }, // far right, delete
        { "matrix": [2, 0], "x": 0, "y": 2.25 },  // far left, delete
        { "matrix": [2, 1], "x": 1, "y": 2.25 },
        { "matrix": [2, 2], "x": 2, "y": 2.125 },
        { "matrix": [2, 3], "x": 3, "y": 2 },
        { "matrix": [2, 4], "x": 4, "y": 2.125 },
        { "matrix": [2, 5], "x": 5, "y": 2.25 },
        { "matrix": [6, 0], "x": 8, "y": 2.25 },
        { "matrix": [6, 1], "x": 9, "y": 2.125 },
        { "matrix": [6, 2], "x": 10, "y": 2 },
        { "matrix": [6, 3], "x": 11, "y": 2.125 },
        { "matrix": [6, 4], "x": 12, "y": 2.25 },
        { "matrix": [6, 5], "x": 13, "y": 2.25 }, // far right, delete
        { "matrix": [3, 0], "x": 3.5, "y": 3.25 },
        { "matrix": [3, 1], "x": 4.5, "y": 3.5 },
        { "matrix": [3, 2], "x": 5.5, "y": 3.75 },
        { "matrix": [7, 0], "x": 7.5, "y": 3.75 },
        { "matrix": [7, 1], "x": 8.5, "y": 3.5 },
        { "matrix": [7, 2], "x": 9.5, "y": 3.25 }
    ]
}