Features / Search Palette

Search Palette

A keyboard-first command palette that searches photos, people, places, tags, and jumps to any settings page — opens with Cmd/Ctrl+K from anywhere in Gallery.

searchkeyboardnavigationdiscovery Documentation
Gallery's photo timeline with the Cmd+K search palette open over it, showing 'mountains' typed into the input, photo and place result sections, and a preview pane on the right with a mountain lake thumbnail

One input for everything in your library

Press Cmd+K on macOS or Ctrl+K anywhere else, and a single search box opens over whatever page you're on. Type a query and Gallery hits five providers in parallel — photos, people, places, tags, and the page catalog — then groups everything into named sections so you can see at a glance what kind of match you're looking at. Pick a result with the arrow keys and hit Enter; the palette knows whether to open the asset viewer, jump to a person's page, drop you on a map, or navigate to a settings screen.

The classic search bar in the navbar still works exactly as it did. The palette is a second, faster entry point — built for the moment when you already know roughly what you want and just need to get there in three keystrokes.

Smart, filename, description, OCR — all from one footer

The Photos section can search four different ways. Smart is the default — CLIP semantic search, ranking by visual meaning, so "kitten on a couch" works even if no one ever typed those words. Filename matches the original file name, useful when you remember an export pattern or a camera's naming scheme. Description hits any captions you've added, and OCR searches text Gallery extracted from the photos themselves — receipts, signs, screenshots.

Cycle modes with Ctrl+/ without ever leaving the input. The footer shows the active mode and the keyboard hint, so the affordance is always discoverable but never in the way.

If the ML server happens to be unreachable, the palette notices and offers a one-click flip to filename mode, so a flaky machine-learning container doesn't take search down with it.

Search palette with 'paris' typed into the input, listing five matching photos with thumbnails on the left and three location matches (Paris in Île-de-France, Paris Léona, Paris in Herrera Province), with a Parisian building thumbnail in the preview pane on the right

Prefix shortcuts scope to one kind of thing

When a bare query is dominated by photos and you know exactly what you're after, start the query with a prefix character: @alice restricts results to people, #xmas to tags, /trip to albums and shared spaces, and >theme to commands and navigation. The prefix is consumed by the palette and doesn't become part of the query text, so a single keystroke flips the palette into a single-section view.

Typing just the prefix with nothing after it opens the full index for that scope — your people most-recently-updated first, your tags most-recently-updated first, your most-recently-active albums and spaces, or every command and navigation entry you have access to. It turns the palette into a lightweight browser for recent activity without ever reaching for a sidebar.

Search palette with just '>' typed into the input, showing the bare-prefix command index — Clear failed jobs (highlighted), Clear recent palette entries, Create shared space, Keyboard shortcuts, New Album, Pause all queues, Resume all queues, Run face detection, Run face recognition, and Run metadata extraction — with the Ctrl+/ cycle-mode hint and the @ # / > scope hint in the footer

Commands fire verbs without leaving the page

Alongside the entity sections sits a Commands section — stateless verbs you can fire from the palette without navigating anywhere. Out of the box you get Upload files, Create album, Create shared space, Keyboard shortcuts, Toggle theme, Sign out, and Clear palette recents. When a command and a navigation entry score similarly against an unscoped query, the command wins the Top result slot, so plain album creates a new album on Enter and plain upload opens the file picker — no arrow keys needed.

Administrators get an extra group for driving the job queues without leaving the page they're on: Run thumbnail generation, Run metadata extraction, Run smart search, Run face detection, Run face recognition, plus the blast-radius bulk verbs Pause all queues, Resume all queues, and Clear failed jobs. Each Run… command fires a parallel request and confirms with a toast; the bulk verbs hit every admin-visible queue at once and report partial failures inline. These commands are admin-gated — non-admins never see them in the result list.

Search palette with '>run' typed into the input, showing the five admin Run commands — Run thumbnail generation (highlighted as Top result), Run metadata extraction, Run smart search, Run face detection, Run face recognition — followed by matching System Settings navigation entries

Verbs that follow you onto the page

Open the palette while you're viewing an album or a shared space and the Commands section grows a handful of verbs that only make sense right there. On an album page: Rename this album, Share this album, Download this album, and Delete this album — or Leave this shared album if it's not yours to delete. On a space page: Add a member to this space, Manage space members, Add all my photos to this space, and either Delete this space or Leave this space, depending on whether you own it. The commands disappear the moment you navigate away, and they never surface on a page they don't apply to.

Each verb is gated on the same permissions the rest of the UI uses, so a viewer never sees "Add member", a non-owner never sees "Delete", and a space owner never sees "Leave" (you can't leave a space you own). The palette just mirrors what you can actually do on the page you're on — no more, no less.

A two-step confirm for anything you can't undo

Destructive verbs — deleting an album, deleting a space, leaving a shared one — don't fire on a single stray Enter. The first Enter arms the row: background tints red, an inset ring outlines it, and the subtitle swaps to "Press Enter again to confirm · Esc to cancel". The second Enter fires. Esc, arrow-away, or picking a different command all cancel the pending state. A 3-second timeout clears it automatically if you get distracted.

The same palette that makes you fast also refuses to turn speed into an expensive mistake. Visual feedback is hard to miss even out of the corner of your eye, and the muscle memory — hit Enter, see red, hit Enter again — lands in a beat.

Search palette open on an album page with '>album' typed into the input, showing a Commands section with New Album, Delete this album (armed in red with 'Press Enter again to confirm · Esc to cancel' hint), Rename this album, Share this album, and Download this album, plus an Albums and Sharing Navigation section below
Read the full documentation on GitHub

Ready to run Gallery on your own server? Install in 5 minutes, keep the demo for a quick check.