Skip to content

Apps With No Overlay

Context-Aware Overlays cover a long list of apps, and every one of them was drawn by hand. For everything else — an in-house tool, a niche editor, the app you happen to use most — PolyKybd now works out what it can on its own, with nothing to install and nothing to configure.

Two things happen together:

  • Shortcuts the app advertises get an icon on their key — Ctrl+S gets a floppy disk, Ctrl+B a bold B — read from the same accessibility information a screen reader uses.
  • The app’s own icon appears on Escape, on every modifier layer, confirming which app those icons belong to.

PolyKybdHost asks three sources in order and takes the first that survives being reduced to a 1-bit 72×40 keycap:

  1. The icon the app itself ships — the executable’s own icon on Windows, the .desktop entry or icon theme on Linux, the bundle’s icon on macOS. Exact by construction, because it is the picture you already associate with that app.
  2. Simple Icons (CC0), the real brand mark where one exists.
  3. Material Design Icons (Apache-2.0), which covers the Microsoft family that Simple Icons does not carry at all.

Detailed logos rarely survive the reduction, so the host measures each candidate and keeps the one that still reads at keycap size rather than the first that loads.

A well-behaved application already publishes its shortcuts — that is how a screen reader can announce them. PolyKybd reads the same information, matches each label to a concept, and draws a small icon in the bottom-right corner of that key, clear of the key’s own legend.

Your platform Where the shortcuts come from Status
Windows UI Automation Supported
Linux AT-SPI2 Supported; depends on the app’s toolkit, see below
macOS Accessibility API Supported (host 1.1.0+), after a one-off permission

What an app publishes depends on its toolkit, so on Linux it varies by app family:

App family Example What PolyKybd gets
GTK3 with a menu bar Mousepad Every shortcut in the menu bar
GTK4, version 4.18 or newer — The shortcuts its menus show (host 1.16.6+; not yet confirmed on a real desktop)
GTK4, older than 4.18 Ubuntu 24.04’s GTK 4.14 Nothing: these versions report every shortcut as blank
Qt / KDE Kate The shortcuts in its menus (host 1.16.6+)

Nothing breaks when an app publishes nothing — the keyboard simply stays as it was, Escape included.

An icon is drawn only when the shortcut’s label maps to a concept the icon set covers — Save, Copy, Paste, Find, Undo, Bold, Print and so on. A label the host cannot place confidently is left alone rather than guessed at, because a plausible but wrong icon is worse than none. Chords the operating system owns (Alt+Tab and friends) are skipped too.

If a hand-made overlay covers the app, it wins — but per key, not for the whole window. Every key the artwork draws keeps exactly what its author intended, and the generic icons fill only the keys it leaves blank.

Turn that off (see below) and an app with artwork shows exactly what was drawn for it and nothing else. Both are reasonable: a blank key on a carefully made overlay may be a deliberate choice rather than a gap, which is why it is a switch rather than a rule.

In a multi-machine setup the app runs on one computer while the keyboard is plugged into another. The shortcuts are read on the machine the app is actually running on and sent across as text, so a forwarded app gets the same icons a local one does.

All five live in Settings… in the tray menu and are on by default.

Setting What it controls
Generic → Overlays Enabled The whole feature. Off: no Escape mark and no shortcut icons for any app.
Generic → Overlays Fill Gaps Whether generic icons also appear on apps that already have artwork, filling only the keys it leaves blank.
Shortcut → Icons Enabled Whether the focused app is read for its shortcuts at all. Off: nothing generic is drawn, since the Escape icon only accompanies shortcut icons.
Shortcut → Icon Auto Fetch Whether the icon set may be downloaded. Off: icons already downloaded keep working; new ones are skipped.
Shortcut → Enable Accessibility Linux only. Whether PolyKybdHost may turn on the desktop’s accessibility switch so Qt and KDE apps publish their shortcuts. Off: only apps that publish anyway (GTK) are read.

Two of them switch everything off: with Generic → Overlays Enabled or Shortcut → Icons Enabled off, nothing generic is drawn and the other settings have no effect.

Everything happens on your own computer. The host reads the focused app’s shortcut labels locally and never sends them anywhere; the only network request is for the icon set itself, and it is cached after the first time. Nothing about which apps you use leaves the machine.