Files
wfassoc/example/manifest/ppic.toml

362 lines
9.1 KiB
TOML
Raw Normal View History

2026-04-03 16:11:51 +08:00
# ======== 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.
2026-04-12 14:54:43 +08:00
identifier = "PineapplePicture"
2026-04-03 16:11:51 +08:00
# 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.
2026-04-12 14:54:43 +08:00
path = 'C:\path\to\ppic.exe'
2026-04-03 16:11:51 +08:00
# 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"
2026-04-03 16:11:51 +08:00
# 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"
2026-04-03 16:11:51 +08:00
# 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'
2026-04-03 16:11:51 +08:00
# 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"
2026-04-03 16:11:51 +08:00
# 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'
2026-04-03 16:11:51 +08:00
# ======== 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'
2026-04-03 16:11:51 +08:00
# 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'
2026-04-03 16:11:51 +08:00
# 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'
2026-04-03 16:11:51 +08:00
# ======== 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.
2026-04-12 14:54:43 +08:00
generic = '"C:\path\to\ppic.exe" "%1"'
2026-04-03 16:11:51 +08:00
# ======== 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"
2026-04-03 16:11:51 +08:00
# Then, speficy its associated icon.
# The value of this field is the token declared above in "icons" list.
icon = "jpeg"
2026-04-03 16:11:51 +08:00
# 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"
2026-04-03 16:11:51 +08:00
[exts.jfif]
name = "jpeg"
icon = "jpeg"
2026-04-03 16:11:51 +08:00
behavior = "generic"
2026-04-03 16:11:51 +08:00
[exts.gif]
name = "gif"
icon = "gif"
behavior = "generic"
2026-04-03 16:11:51 +08:00
[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"
2026-04-03 16:11:51 +08:00
[exts.ico]
name = "ico"
icon = "generic"
2026-04-03 16:11:51 +08:00
behavior = "generic"
[exts.icns]
name = "icns"
icon = "generic"
2026-04-03 16:11:51 +08:00
behavior = "generic"
[exts.psd]
name = "psd"
icon = "psd"
2026-04-03 16:11:51 +08:00
behavior = "generic"
[exts.psb]
name = "psd"
icon = "psd"
2026-04-03 16:11:51 +08:00
behavior = "generic"
[exts.pdd]
name = "psd"
icon = "psd"
2026-04-03 16:11:51 +08:00
behavior = "generic"
[exts.psdt]
name = "psd"
icon = "psd"
2026-04-03 16:11:51 +08:00
behavior = "generic"
2026-04-03 16:11:51 +08:00
[exts.kra]
name = "kra"
icon = "generic"
2026-04-03 16:11:51 +08:00
behavior = "generic"
2026-04-03 16:11:51 +08:00
[exts.xcf]
name = "xcf"
icon = "generic"
2026-04-03 16:11:51 +08:00
behavior = "generic"
[exts.tga]
name = "tga"
icon = "generic"
2026-04-03 16:11:51 +08:00
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"
2026-04-03 16:11:51 +08:00
[exts.qoi]
name = "qoi"
icon = "generic"
2026-04-03 16:11:51 +08:00
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"
2026-04-03 16:11:51 +08:00
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"
2026-04-03 16:11:51 +08:00
behavior = "generic"