1
0

feat: update manifest file

This commit is contained in:
2026-04-03 16:11:51 +08:00
parent 7d8757c0ec
commit d7359d41d4
3 changed files with 239 additions and 130 deletions

View File

@@ -0,0 +1,236 @@
# ======== 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 = "SarasaPicture"
# 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\sarasa-picture.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 = "default"
# 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 = "others"
# 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.
default = '@C:\path\to\sarasa-picture.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.
# default = "Sarasa Picture"
# And more string resources...
jpg = '@C:\path\to\sarasa-picture.exe,-1011'
gif = '@C:\path\to\sarasa-picture.exe,-1012'
bmp = '@C:\path\to\sarasa-picture.exe,-1013'
png = '@C:\path\to\sarasa-picture.exe,-1014'
ico = '@C:\path\to\sarasa-picture.exe,-1015'
jpeg = '@C:\path\to\sarasa-picture.exe,-1016'
tif = '@C:\path\to\sarasa-picture.exe,-1017'
tiff = '@C:\path\to\sarasa-picture.exe,-1018'
webp = '@C:\path\to\sarasa-picture.exe,-1019'
avif = '@C:\path\to\sarasa-picture.exe,-1020'
svg = '@C:\path\to\sarasa-picture.exe,-1021'
kra = '@C:\path\to\sarasa-picture.exe,-1022'
xcf = '@C:\path\to\sarasa-picture.exe,-1023'
qoi = '@C:\path\to\sarasa-picture.exe,-1024'
apng = '@C:\path\to\sarasa-picture.exe,-1025'
exr = '@C:\path\to\sarasa-picture.exe,-1026'
tga = '@C:\path\to\sarasa-picture.exe,-1027'
# ======== 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.
png = 'C:\path\to\sarasa-picture.exe,-1'
# The value of this key also can be the absolute path to existing icon file like this commente statement.
# png = 'C:\path\to\sarasa-picture\png.ico'
# Add more icon resources...
svg = 'C:\path\to\sarasa-picture.exe,-2'
gif = 'C:\path\to\sarasa-picture.exe,-3'
jpg = 'C:\path\to\sarasa-picture.exe,-4'
webp = 'C:\path\to\sarasa-picture.exe,-5'
avif = 'C:\path\to\sarasa-picture.exe,-6'
others = 'C:\path\to\sarasa-picture.exe,-61'
# ======== 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\sarasa-picture.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 = "jpg"
# Then, speficy its associated icon.
# The value of this field is the token declared above in "icons" list.
icon = "jpg"
# 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.jfif]
name = "jfif"
icon = "jpg"
behavior = "generic"
[exts.gif]
name = "gif"
icon = "gif"
behavior = "generic"
[exts.bmp]
name = "bmp"
icon = "others"
behavior = "generic"
[exts.png]
name = "png"
icon = "png"
behavior = "generic"
[exts.ico]
name = "ico"
icon = "others"
behavior = "generic"
[exts.jpeg]
name = "jpeg"
icon = "jpg"
behavior = "generic"
[exts.tif]
name = "tif"
icon = "others"
behavior = "generic"
[exts.tiff]
name = "tiff"
icon = "others"
behavior = "generic"
[exts.webp]
name = "webp"
icon = "webp"
behavior = "generic"
[exts.svg]
name = "svg"
icon = "svg"
behavior = "generic"
[exts.kra]
name = "kra"
icon = "others"
behavior = "generic"
[exts.xcf]
name = "xcf"
icon = "others"
behavior = "generic"
[exts.avif]
name = "avif"
icon = "avif"
behavior = "generic"
[exts.qoi]
name = "qoi"
icon = "others"
behavior = "generic"
[exts.apng]
name = "apng"
icon = "png"
behavior = "generic"
[exts.exr]
name = "exr"
icon = "others"
behavior = "generic"

View File

@@ -1,130 +0,0 @@
# Identifier is used as an unique symbol 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).
#
# More preciously, 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,
# 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.
clsid = "{B5291320-FE7C-4069-BF87-A0AC327FCD20}"
# Icons hold a list including all possible used icons for file associations.
# 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 later, and its value is the pointer to true resource.
#
# Its value can be the absolute path to existing icon file, or a valid program icon resource string.
# And considering there is backslash in string, you can utilize TOML "literal strings" syntax to write them.
png = 'C:\path\to\ppic.exe,-1'
# Add more icon resources...
svg = 'C:\path\to\ppic.exe,-2'
gif = 'C:\path\to\ppic.exe,-3'
jpg = 'C:\path\to\ppic.exe,-4'
webp = 'C:\path\to\ppic.exe,-5'
avif = 'C:\path\to\ppic.exe,-6'
others = 'C:\path\to\ppic.exe,-61'
# Behaviors list including all ways to open with your software.
# For 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.
# That was this list done.
# If your program only have one way to open file, please leave one entry without any doubt.
[behaviors]
# Each behavior has a name as its key, which is the token for referring them later,
# and an associated command line arguments list as its value.
# Surely, you can also utilize TOML "literal strings" syntax to write them.
generic = '"C:\path\to\ppic.exe" "%1"'
# Extensions list hold all 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.
# It can be translated plain string, or a valid program string resource string written following.
name = '@C:\path\to\ppic.exe,-1011'
# Then, speficy its associated icon.
# The value of this field is the token declared above in icons list.
icon = "jpg"
# 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"
# Set more file extensions with same syntax shown above.
[exts.jfif]
name = '@C:\path\to\ppic.exe,-1012'
icon = "jpg"
behavior = "generic"
[exts.gif]
name = '@C:\path\to\ppic.exe,-1013'
icon = "gif"
behavior = "generic"
[exts.bmp]
name = '@C:\path\to\ppic.exe,-1014'
icon = "others"
behavior = "generic"
[exts.png]
name = '@C:\path\to\ppic.exe,-1015'
icon = "png"
behavior = "generic"
[exts.ico]
name = '@C:\path\to\ppic.exe,-1016'
icon = "others"
behavior = "generic"
[exts.jpeg]
name = '@C:\path\to\ppic.exe,-1017'
icon = "jpg"
behavior = "generic"
[exts.tif]
name = '@C:\path\to\ppic.exe,-1018'
icon = "others"
behavior = "generic"
[exts.tiff]
name = '@C:\path\to\ppic.exe,-1019'
icon = "others"
behavior = "generic"
[exts.webp]
name = '@C:\path\to\ppic.exe,-1020'
icon = "webp"
behavior = "generic"
[exts.svg]
name = '@C:\path\to\ppic.exe,-1021'
icon = "svg"
behavior = "generic"
[exts.kra]
name = '@C:\path\to\ppic.exe,-1022'
icon = "others"
behavior = "generic"
[exts.xcf]
name = '@C:\path\to\ppic.exe,-1023'
icon = "others"
behavior = "generic"
[exts.avif]
name = '@C:\path\to\ppic.exe,-1024'
icon = "avif"
behavior = "generic"
[exts.qoi]
name = '@C:\path\to\ppic.exe,-1025'
icon = "others"
behavior = "generic"
[exts.apng]
name = '@C:\path\to\ppic.exe,-1026'
icon = "png"
behavior = "generic"
[exts.exr]
name = '@C:\path\to\ppic.exe,-1027'
icon = "others"
behavior = "generic"

View File

@@ -0,0 +1,3 @@
# Sarasa Picture Association
TODO