API Reference / @gtkx/config / index / Config
Type Alias: Config
Config =
object
Defined in: packages/config/src/config.ts:30
GTKX project configuration authored in gtkx.config.ts and validated when loaded.
Type Declaration
agents?
optionalagents?:object
Controls the project instructions and reference files generated for coding agents.
agents.reference?
optionalreference?:boolean
Whether codegen writes the generated element reference to .gtkx/reference. Defaults to true.
agents.rules?
optionalrules?:boolean
Whether codegen maintains the GTKX rules in AGENTS.md and creates a missing CLAUDE.md import. Defaults to true.
applicationIcon?
optionalapplicationIcon?:string
Path to an icon theme directory or a single application icon file, relative to the project root.
applicationId
applicationId:
string
Required GApplication identifier, such as com.example.Tasks.
codegen?
optionalcodegen?:boolean
Whether GTKX generates project bindings. Set to false to reuse an installed binding store. Defaults to true.
deploy?
optionaldeploy?:object
Application metadata, bundled runtime settings, and packaging options used by gtkx deploy.
deploy.appimage?
optionalappimage?:object
AppImage packaging options.
deploy.appimage.compression?
optionalcompression?:"zstd"
Compression explicitly requested from appimagetool.
deploy.appimage.fileName?
optionalfileName?:string
Output file name, derived from the application name, version, and architecture when omitted.
deploy.appimage.runtimeFile?
optionalruntimeFile?:string
Custom AppImage runtime file path, resolved relative to the project root.
deploy.appimage.updateInformation?
optionalupdateInformation?:string
AppImage update information string embedded in the executable.
deploy.architectures?
optionalarchitectures?: ("arm64"|"x64")[]
Target CPU architectures. Defaults to the host architecture; overridden by gtkx deploy --arch.
deploy.binaryName?
optionalbinaryName?:string
Launcher command name, derived from package.json's name or the application ID when omitted.
deploy.branding?
optionalbranding?:object
Primary branding colors included in AppStream metadata.
deploy.branding.dark
dark:
string
Primary AppStream branding color for dark mode, in #rrggbb format.
deploy.branding.light
light:
string
Primary AppStream branding color for light mode, in #rrggbb format.
deploy.categories?
optionalcategories?:string[]
Freedesktop application categories used by launchers, software centers, and package metadata.
deploy.contentRating?
optionalcontentRating?:Record<string,"none"|"intense"|"mild"|"moderate">
OARS 1.1 content-rating attributes mapped to their intensities.
deploy.copyright?
optionalcopyright?:string
Copyright notice. Defaults to the build year and developer name.
deploy.deb?
optionaldeb?:object
Debian package metadata and compression options.
deploy.deb.compression?
optionalcompression?:"gzip"|"none"|"xz"|"zstd"
Compression used for the Debian package payload.
deploy.deb.fields?
optionalfields?:Record<string,string>
Additional Debian control fields, keyed by field name.
deploy.deb.packageName?
optionalpackageName?:string
Debian package name. Defaults to deploy.binaryName.
deploy.deb.priority?
optionalpriority?:string
Debian package priority. Defaults to optional.
deploy.deb.section?
optionalsection?:string
Debian archive section, derived from the application categories when omitted.
deploy.depends?
optionaldepends?:object
Additional Debian and RPM dependencies merged with automatically detected dependencies.
deploy.depends.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.depends.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.description?
optionaldescription?:string[]
Long description as paragraphs. Defaults to the summary when omitted or empty.
deploy.desktopActions?
optionaldesktopActions?:Record<string, {args?:string[];icon?:string;name:string; }>
Desktop launcher actions keyed by action ID.
See
DeployDesktopActionOptions for the fields accepted by each entry.
deploy.desktopEntry?
optionaldesktopEntry?:Record<string,string>
Additional desktop entry keys, overriding non-reserved generated values. DBusActivatable and Version are rejected; use deploy.isDbusActivatable for D-Bus activation.
deploy.developer?
optionaldeveloper?:object
Developer identity and package maintainer details.
deploy.developer.email?
optionalemail?:string
Maintainer email address. Defaults to the author's email in package.json.
deploy.developer.id?
optionalid?:string
Reverse-DNS developer identifier, derived from the application ID when omitted.
deploy.developer.name?
optionalname?:string
Developer or organization name. Defaults to the author in package.json.
deploy.epoch?
optionalepoch?:number
Non-negative Debian and RPM version epoch, omitted from package metadata unless configured.
deploy.execArgs?
optionalexecArgs?:string[]
Application arguments included in the desktop entry's launch command.
deploy.extraFiles?
optionalextraFiles?:Record<string,string|DeployExtraFileOptions>
Extra files keyed by destination inside the install prefix, with source paths relative to the project root.
deploy.fileAssociations?
optionalfileAssociations?:object[]
File extensions and MIME types registered for the application.
See
DeployFileAssociationOptions for the fields accepted by each entry.
deploy.flatpak?
optionalflatpak?:object
Flatpak runtime, sandbox, build, and distribution options.
deploy.flatpak.base?
optionalbase?:string
Optional Flatpak base application ID.
deploy.flatpak.baseVersion?
optionalbaseVersion?:string
Branch of the base application.
deploy.flatpak.branch?
optionalbranch?:string
Exported application branch. Defaults to stable.
deploy.flatpak.buildCommands?
optionalbuildCommands?:string[]
Additional shell commands appended to the application's Flatpak build commands.
deploy.flatpak.cleanup?
optionalcleanup?:string[]
Patterns added to header, pkg-config, and static-library cleanup defaults. An empty array disables cleanup.
deploy.flatpak.finishArgs?
optionalfinishArgs?:string[]
Sandbox permissions added to display, IPC, and GPU defaults. Negations remove matching defaults.
deploy.flatpak.lockfile?
optionallockfile?:string
Lockfile path relative to the project root. Defaults to the selected package manager's standard lockfile.
deploy.flatpak.mode?
optionalmode?:"prebuilt"|"source"
Package local build output or build from a pinned Git source inside the SDK. Defaults to prebuilt.
deploy.flatpak.modules?
optionalmodules?:unknown[]
Additional Flatpak manifest modules built before the application module.
deploy.flatpak.nodeExtension?
optionalnodeExtension?:string
Node.js SDK extension used in source mode. Defaults to org.freedesktop.Sdk.Extension.node26.
deploy.flatpak.packageManager?
optionalpackageManager?:"npm"|"pnpm"|"yarn"
Package manager used for offline source builds, detected from the project's lockfiles when omitted.
deploy.flatpak.runtime?
optionalruntime?:string
Flatpak runtime ID. Defaults to org.gnome.Platform.
deploy.flatpak.runtimeRepo?
optionalruntimeRepo?:string
Runtime repository URL embedded in the bundle. Defaults to Flathub's .flatpakrepo URL.
deploy.flatpak.runtimeVersion?
optionalruntimeVersion?:string
Flatpak runtime branch. Defaults to 50.
deploy.flatpak.sdk?
optionalsdk?:string
Build SDK ID. Defaults to org.gnome.Sdk.
deploy.flatpak.sdkExtensions?
optionalsdkExtensions?:string[]
Additional SDK extension IDs included in the build environment.
deploy.flatpak.shouldEmitBundle?
optionalshouldEmitBundle?:boolean
Emit a .flatpak bundle in addition to the local repository. Defaults to true.
deploy.flatpak.shouldInstall?
optionalshouldInstall?:boolean
Install the built application into the current user's Flatpak installation. Defaults to false.
deploy.flatpak.shouldUseRofilesFuse?
optionalshouldUseRofilesFuse?:boolean
Allow flatpak-builder to use rofiles-fuse. Set to false where FUSE is unavailable.
deploy.flatpak.source?
optionalsource?:object
Git repository and revision used for source builds.
deploy.flatpak.source.commit?
optionalcommit?:string
Git commit to build. Defaults to the configured tag's commit or the current HEAD.
deploy.flatpak.source.tag?
optionaltag?:string
Git tag to build, pinned to its commit when commit is omitted.
deploy.flatpak.source.url?
optionalurl?:string
Public HTTP or HTTPS Git repository URL. Defaults to the project's Git remote.
deploy.genericName?
optionalgenericName?:string
Generic application description shown by desktop launchers, such as Text Editor.
deploy.homepage?
optionalhomepage?:string
Application homepage URL. Defaults to the homepage in package.json.
deploy.isDbusActivatable?
optionalisDbusActivatable?:boolean
Enable D-Bus activation in the desktop entry and generate a session bus service file. Defaults to false.
deploy.keywords?
optionalkeywords?:string[]
Search keywords included in the desktop entry and AppStream metadata.
deploy.launcherEnv?
optionallauncherEnv?:Record<string,string>
Environment variables exported by the generated launcher. Keys must be POSIX environment names.
deploy.license?
optionallicense?:string
Application license as an SPDX expression. Defaults to the license in package.json.
deploy.licenseFile?
optionallicenseFile?:string
License file path relative to the project root, detected from common LICENSE or COPYING names when omitted.
deploy.metadataLicense?
optionalmetadataLicense?:string
SPDX license expression for the AppStream metadata. Defaults to CC0-1.0.
deploy.metainfoExtra?
optionalmetainfoExtra?:string[]
Additional XML fragments appended to the AppStream component.
deploy.mimeTypes?
optionalmimeTypes?:string[]
Supported MIME types, combined with types from file associations and URL protocols.
deploy.minimumLibraryVersions?
optionalminimumLibraryVersions?:Record<string,string>
Minimum runtime library versions keyed by GIR library ID, used when deriving package dependencies.
deploy.name?
optionalname?:string
Display name, derived from package.json's name or the application ID when omitted.
deploy.node?
optionalnode?:DeployNodeOptions
Node.js runtime bundled with prebuilt packages and launcher compile-cache settings.
deploy.nodeFlags?
optionalnodeFlags?:string[]
Node.js flags placed before the application bundle in the generated launcher.
deploy.outDir?
optionaloutDir?:string
Deployment directory relative to the project root. Defaults to build, with packages in its out directory.
deploy.protocols?
optionalprotocols?:string[]
URL schemes handled by the application, registered as x-scheme-handler MIME types.
deploy.relations?
optionalrelations?:object
Additional package relationships for Debian and RPM.
deploy.relations.breaks?
optionalbreaks?:object
Debian packages made incompatible by installing this package. Uses the deb entries.
deploy.relations.breaks.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.breaks.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.relations.conflicts?
optionalconflicts?:object
Packages that cannot be installed alongside this package.
deploy.relations.conflicts.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.conflicts.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.relations.preDepends?
optionalpreDepends?:object
Debian dependencies required before unpacking this package. Uses the deb entries.
deploy.relations.preDepends.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.preDepends.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.relations.provides?
optionalprovides?:object
Package names or capabilities supplied by this package.
deploy.relations.provides.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.provides.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.relations.recommends?
optionalrecommends?:object
Recommended packages that extend the application's functionality.
deploy.relations.recommends.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.recommends.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.relations.replaces?
optionalreplaces?:object
Packages whose files this package may replace.
deploy.relations.replaces.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.replaces.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.relations.suggests?
optionalsuggests?:object
Suggested companion packages.
deploy.relations.suggests.deb?
optionaldeb?:string[]
Package relations expressed in Debian dependency syntax.
deploy.relations.suggests.rpm?
optionalrpm?:string[]
Package relations expressed in RPM dependency syntax.
deploy.release?
optionalrelease?:string
Debian packaging revision and RPM release. Defaults to 1.
deploy.releases?
optionalreleases?:object[]
AppStream release history, sorted newest first. Defaults to the application version and build date.
See
DeployReleaseOptions for the fields accepted by each entry.
deploy.rpm?
optionalrpm?:object
RPM package metadata and compression options.
deploy.rpm.compression?
optionalcompression?:"gzip"|"xz"|"zstd"|"lzma"
Compression used for the RPM package payload.
deploy.rpm.group?
optionalgroup?:string
RPM package group, derived from the application categories when omitted.
deploy.rpm.packageName?
optionalpackageName?:string
RPM package name. Defaults to deploy.binaryName.
deploy.rpm.prefixes?
optionalprefixes?:string[]
Installation prefixes that the RPM package allows users to relocate.
deploy.screenshotBaseUrl?
optionalscreenshotBaseUrl?:string
Base URL for screenshot files, inferred from a GitHub or GitLab remote when omitted.
deploy.screenshots?
optionalscreenshots?:object[]
Screenshots for software centers. Each entry requires a url or file.
See
DeployScreenshotOptions for the fields accepted by each entry.
deploy.scripts?
optionalscripts?:object
Installation and removal scripts for Debian and RPM packages.
deploy.scripts.postInstall?
optionalpostInstall?:string
Shell script run after installing a Debian or RPM package.
deploy.scripts.postRemove?
optionalpostRemove?:string
Shell script run after removing a Debian or RPM package.
deploy.scripts.preInstall?
optionalpreInstall?:string
Shell script run before installing a Debian or RPM package.
deploy.scripts.preRemove?
optionalpreRemove?:string
Shell script run before removing a Debian or RPM package.
deploy.signing?
optionalsigning?:object
Per-format package signing options.
deploy.signing.appimage?
optionalappimage?:object
AppImage signing options.
deploy.signing.appimage.gpgKeyId
gpgKeyId:
string
GPG key ID used by appimagetool to sign the AppImage.
deploy.signing.deb?
optionaldeb?:object
Debian package signing options.
deploy.signing.deb.keyFile
keyFile:
string
PGP private key file used to sign the Debian package.
deploy.signing.deb.keyId?
optionalkeyId?:string
PGP signing key ID.
deploy.signing.deb.method?
optionalmethod?:"debsign"|"dpkg-sig"
Debian package signing method.
deploy.signing.deb.signer?
optionalsigner?:string
Name and email address recorded as the signer.
deploy.signing.deb.type?
optionaltype?:"origin"|"archive"|"maint"
Debian signature role.
deploy.signing.flatpak?
optionalflatpak?:object
Flatpak bundle signing options.
deploy.signing.flatpak.gpgHomeDir?
optionalgpgHomeDir?:string
GPG home directory containing the signing key.
deploy.signing.flatpak.gpgKeyId
gpgKeyId:
string
GPG key ID used to sign the Flatpak bundle.
deploy.signing.rpm?
optionalrpm?:object
RPM package signing options.
deploy.signing.rpm.keyFile
keyFile:
string
PGP private key file used to sign the RPM package.
deploy.signing.rpm.keyId?
optionalkeyId?:string
PGP signing key ID.
deploy.summary?
optionalsummary?:string
Single-line summary without a trailing period. Defaults to the first line of package.json's description.
deploy.targets?
optionaltargets?: ("appimage"|"deb"|"flatpak"|"rpm")[]
Package formats to build. Defaults to ["flatpak"]; overridden by gtkx deploy --target.
deploy.urls?
optionalurls?:Partial<Record<"bugtracker"|"contact"|"contribute"|"donation"|"faq"|"help"|"translate"|"vcs-browser",string>>
Additional AppStream links keyed by their purpose, such as bugtracker or help.
deploy.version?
optionalversion?:string
Application version. Defaults to the version in package.json.
deprecations?
optionaldeprecations?:object
Controls warnings for deprecated configuration and behavior.
deprecations.silence?
optionalsilence?:never[]
Deprecation identifiers whose warnings are suppressed. There are currently no accepted identifiers.
elements?
optionalelements?:object
Custom element behaviors and overrides for generated components, props, and documentation.
elements.behaviors?
optionalbehaviors?:string
Path, relative to the project root, of the module exporting the element behavior map.
elements.config?
optionalconfig?:Record<string, {acceptedChildTypes?:string[];component?: {export:string;module:string; };isLazy?:boolean;omittedProps?:string[];props?: {composition?:"intersection"|"factory";constructOnly?:string[];export:string;module:string; }; }>
Element configuration overrides keyed by GLib type name, such as GtkWidget.
See
ElementConfigOptions for the fields accepted by each entry.
girPath?
optionalgirPath?:string[]
Additional GIR search directories. Relative paths are resolved from the project root.
libraries?
optionallibraries?:string[]
Additional GIR libraries to bind, such as WebKit-6.0. Adwaita and GTK are included implicitly and must not be listed.
mcp?
optionalmcp?:object
Default tool selection and access mode for the project's MCP server. Command-line flags take precedence.
mcp.readOnly?
optionalreadOnly?:boolean
Whether the MCP server exposes only inspection and reference tools, excluding app interactions. Defaults to false.
mcp.tools?
optionaltools?:string[]
Tool name patterns applied in order: * matches any text and a leading ! excludes matches. Omitted, empty, or exclusion-only lists start with all tools; other lists start with none.
reactCompiler?
optionalreactCompiler?:boolean| {compilationMode?:"infer"|"syntax"|"annotation"|"all";panicThreshold?:"none"|"critical_errors"|"all_errors"; }
Whether to enable the React Compiler, or options passed to it. Enabled by default.
Union Members
boolean
Type Literal
{ compilationMode?: "infer" | "syntax" | "annotation" | "all"; panicThreshold?: "none" | "critical_errors" | "all_errors"; }
compilationMode?
optionalcompilationMode?:"infer"|"syntax"|"annotation"|"all"
Which functions the React Compiler processes.
panicThreshold?
optionalpanicThreshold?:"none"|"critical_errors"|"all_errors"
Which React Compiler diagnostics fail the build.
userEventSignals?
optionaluserEventSignals?:Record<string,string[]>
Additional signals to suppress during React property updates, keyed by GLib type name. Entries extend the built-in signal lists.