Add public-safe example config
This commit is contained in:
@@ -57,6 +57,14 @@ Release zips are written to:
|
|||||||
builds/releases/
|
builds/releases/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Config Files
|
||||||
|
|
||||||
|
`config.json` is local runtime data and is ignored by Git. Keep your personal launcher menu there for testing.
|
||||||
|
|
||||||
|
`config.example.json` is a public-safe sample config for documentation and reference. New users do not need to copy it; if `config.json` is missing, the app creates a clean starter config on first run.
|
||||||
|
|
||||||
|
Personal test configs should stay in `config.json`; release packages do not include it unless the release script is run with `-IncludeCurrentConfig`.
|
||||||
|
|
||||||
## Versioning
|
## Versioning
|
||||||
|
|
||||||
The app version is controlled in `TaskbarLauncher.csproj`.
|
The app version is controlled in `TaskbarLauncher.csproj`.
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ public static class IconService
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
path = Environment.ExpandEnvironmentVariables(path);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
uint flags = ShgfiIcon | (large ? ShgfiLargeIcon : ShgfiSmallIcon);
|
uint flags = ShgfiIcon | (large ? ShgfiLargeIcon : ShgfiSmallIcon);
|
||||||
|
|||||||
@@ -95,12 +95,14 @@ public sealed class LauncherController : IDisposable
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string target = Environment.ExpandEnvironmentVariables(item.Target);
|
||||||
|
|
||||||
ProcessStartInfo startInfo = new()
|
ProcessStartInfo startInfo = new()
|
||||||
{
|
{
|
||||||
FileName = item.Target,
|
FileName = target,
|
||||||
Arguments = item.Arguments ?? "",
|
Arguments = item.Arguments ?? "",
|
||||||
UseShellExecute = true,
|
UseShellExecute = true,
|
||||||
WorkingDirectory = Directory.Exists(item.Target) ? item.Target : ConfigService.AppFolder
|
WorkingDirectory = Directory.Exists(target) ? target : ConfigService.AppFolder
|
||||||
};
|
};
|
||||||
|
|
||||||
Process.Start(startInfo);
|
Process.Start(startInfo);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<UseWPF>true</UseWPF>
|
<UseWPF>true</UseWPF>
|
||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<DefaultItemExcludes>$(DefaultItemExcludes);bin\**;obj\**;..\TaskbarLauncher-build\**</DefaultItemExcludes>
|
<DefaultItemExcludes>$(DefaultItemExcludes);bin\**;obj\**;builds\**;_*\**;..\TaskbarLauncher-build\**</DefaultItemExcludes>
|
||||||
<Version>1.0.0</Version>
|
<Version>1.0.0</Version>
|
||||||
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
||||||
<FileVersion>1.0.0.0</FileVersion>
|
<FileVersion>1.0.0.0</FileVersion>
|
||||||
|
|||||||
53
config.example.json
Normal file
53
config.example.json
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
{
|
||||||
|
"Hotkey": "Ctrl+Alt+Space",
|
||||||
|
"DisplayMode": "CompactList",
|
||||||
|
"Items": [
|
||||||
|
{
|
||||||
|
"Title": "Folders",
|
||||||
|
"Type": "Menu",
|
||||||
|
"Target": "",
|
||||||
|
"Arguments": null,
|
||||||
|
"IconPath": null,
|
||||||
|
"DisplayMode": "CompactList",
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"Title": "Documents",
|
||||||
|
"Type": "Folder",
|
||||||
|
"Target": "%USERPROFILE%\\Documents",
|
||||||
|
"Arguments": null,
|
||||||
|
"IconPath": "%USERPROFILE%\\Documents",
|
||||||
|
"DisplayMode": "CompactList",
|
||||||
|
"Children": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Title": "Downloads",
|
||||||
|
"Type": "Folder",
|
||||||
|
"Target": "%USERPROFILE%\\Downloads",
|
||||||
|
"Arguments": null,
|
||||||
|
"IconPath": "%USERPROFILE%\\Downloads",
|
||||||
|
"DisplayMode": "CompactList",
|
||||||
|
"Children": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Title": "Apps",
|
||||||
|
"Type": "Menu",
|
||||||
|
"Target": "",
|
||||||
|
"Arguments": null,
|
||||||
|
"IconPath": null,
|
||||||
|
"DisplayMode": "CompactList",
|
||||||
|
"Children": [
|
||||||
|
{
|
||||||
|
"Title": "Notepad",
|
||||||
|
"Type": "App",
|
||||||
|
"Target": "notepad.exe",
|
||||||
|
"Arguments": null,
|
||||||
|
"IconPath": "notepad.exe",
|
||||||
|
"DisplayMode": "CompactList",
|
||||||
|
"Children": []
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -45,3 +45,9 @@ config.json
|
|||||||
Keep `config.json` beside `TaskbarLauncher.exe`.
|
Keep `config.json` beside `TaskbarLauncher.exe`.
|
||||||
|
|
||||||
If `config.json` is missing, the app creates a clean starter config on first run.
|
If `config.json` is missing, the app creates a clean starter config on first run.
|
||||||
|
|
||||||
|
## Example Config
|
||||||
|
|
||||||
|
The source repository includes `config.example.json` as a public-safe example. It is not required for normal installation.
|
||||||
|
|
||||||
|
Paths in config may use Windows environment variables such as `%USERPROFILE%`.
|
||||||
|
|||||||
Reference in New Issue
Block a user