Features/Search palette

Search palette

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

searchkeyboardnavigationdiscoveryDocumentation
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 search box opens over whatever page you're on. Gallery hits five providers in parallel (photos, people, places, tags and the page catalog) and groups the results into named sections. Arrow to one and press 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 the faster way in when you already know roughly what you want.

Four ways to search your photos

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, which helps when you remember an export pattern or a camera's naming scheme. Description hits any captions you've added.OCR searches text Gallery extracted from the photos themselves: receipts, signs, screenshots.

Cycle the modes with Ctrl+/ without leaving the input. The footer shows the active mode and the keyboard hint.

If the ML server is 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

Start the query with a prefix character and the palette drops to a single section: @alice for people,#xmas for tags, /trip for albums and shared spaces, >theme for commands and navigation. The prefix is consumed by the palette and never becomes part of the query text.

Type just the prefix with nothing after it and you get the full index for that scope: your people and tags by most recently updated, your most recently active albums and spaces, or every command and navigation entry you have access to. One keystroke turns the palette into a browser for recent activity.

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

A Commands section sits alongside the entity sections, holding stateless verbs you can fire from the palette. Out of the box: Upload files, Create album, Create shared space, Keyboard shortcuts, Toggle theme, Sign out, 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.

Administrators get an extra group for driving the job queues: Run thumbnail generation, Run metadata extraction, Run smart search, Run face detection and Run face recognition, plus the blast-radius bulk verbs Pause all queues, Resume all queues and Clear failed jobs. EachRun 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. Non-admins never see any of them.

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 and 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 and the Commands section grows Rename this album, Share this album, Download this album, and either Delete this album or Leave this shared album. On a space page: Add a member to this space, Manage space members, Add all my photos to this space, and Delete this space or Leave this space, depending on whether you own it. The commands disappear the moment you navigate away.

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).

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

Deleting an album, deleting a space, leaving a shared one: none of these 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 cancels, and so does arrowing away or picking a different command. A 3-second timeout clears it if you get distracted.

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 a '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? The install takes about five minutes.