# Using the palette (/docs/pounce/using)



## Summon it [#summon-it]

* **⌘Space**: the default hotkey, registered in-process by the daemon so it
  opens instantly.
* **Fn/Globe**: a lone tap opens the emoji and symbols grid, and Fn combinations
  keep working. On by default inside haus;
  `"mode:emoji": { "hotkey": "fn" }` elsewhere, and
  [`fnKey`](/docs/pounce/config#the-fnglobe-key-fnkey) decides how pounce takes
  the key at all.
* Change either in [config](/docs/pounce/config#config-file).

Not opening at all? [Install](/docs/pounce/install#one-key-to-free-up) covers
the ⌘Space collision with Spotlight, which fails silently.

## Before you type [#before-you-type]

An empty palette is three zones rather than one list: a **strip of tiles** for
the handful of things you reach for, the **familiar list** beneath it, and a row
of **info cards** along the bottom. One character and the whole thing yields to
ranked results; search itself is untouched.

A tile is still a row, with the same [per-item](/docs/pounce/config#per-item-settings-items)
alias and hotkey and the same `⏎`, but the strip is not the list's own head.
Slots go to habit alone and then **hold still**, changing one tile at a time and
only when something new clearly outgrows the weakest, which is what makes
`⌘1`–`⌘9` worth learning: the third tile is the same thing next week. Held still,
not held wrong: two tiles already on the strip trade places when one is worth
more than twice the other, one pair a summon. The list beneath keeps its full
length, so turning the stage on never costs you rows, and a pounce with no
history yet has no tiles at all.

A card draws only when it has something to say, so the row is news rather than
furniture: **NEXT** is what usually follows what you just did (`⇥` takes it),
**CLIPBOARD** is your last copy, and **TODAY** is the resting face when neither
has anything, with the date and the time.

The [`stage` block](/docs/pounce/config#config-file) turns the strip off or makes
it fewer tiles. Each tile is sized to its own title and a strip longer than the
window scrolls, so the count is a ceiling rather than a fitting problem. In
`"windowMode": "compact"` there is no stage at all: compact's whole promise is
that an empty query shows nothing.

## Navigating [#navigating]

| Key                   | Action                                                          |
| --------------------- | --------------------------------------------------------------- |
| Type                  | Fuzzy-search in real time                                       |
| `↑` / `↓`             | Move the selection                                              |
| `←` / `→`             | Walk the tile strip, before you type                            |
| `⌘1` – `⌘9`           | Fire the tile in that position, before you type                 |
| `⇥`                   | Take the suggested next action, when a NEXT card is showing one |
| `Return`              | Run the default action                                          |
| `⇧Return`             | Insert a newline; the query field is multi-line                 |
| `⌘Return`             | The modifier action (often "Reveal in Finder" for apps)         |
| `⌥Return` / `⌃Return` | Alternate actions, when shown                                   |
| `Esc`                 | Dismiss                                                         |

The action bar at the bottom always shows which modifiers do what for the
selected row.

## How ranking works [#how-ranking-works]

Match quality leads, and a few things about you settle the near-ties:

* **Fuzzy match quality**: consecutive runs, word-boundary hits, and titles
  counting double subtitles.
* **Habit, on two clocks.** Every use is counted twice, against a 24-hour
  half-life (what you're doing *today*) and a 30-day one (who you are), so a
  burst this afternoon can outrank a daily habit without erasing it. Each use
  decays from its own moment, so a click adds one use rather than reviving every
  use you ever made.
* **The row you keep taking for those letters.** Pounce remembers the query, and
  every prefix of it, against what you picked: take Cursor for `vs` twice and
  `vs` means Cursor, however tightly something else matches. It is the only
  signal that can surface a row the search itself rejected, which is how `mail`
  comes to mean Superhuman. Two confident picks, never one.
* **Where you are.** The app you pressed the key over, the workspace in front of
  you, the part of the day, weekday or weekend. An item is lifted in proportion
  to how much likelier it is *here* than in general, and never sunk for being new
  somewhere.
* **A freshly-installed boost** for anything installed in the last week,
  halving every two days.

The last three are
[switches](/docs/pounce/config#how-it-learns-ranking). An app you'd rather never
see can be hidden or sunk with `apps.hideBundleIds` / `apps.demoteBundleIds`, and
any row can take a search shorthand:
[per-item settings](/docs/pounce/config#per-item-settings-items).

**What comes next** is deliberately not one of them. Two things you keep doing in
that order, within a few minutes, become the NEXT card on an empty palette, taken
with `⇥`, never `⏎`, which belongs to the selection. It never moves anything in
the list and appears only when the pairing is strong, so a wrong guess costs a
glance and can't displace the row you were reaching for.

## Quick answers [#quick-answers]

Some queries are answered **in the palette** instead of being fuzzy-matched
against apps and commands. The answer pins to the top as its own row, and
`Return` copies it (no trigger prefix needed):

| Type                                         | Get                  |
| -------------------------------------------- | -------------------- |
| `2*847`, `2^10`, `sqrt(9)`                   | Arithmetic           |
| `100 + 10%`, `20% of 150`                    | Percentages          |
| `72 f in c`, `1 pound in kg`, `1 gib in mib` | Unit conversion      |
| `100 usd in eur`, `$100 in eur`              | Currency conversion  |
| `14:00 utc in pst`, `2pm utc in tokyo`       | Time-zone conversion |

A query no engine can parse just falls through to normal results, and anything
without a digit skips the engines entirely: `safari` stays a search.

Currency uses the European Central Bank's daily reference rates, cached locally
so it keeps answering offline, and
[`quickAnswers.currency`](/docs/pounce/config#config-file) turns it off.

## The built-in modes [#the-built-in-modes]

Each is an item: run it from the palette, bind it to a key of its own, or launch
it from a script.

| Mode               | What it is                                                                 |
| ------------------ | -------------------------------------------------------------------------- |
| `mode:clipboard`   | Clipboard history, two-pane, searchable, with optional auto-paste          |
| `mode:emoji`       | Emoji *and* plain-text symbols in one grid: `command` → ⌘, `not equal` → ≠ |
| `mode:filesearch`  | Files and folders by name, over Spotlight's index                          |
| `mode:screenshots` | A browser for the shots you've taken                                       |
| `mode:camera`      | A live camera peek                                                         |

`pounce run mode:clipboard` opens one directly, and
[`items`](/docs/pounce/config#per-item-settings-items) gives it a key of its own.
The cheatsheet overlay (`pounce --cheatsheet`) is the sixth window, and takes its
content from `~/.config/pounce/cheatsheet.json`.
