From d7359d41d4dc028c710cdd0eadc79b4308f01570 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Fri, 3 Apr 2026 16:11:51 +0800 Subject: [PATCH] feat: update manifest file --- example/manifest/sarasa-picture.toml | 236 +++++++++++++++++++++++++ example/ppic.toml | 130 -------------- example/sarasa-picture-assoc/README.md | 3 + 3 files changed, 239 insertions(+), 130 deletions(-) create mode 100644 example/manifest/sarasa-picture.toml delete mode 100644 example/ppic.toml create mode 100644 example/sarasa-picture-assoc/README.md diff --git a/example/manifest/sarasa-picture.toml b/example/manifest/sarasa-picture.toml new file mode 100644 index 0000000..a81dfa8 --- /dev/null +++ b/example/manifest/sarasa-picture.toml @@ -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" diff --git a/example/ppic.toml b/example/ppic.toml deleted file mode 100644 index 1d76d1e..0000000 --- a/example/ppic.toml +++ /dev/null @@ -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" diff --git a/example/sarasa-picture-assoc/README.md b/example/sarasa-picture-assoc/README.md new file mode 100644 index 0000000..ca0f367 --- /dev/null +++ b/example/sarasa-picture-assoc/README.md @@ -0,0 +1,3 @@ +# Sarasa Picture Association + +TODO