Interface MakerAppImageConfigOptions

interface MakerAppImageConfigOptions {
    AppImageKitRelease?: number | `${number}` | "continuous";
    actions?: Record<string, Partial<Record<string, null | string>> & {
        Exec?: null | string;
        Icon?: null | string;
        Name: string;
    }>;
    bin?: string;
    categories?: ("AudioVideo" | "Audio" | "Video" | "Development" | "Education" | "Game" | "Graphics" | "Network" | "Office" | "Science" | "Settings" | "System" | "Utility" | "Building" | "Debugger" | "IDE" | "GUIDesigner" | "Profiling" | "RevisionControl" | "Translation" | "Calendar" | "Database" | "Dictionary" | "Email" | "Finance" | "Chart" | "FlowChart" | "PDA" | "Presentation" | "Spreadsheet" | "WordProcessor" | "Scanning" | "OCR" | "Photography" | "ContactManagement" | "ProjectManagement" | "2DGraphics" | "3DGraphics" | "VectorGraphics" | "RasterGraphics" | "Publishing" | "Viewer" | "TextTools" | "TextEditor" | "DesktopSettings" | "HardwareSettings" | "Printing" | "PackageManager" | "Dialup" | "InstantMessaging" | "Chat" | "IRCClient" | "Feed" | "FileTransfer" | "HamRadio" | "News" | "P2P" | "RemoteAccess" | "Telephony" | "TelephonyTools" | "VideoConference" | "WebDevelopment" | "WebBrowser" | "Midi" | "Mixer" | "Sequencer" | "Tuner" | "TV" | "AudioVideoEditing" | "Player" | "Recorder" | "DiscBurning" | "RolePlaying" | "Shooter" | "Sports" | "ActionGame" | "AdventureGame" | "ArcadeGame" | "BoardGame" | "BlocsGame" | "CardGame" | "KidsGame" | "LogicGame" | "SportsGame" | "StrategyGame" | "Simulation" | "Art" | "Construction" | "Music" | "Languages" | "ArtificialIntelligence" | "Astronomy" | "Biology" | "Chemistry" | "ComputerScience" | "DataVisualization" | "Economy" | "Electricity" | "Geography" | "Geology" | "Geoscience" | "History" | "Humanities" | "ImageProcessing" | "Literature" | "Maps" | "Math" | "NumericalAnalysis" | "MedicalSoftware" | "Physics" | "Robotics" | "Spirituality" | "ParallelComputing" | "Amusement" | "Archiving" | "Compression" | "Electronics" | "Engineering" | "FileTools" | "FileManager" | "Filesystem" | "Monitor" | "Security" | "Emulator" | "TerminalEmulator" | "Accessibility" | "Calculator" | "Clock" | "Documentation" | "Adult" | "Core" | "KDE" | "GNOME" | "XFCE" | "GTK" | "Qt" | "Motif" | "Java" | "ConsoleOnly")[];
    compressor?: "xz" | "gzip" | "lz4" | "lzo" | "zstd" | "lzma";
    desktopFile?: string;
    flagsFile?: boolean;
    genericName?: string;
    icon?: string;
    name?: string;
    productName?: string;
    type2runtime?: boolean;
}

Properties

AppImageKitRelease?: number | `${number}` | "continuous"

GitHub Release of AppImage/AppImageKit from which this maker should get the runtime and AppRun executable.

Defaults to 13.

Since

v1.1.0

actions?: Record<string, Partial<Record<string, null | string>> & {
    Exec?: null | string;
    Icon?: null | string;
    Name: string;
}>

Actions to be used within a generated desktop file.

Since

v2.1.0

bin?: string

Name of the executable to put into the Exec field of generated .desktop file.

Defaults to options.name.

categories?: ("AudioVideo" | "Audio" | "Video" | "Development" | "Education" | "Game" | "Graphics" | "Network" | "Office" | "Science" | "Settings" | "System" | "Utility" | "Building" | "Debugger" | "IDE" | "GUIDesigner" | "Profiling" | "RevisionControl" | "Translation" | "Calendar" | "Database" | "Dictionary" | "Email" | "Finance" | "Chart" | "FlowChart" | "PDA" | "Presentation" | "Spreadsheet" | "WordProcessor" | "Scanning" | "OCR" | "Photography" | "ContactManagement" | "ProjectManagement" | "2DGraphics" | "3DGraphics" | "VectorGraphics" | "RasterGraphics" | "Publishing" | "Viewer" | "TextTools" | "TextEditor" | "DesktopSettings" | "HardwareSettings" | "Printing" | "PackageManager" | "Dialup" | "InstantMessaging" | "Chat" | "IRCClient" | "Feed" | "FileTransfer" | "HamRadio" | "News" | "P2P" | "RemoteAccess" | "Telephony" | "TelephonyTools" | "VideoConference" | "WebDevelopment" | "WebBrowser" | "Midi" | "Mixer" | "Sequencer" | "Tuner" | "TV" | "AudioVideoEditing" | "Player" | "Recorder" | "DiscBurning" | "RolePlaying" | "Shooter" | "Sports" | "ActionGame" | "AdventureGame" | "ArcadeGame" | "BoardGame" | "BlocsGame" | "CardGame" | "KidsGame" | "LogicGame" | "SportsGame" | "StrategyGame" | "Simulation" | "Art" | "Construction" | "Music" | "Languages" | "ArtificialIntelligence" | "Astronomy" | "Biology" | "Chemistry" | "ComputerScience" | "DataVisualization" | "Economy" | "Electricity" | "Geography" | "Geology" | "Geoscience" | "History" | "Humanities" | "ImageProcessing" | "Literature" | "Maps" | "Math" | "NumericalAnalysis" | "MedicalSoftware" | "Physics" | "Robotics" | "Spirituality" | "ParallelComputing" | "Amusement" | "Archiving" | "Compression" | "Electronics" | "Engineering" | "FileTools" | "FileManager" | "Filesystem" | "Monitor" | "Security" | "Emulator" | "TerminalEmulator" | "Accessibility" | "Calculator" | "Clock" | "Documentation" | "Adult" | "Core" | "KDE" | "GNOME" | "XFCE" | "GTK" | "Qt" | "Motif" | "Java" | "ConsoleOnly")[]

List of desktop file categories to append.

Since

v1.0.0

compressor?: "xz" | "gzip" | "lz4" | "lzo" | "zstd" | "lzma"

Use given compressor for SquashFS filesystem.

Defaults to mksquashfs binary defaults (usually gzip).

Since

v2.1.0

desktopFile?: string

Path to desktop file to be used instead of generating a new one.

Since

v2.1.0

flagsFile?: boolean

Whenever to emulate support for Arch Linux {name}-flags.conf file, which contains additional flags prepended to ARGV when executing Electron binary by the shell script. This should be compatible with the file format described in this Arch Wiki section.

genericName?: string

Generic name of the application used in .desktop file.

Since

v1.0.0

icon?: string

Path to icon to use for the AppImage.

Since

v1.0.0

name?: string

Name of the package (used as folder name, X-AppImage-Name etc). It should contain only lowercase letters and hyphens. It should also start from a letter and contain at least one character.

If above requirements aren't met, maker will approach to sanitize the string to match the required format. This process might fail if the string is nowhere close to match the requirements, so the one shouldn't depend on the sanitizer when setting the name property on their own.

Defaults to sanitized packageJSON.name.

Since

v1.0.0

productName?: string

Human-friendly name of the application.

Defaults to packageJSON.productName.

Since

v1.0.0

type2runtime?: boolean

Whenever to use the new experimental statically-linked runtime executable. This implies AppImageKitRelease is set to "continuous".

This option is highly experimental and might break after changes in AppImage/type2-runtime repo will be deleted or merged to AppImage/AppImageKit!

Default is false.