mirror of
https://github.com/ChrisTitusTech/winutil
synced 2026-02-05 07:20:09 +00:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b26620627 | ||
|
|
eeee941eb3 | ||
|
|
242fa6f210 | ||
|
|
634ef3266c | ||
|
|
a87c301636 | ||
|
|
674d1368bb | ||
|
|
c7495059fd | ||
|
|
dff974144f | ||
|
|
7db0b8a857 | ||
|
|
af7030d536 | ||
|
|
40b2894ed1 | ||
|
|
92728e65fd | ||
|
|
a6daeccb8c | ||
|
|
4eee519e76 | ||
|
|
54e367a13b | ||
|
|
e2e9089d6f | ||
|
|
aa1b1d2c18 |
@@ -9,7 +9,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Check if PR was merged
|
- name: Check if PR was merged
|
||||||
if: github.event.pull_request.merged == true
|
if: github.event.pull_request.merged == true
|
||||||
|
|||||||
2
.github/workflows/compile-check.yaml
vendored
2
.github/workflows/compile-check.yaml
vendored
@@ -13,7 +13,7 @@ jobs:
|
|||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Sources
|
- name: Checkout Sources
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Compile and Syntaxcheck winutil.ps1
|
- name: Compile and Syntaxcheck winutil.ps1
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
|
|||||||
2
.github/workflows/pre-release.yaml
vendored
2
.github/workflows/pre-release.yaml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout Repository
|
- name: Checkout Repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Compile project
|
- name: Compile project
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
|
|||||||
2
.github/workflows/remove-winutil.yaml
vendored
2
.github/workflows/remove-winutil.yaml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Check if winutil.ps1 exists
|
- name: Check if winutil.ps1 exists
|
||||||
id: check_existence
|
id: check_existence
|
||||||
|
|||||||
2
.github/workflows/sponsors.yaml
vendored
2
.github/workflows/sponsors.yaml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
if: (github.event_name == 'schedule' && github.repository == 'ChrisTitusTech/winutil') || (github.event_name != 'schedule')
|
if: (github.event_name == 'schedule' && github.repository == 'ChrisTitusTech/winutil') || (github.event_name != 'schedule')
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout 🛎️
|
- name: Checkout 🛎️
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Generate Sponsors 💖
|
- name: Generate Sponsors 💖
|
||||||
uses: JamesIves/github-sponsors-readme-action@v1
|
uses: JamesIves/github-sponsors-readme-action@v1
|
||||||
|
|||||||
4
.github/workflows/unittests.yaml
vendored
4
.github/workflows/unittests.yaml
vendored
@@ -8,7 +8,7 @@ jobs:
|
|||||||
name: PS Script Analyzer
|
name: PS Script Analyzer
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v5
|
||||||
- name: lint
|
- name: lint
|
||||||
uses: devblackops/github-action-psscriptanalyzer@master
|
uses: devblackops/github-action-psscriptanalyzer@master
|
||||||
with:
|
with:
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Install Pester
|
- name: Install Pester
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
19
Compile.ps1
19
Compile.ps1
@@ -51,7 +51,24 @@ Update-Progress "Pre-req: Running Preprocessor..." 0
|
|||||||
$preprocessingFilePath = ".\tools\Invoke-Preprocessing.ps1"
|
$preprocessingFilePath = ".\tools\Invoke-Preprocessing.ps1"
|
||||||
. $preprocessingFilePath
|
. $preprocessingFilePath
|
||||||
|
|
||||||
$excludedFiles = @('.\.git\', '.\.gitignore', '.\.gitattributes', '.\.github\CODEOWNERS', '.\LICENSE', "$preprocessingFilePath", '*.png', '*.exe','.\.preprocessor_hashes.json')
|
$excludedFiles = @()
|
||||||
|
|
||||||
|
# Add directories only if they exist
|
||||||
|
if (Test-Path '.\.git\') { $excludedFiles += '.\.git\' }
|
||||||
|
if (Test-Path '.\binary\') { $excludedFiles += '.\binary\' }
|
||||||
|
|
||||||
|
# Add files that should always be excluded
|
||||||
|
$excludedFiles += @(
|
||||||
|
'.\.gitignore',
|
||||||
|
'.\.gitattributes',
|
||||||
|
'.\.github\CODEOWNERS',
|
||||||
|
'.\LICENSE',
|
||||||
|
"$preprocessingFilePath",
|
||||||
|
'*.png',
|
||||||
|
'*.exe',
|
||||||
|
'.\.preprocessor_hashes.json'
|
||||||
|
)
|
||||||
|
|
||||||
$msg = "Pre-req: Code Formatting"
|
$msg = "Pre-req: Code Formatting"
|
||||||
Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -ProgressStatusMessage $msg
|
Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -ProgressStatusMessage $msg
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
|
|||||||
|
|
||||||
These are the sponsors that help keep this project alive with monthly contributions.
|
These are the sponsors that help keep this project alive with monthly contributions.
|
||||||
|
|
||||||
<!-- sponsors --><a href="https://github.com/TriHydera"><img src="https://github.com/TriHydera.png" width="60px" alt="User avatar: TriHydera" /></a><a href="https://github.com/DelDongo"><img src="https://github.com/DelDongo.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J. - WhamGeek" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/realmuddy"><img src="https://github.com/realmuddy.png" width="60px" alt="User avatar: Phillip Waters" /></a><a href="https://github.com/quaszi"><img src="https://github.com/quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/danhively"><img src="https://github.com/danhively.png" width="60px" alt="User avatar: Dan Hively" /></a><!-- sponsors -->
|
<!-- sponsors --><a href="https://github.com/TriHydera"><img src="https://github.com/TriHydera.png" width="60px" alt="User avatar: TriHydera" /></a><a href="https://github.com/DelDongo"><img src="https://github.com/DelDongo.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/realmuddy"><img src="https://github.com/realmuddy.png" width="60px" alt="User avatar: Phillip Waters" /></a><a href="https://github.com/quaszi"><img src="https://github.com/quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/danhively"><img src="https://github.com/danhively.png" width="60px" alt="User avatar: Dan Hively" /></a><!-- sponsors -->
|
||||||
|
|
||||||
## 🏅 Thanks to all Contributors
|
## 🏅 Thanks to all Contributors
|
||||||
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
||||||
|
|||||||
@@ -379,10 +379,18 @@
|
|||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
"choco": "na",
|
"choco": "na",
|
||||||
"content": "DISMTools",
|
"content": "DISMTools",
|
||||||
"description": "DISMTools is a front-end for DISM that lets you manage your Windows Imaging (WIM) files and a whole lot more.",
|
"description": "DISMTools is a fast, customizable GUI for the DISM utility, supporting Windows images from Windows 7 onward. It handles installations on any drive, offers project support, and lets users tweak settings like color modes, language, and DISM versions; powered by both native DISM and a managed DISM API.",
|
||||||
"link": "https://github.com/CodingWonders/DISMTools",
|
"link": "https://github.com/CodingWonders/DISMTools",
|
||||||
"winget": "CodingWondersSoftware.DISMTools.Stable"
|
"winget": "CodingWondersSoftware.DISMTools.Stable"
|
||||||
},
|
},
|
||||||
|
"ntlite": {
|
||||||
|
"category": "Microsoft Tools",
|
||||||
|
"choco": "ntlite-free",
|
||||||
|
"content": "NTLite",
|
||||||
|
"description": "Integrate updates, drivers, automate Windows and application setup, speedup Windows deployment process and have it all set for the next time.",
|
||||||
|
"link": "https://ntlite.com",
|
||||||
|
"winget": "Nlitesoft.NTLite"
|
||||||
|
},
|
||||||
"ditto": {
|
"ditto": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
"choco": "ditto",
|
"choco": "ditto",
|
||||||
@@ -1163,7 +1171,7 @@
|
|||||||
"category": "Communications",
|
"category": "Communications",
|
||||||
"choco": "element-desktop",
|
"choco": "element-desktop",
|
||||||
"content": "Element",
|
"content": "Element",
|
||||||
"description": "Element is a client for Matrix—an open network for secure, decentralized communication.",
|
"description": "Element is a client for Matrix; an open network for secure, decentralized communication.",
|
||||||
"link": "https://element.io/",
|
"link": "https://element.io/",
|
||||||
"winget": "Element.Element"
|
"winget": "Element.Element"
|
||||||
},
|
},
|
||||||
@@ -1509,7 +1517,7 @@
|
|||||||
"content": "OpenRGB",
|
"content": "OpenRGB",
|
||||||
"description": "OpenRGB is an open-source RGB lighting control software designed to manage and control RGB lighting for various components and peripherals.",
|
"description": "OpenRGB is an open-source RGB lighting control software designed to manage and control RGB lighting for various components and peripherals.",
|
||||||
"link": "https://openrgb.org/",
|
"link": "https://openrgb.org/",
|
||||||
"winget": "CalcProgrammer1.OpenRGB"
|
"winget": "OpenRGB.OpenRGB"
|
||||||
},
|
},
|
||||||
"openscad": {
|
"openscad": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
@@ -1885,7 +1893,7 @@
|
|||||||
"content": "Session",
|
"content": "Session",
|
||||||
"description": "Session is a private and secure messaging app built on a decentralized network for user privacy and data protection.",
|
"description": "Session is a private and secure messaging app built on a decentralized network for user privacy and data protection.",
|
||||||
"link": "https://getsession.org/",
|
"link": "https://getsession.org/",
|
||||||
"winget": "Oxen.Session"
|
"winget": "Session.Session"
|
||||||
},
|
},
|
||||||
"sharex": {
|
"sharex": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
|
|||||||
@@ -290,6 +290,14 @@
|
|||||||
"ButtonWidth": "300",
|
"ButtonWidth": "300",
|
||||||
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/region"
|
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/region"
|
||||||
},
|
},
|
||||||
|
"WPFPanelRestore": {
|
||||||
|
"Content": "Windows Restore",
|
||||||
|
"category": "Legacy Windows Panels",
|
||||||
|
"panel": "2",
|
||||||
|
"Type": "Button",
|
||||||
|
"ButtonWidth": "300",
|
||||||
|
"link": "https://winutil.christitus.com/dev/features/legacy-windows-panels/restore"
|
||||||
|
},
|
||||||
"WPFPanelSound": {
|
"WPFPanelSound": {
|
||||||
"Content": "Sound Settings",
|
"Content": "Sound Settings",
|
||||||
"category": "Legacy Windows Panels",
|
"category": "Legacy Windows Panels",
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public class PowerManagement {
|
|||||||
|
|
||||||
$WPBT = $sync.MicroWinWPBT.IsChecked
|
$WPBT = $sync.MicroWinWPBT.IsChecked
|
||||||
$unsupported = $sync.MicroWinUnsupported.IsChecked
|
$unsupported = $sync.MicroWinUnsupported.IsChecked
|
||||||
|
$skipFla = $sync.MicroWinNoFLA.IsChecked
|
||||||
|
|
||||||
$importVirtIO = $sync.MicrowinCopyVirtIO.IsChecked
|
$importVirtIO = $sync.MicrowinCopyVirtIO.IsChecked
|
||||||
|
|
||||||
@@ -181,6 +182,15 @@ public class PowerManagement {
|
|||||||
reg unload HKLM\zSYSTEM
|
reg unload HKLM\zSYSTEM
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($skipFla) {
|
||||||
|
Write-Host "Skipping first logon animation..."
|
||||||
|
reg load HKLM\zSOFTWARE "$($scratchDir)\Windows\System32\config\SOFTWARE"
|
||||||
|
reg add "HKLM\zSOFTWARE\Microsoft\Active Setup\Installed Components\CMP_NoFla" /f
|
||||||
|
reg add "HKLM\zSOFTWARE\Microsoft\Active Setup\Installed Components\CMP_NoFla" /ve /t REG_SZ /d "Stop First Logon Animation Process" /f
|
||||||
|
reg add "HKLM\zSOFTWARE\Microsoft\Active Setup\Installed Components\CMP_NoFla" /v StubPath /t REG_EXPAND_SZ /d '""%WINDIR%\System32\cmd.exe"" /C ""taskkill /f /im firstlogonanim.exe""' /f
|
||||||
|
reg unload HKLM\zSOFTWARE
|
||||||
|
}
|
||||||
|
|
||||||
if ($unsupported) {
|
if ($unsupported) {
|
||||||
Write-Host "Bypassing system requirements (locally)"
|
Write-Host "Bypassing system requirements (locally)"
|
||||||
reg add "HKCU\Control Panel\UnsupportedHardwareNotificationCache" /v "SV1" /t REG_DWORD /d 0 /f
|
reg add "HKCU\Control Panel\UnsupportedHardwareNotificationCache" /v "SV1" /t REG_DWORD /d 0 /f
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ function Invoke-MicrowinGetIso {
|
|||||||
Function to get the path to Iso file for MicroWin, unpack that isom=, read basic information and populate the UI Options
|
Function to get the path to Iso file for MicroWin, unpack that isom=, read basic information and populate the UI Options
|
||||||
#>
|
#>
|
||||||
|
|
||||||
Write-Host "Invoking WPFGetIso"
|
Write-Debug "Invoking WPFGetIso"
|
||||||
|
|
||||||
if($sync.ProcessRunning) {
|
if($sync.ProcessRunning) {
|
||||||
$msg = "GetIso process is currently running."
|
$msg = "GetIso process is currently running."
|
||||||
@@ -73,10 +73,11 @@ function Invoke-MicrowinGetIso {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Invoke-MicrowinBusyInfo -action "wip" -message "Downloading Windows ISO... (This may take a long time)" -interactive $false
|
Invoke-MicrowinBusyInfo -action "wip" -message "Downloading Windows ISO... (This may take a long time)" -interactive $false
|
||||||
& $fidopath -Win 'Windows 11' -Rel $sync["ISORelease"].SelectedItem -Arch "x64" -Lang $lang -Ed "Windows 11 Home/Pro/Edu"
|
& $fidopath -Win 'Windows 11' -Rel Latest -Arch "x64" -Lang $lang
|
||||||
if (-not $?)
|
if (-not $?)
|
||||||
{
|
{
|
||||||
Write-Host "Could not download the ISO file. Look at the output of the console for more information."
|
Write-Host "Could not download the ISO file. Look at the output of the console for more information."
|
||||||
|
Write-Host "If you get an error about scripts is disabled on this system please close WinUtil and run - 'Set-ExecutionPolicy -ExecutionPolicy Unrestricted' and select 'A' and retry using MicroWin again."
|
||||||
$msg = "The ISO file could not be downloaded"
|
$msg = "The ISO file could not be downloaded"
|
||||||
Invoke-MicrowinBusyInfo -action "warning" -message $msg
|
Invoke-MicrowinBusyInfo -action "warning" -message $msg
|
||||||
Set-WinUtilTaskbaritem -state "Error" -value 1 -overlay "warning"
|
Set-WinUtilTaskbaritem -state "Error" -value 1 -overlay "warning"
|
||||||
|
|||||||
@@ -34,7 +34,9 @@ function Microwin-NewFirstRun {
|
|||||||
|
|
||||||
$taskbarPath = "$env:AppData\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
|
$taskbarPath = "$env:AppData\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar"
|
||||||
# Delete all files on the Taskbar
|
# Delete all files on the Taskbar
|
||||||
Get-ChildItem -Path $taskbarPath -File | Remove-Item -Force
|
if (Test-Path "$taskbarPath") {
|
||||||
|
Get-ChildItem -Path $taskbarPath -File | Remove-Item -Force
|
||||||
|
}
|
||||||
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "FavoritesRemovedChanges"
|
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "FavoritesRemovedChanges"
|
||||||
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "FavoritesChanges"
|
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "FavoritesChanges"
|
||||||
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "Favorites"
|
Remove-RegistryValue -RegistryPath "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" -ValueName "Favorites"
|
||||||
@@ -88,6 +90,23 @@ function Microwin-NewFirstRun {
|
|||||||
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.AccountHealth" /f
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.AccountHealth" /f
|
||||||
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.AccountHealth" /v Enabled /t REG_DWORD /d 0 /f
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.AccountHealth" /v Enabled /t REG_DWORD /d 0 /f
|
||||||
|
|
||||||
|
# This will set List view in Start menu on Win11 25H2. This will not do anything in 24H2 and older
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Start" /v AllAppsViewMode /t REG_DWORD /d 2 /f
|
||||||
|
|
||||||
|
# This will disable the Recommendations in 25H2. This is much simpler than the method used in 24H2 that requires the Education Environment policy
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_IrisRecommendations /t REG_DWORD /d 0 /f
|
||||||
|
|
||||||
|
# Other Start Menu settings
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_AccountNotifications /t REG_DWORD /d 0 /f
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Start" /v ShowAllPinsList /t REG_DWORD /d 0 /f
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Start" /v ShowFrequentList /t REG_DWORD /d 0 /f
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Start" /v ShowRecentList /t REG_DWORD /d 0 /f
|
||||||
|
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Start_TrackDocs /t REG_DWORD /d 0 /f
|
||||||
|
|
||||||
|
Clear-Host
|
||||||
|
Write-Host "The taskbar will take around a minute to show up, but you can start using your computer now. Try pressing the Windows key to open the Start menu, or Windows + E to launch File Explorer."
|
||||||
|
Start-Sleep -Seconds 10
|
||||||
|
|
||||||
if (Test-Path -Path "$env:HOMEDRIVE\winutil-config.json")
|
if (Test-Path -Path "$env:HOMEDRIVE\winutil-config.json")
|
||||||
{
|
{
|
||||||
Write-Host "Configuration file detected. Applying..."
|
Write-Host "Configuration file detected. Applying..."
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ function Initialize-InstallCategoryAppList {
|
|||||||
$toggleButton = New-Object Windows.Controls.Label
|
$toggleButton = New-Object Windows.Controls.Label
|
||||||
$toggleButton.Content = "$Category"
|
$toggleButton.Content = "$Category"
|
||||||
$toggleButton.Tag = "CategoryToggleButton"
|
$toggleButton.Tag = "CategoryToggleButton"
|
||||||
$sync.$Category = $Category
|
$toggleButton.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "HeaderFontSize")
|
||||||
|
$toggleButton.SetResourceReference([Windows.Controls.Control]::FontFamilyProperty, "HeaderFontFamily")
|
||||||
|
$sync.$Category = $toggleButton
|
||||||
|
|
||||||
$null = $TargetElement.Items.Add($toggleButton)
|
$null = $TargetElement.Items.Add($toggleButton)
|
||||||
}
|
}
|
||||||
|
|||||||
26
functions/private/Test-WinUtilInternetConnection.ps1
Normal file
26
functions/private/Test-WinUtilInternetConnection.ps1
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
function Test-WinUtilInternetConnection {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Tests if the computer has internet connectivity
|
||||||
|
.OUTPUTS
|
||||||
|
Boolean - True if connected, False if offline
|
||||||
|
#>
|
||||||
|
try {
|
||||||
|
# Test multiple reliable endpoints
|
||||||
|
$testSites = @(
|
||||||
|
"8.8.8.8", # Google DNS
|
||||||
|
"1.1.1.1", # Cloudflare DNS
|
||||||
|
"208.67.222.222" # OpenDNS
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach ($site in $testSites) {
|
||||||
|
if (Test-Connection -ComputerName $site -Count 1 -Quiet -ErrorAction SilentlyContinue) {
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -41,11 +41,12 @@ function Invoke-WPFButton {
|
|||||||
"WPFPanelPower" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelPower" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFPanelPrinter" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelPrinter" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFPanelRegion" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelRegion" {Invoke-WPFControlPanel -Panel $button}
|
||||||
|
"WPFPanelRestore" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFPanelSound" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelSound" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFPanelSystem" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelSystem" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFPanelTimedate" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelTimedate" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFPanelUser" {Invoke-WPFControlPanel -Panel $button}
|
"WPFPanelUser" {Invoke-WPFControlPanel -Panel $button}
|
||||||
"WPFUpdatesdefault" {Invoke-WPFFixesUpdate}
|
"WPFUpdatesdefault" {Invoke-WPFUpdatesdefault}
|
||||||
"WPFFixesUpdate" {Invoke-WPFFixesUpdate}
|
"WPFFixesUpdate" {Invoke-WPFFixesUpdate}
|
||||||
"WPFFixesWinget" {Invoke-WPFFixesWinget}
|
"WPFFixesWinget" {Invoke-WPFFixesWinget}
|
||||||
"WPFRunAdobeCCCleanerTool" {Invoke-WPFRunAdobeCCCleanerTool}
|
"WPFRunAdobeCCCleanerTool" {Invoke-WPFRunAdobeCCCleanerTool}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ function Invoke-WPFControlPanel {
|
|||||||
"WPFPanelPower" {powercfg.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelRegion" {intl.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
"WPFPanelSound" {mmsys.cpl}
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
"WPFPanelSystem" {sysdm.cpl}
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
"WPFPanelTimedate" {timedate.cpl}
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
|||||||
@@ -39,42 +39,54 @@ function Invoke-WPFInstall {
|
|||||||
$user = $env:USERNAME
|
$user = $env:USERNAME
|
||||||
|
|
||||||
Get-LocalUser | Where-Object Enabled -eq $true | ForEach-Object {
|
Get-LocalUser | Where-Object Enabled -eq $true | ForEach-Object {
|
||||||
try {
|
$validPassword = $false
|
||||||
$myPasswordIsBlank = $PrincipalContext.ValidateCredentials($user, $null)
|
while (-not $validPassword) {
|
||||||
} catch {
|
try {
|
||||||
$form = New-Object System.Windows.Forms.Form
|
$myPasswordIsBlank = $PrincipalContext.ValidateCredentials($user, $null)
|
||||||
$form.Text = "Set password for $user"
|
$validPassword = $true
|
||||||
$form.Size = New-Object System.Drawing.Size(500, 200)
|
} catch {
|
||||||
|
$form = New-Object System.Windows.Forms.Form
|
||||||
|
$form.Text = "Set password for $user"
|
||||||
|
$form.Size = New-Object System.Drawing.Size(500, 200)
|
||||||
|
|
||||||
$label = New-Object System.Windows.Forms.Label
|
$label = New-Object System.Windows.Forms.Label
|
||||||
$label.Text = 'Maybe a program needs to be installed in "usermode" and you have no password set, you need to set it here. After putting a password into the text box a page asking for your password might open (not right after). If you keep the text box empty, nothing will happen.
|
$label.Text = 'Admin mode install failed. Set a USER password for login and user-based installation.'
|
||||||
REMEMBER THE PASSWORD FOR THE FUTURE. YOU WILL NEED FOR STUFF AND TO LOGIN IF AUTOLOGIN ISN`T SET'
|
$label.Size = New-Object System.Drawing.Size(480, 60)
|
||||||
$label.Size = New-Object System.Drawing.Size(480, 60)
|
$label.Location = New-Object System.Drawing.Point(10, 10)
|
||||||
$label.Location = New-Object System.Drawing.Point(10, 10)
|
$form.Controls.Add($label)
|
||||||
$form.Controls.Add($label)
|
|
||||||
|
|
||||||
$passwordBox = New-Object System.Windows.Forms.TextBox
|
$passwordBox = New-Object System.Windows.Forms.TextBox
|
||||||
$passwordBox.Size = New-Object System.Drawing.Size(380, 20)
|
$passwordBox.Size = New-Object System.Drawing.Size(380, 20)
|
||||||
$passwordBox.UseSystemPasswordChar = $true
|
$passwordBox.UseSystemPasswordChar = $true
|
||||||
$passwordBox.Location = New-Object System.Drawing.Point(10, 125)
|
$passwordBox.Location = New-Object System.Drawing.Point(10, 125)
|
||||||
$form.Controls.Add($passwordBox)
|
$form.Controls.Add($passwordBox)
|
||||||
|
|
||||||
$button = New-Object System.Windows.Forms.Button
|
$button = New-Object System.Windows.Forms.Button
|
||||||
$button.Text = 'Submit'
|
$button.Text = 'Submit'
|
||||||
$button.Size = New-Object System.Drawing.Size(75, 23)
|
$button.Size = New-Object System.Drawing.Size(75, 23)
|
||||||
$button.Location = New-Object System.Drawing.Point(400, 125)
|
$button.Location = New-Object System.Drawing.Point(400, 125)
|
||||||
$button.Add_Click({
|
$button.Add_Click({
|
||||||
$password = $passwordBox.Text | ConvertTo-SecureString -AsPlainText -Force
|
$password = $passwordBox.Text | ConvertTo-SecureString -AsPlainText -Force
|
||||||
if ($password) {
|
if ($password) {
|
||||||
Set-LocalUser -Name $user -Password $password
|
try {
|
||||||
$Form.Close()
|
Set-LocalUser -Name $user -Password $password
|
||||||
} else {
|
$validPassword = $PrincipalContext.ValidateCredentials($user, $passwordBox.Text)
|
||||||
[System.Windows.Forms.MessageBox]::Show('No password entered!')
|
if ($validPassword) {
|
||||||
|
$form.Close()
|
||||||
|
} else {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show('Invalid password! Please try again.')
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show('Error setting password!')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
[System.Windows.Forms.MessageBox]::Show('No password entered!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$form.Controls.Add($button)
|
||||||
|
$form.ShowDialog() | Out-Null
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
$form.Controls.Add($button)
|
|
||||||
$form.ShowDialog() | Out-Null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Show-WPFInstallAppBusy -text "Installing apps..."
|
Show-WPFInstallAppBusy -text "Installing apps..."
|
||||||
|
|||||||
@@ -140,6 +140,7 @@ function Invoke-WPFUIElements {
|
|||||||
$label.Content = $category -replace ".*__", ""
|
$label.Content = $category -replace ".*__", ""
|
||||||
$label.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "HeaderFontSize")
|
$label.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "HeaderFontSize")
|
||||||
$label.SetResourceReference([Windows.Controls.Control]::FontFamilyProperty, "HeaderFontFamily")
|
$label.SetResourceReference([Windows.Controls.Control]::FontFamilyProperty, "HeaderFontFamily")
|
||||||
|
$label.UseLayoutRounding = $true
|
||||||
$itemsControl.Items.Add($label) | Out-Null
|
$itemsControl.Items.Add($label) | Out-Null
|
||||||
$sync[$category] = $label
|
$sync[$category] = $label
|
||||||
|
|
||||||
@@ -154,6 +155,7 @@ function Invoke-WPFUIElements {
|
|||||||
$checkBox = New-Object Windows.Controls.CheckBox
|
$checkBox = New-Object Windows.Controls.CheckBox
|
||||||
$checkBox.Name = $entryInfo.Name
|
$checkBox.Name = $entryInfo.Name
|
||||||
$checkBox.HorizontalAlignment = "Right"
|
$checkBox.HorizontalAlignment = "Right"
|
||||||
|
$checkBox.UseLayoutRounding = $true
|
||||||
$dockPanel.Children.Add($checkBox) | Out-Null
|
$dockPanel.Children.Add($checkBox) | Out-Null
|
||||||
$checkBox.Style = $ColorfulToggleSwitchStyle
|
$checkBox.Style = $ColorfulToggleSwitchStyle
|
||||||
|
|
||||||
@@ -163,6 +165,7 @@ function Invoke-WPFUIElements {
|
|||||||
$label.HorizontalAlignment = "Left"
|
$label.HorizontalAlignment = "Left"
|
||||||
$label.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "FontSize")
|
$label.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "FontSize")
|
||||||
$label.SetResourceReference([Windows.Controls.Control]::ForegroundProperty, "MainForegroundColor")
|
$label.SetResourceReference([Windows.Controls.Control]::ForegroundProperty, "MainForegroundColor")
|
||||||
|
$label.UseLayoutRounding = $true
|
||||||
$dockPanel.Children.Add($label) | Out-Null
|
$dockPanel.Children.Add($label) | Out-Null
|
||||||
$itemsControl.Items.Add($dockPanel) | Out-Null
|
$itemsControl.Items.Add($dockPanel) | Out-Null
|
||||||
|
|
||||||
@@ -217,6 +220,7 @@ function Invoke-WPFUIElements {
|
|||||||
$label.HorizontalAlignment = "Left"
|
$label.HorizontalAlignment = "Left"
|
||||||
$label.VerticalAlignment = "Center"
|
$label.VerticalAlignment = "Center"
|
||||||
$label.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
$label.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
|
$label.UseLayoutRounding = $true
|
||||||
$horizontalStackPanel.Children.Add($label) | Out-Null
|
$horizontalStackPanel.Children.Add($label) | Out-Null
|
||||||
|
|
||||||
$comboBox = New-Object Windows.Controls.ComboBox
|
$comboBox = New-Object Windows.Controls.ComboBox
|
||||||
@@ -226,11 +230,14 @@ function Invoke-WPFUIElements {
|
|||||||
$comboBox.HorizontalAlignment = "Left"
|
$comboBox.HorizontalAlignment = "Left"
|
||||||
$comboBox.VerticalAlignment = "Center"
|
$comboBox.VerticalAlignment = "Center"
|
||||||
$comboBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
|
$comboBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
|
||||||
|
$comboBox.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
|
$comboBox.UseLayoutRounding = $true
|
||||||
|
|
||||||
foreach ($comboitem in ($entryInfo.ComboItems -split " ")) {
|
foreach ($comboitem in ($entryInfo.ComboItems -split " ")) {
|
||||||
$comboBoxItem = New-Object Windows.Controls.ComboBoxItem
|
$comboBoxItem = New-Object Windows.Controls.ComboBoxItem
|
||||||
$comboBoxItem.Content = $comboitem
|
$comboBoxItem.Content = $comboitem
|
||||||
$comboBoxItem.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
$comboBoxItem.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
|
$comboBoxItem.UseLayoutRounding = $true
|
||||||
$comboBox.Items.Add($comboBoxItem) | Out-Null
|
$comboBox.Items.Add($comboBoxItem) | Out-Null
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,6 +246,19 @@ function Invoke-WPFUIElements {
|
|||||||
|
|
||||||
$comboBox.SelectedIndex = 0
|
$comboBox.SelectedIndex = 0
|
||||||
|
|
||||||
|
# Set initial text
|
||||||
|
if ($comboBox.Items.Count -gt 0) {
|
||||||
|
$comboBox.Text = $comboBox.Items[0].Content
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add SelectionChanged event handler to update the text property
|
||||||
|
$comboBox.Add_SelectionChanged({
|
||||||
|
$selectedItem = $this.SelectedItem
|
||||||
|
if ($selectedItem) {
|
||||||
|
$this.Text = $selectedItem.Content
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
$sync[$entryInfo.Name] = $comboBox
|
$sync[$entryInfo.Name] = $comboBox
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -250,7 +270,8 @@ function Invoke-WPFUIElements {
|
|||||||
$button.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
|
$button.SetResourceReference([Windows.Controls.Control]::MarginProperty, "ButtonMargin")
|
||||||
$button.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
$button.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
if ($entryInfo.ButtonWidth) {
|
if ($entryInfo.ButtonWidth) {
|
||||||
$button.Width = $entryInfo.ButtonWidth
|
$baseWidth = [int]$entryInfo.ButtonWidth
|
||||||
|
$button.Width = [math]::Max($baseWidth, 350)
|
||||||
}
|
}
|
||||||
$itemsControl.Items.Add($button) | Out-Null
|
$itemsControl.Items.Add($button) | Out-Null
|
||||||
|
|
||||||
@@ -281,6 +302,7 @@ function Invoke-WPFUIElements {
|
|||||||
$radioButton.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
|
$radioButton.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
|
||||||
$radioButton.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
$radioButton.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "ButtonFontSize")
|
||||||
$radioButton.ToolTip = $entryInfo.Description
|
$radioButton.ToolTip = $entryInfo.Description
|
||||||
|
$radioButton.UseLayoutRounding = $true
|
||||||
|
|
||||||
if ($entryInfo.Checked -eq $true) {
|
if ($entryInfo.Checked -eq $true) {
|
||||||
$radioButton.IsChecked = $true
|
$radioButton.IsChecked = $true
|
||||||
@@ -301,6 +323,7 @@ function Invoke-WPFUIElements {
|
|||||||
$checkBox.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "FontSize")
|
$checkBox.SetResourceReference([Windows.Controls.Control]::FontSizeProperty, "FontSize")
|
||||||
$checkBox.ToolTip = $entryInfo.Description
|
$checkBox.ToolTip = $entryInfo.Description
|
||||||
$checkBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
|
$checkBox.SetResourceReference([Windows.Controls.Control]::MarginProperty, "CheckBoxMargin")
|
||||||
|
$checkBox.UseLayoutRounding = $true
|
||||||
if ($entryInfo.Checked -eq $true) {
|
if ($entryInfo.Checked -eq $true) {
|
||||||
$checkBox.IsChecked = $entryInfo.Checked
|
$checkBox.IsChecked = $entryInfo.Checked
|
||||||
}
|
}
|
||||||
@@ -312,6 +335,7 @@ function Invoke-WPFUIElements {
|
|||||||
$textBlock.Text = "(?)"
|
$textBlock.Text = "(?)"
|
||||||
$textBlock.ToolTip = $entryInfo.Link
|
$textBlock.ToolTip = $entryInfo.Link
|
||||||
$textBlock.Style = $HoverTextBlockStyle
|
$textBlock.Style = $HoverTextBlockStyle
|
||||||
|
$textBlock.UseLayoutRounding = $true
|
||||||
|
|
||||||
$horizontalStackPanel.Children.Add($textBlock) | Out-Null
|
$horizontalStackPanel.Children.Add($textBlock) | Out-Null
|
||||||
|
|
||||||
|
|||||||
@@ -310,7 +310,36 @@ $sync["Form"].Add_ContentRendered({
|
|||||||
Write-Debug "Unable to retrieve information about the primary monitor."
|
Write-Debug "Unable to retrieve information about the primary monitor."
|
||||||
}
|
}
|
||||||
|
|
||||||
Invoke-WPFTab "WPFTab1BT"
|
# Check internet connectivity and disable install tab if offline
|
||||||
|
#$isOnline = Test-WinUtilInternetConnection
|
||||||
|
$isOnline = $true # Temporarily force online mode until we can resolve false negatives
|
||||||
|
|
||||||
|
if (-not $isOnline) {
|
||||||
|
# Disable the install tab
|
||||||
|
$sync.WPFTab1BT.IsEnabled = $false
|
||||||
|
$sync.WPFTab1BT.Opacity = 0.5
|
||||||
|
$sync.WPFTab1BT.ToolTip = "Internet connection required for installing applications"
|
||||||
|
|
||||||
|
# Disable install-related buttons
|
||||||
|
$sync.WPFInstall.IsEnabled = $false
|
||||||
|
$sync.WPFUninstall.IsEnabled = $false
|
||||||
|
$sync.WPFInstallUpgrade.IsEnabled = $false
|
||||||
|
$sync.WPFGetInstalled.IsEnabled = $false
|
||||||
|
|
||||||
|
# Show offline indicator
|
||||||
|
Write-Host "Offline mode detected - Install tab disabled" -ForegroundColor Yellow
|
||||||
|
|
||||||
|
# Optionally switch to a different tab if install tab was going to be default
|
||||||
|
Invoke-WPFTab "WPFTab2BT" # Switch to Tweaks tab instead
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# Online - ensure install tab is enabled
|
||||||
|
$sync.WPFTab1BT.IsEnabled = $true
|
||||||
|
$sync.WPFTab1BT.Opacity = 1.0
|
||||||
|
$sync.WPFTab1BT.ToolTip = $null
|
||||||
|
Invoke-WPFTab "WPFTab1BT" # Default to install tab
|
||||||
|
}
|
||||||
|
|
||||||
$sync["Form"].Focus()
|
$sync["Form"].Focus()
|
||||||
|
|
||||||
# maybe this is not the best place to load and execute config file?
|
# maybe this is not the best place to load and execute config file?
|
||||||
@@ -359,18 +388,13 @@ $sync["Form"].Add_ContentRendered({
|
|||||||
|
|
||||||
# Add event handlers for the RadioButtons
|
# Add event handlers for the RadioButtons
|
||||||
$sync["ISOdownloader"].add_Checked({
|
$sync["ISOdownloader"].add_Checked({
|
||||||
$sync["ISORelease"].Visibility = [System.Windows.Visibility]::Visible
|
|
||||||
$sync["ISOLanguage"].Visibility = [System.Windows.Visibility]::Visible
|
$sync["ISOLanguage"].Visibility = [System.Windows.Visibility]::Visible
|
||||||
})
|
})
|
||||||
|
|
||||||
$sync["ISOmanual"].add_Checked({
|
$sync["ISOmanual"].add_Checked({
|
||||||
$sync["ISORelease"].Visibility = [System.Windows.Visibility]::Collapsed
|
|
||||||
$sync["ISOLanguage"].Visibility = [System.Windows.Visibility]::Collapsed
|
$sync["ISOLanguage"].Visibility = [System.Windows.Visibility]::Collapsed
|
||||||
})
|
})
|
||||||
|
|
||||||
$sync["ISORelease"].Items.Add("24H2") | Out-Null
|
|
||||||
$sync["ISORelease"].SelectedItem = "24H2"
|
|
||||||
|
|
||||||
$sync["ISOLanguage"].Items.Add("System Language ($(Microwin-GetLangFromCulture -langName $((Get-Culture).Name)))") | Out-Null
|
$sync["ISOLanguage"].Items.Add("System Language ($(Microwin-GetLangFromCulture -langName $((Get-Culture).Name)))") | Out-Null
|
||||||
if ($currentCulture -ne "English International") {
|
if ($currentCulture -ne "English International") {
|
||||||
$sync["ISOLanguage"].Items.Add("English International") | Out-Null
|
$sync["ISOLanguage"].Items.Add("English International") | Out-Null
|
||||||
|
|||||||
@@ -10,8 +10,8 @@
|
|||||||
WindowStyle="None"
|
WindowStyle="None"
|
||||||
Width="Auto"
|
Width="Auto"
|
||||||
Height="Auto"
|
Height="Auto"
|
||||||
MaxWidth="1380"
|
MinWidth="800"
|
||||||
MaxHeight="800"
|
MinHeight="600"
|
||||||
Title="WinUtil">
|
Title="WinUtil">
|
||||||
<WindowChrome.WindowChrome>
|
<WindowChrome.WindowChrome>
|
||||||
<WindowChrome CaptionHeight="0" CornerRadius="10"/>
|
<WindowChrome CaptionHeight="0" CornerRadius="10"/>
|
||||||
@@ -534,11 +534,18 @@
|
|||||||
Height="{DynamicResource CheckBoxBulletDecoratorSize *0.85}"
|
Height="{DynamicResource CheckBoxBulletDecoratorSize *0.85}"
|
||||||
Margin="2"
|
Margin="2"
|
||||||
SnapsToDevicePixels="True"/>
|
SnapsToDevicePixels="True"/>
|
||||||
<Path x:Name="CheckMark"
|
<Viewbox x:Name="CheckMarkContainer"
|
||||||
Stroke="{DynamicResource ToggleButtonOnColor}"
|
Width="{DynamicResource CheckBoxBulletDecoratorSize}"
|
||||||
StrokeThickness="2"
|
Height="{DynamicResource CheckBoxBulletDecoratorSize}"
|
||||||
Data="M 0 5 L 5 10 L 12 0"
|
HorizontalAlignment="Center"
|
||||||
Visibility="Collapsed"/>
|
VerticalAlignment="Center"
|
||||||
|
Visibility="Collapsed">
|
||||||
|
<Path x:Name="CheckMark"
|
||||||
|
Stroke="{DynamicResource ToggleButtonOnColor}"
|
||||||
|
StrokeThickness="1.5"
|
||||||
|
Data="M 0 5 L 5 10 L 12 0"
|
||||||
|
Stretch="Uniform"/>
|
||||||
|
</Viewbox>
|
||||||
</Grid>
|
</Grid>
|
||||||
</BulletDecorator.Bullet>
|
</BulletDecorator.Bullet>
|
||||||
<ContentPresenter Margin="4,0,0,0"
|
<ContentPresenter Margin="4,0,0,0"
|
||||||
@@ -549,7 +556,7 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
<ControlTemplate.Triggers>
|
<ControlTemplate.Triggers>
|
||||||
<Trigger Property="IsChecked" Value="True">
|
<Trigger Property="IsChecked" Value="True">
|
||||||
<Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/>
|
<Setter TargetName="CheckMarkContainer" Property="Visibility" Value="Visible"/>
|
||||||
</Trigger>
|
</Trigger>
|
||||||
<Trigger Property="IsMouseOver" Value="True">
|
<Trigger Property="IsMouseOver" Value="True">
|
||||||
<!--Setter TargetName="Border" Property="Background" Value="{DynamicResource ButtonBackgroundPressedColor}"/-->
|
<!--Setter TargetName="Border" Property="Background" Value="{DynamicResource ButtonBackgroundPressedColor}"/-->
|
||||||
@@ -569,22 +576,24 @@
|
|||||||
<Setter.Value>
|
<Setter.Value>
|
||||||
<ControlTemplate TargetType="RadioButton">
|
<ControlTemplate TargetType="RadioButton">
|
||||||
<StackPanel Orientation="Horizontal" Margin="{DynamicResource CheckBoxMargin}">
|
<StackPanel Orientation="Horizontal" Margin="{DynamicResource CheckBoxMargin}">
|
||||||
<Grid Width="14" Height="14">
|
<Viewbox Width="{DynamicResource CheckBoxBulletDecoratorSize}" Height="{DynamicResource CheckBoxBulletDecoratorSize}">
|
||||||
<Ellipse x:Name="OuterCircle"
|
<Grid Width="14" Height="14">
|
||||||
Stroke="{DynamicResource ToggleButtonOffColor}"
|
<Ellipse x:Name="OuterCircle"
|
||||||
Fill="{DynamicResource ButtonBackgroundColor}"
|
Stroke="{DynamicResource ToggleButtonOffColor}"
|
||||||
StrokeThickness="1"
|
Fill="{DynamicResource ButtonBackgroundColor}"
|
||||||
Width="14"
|
StrokeThickness="1"
|
||||||
Height="14"
|
Width="14"
|
||||||
SnapsToDevicePixels="True"/>
|
Height="14"
|
||||||
<Ellipse x:Name="InnerCircle"
|
SnapsToDevicePixels="True"/>
|
||||||
Fill="{DynamicResource ToggleButtonOnColor}"
|
<Ellipse x:Name="InnerCircle"
|
||||||
Width="8"
|
Fill="{DynamicResource ToggleButtonOnColor}"
|
||||||
Height="8"
|
Width="8"
|
||||||
Visibility="Collapsed"
|
Height="8"
|
||||||
HorizontalAlignment="Center"
|
Visibility="Collapsed"
|
||||||
VerticalAlignment="Center"/>
|
HorizontalAlignment="Center"
|
||||||
</Grid>
|
VerticalAlignment="Center"/>
|
||||||
|
</Grid>
|
||||||
|
</Viewbox>
|
||||||
<ContentPresenter Margin="4,0,0,0"
|
<ContentPresenter Margin="4,0,0,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
RecognizesAccessKey="True"/>
|
RecognizesAccessKey="True"/>
|
||||||
@@ -892,63 +901,69 @@
|
|||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
<Grid Background="{DynamicResource MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
|
<Grid Background="{DynamicResource MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="{DynamicResource TabRowHeightInPixels}"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height=".9*"/>
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<DockPanel Name="NavDockPanel" HorizontalAlignment="Stretch" Background="{DynamicResource MainBackgroundColor}" SnapsToDevicePixels="True" Grid.Row="0" Width="Auto">
|
<Grid Grid.Row="0" Background="{DynamicResource MainBackgroundColor}">
|
||||||
<StackPanel Name="NavLogoPanel" Orientation="Horizontal" HorizontalAlignment="Left" Background="{DynamicResource MainBackgroundColor}" SnapsToDevicePixels="True" Margin="10,0,20,0">
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto"/> <!-- Navigation buttons -->
|
||||||
|
<ColumnDefinition Width="*"/> <!-- Search bar and buttons -->
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<!-- Navigation Buttons Panel -->
|
||||||
|
<StackPanel Name="NavDockPanel" Orientation="Horizontal" Grid.Column="0" Margin="5,5,10,5">
|
||||||
|
<StackPanel Name="NavLogoPanel" Orientation="Horizontal" HorizontalAlignment="Left" Background="{DynamicResource MainBackgroundColor}" SnapsToDevicePixels="True" Margin="10,0,20,0">
|
||||||
|
</StackPanel>
|
||||||
|
<ToggleButton Margin="0,0,5,0" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
||||||
|
Background="{DynamicResource ButtonInstallBackgroundColor}" Foreground="white" FontWeight="Bold" Name="WPFTab1BT">
|
||||||
|
<ToggleButton.Content>
|
||||||
|
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonInstallForegroundColor}" >
|
||||||
|
<Underline>I</Underline>nstall
|
||||||
|
</TextBlock>
|
||||||
|
</ToggleButton.Content>
|
||||||
|
</ToggleButton>
|
||||||
|
<ToggleButton Margin="0,0,5,0" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
||||||
|
Background="{DynamicResource ButtonTweaksBackgroundColor}" Foreground="{DynamicResource ButtonTweaksForegroundColor}" FontWeight="Bold" Name="WPFTab2BT">
|
||||||
|
<ToggleButton.Content>
|
||||||
|
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonTweaksForegroundColor}">
|
||||||
|
<Underline>T</Underline>weaks
|
||||||
|
</TextBlock>
|
||||||
|
</ToggleButton.Content>
|
||||||
|
</ToggleButton>
|
||||||
|
<ToggleButton Margin="0,0,5,0" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
||||||
|
Background="{DynamicResource ButtonConfigBackgroundColor}" Foreground="{DynamicResource ButtonConfigForegroundColor}" FontWeight="Bold" Name="WPFTab3BT">
|
||||||
|
<ToggleButton.Content>
|
||||||
|
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonConfigForegroundColor}">
|
||||||
|
<Underline>C</Underline>onfig
|
||||||
|
</TextBlock>
|
||||||
|
</ToggleButton.Content>
|
||||||
|
</ToggleButton>
|
||||||
|
<ToggleButton Margin="0,0,5,0" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
||||||
|
Background="{DynamicResource ButtonUpdatesBackgroundColor}" Foreground="{DynamicResource ButtonUpdatesForegroundColor}" FontWeight="Bold" Name="WPFTab4BT">
|
||||||
|
<ToggleButton.Content>
|
||||||
|
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonUpdatesForegroundColor}">
|
||||||
|
<Underline>U</Underline>pdates
|
||||||
|
</TextBlock>
|
||||||
|
</ToggleButton.Content>
|
||||||
|
</ToggleButton>
|
||||||
|
<ToggleButton Margin="0,0,5,0" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
||||||
|
Background="{DynamicResource ButtonUpdatesBackgroundColor}" Foreground="{DynamicResource ButtonUpdatesForegroundColor}" FontWeight="Bold" Name="WPFTab5BT">
|
||||||
|
<ToggleButton.Content>
|
||||||
|
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonUpdatesForegroundColor}">
|
||||||
|
<Underline>M</Underline>icroWin
|
||||||
|
</TextBlock>
|
||||||
|
</ToggleButton.Content>
|
||||||
|
</ToggleButton>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<ToggleButton Margin="0,0,5,0" HorizontalAlignment="Left" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
|
||||||
Background="{DynamicResource ButtonInstallBackgroundColor}" Foreground="white" FontWeight="Bold" Name="WPFTab1BT">
|
<!-- Search Bar and Action Buttons -->
|
||||||
<ToggleButton.Content>
|
<Grid Name="GridBesideNavDockPanel" Grid.Column="1" Background="{DynamicResource MainBackgroundColor}" ShowGridLines="False" Height="Auto">
|
||||||
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonInstallForegroundColor}" >
|
|
||||||
<Underline>I</Underline>nstall
|
|
||||||
</TextBlock>
|
|
||||||
</ToggleButton.Content>
|
|
||||||
</ToggleButton>
|
|
||||||
<ToggleButton Margin="0,0,5,0" HorizontalAlignment="Left" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
|
||||||
Background="{DynamicResource ButtonTweaksBackgroundColor}" Foreground="{DynamicResource ButtonTweaksForegroundColor}" FontWeight="Bold" Name="WPFTab2BT">
|
|
||||||
<ToggleButton.Content>
|
|
||||||
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonTweaksForegroundColor}">
|
|
||||||
<Underline>T</Underline>weaks
|
|
||||||
</TextBlock>
|
|
||||||
</ToggleButton.Content>
|
|
||||||
</ToggleButton>
|
|
||||||
<ToggleButton Margin="0,0,5,0" HorizontalAlignment="Left" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
|
||||||
Background="{DynamicResource ButtonConfigBackgroundColor}" Foreground="{DynamicResource ButtonConfigForegroundColor}" FontWeight="Bold" Name="WPFTab3BT">
|
|
||||||
<ToggleButton.Content>
|
|
||||||
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonConfigForegroundColor}">
|
|
||||||
<Underline>C</Underline>onfig
|
|
||||||
</TextBlock>
|
|
||||||
</ToggleButton.Content>
|
|
||||||
</ToggleButton>
|
|
||||||
<ToggleButton Margin="0,0,5,0" HorizontalAlignment="Left" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
|
||||||
Background="{DynamicResource ButtonUpdatesBackgroundColor}" Foreground="{DynamicResource ButtonUpdatesForegroundColor}" FontWeight="Bold" Name="WPFTab4BT">
|
|
||||||
<ToggleButton.Content>
|
|
||||||
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonUpdatesForegroundColor}">
|
|
||||||
<Underline>U</Underline>pdates
|
|
||||||
</TextBlock>
|
|
||||||
</ToggleButton.Content>
|
|
||||||
</ToggleButton>
|
|
||||||
<ToggleButton Margin="0,0,5,0" HorizontalAlignment="Left" Height="{DynamicResource TabButtonHeight}" Width="{DynamicResource TabButtonWidth}"
|
|
||||||
Background="{DynamicResource ButtonUpdatesBackgroundColor}" Foreground="{DynamicResource ButtonUpdatesForegroundColor}" FontWeight="Bold" Name="WPFTab5BT">
|
|
||||||
<ToggleButton.Content>
|
|
||||||
<TextBlock FontSize="{DynamicResource TabButtonFontSize}" Background="Transparent" Foreground="{DynamicResource ButtonUpdatesForegroundColor}">
|
|
||||||
<Underline>M</Underline>icroWin
|
|
||||||
</TextBlock>
|
|
||||||
</ToggleButton.Content>
|
|
||||||
</ToggleButton>
|
|
||||||
<Grid Name="GridBesideNavDockPanel" Background="{DynamicResource MainBackgroundColor}" ShowGridLines="False" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/> <!-- Main content area -->
|
<ColumnDefinition Width="2*"/> <!-- Search bar area - priority space -->
|
||||||
<ColumnDefinition Width="Auto"/><!-- Space for options button -->
|
<ColumnDefinition Width="Auto"/><!-- Buttons area -->
|
||||||
<ColumnDefinition Width="Auto"/><!-- Space for close button -->
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="Auto"/>
|
|
||||||
<ColumnDefinition Width="Auto"/><!-- Space for Font Scaling button-->
|
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
@@ -960,27 +975,28 @@
|
|||||||
Consider using a Math Solver, will help in making
|
Consider using a Math Solver, will help in making
|
||||||
development of these things much easier
|
development of these things much easier
|
||||||
-->
|
-->
|
||||||
<TextBox
|
<Border Grid.Column="0" Margin="5,0,0,0" Width="{DynamicResource SearchBarWidth}" Height="{DynamicResource SearchBarHeight}" VerticalAlignment="Center" HorizontalAlignment="Left">
|
||||||
Grid.Column="0"
|
<Grid>
|
||||||
Width="{DynamicResource SearchBarWidth}"
|
<TextBox
|
||||||
Height="{DynamicResource SearchBarHeight}"
|
Width="{DynamicResource SearchBarWidth}"
|
||||||
FontSize="{DynamicResource SearchBarTextBoxFontSize}"
|
Height="{DynamicResource SearchBarHeight}"
|
||||||
VerticalAlignment="Center" HorizontalAlignment="Left"
|
FontSize="{DynamicResource SearchBarTextBoxFontSize}"
|
||||||
BorderThickness="1"
|
VerticalAlignment="Center" HorizontalAlignment="Left"
|
||||||
Name="SearchBar"
|
BorderThickness="1"
|
||||||
Foreground="{DynamicResource MainForegroundColor}" Background="{DynamicResource MainBackgroundColor}"
|
Name="SearchBar"
|
||||||
Padding="3,3,30,0"
|
Foreground="{DynamicResource MainForegroundColor}" Background="{DynamicResource MainBackgroundColor}"
|
||||||
Margin="5,0,0,0"
|
Padding="3,3,30,0"
|
||||||
ToolTip="Press Ctrl-F and type app name to filter application list below. Press Esc to reset the filter">
|
ToolTip="Press Ctrl-F and type app name to filter application list below. Press Esc to reset the filter">
|
||||||
</TextBox>
|
</TextBox>
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Column="0"
|
VerticalAlignment="Center" HorizontalAlignment="Right"
|
||||||
VerticalAlignment="Center" HorizontalAlignment="Left"
|
FontFamily="Segoe MDL2 Assets"
|
||||||
FontFamily="Segoe MDL2 Assets"
|
Foreground="{DynamicResource ButtonBackgroundSelectedColor}"
|
||||||
Foreground="{DynamicResource ButtonBackgroundSelectedColor}"
|
FontSize="{DynamicResource IconFontSize}"
|
||||||
FontSize="{DynamicResource IconFontSize}"
|
Margin="0,0,8,0" Width="Auto" Height="Auto">
|
||||||
Margin="180,0,0,0">
|
</TextBlock>
|
||||||
</TextBlock>
|
</Grid>
|
||||||
|
</Border>
|
||||||
<!--
|
<!--
|
||||||
TODO:
|
TODO:
|
||||||
Make this ClearButton Positioning react to
|
Make this ClearButton Positioning react to
|
||||||
@@ -992,23 +1008,25 @@
|
|||||||
VerticalAlignment="Center" HorizontalAlignment="Left"
|
VerticalAlignment="Center" HorizontalAlignment="Left"
|
||||||
Name="SearchBarClearButton"
|
Name="SearchBarClearButton"
|
||||||
Style="{StaticResource SearchBarClearButtonStyle}"
|
Style="{StaticResource SearchBarClearButtonStyle}"
|
||||||
Margin="210,0,0,0" Visibility="Collapsed">
|
Margin="213,0,0,0" Visibility="Collapsed">
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Name="ThemeButton"
|
<!-- Buttons Container -->
|
||||||
Style="{StaticResource HoverButtonStyle}"
|
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="5,5,5,5">
|
||||||
Grid.Column="2" BorderBrush="Transparent"
|
<Button Name="ThemeButton"
|
||||||
|
Style="{StaticResource HoverButtonStyle}"
|
||||||
|
BorderBrush="Transparent"
|
||||||
Background="{DynamicResource MainBackgroundColor}"
|
Background="{DynamicResource MainBackgroundColor}"
|
||||||
Foreground="{DynamicResource MainForegroundColor}"
|
Foreground="{DynamicResource MainForegroundColor}"
|
||||||
FontSize="{DynamicResource SettingsIconFontSize}"
|
FontSize="{DynamicResource SettingsIconFontSize}"
|
||||||
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||||
Margin="0,5,5,0"
|
Margin="0,0,2,0"
|
||||||
FontFamily="Segoe MDL2 Assets"
|
FontFamily="Segoe MDL2 Assets"
|
||||||
Content="N/A"
|
Content="N/A"
|
||||||
ToolTip="Change the Winutil UI Theme"
|
ToolTip="Change the Winutil UI Theme"
|
||||||
/>
|
/>
|
||||||
<Popup Grid.Column="2" Name="ThemePopup"
|
<Popup Name="ThemePopup"
|
||||||
IsOpen="False"
|
IsOpen="False"
|
||||||
PlacementTarget="{Binding ElementName=ThemeButton}" Placement="Bottom"
|
PlacementTarget="{Binding ElementName=ThemeButton}" Placement="Bottom"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top">
|
HorizontalAlignment="Right" VerticalAlignment="Top">
|
||||||
@@ -1033,20 +1051,20 @@
|
|||||||
</Border>
|
</Border>
|
||||||
</Popup>
|
</Popup>
|
||||||
|
|
||||||
<Button Name="FontScalingButton"
|
<Button Name="FontScalingButton"
|
||||||
Style="{StaticResource HoverButtonStyle}"
|
Style="{StaticResource HoverButtonStyle}"
|
||||||
Grid.Column="3" BorderBrush="Transparent"
|
BorderBrush="Transparent"
|
||||||
Background="{DynamicResource MainBackgroundColor}"
|
Background="{DynamicResource MainBackgroundColor}"
|
||||||
Foreground="{DynamicResource MainForegroundColor}"
|
Foreground="{DynamicResource MainForegroundColor}"
|
||||||
FontSize="{DynamicResource SettingsIconFontSize}"
|
FontSize="{DynamicResource SettingsIconFontSize}"
|
||||||
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||||
Margin="0,5,5,0"
|
Margin="0,0,2,0"
|
||||||
FontFamily="Segoe MDL2 Assets"
|
FontFamily="Segoe MDL2 Assets"
|
||||||
Content=""
|
Content=""
|
||||||
ToolTip="Adjust Font Scaling for Accessibility"
|
ToolTip="Adjust Font Scaling for Accessibility"
|
||||||
/>
|
/>
|
||||||
<Popup Grid.Column="3" Name="FontScalingPopup"
|
<Popup Name="FontScalingPopup"
|
||||||
IsOpen="False"
|
IsOpen="False"
|
||||||
PlacementTarget="{Binding ElementName=FontScalingButton}" Placement="Bottom"
|
PlacementTarget="{Binding ElementName=FontScalingButton}" Placement="Bottom"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top">
|
HorizontalAlignment="Right" VerticalAlignment="Top">
|
||||||
@@ -1101,18 +1119,18 @@
|
|||||||
</Border>
|
</Border>
|
||||||
</Popup>
|
</Popup>
|
||||||
|
|
||||||
<Button Name="SettingsButton"
|
<Button Name="SettingsButton"
|
||||||
Style="{StaticResource HoverButtonStyle}"
|
Style="{StaticResource HoverButtonStyle}"
|
||||||
Grid.Column="4" BorderBrush="Transparent"
|
BorderBrush="Transparent"
|
||||||
Background="{DynamicResource MainBackgroundColor}"
|
Background="{DynamicResource MainBackgroundColor}"
|
||||||
Foreground="{DynamicResource MainForegroundColor}"
|
Foreground="{DynamicResource MainForegroundColor}"
|
||||||
FontSize="{DynamicResource SettingsIconFontSize}"
|
FontSize="{DynamicResource SettingsIconFontSize}"
|
||||||
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||||
Margin="5,5,5,0"
|
Margin="0,0,2,0"
|
||||||
FontFamily="Segoe MDL2 Assets"
|
FontFamily="Segoe MDL2 Assets"
|
||||||
Content=""/>
|
Content=""/>
|
||||||
<Popup Grid.Column="3" Name="SettingsPopup"
|
<Popup Name="SettingsPopup"
|
||||||
IsOpen="False"
|
IsOpen="False"
|
||||||
PlacementTarget="{Binding ElementName=SettingsButton}" Placement="Bottom"
|
PlacementTarget="{Binding ElementName=SettingsButton}" Placement="Bottom"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top">
|
HorizontalAlignment="Right" VerticalAlignment="Top">
|
||||||
@@ -1135,19 +1153,18 @@
|
|||||||
</Border>
|
</Border>
|
||||||
</Popup>
|
</Popup>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
Grid.Column="5"
|
Content="×" BorderThickness="0"
|
||||||
Content="×" BorderThickness="0"
|
|
||||||
BorderBrush="Transparent"
|
BorderBrush="Transparent"
|
||||||
Background="{DynamicResource MainBackgroundColor}"
|
Background="{DynamicResource MainBackgroundColor}"
|
||||||
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
Width="{DynamicResource IconButtonSize}" Height="{DynamicResource IconButtonSize}"
|
||||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||||
Margin="0,5,5,0"
|
Margin="0,0,0,0"
|
||||||
FontFamily="{DynamicResource FontFamily}"
|
FontFamily="{DynamicResource FontFamily}"
|
||||||
Foreground="{DynamicResource MainForegroundColor}" FontSize="{DynamicResource CloseIconFontSize}" Name="WPFCloseButton" />
|
Foreground="{DynamicResource MainForegroundColor}" FontSize="{DynamicResource CloseIconFontSize}" Name="WPFCloseButton" />
|
||||||
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
</Grid>
|
||||||
</DockPanel>
|
|
||||||
|
|
||||||
<TabControl Name="WPFTabNav" Background="Transparent" Width="Auto" Height="Auto" BorderBrush="Transparent" BorderThickness="0" Grid.Row="1" Grid.Column="0" Padding="-1">
|
<TabControl Name="WPFTabNav" Background="Transparent" Width="Auto" Height="Auto" BorderBrush="Transparent" BorderThickness="0" Grid.Row="1" Grid.Column="0" Padding="-1">
|
||||||
<TabItem Header="Install" Visibility="Collapsed" Name="WPFTab1">
|
<TabItem Header="Install" Visibility="Collapsed" Name="WPFTab1">
|
||||||
@@ -1155,7 +1172,7 @@
|
|||||||
|
|
||||||
<Grid Grid.Row="0" Grid.Column="0" Margin="{DynamicResource TabContentMargin}">
|
<Grid Grid.Row="0" Grid.Column="0" Margin="{DynamicResource TabContentMargin}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="225" />
|
<ColumnDefinition Width="Auto" />
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
@@ -1175,20 +1192,22 @@
|
|||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="0" Margin="{DynamicResource TabContentMargin}">
|
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Grid.Row="0" Margin="{DynamicResource TabContentMargin}">
|
||||||
<Grid Background="Transparent">
|
<Grid Background="Transparent">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="45px"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<StackPanel Background="{DynamicResource MainBackgroundColor}" Orientation="Horizontal" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="5">
|
<StackPanel Background="{DynamicResource MainBackgroundColor}" Orientation="Vertical" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="5">
|
||||||
<Label Content="Recommended Selections:" FontSize="{DynamicResource FontSize}" VerticalAlignment="Center" Margin="2"/>
|
<Label Content="Recommended Selections:" FontSize="{DynamicResource FontSize}" VerticalAlignment="Center" Margin="2"/>
|
||||||
<Button Name="WPFstandard" Content=" Standard " Margin="2"/>
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" Margin="0,2,0,0">
|
||||||
<Button Name="WPFminimal" Content=" Minimal " Margin="2"/>
|
<Button Name="WPFstandard" Content=" Standard " Margin="2" Width="{DynamicResource ButtonWidth}" Height="{DynamicResource ButtonHeight}"/>
|
||||||
<Button Name="WPFClearTweaksSelection" Content=" Clear " Margin="2"/>
|
<Button Name="WPFminimal" Content=" Minimal " Margin="2" Width="{DynamicResource ButtonWidth}" Height="{DynamicResource ButtonHeight}"/>
|
||||||
<Button Name="WPFGetInstalledTweaks" Content=" Get Installed " Margin="2"/>
|
<Button Name="WPFClearTweaksSelection" Content=" Clear " Margin="2" Width="{DynamicResource ButtonWidth}" Height="{DynamicResource ButtonHeight}"/>
|
||||||
|
<Button Name="WPFGetInstalledTweaks" Content=" Get Installed " Margin="2" Width="{DynamicResource ButtonWidth}" Height="{DynamicResource ButtonHeight}"/>
|
||||||
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid Name="tweakspanel" Grid.Row="1">
|
<Grid Name="tweakspanel" Grid.Row="1">
|
||||||
@@ -1206,22 +1225,22 @@
|
|||||||
</Grid>
|
</Grid>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
<Border Grid.Row="1" Background="{DynamicResource MainBackgroundColor}" BorderBrush="{DynamicResource BorderColor}" BorderThickness="1" CornerRadius="5" HorizontalAlignment="Stretch" Padding="10">
|
<Border Grid.Row="1" Background="{DynamicResource MainBackgroundColor}" BorderBrush="{DynamicResource BorderColor}" BorderThickness="1" CornerRadius="5" HorizontalAlignment="Stretch" Padding="10">
|
||||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="0">
|
<WrapPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Column="0">
|
||||||
<Button Name="WPFTweaksbutton" Content="Run Tweaks" Margin="5"/>
|
<Button Name="WPFTweaksbutton" Content="Run Tweaks" Margin="5" Width="{DynamicResource ButtonWidth}" Height="{DynamicResource ButtonHeight}"/>
|
||||||
<Button Name="WPFUndoall" Content="Undo Selected Tweaks" Margin="5"/>
|
<Button Name="WPFUndoall" Content="Undo Selected Tweaks" Margin="5" Width="{DynamicResource ButtonWidth}" Height="{DynamicResource ButtonHeight}"/>
|
||||||
</StackPanel>
|
</WrapPanel>
|
||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="Config" Visibility="Collapsed" Name="WPFTab3">
|
<TabItem Header="Config" Visibility="Collapsed" Name="WPFTab3">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Auto" Margin="{DynamicResource TabContentMargin}">
|
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="{DynamicResource TabContentMargin}">
|
||||||
<Grid Name="featurespanel" Grid.Row="1" Background="Transparent">
|
<Grid Name="featurespanel" Grid.Row="1" Background="Transparent">
|
||||||
</Grid>
|
</Grid>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="Updates" Visibility="Collapsed" Name="WPFTab4">
|
<TabItem Header="Updates" Visibility="Collapsed" Name="WPFTab4">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Auto" Margin="{DynamicResource TabContentMargin}">
|
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Margin="{DynamicResource TabContentMargin}">
|
||||||
<Grid Background="Transparent">
|
<Grid Background="Transparent" MaxWidth="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=ScrollViewer}}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto"/> <!-- Row for the 3 columns -->
|
<RowDefinition Height="Auto"/> <!-- Row for the 3 columns -->
|
||||||
<RowDefinition Height="Auto"/> <!-- Row for Windows Version -->
|
<RowDefinition Height="Auto"/> <!-- Row for Windows Version -->
|
||||||
@@ -1238,7 +1257,7 @@
|
|||||||
<!-- Default Settings -->
|
<!-- Default Settings -->
|
||||||
<Border Grid.Column="0" Style="{StaticResource BorderStyle}">
|
<Border Grid.Column="0" Style="{StaticResource BorderStyle}">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<Button Name="WPFFixesUpdate"
|
<Button Name="WPFUpdatesdefault"
|
||||||
FontSize="{DynamicResource ConfigTabButtonFontSize}"
|
FontSize="{DynamicResource ConfigTabButtonFontSize}"
|
||||||
Content="Default Settings"
|
Content="Default Settings"
|
||||||
Margin="10,5"
|
Margin="10,5"
|
||||||
@@ -1316,8 +1335,8 @@
|
|||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="MicroWin" Visibility="Collapsed" Name="WPFTab5">
|
<TabItem Header="MicroWin" Visibility="Collapsed" Name="WPFTab5">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Auto" Margin="{DynamicResource TabContentMargin}">
|
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Margin="{DynamicResource TabContentMargin}">
|
||||||
<Grid Width="Auto" Height="Auto">
|
<Grid MaxWidth="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=ScrollViewer}}">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="3*"/>
|
<ColumnDefinition Width="3*"/>
|
||||||
@@ -1375,7 +1394,6 @@
|
|||||||
/>
|
/>
|
||||||
<RadioButton x:Name="ISOmanual" Content="Select your own ISO" GroupName="Options" Margin="0,10,0,0" IsChecked="True"/>
|
<RadioButton x:Name="ISOmanual" Content="Select your own ISO" GroupName="Options" Margin="0,10,0,0" IsChecked="True"/>
|
||||||
<RadioButton x:Name="ISOdownloader" Content="Get newest ISO automatically" GroupName="Options" Margin="0,5,0,5"/>
|
<RadioButton x:Name="ISOdownloader" Content="Get newest ISO automatically" GroupName="Options" Margin="0,5,0,5"/>
|
||||||
<ComboBox x:Name="ISORelease" Visibility="Collapsed"/>
|
|
||||||
<ComboBox x:Name="ISOLanguage" Visibility="Collapsed"/>
|
<ComboBox x:Name="ISOLanguage" Visibility="Collapsed"/>
|
||||||
<Button Name="WPFGetIso" Margin="2" Padding="15">
|
<Button Name="WPFGetIso" Margin="2" Padding="15">
|
||||||
<Button.Content>
|
<Button.Content>
|
||||||
@@ -1463,6 +1481,7 @@
|
|||||||
<CheckBox Name="MicroWinWPBT" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="False" ToolTip="If enabled then allows your computer vendor to execute a program each time it boots. It enables computer vendors to force install anti-theft software, software drivers, or a software program conveniently. This could also be a security risk."><AccessText TextWrapping="Wrap" Text="Disable Windows Platform Binary Table (WPBT) (ADVANCED TWEAK)" /></CheckBox>
|
<CheckBox Name="MicroWinWPBT" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="False" ToolTip="If enabled then allows your computer vendor to execute a program each time it boots. It enables computer vendors to force install anti-theft software, software drivers, or a software program conveniently. This could also be a security risk."><AccessText TextWrapping="Wrap" Text="Disable Windows Platform Binary Table (WPBT) (ADVANCED TWEAK)" /></CheckBox>
|
||||||
<CheckBox Name="MicroWinUnsupported" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="False" ToolTip="If enabled then it will allow you to upgrade your PC to Windows 11 if your PC does not support Windows 11 yet. This is good for if you do not have a USB and want to upgrade to Windows 11 on unsupported hardware."><AccessText TextWrapping="Wrap" Text="Allow this PC to upgrade to Windows 11" /></CheckBox>
|
<CheckBox Name="MicroWinUnsupported" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="False" ToolTip="If enabled then it will allow you to upgrade your PC to Windows 11 if your PC does not support Windows 11 yet. This is good for if you do not have a USB and want to upgrade to Windows 11 on unsupported hardware."><AccessText TextWrapping="Wrap" Text="Allow this PC to upgrade to Windows 11" /></CheckBox>
|
||||||
<CheckBox Name="MicroWinESD" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="False" ToolTip="The ESD file format compresses the installation image even further, therefore reducing ISO file sizes a little more. Select this if you have a small USB."><AccessText TextWrapping="Wrap" Text="Convert this image to ESD (This will take longer)" /></CheckBox>
|
<CheckBox Name="MicroWinESD" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="False" ToolTip="The ESD file format compresses the installation image even further, therefore reducing ISO file sizes a little more. Select this if you have a small USB."><AccessText TextWrapping="Wrap" Text="Convert this image to ESD (This will take longer)" /></CheckBox>
|
||||||
|
<CheckBox Name="MicroWinNoFLA" Margin="{DynamicResource MicrowinCheckBoxMargin}" IsChecked="True" ToolTip="The First Logon Animation is an animation that is played when a user logs on for the first time. It can artificially increase wait times. Select this option to automatically close the first logon animation and reach the desktop quicker (additional system preparation will still be done)"><AccessText TextWrapping="Wrap" Text="Skip First Logon Animation" /></CheckBox>
|
||||||
<TextBlock Margin="6" Padding="1" TextWrapping="Wrap">WinUtil configuration file (JSON)</TextBlock>
|
<TextBlock Margin="6" Padding="1" TextWrapping="Wrap">WinUtil configuration file (JSON)</TextBlock>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
|||||||
Reference in New Issue
Block a user