Skip to content
reminiscience edited this page Aug 13, 2026 · 1 revision

Layers

AnNoted has 21 layers. Layers 1 to 4 are the familiar Neo layers; the rest are five themed blocks and one modifier layer. This page explains the scheme – how a layer is reached, why the blocks are grouped the way they are, and what happens when you ask for a combination that does not exist. The block pages carry the actual assignments, one screenshot per layer.

Only AnNoted has these layers. Neo, NeoQwertz and Noted stay at their six published layers – see Layouts.

The scheme at a glance

Layers How you get there Block Page
1–4 – / Shift / Mod3 / Mod4 base layers, as in Neo Base
5–8 lock Mod5, then +Shift / +Mod3 / +Mod4 maths and logic; 7 superscript, 8 subscript Maths
9–12 lock Mod6, then +Shift / +Mod3 / +Mod4 typography; 11/12 nearly all reserve Typography
13–14 lock Mod7, then +Shift Ancient Greek, lower and upper case Greek
15–16 lock Mod8, then +Shift Cyrillic (Russian) Cyrillic
17–20 lock Mod9, then +Shift / +Mod3 / +Mod4 extra: symbols, emoji, dice and alchemy Extra
21 hold Mod3+Mod4 the six compose modifiers Compose modifiers

Default triggers: M3+F2 maths, M3+F3 typography, M3+F4 Greek, M3+F5 Cyrillic, M3+F6 extra. M3+Esc releases everything. All of this is configurable – see Locks and triggers.

No key carries Mod5 to Mod9

This is the one structural decision everything else follows from. The block modifiers Mod5 to Mod9 exist as modifiers, but no physical key is mapped to them. A block is entered by locking it and left by releasing the lock.

The alternative would have been more held modifiers, and there are no keys left for them: a keyboard has two thumb keys and two Mod3 keys, and they are spoken for. Locking costs one chord to enter and one to leave, and in exchange the block is available on every key for as long as you need it – which is what you want when typing a run of Greek or a stretch of maths, and not what you want for a single character. For single characters the compose tree is usually the shorter path; that division of labour is described under Compose.

The price is real and worth stating plainly: the direct grip is gone. In the layer scheme that preceded this one, maths sat on held Mod3+Mod4 and a single was three keys with no mode to leave. Today it is four: lock, key, unlock. What the change bought is the other four blocks, which had nowhere to live at all, and a layer scheme that can grow without renumbering.

Reaching the upper layers of a block

Once a block is locked, held Shift, Mod3 and Mod4 reach the block's other layers:

  • Maths, typography and extra have four layers each: base, +Shift, +Mod3, +Mod4.
  • Greek and Cyrillic have two: base and +Shift.

M3+F7 is a different way to the same place: it adds Shift to the lock (or removes it again), so you stay on the block's second layer without holding anything. It works with any block, and on its own it locks Shift alone.

What is not there

Two gaps follow from the scheme, and both are noticeable in daily use.

Combinations without a layer fall back to layer 1. Inside a locked block only the defined extensions reach a layer. Greek plus held Mod4 is not defined, so it types the ordinary layer-1 character rather than nothing at all. The same applies outside the blocks: Shift+Mod3 has no layer in AnNoted and never had one.

Special characters and navigation are not reachable inside a locked block – they live on layers 3 and 4, and those are outside the block. Release briefly with M3+Esc if you need them mid-sentence. The exception is deliberate and described below.

What every block keeps

A locked block would be useless if it swallowed the keyboard whole, so three groups of keys keep their layer-1 behaviour on every block layer:

  • the numeric keypad and the arithmetic keys – so a locked block stays usable for numbers and calculation
  • Escape, Tab, Return and Backspace – so you can always get out
  • the space bar, from layer 8 upwards

Layers 5 and 6 are the exception to the first point: as maths layers they carry mathematical symbols on the keypad too.

The number row is a different matter and varies by block: Greek and Cyrillic keep digits there, while typography puts fractions and extra puts circled numbers on those keys. Where the number row is taken, the keypad still types digits.

The space bar has its own hierarchy

The space bar ignores the block structure and counts its layers as one continuous list, from ordinary space down to no width at all:

Layer Character
1/2 U+0020 ordinary space
3 U+00A0 no-break space
4 U+202F narrow no-break space
5 U+2009 thin space
6 U+200A hair space
7 U+200B zero-width space
8 and up U+0020 ordinary space again

That layers 5 to 7 are formally maths layers is intentional – the sequence is a property of the space bar, not of the blocks it passes through. Inside locked maths, +Mod4 gets you an ordinary space back.

One key moved to make room: layer 4's numpad-0 sits on w, since the space bar's layer-4 slot went to the narrow no-break space. It still sends a real VK_NUMPAD0, so Alt codes keep working.

Layer 21 is exempt from locking

Every other layer has to declare a value for every block modifier – a layer that does not mention a locked modifier is skipped. Layer 21 carries the mark ignoreLocks and is the only layer that does, which is what makes the compose modifiers reachable from inside a locked block. Details on the Compose modifiers page; the mechanism is described under Editing layouts.

A side effect worth knowing: Mod3 and Mod4 can both be locked (Mod3+Mod3, Mod4+Mod4). With both locked, every key hits layer 21. M3+Esc gets you out.

Where the layers actually live

All of this is data, not code. The layers, the modifier sets and every key are defined in layouts.json; the triggers that lock them are in config.json. Neither requires rebuilding the program. See Editing layouts and Locks and triggers.

Clone this wiki locally