Kinds of label
Custom, screen, and system labels: where each comes from, what you can do to it, and where it appears.
Three kinds exist. Only one of them is yours to manage.
| Kind | Created by | Named | Rename | Delete |
|---|---|---|---|---|
| Custom | You | By you | Yes | Yes |
| Screen | Automatically, per screen | After the screen | Rename the screen | With the screen |
| System | Built in | Fixed | No | No |
Custom
What "label" ordinarily means. You create them, apply them to screens and playlists, rename and delete them.
They appear on the Labels page and on the Custom tab of the labels dialog, which is the tab it opens on.
Screenly never puts a custom label on a screen by itself, and never takes one off. A label named after a screen property, such as Landscape, Portrait, Full HD, UHD, or Anywhere, is a custom label like any other: it holds the screens someone put in it, and a screen you rotate or replace doesn't move between labels on its own.
Screen
Every screen gets one when it is paired, and it takes its name from the screen. Rename the screen and the label's name changes with it, which is why renaming a screen never breaks an assignment.
They live on the Screen tab of the labels dialog on a playlist. They are hidden from the Labels page and from a screen's own list of labels, because a screen carrying a label named after itself would be noise on every row.
You don't create or delete these. Deleting the screen removes its label.
System
Built-in labels. That is All Screens, carried by every screen in the workspace including ones connected later.
It is listed on the Labels page, and on the System tab of the labels dialog on a playlist. It can't be renamed or deleted, and you can't add screens to it, since every screen has it already. You can add playlists to it to play them everywhere.
Why the three exist
So that "this one screen", "this group", and "every screen" are all expressible the same way.
A playlist has one mechanism for reaching screens: labels. If per-screen targeting were a separate feature, everything downstream, the API, the MCP tools, the screens tab on a playlist, would need to handle 2 cases. It handles one.