Эта статья также доступна на 🇷🇺 Русском языке.
- About firmware
- Terms
- Keyboard layers
- Additional info
- How to install?
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.
- Modifiers: Shift, Ctrl, Alt or Gui
- Layer keys: SYM or NAV
- 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.
Don't worry! Letters Ё, Ъ and Щ are placed on ALT layer.
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.
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.
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 |
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:
- 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.
- 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.
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.
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 ininfo.json
, you need to create it yourself. Follow the instructions below. - Install Universal Layout for your OS.
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 }
]
}