Skip to content

Views and Filtering

melonfleet edited this page Oct 20, 2026 · 4 revisions

Views, search and filtering

Every list section shares the same controls in the same order. That is deliberate: whatever you learn on one screen works on the others, and a control that moved between sections would read as a bug.

The list sections are Containers, Machines, Images, Volumes, Networks, Hosts, Registries, DNS and Clusters. Each is a split view: the list on the left, the selected item's page on the right.

  list toggle   select all   Sort   Filter   Updated …   section actions   Refresh

Search is not in this bar. It is the one box in the window bar, covered below.

The filter sits next to Sort everywhere. The toolbar also says when the section's list was last updated, if there is room, and always on the Refresh button's tooltip.

Rows

A list is rows only. There is no table, no Cards and no Columns button.

Cards and the table both lost. A table spends its width on ten columns most people hide. Cards stop scaling somewhere past twenty items. A row says what the thing is and what it is doing in the same space, and every section shows it the same way.

A row has, from the left:

  1. a checkbox;
  2. a mark: a state dot, or the section's symbol where the thing has no state, such as an image;
  3. the name on the first line, with small chips after it: tags, the host when it is not This Mac, and facts such as default, built-in or in use;
  4. a second line with the detail, which truncates: image, ports and network for a container; size, created date and platform for an image; and so on.

The name gets room first. Chips drop, last one first, before the name is cut short. A name is only shortened, in the middle, when it alone is wider than the line.

A container's row shows no live CPU or memory. Those figures are on the container's page, under Resource use. A number in a narrow list was not worth what it cost the name.

Row actions appear on hover

A row's main action shows only while the pointer is over the row, or the row is selected. It is start or stop for a container or machine, Run for an image, sign-in for a registry, Recreate for a cluster. ⋮ sits beside it. The rest — Restart, Tags, Delete and so on — are in ⋮, in the right-click menu and in the page's header. They are the same menu.

Volumes, networks, hosts and domains have no main action on the row. Their page is the action.

Hidden controls are a problem for the keyboard and for VoiceOver. A selected row always shows its actions, so the keyboard reaches them. While VoiceOver is running, every row draws them.

Groups

A group is a row with its members indented beneath it. See Containers.

The split view

Click a row and its page opens on the right. The page is the one that section always had: a container's tabs, a machine's page, an image's details. Nothing is a slide-in, and the name is not a link.

  • Nothing selected shows a short prompt, such as Choose a container.
  • One row shows its page. ↑ and ↓ in the list move the selection and the page follows.
  • Two or more rows show N containers selected, the names, and the bulk actions.

A group's page is its form. A registry's, a domain's and an imported host's pages are their forms too. Clusters have a small read-only page.

Double-click and Return open nothing. Selecting a row is what shows its page. A menu's Details, Logs, Terminal or Edit Settings selects the row, and clears a filter that was hiding it.

The divider and the widths

Drag the divider to resize the panes. Each section remembers its own width across launches. The list is at least 260 points wide and the page at least 360. Until you drag it, the divider sits in the middle.

Stepping, expanding and list only

  • ↑ ↓ in the page's header go to the previous or next row, as Mail does. ⌘[ and ⌘] do the same. Command-arrow is every text field's move-to-start, so it is not used.
  • Expand widens the page over the list, to the full width of the window beside the sidebar. It gives Terminal and Logs their room. It is remembered per section until you quit. While the page is widened, ↑ and ↓ still walk the list.
  • List toggle, the first control in the toolbar, shows the rows alone. View ▸ Show List Only (⌥⌘L) does the same. It is remembered per section.

A window too narrow for both

At the window's 700-point minimum, with the labelled sidebar, the content is too narrow for 260 and 360 side by side. The split then folds. It shows the list while nothing is chosen and the page once something is. The expand button reads Show the list. Choosing a row brings the page back.

Unsaved changes

If the page is a form with unsaved edits, choosing another row asks the question the sidebar asks. Keep Editing puts the selection back.

What stays full width

Forms are not part of the split. Run, New Volume, New Group, Add Service, Add Registry, New Domain, Pull and every other form take the whole content area, with Back and ✕. Only viewing an item uses the split.

Suggestions, Notifications and the Docker Hub browser are splits too, with a fixed-width detail pane. Logs is a table and is not split.

The search box

There is one search box, in the middle of the window bar. It replaced a field on every list page and the floating palette. It does three jobs at once.

  1. It filters the page you are on, as you type. Each list page lends it its own text, so each section keeps its own filter. A page with no list, or a form, has nothing to filter.
  2. It runs commands. Run Container…, Add Host… and the rest of the menu's actions.
  3. It goes places. Sections, and items by name across all your Macs.

Its placeholder names the page: Search containers. On a page with no list it says Search or run a command, and it shows a ⌘K hint while empty.

⌘K and View ▸ Go To… focus the box. With nothing typed, the dropdown lists the commands and the sections. ⌘F focuses the box too, but only puts the cursor in it. Clicking outside, or picking something, gives focus back to the page.

The dropdown

While the box has focus and text, a dropdown lists:

  • Scopes, if you are typing one;
  • Commands;
  • Go to: sections, and items by name.

Its top line says what the page is doing, such as 12 on this page. ↑ and ↓ move, Return opens the highlighted entry, and Esc closes the dropdown. A second Esc clears the text. Search tips at the foot of the dropdown repeats this.

Nothing here skips a check. A pick goes through the same request as the menu command or the row. If a form has unsaved changes, picking something asks first.

Scopes: type:

A word and a colon at the start searches one kind of thing across all your Macs. The page is not filtered.

volume: data        container: web        suggestion: database

The scopes are container, group, image, volume, network, machine, cluster, host, dns, registry, notification and suggestion. The plural works too, and vol, net and img are short for volume, network and image. Case does not matter. Tab completes a scope as you type it.

A suggestion result opens Suggestions on its tab with that row selected. It never creates anything.

Commands: > and /

  • > first means commands only, as in VS Code. The page is not filtered while it is there, so >run cannot leave Containers empty.
  • / first also means commands, by short names made from their titles: /run-container, /create-volume, /build-image, /import, /export. Each typed part may abbreviate a part of the name, in order. Return or Tab runs the highlighted one.

Words in Containers

The Containers box reads a small grammar as well as plain words:

  • is:running, is:stopped
  • image:postgres
  • host:mini
  • tag:database

Every part must match. is:running image:postgres db is running Postgres containers with "db" somewhere in them. Matching ignores case and accents, and is by substring. Quotes keep a value's spaces: host:"Studio Mac".

A word the grammar does not know — foo:bar, or is: with a value it does not take — is searched for as written, so nothing you type is silently dropped. Other sections use plain text search.

A plain word matches the name and the other text in the row.

Fields left alone

Some fields search inside one panel, not the page, and stay where they are: a container's Logs tab, the Inspect tabs' key filter, a host's settings filter, and the host list inside forms. In the Docker Hub browser the box is the query field, and Return runs the search.

Filtering

Filter narrows by state, or by whatever the section has to choose between. A dot on the button means a filter is on, and its tooltip says which.

Section The filter offers
Containers State (all, running, stopped); Show (groups and containers, groups only, containers only); Host
Machines State
Images Platform, such as arm64 or amd64
Volumes Size, age, and labels
Networks All, user-defined or built-in
Hosts All, connected, waiting for approval, needs attention
Registries All, signed in, not signed in, sign-in required, added by you
DNS All, for containers, host aliases
Clusters None

The filter hides itself when it has nothing to choose between. The options come from the data on screen. If every image has the same platform, there is no platform filter, rather than a control whose every setting shows the same rows.

Filter and search compose. The empty state tells you which kind of empty you are looking at: nothing exists and nothing matches your filter are different situations, with Clear Filter offered for the second. Drawing the same blank pane for both makes you doubt the filter you just set.

The host filter

Once a host is paired, the filter gains a Host section: all hosts, This Mac, or one paired host. In Volumes and Networks, New… starts on the Mac the filter is set to, so a list narrowed to one host creates there.

A host that has not answered recently is still listed, with the age of what it last reported, rather than vanishing from the list. A row that disappears looks like a container that was deleted.

Rows for a paired host's items carry the host as a chip when it is not This Mac. Volumes and Networks also say, on This Mac's rows, how many of the hosts that answered have one of the same name — on 2 of 3 hosts — with a mark when a host's copy differs. See Volumes and networks.

Sorting

Sort is a menu in the toolbar. It has the key, with a tick on the current one, and the direction.

The default is by name, not running-first.

Running-first was the original decision, and using the app disproved it. Stopping a container moved its row to the bottom, so the thing you had just acted on left the place you were looking. State is still a key, so running-first is one choice away.

Section Keys
Containers Name, State, Type, Image, Created, Ports, IP / Network, Host
Machines Name, State, CPUs, Memory, Disk, IP, Created
Images Name, Tag, Platform, Digest, Size, Created, Host
Volumes Name, Format, Driver, Capacity, Created, Host
Networks Name, Mode, Subnet, Gateway, Created, Host
Hosts Name, Status, Containers, Machines, macOS, container, Flotilla, Model
Registries Name, Server, Sign-in, Status, Type
DNS Name, Kind, Status, Host
Clusters Name, State, Host, Role, CPUs, Memory, Address, Ports

There is no CPU or Memory key for containers. A sort on a number the list does not show reorders rows for a reason you cannot see.

Tags

Tags are coloured labels you put on containers, machines, volumes, networks and hosts, from the row's Tags menu or the bulk actions. They are stored by Flotilla on this Mac and never sent to the runtime. Settings ▸ Tags renames, recolours and deletes them; see Settings. The tag: search word finds them in Containers.

Hosts also carry built-in tags that Flotilla sets itself: This Mac on the one you are using, and Admin or Host from each Mac's role. They are drawn with a symbol instead of a coloured dot, so they read as facts about the Mac rather than labels someone chose. They are not stored and cannot be removed. They are read from the Mac's state each time, so they cannot fall out of step with it.

Selecting more than one

Every row has a checkbox. Ticking one adds to the selection without clearing it. ⌘-click, ⇧-click and ⌘A work too, and tick the same boxes. The box at the left of the toolbar selects all the rows on screen, and shows a dash when only some are selected.

A row that cannot be acted on in bulk keeps a disabled, empty box so the column lines up. Examples are a built-in network, This Mac, and a group member that does not exist yet.

With two or more rows selected, the page shows N selected with the bulk actions: for containers, Start, Stop, Restart and Delete. The right-click menu spells the count into the item itself — Delete 4… A selection can span Macs; the confirmation says which Macs the items are on.

One row selected is just that row's page. The bulk actions are not repeated.

In a window too narrow for both panes, the list is alone, so a bulk bar appears above it instead. It has the same actions.

Bulk deletion always asks, and that cannot be turned off. The Confirm destructive actions setting governs single items only. A setting that appeared to disable bulk confirmation once existed, had no code reading it, and is gone. Mandatory is what already shipped.

Refresh

Refresh forces one now. Otherwise containers and their stats refresh on the poll interval, and machines, images, volumes and networks every sixth tick; see Overview. Paired hosts are asked every 30 seconds while they answer, and less often while they do not.

Published ports: Copy is the primary action

On a container with published ports, Copy is the main action and Open is secondary, and its tooltip says what it assumes rather than implying every port answers HTTP.

The reason is a real mistake: clicking Open on a container publishing 8080 returned "empty response". The link was working perfectly; the container was running sleep with nothing listening. A published port is not necessarily HTTP. Offering "Open in browser" next to Postgres on 5432 overpromises, whereas an address is useful whatever is behind it — psql, redis-cli, or a browser.

Clone this wiki locally