From 7a03d38f685642f9ac517e16dba1ceb34a976758 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Thu, 25 Dec 2025 20:11:12 +0800 Subject: [PATCH] feat: finish ppic.toml as the example --- example/ppic.toml | 137 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 107 insertions(+), 30 deletions(-) diff --git a/example/ppic.toml b/example/ppic.toml index 5521927..1d76d1e 100644 --- a/example/ppic.toml +++ b/example/ppic.toml @@ -19,35 +19,112 @@ path = 'C:\path\to\ppic.exe' # CLSID is an unique UUID or GUID of your program. clsid = "{B5291320-FE7C-4069-BF87-A0AC327FCD20}" -[manners] -# Each manner has a name as its key, and detailed command line arguments list as its value. -# The name of manner will be used sonner for associating with specific file extension. -# The command line arguments indicate which program should be executed and how to configure their arguments. -# -# Also, you can utilize "literal strings" syntax to write this pair, -# because quotes usually need special escape in "basic string" syntax. -common = '"C:\path\to\ppic.exe" "%1"' +# 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' -# "exts" list hold all potential file extensions related with this program, -# and the correct manner for opening them. +# 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 bind ".jpg" file extension with "common" manner for opening -# which was defined above. -".jpg" = "common" -# Set more file extensions with manner defined above. -".jfif" = "common" -".gif" = "common" -".bmp" = "common" -".png" = "common" -".ico" = "common" -".jpeg" = "common" -".tif" = "common" -".tiff" = "common" -".webp" = "common" -".svg" = "common" -".kra" = "common" -".xcf" = "common" -".avif" = "common" -".qoi" = "common" -".apng" = "common" -".exr" = "common" +# 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"