cleoanka

an interactive page · macOS

Bringing back the lost grid

Type, find, press Enter. Why search is hard with Turkish letters, and how a Launchpad should flow under the keyboard.

canvas & code, no dependencies · cosmodrome on GitHub


1

Type, find, Enter

macOS Tahoe removed Launchpad, the full-screen grid that had shown apps for years. For many people that grid was a habit: press a shortcut, type a few letters, Enter. cosmodrome brings that experience back natively. The secret of a good launcher is flow more than looks: results should arrive with the first letter, and you should be able to pick and open without lifting your hands from the keyboard.

FIG. 1 — Type in the search box: a name matches if its letters appear in order, and Turkish letters are folded (“sifre” finds Şifreler). Use the arrow keys to select and Enter to open. When not searching you can drag icons to reorder them and swipe the grid sideways to turn pages.

Ranking matters too: typing “ma” should put Mail, matched at the start of the name, ahead of something matched in the middle. The score here is simple: matching at the start of the name, at the start of a word, and with small gaps between letters all earn points.

2

The trap of searching in Turkish

Turkish has four i’s: ı, i, I and İ. Most programming languages lowercase by English rules by default: they turn “I” into “i”, and “İ” into “i” plus a combining dot, two characters. The result is invisible bugs in the search box: “İzlence” does not match “izlence”, a user typing “ışık” cannot find “Işık”, and someone without Turkish letters on their keyboard finds nothing at all.

FIG. 2 — The same query three ways. Left: the language’s default lowercasing. Middle: lowercasing with the Turkish locale. Right: folding, which lowercases with the locale and then reduces ı, ş, ğ, ç, ö, ü to their base letters. Try one of the ready-made queries or type your own.

Folding is the foundation of cosmodrome’s search. It leads a user typing on a Turkish keyboard and one typing on a US layout to the same result, and it does not break apps with English names. The price is a tiny ambiguity: “sık” and “şık” search for the same thing, which in a launcher is almost always what you want.

fuzzy
Matches when letters appear in order; start and word-start matches rank higher.
İ / ı
Default lowercasing breaks Turkish; you need the locale or folding.
folding
ı→i, ş→s, ğ→g, ç→c, ö→o, ü→u: every keyboard reaches the same result.