Skip to content

API Reference / @gtkx/config / @gtkx/config / DeployOptions

Type Alias: DeployOptions ​

DeployOptions = object

Defined in: packages/config/src/deploy.ts:876

The deploy options: application metadata, bundled runtime settings, and packaging options for gtkx deploy.

Properties ​

appimage? ​

optional appimage?: DeployAppImageOptions

Defined in: packages/config/src/deploy.ts:1194

AppImage packaging options.

Default Value ​

{}


architectures? ​

optional architectures?: ("arm64" | "x64")[]

Defined in: packages/config/src/deploy.ts:888

Target CPU architectures. gtkx deploy --arch overrides it.

Default Value ​

The host architecture, arm64 or x64


binaryName? ​

optional binaryName?: string

Defined in: packages/config/src/deploy.ts:916

Launcher command name, also used as the package name. A configured value is normalized the same way as the default.

Default Value ​

The package.json name without its scope, lowercased with hyphens for other characters; or the last segment of the application ID


branding? ​

optional branding?: DeployBrandingOptions

Defined in: packages/config/src/deploy.ts:1043

Primary branding colors included in AppStream metadata.

Default Value ​

None: the metadata has no branding element


categories? ​

optional categories?: string[]

Defined in: packages/config/src/deploy.ts:963

Freedesktop application categories used by launchers, software centers, and package metadata.

Default Value ​

[]

Example ​

ts
categories: ["Office", "ProjectManagement"],

contentRating? ​

optional contentRating?: Record<string, "intense" | "mild" | "moderate" | "none">

Defined in: packages/config/src/deploy.ts:1053

OARS 1.1 content-rating attributes mapped to their intensities.

Default Value ​

{}: an empty OARS 1.1 rating, which declares no objectionable content

Example ​

ts
contentRating: { "social-chat": "intense" },

optional copyright?: string

Defined in: packages/config/src/deploy.ts:1001

Copyright notice.

Default Value ​

Copyright © <year> <developer name>, with the year of the build date


deb? ​

optional deb?: DeployDebOptions

Defined in: packages/config/src/deploy.ts:1200

Debian package metadata and compression options.

Default Value ​

{}


depends? ​

optional depends?: DeployPackageRelationOptions

Defined in: packages/config/src/deploy.ts:1158

Additional Debian and RPM dependencies merged with automatically detected dependencies.

Default Value ​

None: only the detected dependencies, such as libgtk-4-1 on Debian


description? ​

optional description?: string[]

Defined in: packages/config/src/deploy.ts:947

Long description as paragraphs.

Default Value ​

deploy.summary as the only paragraph, also when the array is empty


desktopActions? ​

optional desktopActions?: Record<string, DeployDesktopActionOptions>

Defined in: packages/config/src/deploy.ts:1108

Desktop launcher actions keyed by action ID. With isDbusActivatable, the application must register an app.<id> action for each one.

Default Value ​

{}

Example ​

ts
desktopActions: { today: { name: "Today", args: ["tasks://today"] } },

desktopEntry? ​

optional desktopEntry?: Record<string, string>

Defined in: packages/config/src/deploy.ts:1115

Additional desktop entry keys, overriding non-reserved generated values. DBusActivatable and Version are rejected; use deploy.isDbusActivatable for D-Bus activation.

Default Value ​

{}


developer? ​

optional developer?: DeployDeveloperOptions

Defined in: packages/config/src/deploy.ts:975

Developer identity and package maintainer details.

Default Value ​

{}: the details come from the author in package.json


epoch? ​

optional epoch?: number

Defined in: packages/config/src/deploy.ts:934

Non-negative Debian and RPM version epoch.

Default Value ​

None: package metadata has no epoch


execArgs? ​

optional execArgs?: string[]

Defined in: packages/config/src/deploy.ts:1065

Application arguments included in the desktop entry's launch command.

Default Value ​

[]


extraFiles? ​

optional extraFiles?: Record<string, string | DeployExtraFileOptions>

Defined in: packages/config/src/deploy.ts:1142

Extra files keyed by destination inside the install prefix, without a leading slash or a .. segment. Each value is a source path relative to the project root, or a DeployExtraFileOptions entry that also sets the file mode. A directory source installs every file below it at the same path below the destination; without a mode, each file is executable when its source is. Scripts installed this way, such as a helper command's launcher, can run the bundled Node.js runtime at lib/<binaryName>/node in every prebuilt target and in source Flatpaks.

Default Value ​

{}

Example ​

ts
extraFiles: { "share/tasks/templates": "data/templates" },

fileAssociations? ​

optional fileAssociations?: DeployFileAssociationOptions[]

Defined in: packages/config/src/deploy.ts:1091

File extensions and MIME types registered for the application.

Default Value ​

[]


flatpak? ​

optional flatpak?: DeployFlatpakOptions

Defined in: packages/config/src/deploy.ts:1206

Flatpak runtime, sandbox, build, and distribution options.

Default Value ​

{}


genericName? ​

optional genericName?: string

Defined in: packages/config/src/deploy.ts:908

Generic application description shown by desktop launchers, such as Text Editor.

Default Value ​

None: the desktop entry has no GenericName key


homepage? ​

optional homepage?: string

Defined in: packages/config/src/deploy.ts:1007

Application homepage URL.

Default Value ​

The homepage in package.json, if set


isDbusActivatable? ​

optional isDbusActivatable?: boolean

Defined in: packages/config/src/deploy.ts:1127

Enable D-Bus activation in the desktop entry and generate a session bus service file.

Default Value ​

false


keywords? ​

optional keywords?: string[]

Defined in: packages/config/src/deploy.ts:953

Search keywords included in the desktop entry and AppStream metadata.

Default Value ​

[]


launcherEnv? ​

optional launcherEnv?: Record<string, string>

Defined in: packages/config/src/deploy.ts:1075

Environment variables exported by the generated launcher. Keys must be POSIX environment names.

Default Value ​

{}

Example ​

ts
launcherEnv: { GSK_RENDERER: "ngl" },

license? ​

optional license?: string

Defined in: packages/config/src/deploy.ts:982

Application license as an SPDX expression. Deployment fails when neither this nor the package.json license is set.

Default Value ​

The license in package.json


licenseFile? ​

optional licenseFile?: string

Defined in: packages/config/src/deploy.ts:989

License file path relative to the project root, installed with the application.

Default Value ​

The first of LICENSE, LICENSE.md, LICENSE.txt, COPYING and COPYING.md in the project root; none when no such file exists


metadataLicense? ​

optional metadataLicense?: string

Defined in: packages/config/src/deploy.ts:995

SPDX license expression for the AppStream metadata.

Default Value ​

"CC0-1.0"


metainfoExtra? ​

optional metainfoExtra?: string[]

Defined in: packages/config/src/deploy.ts:1121

Additional XML fragments appended to the AppStream component.

Default Value ​

[]


mimeTypes? ​

optional mimeTypes?: string[]

Defined in: packages/config/src/deploy.ts:969

Supported MIME types, combined with types from file associations and URL protocols.

Default Value ​

[]


minimumLibraryVersions? ​

optional minimumLibraryVersions?: Record<string, string>

Defined in: packages/config/src/deploy.ts:1152

Minimum runtime library versions keyed by GIR library ID, used when deriving package dependencies.

Default Value ​

{}: library dependencies carry no version constraint

Example ​

ts
minimumLibraryVersions: { "Adw-1": "1.8", "Gtk-4.0": "4.20" },

name? ​

optional name?: string

Defined in: packages/config/src/deploy.ts:902

Display name.

Default Value ​

The package.json name without its scope, title-cased with spaces for hyphens and underscores, such as Tasks App for @example/tasks-app; or the last segment of the application ID


node? ​

optional node?: DeployNodeOptions

Defined in: packages/config/src/deploy.ts:1176

Node.js runtime bundled with prebuilt packages and launcher compile-cache settings.

Default Value ​

{}: a downloaded Node.js 26.8.2, stripped, with the compile cache on


nodeFlags? ​

optional nodeFlags?: string[]

Defined in: packages/config/src/deploy.ts:1085

Node.js flags placed before the application bundle in the generated launcher.

Default Value ​

[]

Example ​

ts
nodeFlags: ["--max-old-space-size=4096"],

outDir? ​

optional outDir?: string

Defined in: packages/config/src/deploy.ts:895

Deployment directory relative to the project root, with packages in its out directory. gtkx deploy --out overrides it.

Default Value ​

"build"


protocols? ​

optional protocols?: string[]

Defined in: packages/config/src/deploy.ts:1097

URL schemes handled by the application, registered as x-scheme-handler MIME types.

Default Value ​

[]


relations? ​

optional relations?: DeployRelationsOptions

Defined in: packages/config/src/deploy.ts:1164

Additional package relationships for Debian and RPM.

Default Value ​

{}: no relations besides depends


release? ​

optional release?: string

Defined in: packages/config/src/deploy.ts:928

Debian packaging revision and RPM release.

Default Value ​

"1"


releases? ​

optional releases?: DeployReleaseOptions[]

Defined in: packages/config/src/deploy.ts:1059

AppStream release history, sorted newest first.

Default Value ​

One release for the application version, dated on the build day or by SOURCE_DATE_EPOCH


rpm? ​

optional rpm?: DeployRpmOptions

Defined in: packages/config/src/deploy.ts:1212

RPM package metadata and compression options.

Default Value ​

{}


screenshotBaseUrl? ​

optional screenshotBaseUrl?: string

Defined in: packages/config/src/deploy.ts:1037

Base URL for screenshot files.

Default Value ​

The raw file URL of the project's GitHub or GitLab origin remote on its default branch; deployment fails without one when a screenshot sets file


screenshots? ​

optional screenshots?: DeployScreenshotOptions[]

Defined in: packages/config/src/deploy.ts:1030

Screenshots for software centers. Each entry requires a url or file.

Default Value ​

[]


scripts? ​

optional scripts?: DeployScriptsOptions

Defined in: packages/config/src/deploy.ts:1170

Installation and removal scripts for Debian and RPM packages.

Default Value ​

{}: no maintainer scripts


signing? ​

optional signing?: DeploySigningOptions

Defined in: packages/config/src/deploy.ts:1188

Per-format package signing options.

Default Value ​

{}: every package is unsigned


summary? ​

optional summary?: string

Defined in: packages/config/src/deploy.ts:941

Single-line summary without a trailing period. Deployment fails when neither this nor the package.json description is set.

Default Value ​

The first line of the description in package.json


targets? ​

optional targets?: ("appimage" | "deb" | "flatpak" | "rpm")[]

Defined in: packages/config/src/deploy.ts:882

Package formats to build. gtkx deploy --target overrides it.

Default Value ​

["flatpak"]


tools? ​

optional tools?: DeployToolsOptions

Defined in: packages/config/src/deploy.ts:1182

Overrides for executables used to build packages.

Default Value ​

{}: gtkx deploy downloads the pinned tools it needs


urls? ​

optional urls?: Partial<Record<"bugtracker" | "contact" | "contribute" | "donation" | "faq" | "help" | "translate" | "vcs-browser", string>>

Defined in: packages/config/src/deploy.ts:1017

Additional AppStream links keyed by their purpose, such as bugtracker or help.

Default Value ​

{}

Example ​

ts
urls: { bugtracker: "https://github.com/example/tasks/issues" },

version? ​

optional version?: string

Defined in: packages/config/src/deploy.ts:922

Application version. Deployment fails when neither this nor the package.json version is set.

Default Value ​

The version in package.json