# ======== Generic Settings ======== # Identifier is used as an unique token for your program. # Please choose it carefully to avoid any name conflict. # # The value of identifier should only contain alphabet chars and digits, # and digits should not be the first char (like C variable naming convention). # # For technical details, this identifier is used as the "vendor" part of ProgId. identifier = "PineapplePicture" # The fully qualified path to the application. # # A fully qualified path or absolute path always defines an exact path # from a particular drive or device to a target file or directory, # and does not depend on the current drive or current directory. # # Considering Windows use back-slash as path splittor, # which is frequently used as escape char in string syntax, # you can utilize "literal strings" syntax in this TOML file # to quickly write this path as this example following does. path = 'C:\path\to\ppic.exe' # CLSID is an unique UUID or GUID of your program, # which makes your program is different with others. # # Although this key is not used now, # I still suggest that generate an unique one for it. clsid = "{B5291320-FE7C-4069-BF87-A0AC327FCD20}" # The friendly name of this program. # # The value of this key should be available in "strs" list as the key. # # This key is optional. If you don't fill this key, # Windows will use your executable embedded Win32 resources for friendly name. name = "self" # The icon of this program. # # The value of this key should be available in "icons" list as the key. # # This key is optional. If you don't fill this key, # Windows will use the first icon embedded in your executable as icon. icon = "self" # The default behavior of your program. # # The value of this key should be available in "behaviors" list as the key. # # This key is optional. If you don't fill this key, # Windows will directly call your executable and passes the file name on the command line. # If your executable need extra options, like `program.exe --file file.rs`, # this key is essential for you. behavior = "generic" # ======== String Resources ======== # "strs" list include all possible used strings in this manifest file. [strs] # For each entry located in this list, # its key is the token for referring them, and its value is the true resource. # # The value of this key is a valid "Program String Resource String" like following example does. # When we talk about "Program String Resource String", # it is a string pointing to a string resources located inside program Win32 resources. # It has a specific pattern which show in following example and is familiar with Win32 programmer. # # Due to the same use of back-slash in path part, # you can utilize TOML "literal strings" syntax to write this value easier. # self = '@C:\path\to\ppic.exe,-1001' # The value of this key also can be a plain string like this commente statement, # if you don't want to touch Win32 resources and your program do not have any I18N requirements. self = "Pineapple Pictures" # And more string resources... jpeg = 'JPEG Image' gif = 'GIF Animation Image' png = 'PNG Image' svg = 'Scalable Vector Graphics' webp = 'WebP Image' avif = 'AV1 Image File' ico = 'Windows Icon Image' icns = 'Apple Icon Image' psd = 'Photoshop Document' kra = 'Krita Document' xcf = 'GIMP Document' tga = 'TARGA Image' tif = 'Tagged Image File Format' bmp = 'Bitmap' wbmp = 'Wireless Bitmap' dds = 'DirectDraw Surface' hdr = 'High Dynamic Range Image' iff = 'Interchange File Format' pic = 'Softimage Picture' pcx = 'PiCture eXchange PC Paintbrush Image' qoi = 'Quite OK Image' ras = 'Sun Raster Image' ora = 'OpenRaster Image' ani = 'Animated Cursor' pfm = 'Portable Float Map' rgb = 'Silicon Graphics Image' pxr = 'Pixar Raster Image' sct = 'Scitex Continuous Tone' # ======== Icon Resources ======== # "icons" list include all possible used icons in this manifest file. # # Another small hint is that if you just want a single icon for all file associations, # you can just create one entry and refer it in every entries located in extension list. [icons] # For each entry located in this list, # its key is the token for referring them, and its value is the true resource. # # The value of this key is a valid "Program Icon Resource String" like following example does. # When we talk about "Program Icon Resource String", # it is a string pointing to a icon resources located inside program Win32 resources. # It has a specific pattern which show in following example and is familiar with Win32 programmer. # # Due to the same use of back-slash in path part, # you can utilize TOML "literal strings" syntax to write this value easier. self = 'C:\path\to\ppic.exe,0' # The value of this key also can be the absolute path to existing icon file like this commente statement. generic = 'C:\path\to\ppic\icons\generic.ico' # Add more icon resources... gif = 'C:\path\to\ppic\icons\gif.ico' jpeg = 'C:\path\to\ppic\icons\jpeg.ico' png = 'C:\path\to\ppic\icons\png.ico' psd = 'C:\path\to\ppic\icons\psd.ico' svg = 'C:\path\to\ppic\icons\svg.ico' # ======== Behaviors Collection ======== # "behaviors" list include all ways to open with your software in this manifest file. # # For the way to open with your program, let we have an example. # If your program order you use `program.exe --solution solution.toml` to open solution file, # and use `program.exe --file file.rs` to open code file respectively, # you must define two seperated "behaviors" describe this difference ways to open file. # That's the work this list done. # # In addition, if your program only have one way to open file, # please leave one entry and use it everywhere without any doubt. [behaviors] # For each entry located in this list, # its key is the token for referring them, # and its value is the command line for running your program. # # Please note that currently wfassoc will not validate this property properly, # because there is no criteria for it. Please write them carefully. # For the maning of place holder like "%1", please check out Microsoft document. # # Due to the same use of back-slash in value, # you can utilize TOML "literal strings" syntax to write this value easier. generic = '"C:\path\to\ppic.exe" "%1"' # ======== File Extensions ======== # "exts" list includeall potential file extensions related with this program, # and the corresponding name, behavior and icon of them. [exts] # In this case, we start to define ".jpg" file extension. [exts.jpg] # First, we specify its name shown in Windows Explorer. # The value of this field is the token declared above in "strs" list. name = "jpeg" # Then, speficy its associated icon. # The value of this field is the token declared above in "icons" list. icon = "jpeg" # At last, specify the behavior of this extension define decide how we open this file. # The value of this field is the token declared above in "behaviors" list. behavior = "generic" # And more file extensions... [exts.jpeg] name = "jpeg" icon = "jpeg" behavior = "generic" [exts.jfif] name = "jpeg" icon = "jpeg" behavior = "generic" [exts.gif] name = "gif" icon = "gif" behavior = "generic" [exts.png] name = "png" icon = "png" behavior = "generic" [exts.svg] name = "svg" icon = "svg" behavior = "generic" [exts.webp] name = "webp" icon = "generic" behavior = "generic" [exts.avif] name = "avif" icon = "generic" behavior = "generic" [exts.ico] name = "ico" icon = "generic" behavior = "generic" [exts.icns] name = "icns" icon = "generic" behavior = "generic" [exts.psd] name = "psd" icon = "psd" behavior = "generic" [exts.psb] name = "psd" icon = "psd" behavior = "generic" [exts.pdd] name = "psd" icon = "psd" behavior = "generic" [exts.psdt] name = "psd" icon = "psd" behavior = "generic" [exts.kra] name = "kra" icon = "generic" behavior = "generic" [exts.xcf] name = "xcf" icon = "generic" behavior = "generic" [exts.tga] name = "tga" icon = "generic" behavior = "generic" [exts.tif] name = "tif" icon = "generic" behavior = "generic" [exts.tiff] name = "tif" icon = "generic" behavior = "generic" [exts.bmp] name = "bmp" icon = "generic" behavior = "generic" [exts.wbmp] name = "wbmp" icon = "generic" behavior = "generic" [exts.dds] name = "dds" icon = "generic" behavior = "generic" [exts.hdr] name = "hdr" icon = "generic" behavior = "generic" [exts.iff] name = "iff" icon = "generic" behavior = "generic" [exts.pic] name = "pic" icon = "generic" behavior = "generic" [exts.pcx] name = "pcx" icon = "generic" behavior = "generic" [exts.qoi] name = "qoi" icon = "generic" behavior = "generic" [exts.ras] name = "ras" icon = "generic" behavior = "generic" [exts.sun] name = "ras" icon = "generic" behavior = "generic" [exts.ora] name = "ora" icon = "generic" behavior = "generic" [exts.ani] name = "ani" icon = "generic" behavior = "generic" [exts.pfm] name = "pfm" icon = "generic" behavior = "generic" [exts.phm] name = "pfm" icon = "generic" behavior = "generic" [exts.rgb] name = "rgb" icon = "generic" behavior = "generic" [exts.rgba] name = "rgb" icon = "generic" behavior = "generic" [exts.bw] name = "rgb" icon = "generic" behavior = "generic" [exts.sgi] name = "rgb" icon = "generic" behavior = "generic" [exts.pxr] name = "pxr" icon = "generic" behavior = "generic" [exts.sct] name = "sct" icon = "generic" behavior = "generic"