Compare commits

...

16 Commits

13 changed files with 606 additions and 1 deletions

View File

@ -65,7 +65,35 @@ Get-ChildItem "$workingdir\functions" -Recurse -File | ForEach-Object {
Update-Progress "Adding: Config *.json" 40 Update-Progress "Adding: Config *.json" 40
Get-ChildItem "$workingdir\config" | Where-Object {$psitem.extension -eq ".json"} | ForEach-Object { Get-ChildItem "$workingdir\config" | Where-Object {$psitem.extension -eq ".json"} | ForEach-Object {
$json = (Get-Content $psitem.FullName).replace("'","''") $json = (Get-Content $psitem.FullName).replace("'","''")
$jsonAsObject = $json | convertfrom-json
# Replace every XML Special Character so it'll render correctly in final build
# Only do so if json files has content to be displayed (for example the applications, tweaks, features json files)
# Make an Array List containing every name at first level of Json File
[PSCustomObject]$jsonAsObject = $json | convertfrom-json
# Remove properties like $schema and such from the json object (we don't need it at this point)
@(
"`$schema"
) | ForEach-Object {
$jsonAsObject.PSObject.Properties.Remove($_) | Out-Null
}
$firstLevelJsonList = [System.Collections.ArrayList]::new()
$jsonAsObject.PSObject.Properties.Name | ForEach-Object {$null = $firstLevelJsonList.Add($_)}
# Note:
# Avoid using HTML Entity Codes, for example '”' (stands for "Right Double Quotation Mark"),
# Use **HTML decimal/hex codes instead**, as using HTML Entity Codes will result in XML parse Error when running the compiled script.
for ($i = 0; $i -lt $firstLevelJsonList.Count; $i += 1) {
$firstLevelName = $firstLevelJsonList[$i]
if ($jsonAsObject.$firstLevelName.content -ne $null) {
$jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('&','&#38;').replace('“','&#8220;').replace('”','&#8221;').replace("'",'&#39;').replace('<','&#60;').replace('>','&#62;').replace('—','&#8212;')
$jsonAsObject.$firstLevelName.content = $jsonAsObject.$firstLevelName.content.replace('&#39;&#39;',"&#39;") # resolves the Double Apostrophe caused by the first replace function in the main loop
}
if ($jsonAsObject.$firstLevelName.description -ne $null) {
$jsonAsObject.$firstLevelName.description = $jsonAsObject.$firstLevelName.description.replace('&','&#38;').replace('“','&#8220;').replace('”','&#8221;').replace("'",'&#39;').replace('<','&#60;').replace('>','&#62;').replace('—','&#8212;')
$jsonAsObject.$firstLevelName.description = $jsonAsObject.$firstLevelName.description.replace('&#39;&#39;',"&#39;") # resolves the Double Apostrophe caused by the first replace function in the main loop
}
}
# Add 'WPFInstall' as a prefix to every entry-name in 'applications.json' file # Add 'WPFInstall' as a prefix to every entry-name in 'applications.json' file
if ($psitem.Name -eq "applications.json") { if ($psitem.Name -eq "applications.json") {

View File

@ -1,4 +1,5 @@
{ {
"$schema": "../schemas/config/applications.json",
"1password": { "1password": {
"category": "Utilities", "category": "Utilities",
"choco": "1password", "choco": "1password",

View File

@ -1,4 +1,5 @@
{ {
"$schema": "../schemas/config/dns.json",
"Google":{ "Google":{
"Primary": "8.8.8.8", "Primary": "8.8.8.8",
"Secondary": "8.8.4.4", "Secondary": "8.8.4.4",

View File

@ -1,4 +1,5 @@
{ {
"$schema": "../schemas/config/feature.json",
"WPFFeaturesdotnet": { "WPFFeaturesdotnet": {
"Content": "All .Net Framework (2,3,4)", "Content": "All .Net Framework (2,3,4)",
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.", "Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",

View File

@ -1,4 +1,5 @@
{ {
"$schema": "../schemas/config/preset.json",
"Standard": [ "Standard": [
"WPFTweaksAH", "WPFTweaksAH",
"WPFTweaksConsumerFeatures", "WPFTweaksConsumerFeatures",

View File

@ -1,4 +1,5 @@
{ {
"$schema": "../schemas/config/themes.json",
"_default": { "_default": {
"CustomDialogFontSize": "12", "CustomDialogFontSize": "12",
"CustomDialogFontSizeHeader": "14", "CustomDialogFontSizeHeader": "14",

View File

@ -1,4 +1,5 @@
{ {
"$schema": "../schemas/config/tweaks.json",
"WPFTweaksAH": { "WPFTweaksAH": {
"Content": "Disable Activity History", "Content": "Disable Activity History",
"Description": "This erases recent docs, clipboard, and run history.", "Description": "This erases recent docs, clipboard, and run history.",

View File

@ -0,0 +1,55 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"definitions": {
"url": {
"type": "string",
"format": "uri"
}
},
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"description": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"Utilities",
"Document",
"Pro Tools",
"Multimedia Tools",
"Development",
"Games",
"Microsoft Tools",
"Browsers",
"Communications"
]
},
"choco": {
"type": "string"
},
"winget": {
"type": "string"
},
"link": {
"$ref": "#/definitions/url"
}
},
"required": [
"content",
"description",
"category",
"link",
"choco",
"winget"
],
"additionalProperties": false
}
}
}

29
schemas/config/dns.json Normal file
View File

@ -0,0 +1,29 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "object",
"properties": {
"Primary": {
"type": "string",
"format": "ipv4"
},
"Secondary": {
"type": "string",
"format": "ipv4"
},
"Primary6": {
"type": "string",
"format": "ipv6"
},
"Secondary6": {
"type": "string",
"format": "ipv6"
}
},
"required": ["Primary", "Secondary", "Primary6", "Secondary6"],
"additionalProperties": false
}
}
}

View File

@ -0,0 +1,57 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "object",
"properties": {
"Content": {
"type": "string"
},
"Description": {
"type": "string"
},
"category": {
"type": "string",
"enum": ["Features", "Fixes", "Legacy Windows Panels"]
},
"panel": {
"type": "string",
"pattern": "^\\d+$"
},
"Order": {
"type": "string",
"pattern": "^[0-9a-f]+_$"
},
"feature": {
"type": "array",
"items": {
"type": "string"
}
},
"InvokeScript": {
"type": "array",
"items": {
"type": "string"
}
},
"UndoScript": {
"type": "array",
"items": {
"type": "string"
}
},
"Type": {
"type": "string",
"enum": ["Button"]
},
"ButtonWidth": {
"type": "string",
"pattern": "^\\d+$"
}
},
"required": ["Content", "category", "panel"],
"additionalProperties": false
}
}
}

View File

@ -0,0 +1,12 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "array",
"items": {
"type": "string"
}
}
}
}

297
schemas/config/themes.json Normal file
View File

@ -0,0 +1,297 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"color": {
"type": "string",
"pattern": "^Transparent|(#[0-9A-Fa-f]{6})$"
},
"decimal": {
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$"
}
},
"type": "object",
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "object",
"properties": {
"CustomDialogFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"CustomDialogFontSizeHeader": {
"type": "string",
"pattern": "^\\d+$"
},
"CustomDialogIconSize": {
"type": "string",
"pattern": "^\\d+$"
},
"CustomDialogWidth": {
"type": "string",
"pattern": "^\\d+$"
},
"CustomDialogHeight": {
"type": "string",
"pattern": "^\\d+$"
},
"FontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"FontFamily": {
"type": "string"
},
"FontSizeHeading": {
"type": "string",
"pattern": "^\\d+$"
},
"HeaderFontFamily": {
"type": "string"
},
"CheckBoxBulletDecoratorFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"CheckBoxMargin": {
"type": "string"
},
"TabButtonFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"TabButtonWidth": {
"type": "string",
"pattern": "^\\d+$"
},
"TabButtonHeight": {
"type": "string",
"pattern": "^\\d+$"
},
"TabRowHeightInPixels": {
"type": "string",
"pattern": "^\\d+$"
},
"IconFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"IconButtonSize": {
"type": "string",
"pattern": "^\\d+$"
},
"WinUtilIconSize": {
"type": "string"
},
"SettingsIconFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"MicroWinLogoSize": {
"type": "string",
"pattern": "^\\d+$"
},
"ProgressBarForegroundColor": {
"$ref": "#/definitions/color"
},
"ProgressBarBackgroundColor": {
"$ref": "#/definitions/color"
},
"ProgressBarTextColor": {
"$ref": "#/definitions/color"
},
"ComboBoxBackgroundColor": {
"$ref": "#/definitions/color"
},
"LabelboxForegroundColor": {
"$ref": "#/definitions/color"
},
"MainForegroundColor": {
"$ref": "#/definitions/color"
},
"MainBackgroundColor": {
"$ref": "#/definitions/color"
},
"LabelBackgroundColor": {
"$ref": "#/definitions/color"
},
"LinkForegroundColor": {
"$ref": "#/definitions/color"
},
"LinkHoverForegroundColor": {
"$ref": "#/definitions/color"
},
"GroupBorderBackgroundColor": {
"$ref": "#/definitions/color"
},
"ComboBoxForegroundColor": {
"$ref": "#/definitions/color"
},
"ButtonFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"ButtonFontFamily": {
"type": "string"
},
"ButtonWidth": {
"type": "string",
"pattern": "^\\d+$"
},
"ButtonHeight": {
"type": "string",
"pattern": "^\\d+$"
},
"ConfigTabButtonFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"SearchBarWidth": {
"type": "string",
"pattern": "^\\d+$"
},
"SearchBarHeight": {
"type": "string",
"pattern": "^\\d+$"
},
"SearchBarTextBoxFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"SearchBarClearButtonFontSize": {
"type": "string",
"pattern": "^\\d+$"
},
"ButtonInstallBackgroundColor": {
"$ref": "#/definitions/color"
},
"ButtonTweaksBackgroundColor": {
"$ref": "#/definitions/color"
},
"ButtonConfigBackgroundColor": {
"$ref": "#/definitions/color"
},
"ButtonUpdatesBackgroundColor": {
"$ref": "#/definitions/color"
},
"ButtonInstallForegroundColor": {
"$ref": "#/definitions/color"
},
"ButtonTweaksForegroundColor": {
"$ref": "#/definitions/color"
},
"ButtonConfigForegroundColor": {
"$ref": "#/definitions/color"
},
"ButtonUpdatesForegroundColor": {
"$ref": "#/definitions/color"
},
"ButtonBackgroundColor": {
"$ref": "#/definitions/color"
},
"ButtonBackgroundPressedColor": {
"$ref": "#/definitions/color"
},
"CheckboxMouseOverColor": {
"$ref": "#/definitions/color"
},
"ButtonBackgroundMouseoverColor": {
"$ref": "#/definitions/color"
},
"ButtonBackgroundSelectedColor": {
"$ref": "#/definitions/color"
},
"ButtonForegroundColor": {
"$ref": "#/definitions/color"
},
"ToggleButtonOnColor": {
"$ref": "#/definitions/color"
},
"ButtonBorderThickness": {
"type": "string",
"pattern": "^\\d+$"
},
"ButtonMargin": {
"type": "string",
"pattern": "^\\d+$"
},
"ButtonCornerRadius": {
"type": "string",
"pattern": "^\\d+$"
},
"BorderColor": {
"$ref": "#/definitions/color"
},
"BorderOpacity": {
"$ref": "#/definitions/decimal"
},
"ShadowPulse": {
"type": "string"
}
},
"required": [
"CustomDialogFontSize",
"CustomDialogFontSizeHeader",
"CustomDialogIconSize",
"CustomDialogWidth",
"CustomDialogHeight",
"FontSize",
"FontFamily",
"FontSizeHeading",
"HeaderFontFamily",
"CheckBoxBulletDecoratorFontSize",
"CheckBoxMargin",
"TabButtonFontSize",
"TabButtonWidth",
"TabButtonHeight",
"TabRowHeightInPixels",
"IconFontSize",
"IconButtonSize",
"WinUtilIconSize",
"SettingsIconFontSize",
"MicroWinLogoSize",
"ProgressBarForegroundColor",
"ProgressBarBackgroundColor",
"ProgressBarTextColor",
"ComboBoxBackgroundColor",
"LabelboxForegroundColor",
"MainForegroundColor",
"MainBackgroundColor",
"LabelBackgroundColor",
"LinkForegroundColor",
"LinkHoverForegroundColor",
"ComboBoxForegroundColor",
"ButtonFontSize",
"ButtonFontFamily",
"ButtonWidth",
"ButtonHeight",
"ConfigTabButtonFontSize",
"SearchBarWidth",
"SearchBarHeight",
"SearchBarTextBoxFontSize",
"SearchBarClearButtonFontSize",
"ButtonInstallBackgroundColor",
"ButtonTweaksBackgroundColor",
"ButtonConfigBackgroundColor",
"ButtonUpdatesBackgroundColor",
"ButtonInstallForegroundColor",
"ButtonTweaksForegroundColor",
"ButtonConfigForegroundColor",
"ButtonUpdatesForegroundColor",
"ButtonBackgroundColor",
"ButtonBackgroundPressedColor",
"ButtonBackgroundMouseoverColor",
"ButtonBackgroundSelectedColor",
"ButtonForegroundColor",
"ToggleButtonOnColor",
"ButtonBorderThickness",
"ButtonMargin",
"ButtonCornerRadius",
"BorderColor",
"BorderOpacity",
"ShadowPulse"
],
"additionalProperties": false
}
}
}

121
schemas/config/tweaks.json Normal file
View File

@ -0,0 +1,121 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"definitions": {
"toggle-state": {
"type": "string",
"enum": ["Enabled", "Disabled"]
}
},
"patternProperties": {
"^[a-zA-Z_][a-zA-Z0-9_]*$": {
"type": "object",
"properties": {
"Content": {
"type": "string"
},
"Description": {
"type": "string"
},
"category": {
"type": "string",
"enum": [
"Essential Tweaks",
"Performance Plans",
"Customize Preferences",
"z__Advanced Tweaks - CAUTION",
"Shortcuts"
]
},
"panel": {
"type": "string",
"pattern": "^\\d+$"
},
"Order": {
"type": "string",
"pattern": "^[0-9a-f]+_$"
},
"registry": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Path": {
"type": "string"
},
"Name": {
"type": "string"
},
"Type": {
"type": "string"
},
"Value": {
"type": "string"
},
"OriginalValue": {
"type": "string"
}
},
"required": ["Path", "Name", "Type", "Value", "OriginalValue"]
}
},
"service": {
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"StartupType": {
"type": "string"
},
"OriginalType": {
"type": "string"
}
},
"required": ["Name", "StartupType", "OriginalType"]
}
},
"appx": {
"type": "array",
"items": {
"type": "string"
}
},
"ScheduledTask": {
"type":"array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"State": {
"$ref": "#/definitions/toggle-state"
},
"OriginalState": {
"$ref": "#/definitions/toggle-state"
}
},
"required": ["Name", "State", "OriginalState"]
}
},
"InvokeScript": {
"type": "array",
"items": {
"type": "string"
}
},
"UndoScript": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["Content", "Description", "category", "panel", "Order"],
"additionalProperties": false
}
}
}