Skip to content

Application

phroun edited this page Aug 22, 2026 · 1 revision

Wire name application — but never built with new

The application object is the connection itself, seen from the display's side. Every connection has one already, so there is no new application: the handshake reports its object id, and a client addresses it like any other object.

conn.SetApp("multiwindow contextonly")

which sends set <appID> multiwindow contextonly.


Properties

Property Type Meaning
name string The application's name, as shown to the user and used in authorization.
multiwindow flag The application manages more than one primary window.
contextonly flag Suppress the automatic graphical Edit menu.

There is no generated table here: the application is not a registered trinket type, so describe does not report it. Anything else is rejected with application has no property "…".

No new, no children

The object exists before the connection does. The host registers its existing instance into the session and hands the id over in the handshake, so:

  • new application does not exist. Address the id the handshake gave you.
  • An application takes no children. Windows join it by being built top-level, not by being appended to it.
  • In-process connections have no app id at all, and SetApp reports that rather than guessing one.

multiwindow gates window creation

An application that has not declared multiwindow may only create its main window. type="normal" windows are refused until it does:

conn.SetApp("multiwindow")

Declaring it also gets the application a Window menu for free — its windows listed with Tile and Cascade, on the desktop bar and on a detached main window's bar. An application may still contribute its own items to that menu by tagging one wellknown="window"; they are merged in between the system's Tile/Cascade and the window list.

See Window for the roles this gates.

contextonly

Suppresses the Edit menu the graphical host otherwise adds automatically. For an application that provides its own editing commands, or has no text to edit and does not want the menu.

Changing name is authorization-gated

The name a connection was approved under is the authorized one. A later change to a different name is rejected:

name change to "Something Else" is not authorized for this connection

Setting the name to its current value always succeeds. The restriction lifts for connections whose trust is not name-specific — a local application, or a client approved as "Always for All Apps" — where the display marks the connection as allowed to rename itself.

This exists because the name is what the user saw when they approved the connection. See Transports and Security.

See also

Window · MenuBar · Transports and Security · Object Model

Clone this wiki locally