Thanksgiving Update (#378)

* Update Branch in script

* Feature/tweaks (#320)

* update tweaks

* Update Branch in script

Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>

* Update Branch in script

* Feature/applications (#326)

* Update Branch in script

* Feature/pester (#321)

* Update Branch in script

* pester for configs

* Update Branch in script

* update describe

* github action

* test pipeline

* test pipeline

* test pipeline

* test pipeline

* test pipeline

* test windows container

* gui tests

* Updated applications.json to stop failing test

* test pipeline

* test pipeline

* test pipeline

* add test for original values if tweak is configured

* test pipeline

* test pipeline

* remove merge request

* added test to ensure main script functions

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>

* Update Branch in script

* update pipeline

* Update Branch in script

* update pipeline

* update pipeline

* update pipeline

* testing psmodule

* Update Branch in script

* update applications to use json

Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>

* Update Branch in script

* Feature/update runspace (#327)

* Update Branch in script

* update runspace

* fix wording

* update logic

Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>

* Update Branch in script

* Feature/Change-dns (#334)

* Added option for change dns

* Update Branch in script

Co-authored-by: padsalatushal <padsalatushal@users.noreply.github.com>

* Update Branch in script

* Update test from hotfixes (#349)

* Feature/pester (#321)

* Update Branch in script

* pester for configs

* Update Branch in script

* update describe

* github action

* test pipeline

* test pipeline

* test pipeline

* test pipeline

* test pipeline

* test windows container

* gui tests

* Updated applications.json to stop failing test

* test pipeline

* test pipeline

* test pipeline

* add test for original values if tweak is configured

* test pipeline

* test pipeline

* remove merge request

* added test to ensure main script functions

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>

* Update Branch in script

* Hotfix/fixapplications (#329)

* Update Branch in script

* fix typo

Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>

* spelling (#332)

* Update Branch in script

* Update Branch in script

Co-authored-by: DeveloperDurp <developerdurp@durp.info>
Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>
Co-authored-by: Archead <55419973+archead@users.noreply.github.com>

* Update Branch in script

* fix install spam

* Add Toggle for System Dark Mode (#358)

* Add Dark Mode System Toggles

* Add Dark Mode System Buttons

* Try to combine Dark Mode Toggles

* Remove Dark Mode System Button test

* Fix text i forgot to change between tests.

* Add Disable and Enable Mouse Acceleration Tweaks (#362)

Co-authored-by: Chris Titus <contact@christitus.com>

* New Apps and winget install

* Change mouse hover time

* Add Ultimate Performance add/remove buttons (#367)

* Add Dark Mode System Toggles

* Add Dark Mode System Buttons

* Try to combine Dark Mode Toggles

* Remove Dark Mode System Button test

* Fix text i forgot to change between tests.

* Add Ultimate Performance

* Add ultimate performance button

* setting correct username for mainwindow for testing (revert before pull)

* fix typo

* Update MainWindow.xaml

* add ult perf buttons

* add remove button for ult perf plan

* remove setactive command for powercfg due to incompatibility

* Update winutil.ps1

* set back to christitus github for mainwin download

* remove thing i added that isnt needed

* Autologin fix - curl addition

* remove powerrun

* fix uneven buttons

* fix gui uniformity

* Update winutil.ps1

* Update Branch in script

* Update runspace.ps1

* Update Branch in script

Co-authored-by: ChrisTitusTech <ChrisTitusTech@users.noreply.github.com>
Co-authored-by: DeveloperDurp <developerdurp@durp.info>
Co-authored-by: DeveloperDurp <DeveloperDurp@users.noreply.github.com>
Co-authored-by: Padsala Tushal <57517785+padsalatushal@users.noreply.github.com>
Co-authored-by: padsalatushal <padsalatushal@users.noreply.github.com>
Co-authored-by: Archead <55419973+archead@users.noreply.github.com>
Co-authored-by: lavavex <27239435+lavavex@users.noreply.github.com>
Co-authored-by: sidibu <55976675+sidibu@users.noreply.github.com>
This commit is contained in:
Chris Titus 2022-11-14 15:48:10 -06:00 committed by GitHub
parent 38ff29ca74
commit 1a5f4c4591
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 819 additions and 905 deletions

View File

@ -4,6 +4,28 @@ on:
push:
jobs:
test:
runs-on: windows-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
- name: pester_tests
id: pester_tests
uses: zyborg/pester-tests-report@v1
with:
include_paths: pester
report_name: Winutil_Tests
report_title: Winutil_Tests
github_token: ${{ secrets.GITHUB_TOKEN }}
tests_fail_step: true
- name: dump test results
shell: pwsh
run: |
Write-Host 'Total Tests Executed...: ${{ steps.pester_tests.outputs.total_count }}'
Write-Host 'Total Tests PASSED.....: ${{ steps.pester_tests.outputs.passed_count }}'
Write-Host 'Total Tests FAILED.....: ${{ steps.pester_tests.outputs.failed_count }}'
build:
runs-on: ubuntu-latest
steps:
@ -13,9 +35,9 @@ jobs:
- name: Create local changes
run: |
sed -i "/\$BranchToUse = /c\$BranchToUse = '$GITHUB_REF_NAME'" $GITHUB_WORKSPACE/runspace.ps1
cat $GITHUB_WORKSPACE/runspace.ps1
sed -i "/\$BranchToUse = /c\$BranchToUse = '$GITHUB_REF_NAME'" $GITHUB_WORKSPACE/runspace.ps1
cat $GITHUB_WORKSPACE/winutil.ps1
grep "\$BranchToUse =" $GITHUB_WORKSPACE/runspace.ps1
sed -i "/\$BranchToUse = /c\$BranchToUse = '$GITHUB_REF_NAME'" $GITHUB_WORKSPACE/winutil.ps1
grep "\$BranchToUse =" $GITHUB_WORKSPACE/winutil.ps1
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Update Branch in script

View File

@ -236,6 +236,8 @@
<CheckBox Name="EssTweaksRemoveCortana" Content="Remove Cortana" Margin="5,0" ToolTip="Removes Cortana, but often breaks search... if you are a heavy windows search users, this is NOT recommended."/>
<CheckBox Name="EssTweaksRemoveEdge" Content="Remove Microsoft Edge" Margin="5,0" ToolTip="Removes MS Edge when it gets reinstalled by updates."/>
<CheckBox Name="MiscTweaksRightClickMenu" Content="Set Classic Right-Click Menu " Margin="5,0" ToolTip="Great Windows 11 tweak to bring back good context menus when right clicking things in explorer."/>
<CheckBox Name="MiscTweaksDisableMouseAcceleration" Content="Disable Mouse Acceleration" Margin="5,0" ToolTip="Disables the Enhance Pointer Precision setting."/>
<CheckBox Name="MiscTweaksEnableMouseAcceleration" Content="Enable Mouse Acceleration" Margin="5,0" ToolTip="Enables the Enhance Pointer Precision setting."/>
<Button Name="tweaksbutton" Background="AliceBlue" Content="Run Tweaks" Margin="20,10,20,0"/>
<Button Name="undoall" Background="AliceBlue" Content="Undo All Tweaks" Margin="20,5"/>
</StackPanel>

View File

@ -43,11 +43,12 @@
<CheckBox Name="Installbrave" Content="Brave" Margin="5,0"/>
<CheckBox Name="Installchrome" Content="Chrome" Margin="5,0"/>
<CheckBox Name="Installchromium" Content="Chromium" Margin="5,0"/>
<CheckBox Name="Installedge" Content="Edge" Margin="5,0"/>
<CheckBox Name="Installfirefox" Content="Firefox" Margin="5,0"/>
<CheckBox Name="Installlibrewolf" Content="LibreWolf" Margin="5,0"/>
<CheckBox Name="Installtor" Content="Tor Browser" Margin="5,0"/>
<CheckBox Name="Installvivaldi" Content="Vivaldi" Margin="5,0"/>
<CheckBox Name="Installwaterfox" Content="Waterfox" Margin="5,0"/>
<Label Content="Communications" FontSize="16" Margin="5,0"/>
<CheckBox Name="Installdiscord" Content="Discord" Margin="5,0"/>
@ -58,6 +59,7 @@
<CheckBox Name="Installskype" Content="Skype" Margin="5,0"/>
<CheckBox Name="Installslack" Content="Slack" Margin="5,0"/>
<CheckBox Name="Installteams" Content="Teams" Margin="5,0"/>
<CheckBox Name="Installtelegram" Content="Telegram" Margin="5,0"/>
<CheckBox Name="Installviber" Content="Viber" Margin="5,0"/>
<CheckBox Name="Installzoom" Content="Zoom" Margin="5,0"/>
</StackPanel>
@ -75,13 +77,11 @@
<CheckBox Name="Installpython3" Content="Python3" Margin="5,0"/>
<CheckBox Name="Installrustlang" Content="Rust" Margin="5,0"/>
<CheckBox Name="Installsublime" Content="Sublime" Margin="5,0"/>
<CheckBox Name="Installunity" Content="Unity Game Engine" Margin="5,0"/>
<CheckBox Name="Installvisualstudio" Content="Visual Studio 2022" Margin="5,0"/>
<CheckBox Name="Installvscode" Content="VS Code" Margin="5,0"/>
<CheckBox Name="Installvscodium" Content="VS Codium" Margin="5,0"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="2" Margin="10">
<Label Content="Document" FontSize="16" Margin="5,0"/>
<CheckBox Name="Installadobe" Content="Adobe Reader DC" Margin="5,0"/>
<CheckBox Name="Installfoxpdf" Content="Foxit PDF" Margin="5,0"/>
@ -94,9 +94,15 @@
<CheckBox Name="Installsumatra" Content="Sumatra PDF" Margin="5,0"/>
<CheckBox Name="Installwinmerge" Content="WinMerge" Margin="5,0"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="2" Margin="10">
<Label Content="Games" FontSize="16" Margin="5,0"/>
<CheckBox Name="Installbluestacks" Content="Bluestacks" Margin="5,0"/>
<CheckBox Name="Installepicgames" Content="Epic Games Launcher" Margin="5,0"/>
<CheckBox Name="Installgog" Content="GOG Galaxy" Margin="5,0"/>
<CheckBox Name="Installorigin" Content="Origin" Margin="5,0"/>
<CheckBox Name="Installsteam" Content="Steam" Margin="5,0"/>
<Label Content="Pro Tools" FontSize="16" Margin="5,0"/>
@ -108,17 +114,22 @@
<CheckBox Name="Installscp" Content="WinSCP" Margin="5,0"/>
<CheckBox Name="Installwireshark" Content="WireShark" Margin="5,0"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="3" Margin="10">
<Label Content="Microsoft Tools" FontSize="16" Margin="5,0"/>
<CheckBox Name="Installdotnet3" Content=".NET Desktop Runtime 3.1" Margin="5,0"/>
<CheckBox Name="Installdotnet5" Content=".NET Desktop Runtime 5" Margin="5,0"/>
<CheckBox Name="Installdotnet6" Content=".NET Desktop Runtime 6" Margin="5,0"/>
<CheckBox Name="Installpowertoys" Content="Microsoft Powertoys" Margin="5,0"/>
<CheckBox Name="Installnuget" Content="Nuget" Margin="5,0"/>
<CheckBox Name="Installonedrive" Content="OneDrive" Margin="5,0"/>
<CheckBox Name="Installpowershell" Content="PowerShell" Margin="5,0"/>
<CheckBox Name="Installpowertoys" Content="Powertoys" Margin="5,0"/>
<CheckBox Name="Installprocessmonitor" Content="SysInternals Process Monitor" Margin="5,0"/>
<CheckBox Name="Installvc2015_64" Content="Visual C++ 2015-2022 64-bit" Margin="5,0"/>
<CheckBox Name="Installvc2015_32" Content="Visual C++ 2015-2022 32-bit" Margin="5,0"/>
<CheckBox Name="Installterminal" Content="Windows Terminal" Margin="5,0"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="3" Margin="10">
<Label Content="Multimedia Tools" FontSize="16" Margin="5,0"/>
<CheckBox Name="Installaudacity" Content="Audacity" Margin="5,0"/>
<CheckBox Name="Installblender" Content="Blender (3D Graphics)" Margin="5,0"/>
@ -133,14 +144,17 @@
<CheckBox Name="Installinkscape" Content="Inkscape" Margin="5,0"/>
<CheckBox Name="Installitunes" Content="iTunes" Margin="5,0"/>
<CheckBox Name="Installkdenlive" Content="Kdenlive (Video Editor)" Margin="5,0"/>
<CheckBox Name="Installkodi" Content="Kodi Media Center" Margin="5,0"/>
<CheckBox Name="Installklite" Content="K-Lite Codec Standard" Margin="5,0"/>
<CheckBox Name="Installkrita" Content="Krita (Image Editor)" Margin="5,0"/>
<CheckBox Name="Installmpc" Content="Media Player Classic (Video Player)" Margin="5,0"/>
<CheckBox Name="Installobs" Content="OBS Studio" Margin="5,0"/>
<CheckBox Name="Installnglide" Content="nGlide (3dfx compatibility)" Margin="5,0"/>
<CheckBox Name="Installsharex" Content="ShareX (Screenshots)" Margin="5,0"/>
<CheckBox Name="Installstrawberry" Content="Strawberry (Music Player)" Margin="5,0"/>
<CheckBox Name="Installvlc" Content="VLC (Video Player)" Margin="5,0"/>
<CheckBox Name="Installvoicemeeter" Content="Voicemeeter (Audio)" Margin="5,0"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="4" Margin="10">
<Label Content="Utilities" FontSize="16" Margin="5,0"/>
<CheckBox Name="Installsevenzip" Content="7-Zip" Margin="5,0"/>
@ -160,7 +174,9 @@
<CheckBox Name="Installkeepass" Content="KeePassXC" Margin="5,0"/>
<CheckBox Name="Installmalwarebytes" Content="MalwareBytes" Margin="5,0"/>
<CheckBox Name="Installnvclean" Content="NVCleanstall" Margin="5,0"/>
<CheckBox Name="Installopenshell" Content="Open Shell (Start Menu)" Margin="5,0"/>
<CheckBox Name="Installprocesslasso" Content="Process Lasso" Margin="5,0"/>
<CheckBox Name="Installqbittorrent" Content="qBittorrent" Margin="5,0"/>
<CheckBox Name="Installrevo" Content="RevoUninstaller" Margin="5,0"/>
<CheckBox Name="Installrufus" Content="Rufus Imager" Margin="5,0"/>
<CheckBox Name="Installsandboxie" Content="Sandboxie Plus" Margin="5,0"/>
@ -171,8 +187,8 @@
<CheckBox Name="Installtwinkletray" Content="Twinkle Tray" Margin="5,0"/>
<CheckBox Name="Installwindirstat" Content="WinDirStat" Margin="5,0"/>
<CheckBox Name="Installwiztree" Content="WizTree" Margin="5,0"/>
<Button Name="install" Background="AliceBlue" Content="Start Install" Margin="20,5,20,5" ToolTip="Install all checked programs"/>
<Button Name="InstallUpgrade" Background="AliceBlue" Content="Upgrade Installs" Margin="20,5,20,5" ToolTip="Upgrade All Existing Programs on System"/>
<Button Name="install" Background="AliceBlue" Content="Start Install" Margin="30,0" ToolTip="Install all checked programs"/>
<Button Name="InstallUpgrade" Background="AliceBlue" Content="Upgrade Installs" Margin="30,5" ToolTip="Upgrade All Existing Programs on System"/>
</StackPanel>
</Grid>
@ -204,20 +220,23 @@
<Label FontSize="16" Content="Essential Tweaks"/>
<CheckBox Name="EssTweaksRP" Content="Create Restore Point" Margin="5,0" ToolTip="Creates a Windows Restore point before modifying system. Can use Windows System Restore to rollback to before tweaks were applied"/>
<CheckBox Name="EssTweaksOO" Content="Run OO Shutup" Margin="5,0" ToolTip="Runs OO Shutup from https://www.oo-software.com/en/shutup10"/>
<CheckBox Name="EssTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser."/>
<CheckBox Name="EssTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scanned wifi networks and your current geo location."/>
<CheckBox Name="EssTweaksTele" Content="Disable Telemetry" Margin="5,0" ToolTip="Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spys heavily on you when using the Edge browser."/>
<CheckBox Name="EssTweaksWifi" Content="Disable Wifi-Sense" Margin="5,0" ToolTip="Wifi Sense is a spying service that phones home all nearby scaned wifi networks and your current geo location."/>
<CheckBox Name="EssTweaksAH" Content="Disable Activity History" Margin="5,0" ToolTip="This erases recent docs, clipboard, and run history."/>
<CheckBox Name="EssTweaksDeleteTempFiles" Content="Delete Temporary Files" Margin="5,0" ToolTip="Erases TEMP Folders"/>
<CheckBox Name="EssTweaksDiskCleanup" Content="Run Disk Cleanup" Margin="5,0" ToolTip="Runs Disk Cleanup on Drive C: and removes old Windows updates."/>
<CheckBox Name="EssTweaksDiskCleanup" Content="Run Disk Cleanup" Margin="5,0" ToolTip="Runs Disk Cleanup on Drive C: and removes old Windows Updates."/>
<CheckBox Name="EssTweaksLoc" Content="Disable Location Tracking" Margin="5,0" ToolTip="Disables Location Tracking...DUH!"/>
<CheckBox Name="EssTweaksHome" Content="Disable Homegroup" Margin="5,0" ToolTip="Disables HomeGroup - Windows 11 doesn't have this, it was awful."/>
<CheckBox Name="EssTweaksStorage" Content="Disable Storage Sense" Margin="5,0" ToolTip="Storage Sense is supposed to delete temp files automatically, but can run at active times and mostly doesn't do much. Although when it was introduced in Win 10 (1809 Version) it deleted people's documents... So there is that."/>
<CheckBox Name="EssTweaksStorage" Content="Disable Storage Sense" Margin="5,0" ToolTip="Storage Sense is supposed to delete temp files automatically, but often runs at wierd times and mostly doesn't do much. Although when it was introduced in Win 10 (1809 Version) it deleted people's documents... So there is that."/>
<CheckBox Name="EssTweaksHiber" Content="Disable Hibernation" Margin="5,0" ToolTip="Hibernation is really meant for laptops as it saves whats in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation."/>
<CheckBox Name="EssTweaksDVR" Content="Disable GameDVR" Margin="5,0" ToolTip="GameDVR is a Windows App that is a dependancy for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd."/>
<CheckBox Name="EssTweaksServices" Content="Set Services to Manual" Margin="5,0" ToolTip="Turns a bunch of system services to manual that don't need to be running all the time. This is pretty harmless as if the service is needed, it will simply start on demand."/>
<Label Content="Dark Theme" />
<Button Name="EnableDarkMode" Background="AliceBlue" Content="Enable" Margin="60,0" />
<Button Name="DisableDarkMode" Background="AliceBlue" Content="Disable" Margin="60,0"/>
<Button Name="EnableDarkMode" Background="AliceBlue" Content="Enable" Margin="80,0" />
<Button Name="DisableDarkMode" Background="AliceBlue" Content="Disable" Margin="80,0"/>
<Label Content="Performance Plans" />
<Button Name="AddUltPerf" Background="AliceBlue" Content="Add Ultimate Performance Profile" Margin="80,0"/>
<Button Name="RemoveUltPerf" Background="AliceBlue" Content="Remove Ultimate Performance Profile" Margin="80,0"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Row="2" Grid.Column="1" Margin="10,5">
@ -236,8 +255,8 @@
<CheckBox Name="EssTweaksRemoveCortana" Content="Remove Cortana" Margin="5,0" ToolTip="Removes Cortana, but often breaks search... if you are a heavy windows search users, this is NOT recommended."/>
<CheckBox Name="EssTweaksRemoveEdge" Content="Remove Microsoft Edge" Margin="5,0" ToolTip="Removes MS Edge when it gets reinstalled by updates."/>
<CheckBox Name="MiscTweaksRightClickMenu" Content="Set Classic Right-Click Menu " Margin="5,0" ToolTip="Great Windows 11 tweak to bring back good context menus when right clicking things in explorer."/>
<Button Name="tweaksbutton" Background="AliceBlue" Content="Run Tweaks" Margin="20,10,20,0"/>
<Button Name="undoall" Background="AliceBlue" Content="Undo All Tweaks" Margin="20,5"/>
<Button Name="tweaksbutton" Background="AliceBlue" Content="Run Tweaks" Margin="80,0"/>
<Button Name="undoall" Background="AliceBlue" Content="Undo All Tweaks" Margin="80,0"/>
</StackPanel>
</Grid>
</TabItem>
@ -254,21 +273,20 @@
<CheckBox Name="Featureslegacymedia" Content="Legacy Media (WMP, DirectPlay)" Margin="5,0"/>
<CheckBox Name="Featurenfs" Content="NFS - Network File System" Margin="5,0"/>
<CheckBox Name="Featurewsl" Content="Windows Subsystem for Linux" Margin="5,0"/>
<Button Name="FeatureInstall" FontSize="14" Background="AliceBlue" Content="Install Features" Margin="20,5,20,0" Padding="10"/>
<Button Name="FeatureInstall" FontSize="14" Background="AliceBlue" Content="Install Features" Margin="140,5" Padding="10"/>
<Label Content="Fixes" FontSize="16"/>
<Button Name="PanelAutologin" FontSize="14" Background="AliceBlue" Content="Set Up Autologin" Margin="20,5,20,0" Padding="10"/>
<Button Name="FixesUpdate" FontSize="14" Background="AliceBlue" Content="Reset Windows Update" Margin="20,5,20,0" Padding="10"/>
<Button Name="PanelDISM" FontSize="14" Background="AliceBlue" Content="System Corruption Scan" Margin="20,5,20,0" Padding="10"/>
<Button Name="PanelAutologin" FontSize="14" Background="AliceBlue" Content="Set Up Autologin" Margin="140,5" Padding="10"/>
<Button Name="FixesUpdate" FontSize="14" Background="AliceBlue" Content="Reset Windows Update" Margin="140,5" Padding="10"/>
<Button Name="PanelDISM" FontSize="14" Background="AliceBlue" Content="System Corruption Scan" Margin="140,5" Padding="10"/>
</StackPanel>
<StackPanel Background="#777777" SnapsToDevicePixels="True" Grid.Column="1" Margin="10,5">
<Label Content="Legacy Windows Panels" FontSize="16"/>
<Button Name="Panelcontrol" FontSize="14" Background="AliceBlue" Content="Control Panel" Margin="20,5,20,5" Padding="10"/>
<Button Name="Panelnetwork" FontSize="14" Background="AliceBlue" Content="Network Connections" Margin="20,0,20,5" Padding="10"/>
<Button Name="Panelpower" FontSize="14" Background="AliceBlue" Content="Power Panel" Margin="20,0,20,5" Padding="10"/>
<Button Name="Panelsound" FontSize="14" Background="AliceBlue" Content="Sound Settings" Margin="20,0,20,5" Padding="10"/>
<Button Name="Panelsystem" FontSize="14" Background="AliceBlue" Content="System Properties" Margin="20,0,20,5" Padding="10"/>
<Button Name="Paneluser" FontSize="14" Background="AliceBlue" Content="User Accounts" Margin="20,0,20,5" Padding="10"/>
<Button Name="Panelcontrol" FontSize="14" Background="AliceBlue" Content="Control Panel" Margin="140,5" Padding="10"/>
<Button Name="Panelnetwork" FontSize="14" Background="AliceBlue" Content="Network Connections" Margin="140,5" Padding="10"/>
<Button Name="Panelpower" FontSize="14" Background="AliceBlue" Content="Power Panel" Margin="140,5" Padding="10"/>
<Button Name="Panelsound" FontSize="14" Background="AliceBlue" Content="Sound Settings" Margin="140,5" Padding="10"/>
<Button Name="Panelsystem" FontSize="14" Background="AliceBlue" Content="System Properties" Margin="140,5" Padding="10"/>
<Button Name="Paneluser" FontSize="14" Background="AliceBlue" Content="User Accounts" Margin="140,5" Padding="10"/>
</StackPanel>
</Grid>
</TabItem>

View File

@ -1,322 +1,382 @@
{
"install": {
"Installadobe": {
"Install": {
"WPFInstalladobe": {
"winget": "Adobe.Acrobat.Reader.64-bit"
},
"Installadvancedip": {
"WPFInstalladvancedip": {
"winget": "Famatech.AdvancedIPScanner"
},
"Installanydesk": {
"WPFInstallanydesk": {
"winget": "AnyDeskSoftwareGmbH.AnyDesk"
},
"Installatom": {
"WPFInstallatom": {
"winget": "GitHub.Atom"
},
"Installaudacity": {
"WPFInstallaudacity": {
"winget": "Audacity.Audacity"
},
"Installautohotkey": {
"WPFInstallautohotkey": {
"winget": "Lexikos.AutoHotkey"
},
"Installbitwarden": {
"WPFInstallbitwarden": {
"winget": "Bitwarden.Bitwarden"
},
"Installblender": {
"WPFInstallblender": {
"winget": "BlenderFoundation.Blender"
},
"Installbrave": {
"WPFInstallbrave": {
"winget": "Brave.Brave"
},
"Installchrome": {
"WPFInstallchrome": {
"winget": "Google.Chrome"
},
"Installchromium": {
"WPFInstallchromium": {
"winget": "eloston.ungoogled-chromium"
},
"Installcpuz": {
"WPFInstallcpuz": {
"winget": "CPUID.CPU-Z"
},
"Installdiscord": {
"WPFInstalldiscord": {
"winget": "Discord.Discord"
},
"Installeartrumpet": {
"WPFInstalleartrumpet": {
"winget": "File-New-Project.EarTrumpet"
},
"Installepicgames": {
"WPFInstallepicgames": {
"winget": "EpicGames.EpicGamesLauncher"
},
"Installesearch": {
"WPFInstallesearch": {
"winget": "voidtools.Everything"
},
"Installetcher": {
"WPFInstalletcher": {
"winget": "Balena.Etcher"
},
"Installfirefox": {
"WPFInstallfirefox": {
"winget": "Mozilla.Firefox"
},
"Installflameshot": {
"WPFInstallflameshot": {
"winget": "Flameshot.Flameshot"
},
"Installfoobar": {
"WPFInstallfoobar": {
"winget": "PeterPawlowski.foobar2000"
},
"Installgimp": {
"WPFInstallgimp": {
"winget": "GIMP.GIMP"
},
"Installgithubdesktop": {
"WPFInstallgithubdesktop": {
"winget": "Git.Git;GitHub.GitHubDesktop"
},
"Installgog": {
"WPFInstallgog": {
"winget": "GOG.Galaxy"
},
"Installgpuz": {
"WPFInstallgpuz": {
"winget": "TechPowerUp.GPU-Z"
},
"Installgreenshot": {
"WPFInstallgreenshot": {
"winget": "Greenshot.Greenshot"
},
"Installhandbrake": {
"WPFInstallhandbrake": {
"winget": "HandBrake.HandBrake"
},
"Installhexchat": {
"WPFInstallhexchat": {
"winget": "HexChat.HexChat"
},
"Installhwinfo": {
"WPFInstallhwinfo": {
"winget": "REALiX.HWiNFO"
},
"Installimageglass": {
"WPFInstallimageglass": {
"winget": "DuongDieuPhap.ImageGlass"
},
"Installinkscape": {
"WPFInstallinkscape": {
"winget": "Inkscape.Inkscape"
},
"Installjava16": {
"WPFInstalljava16": {
"winget": "AdoptOpenJDK.OpenJDK.16"
},
"Installjava18": {
"winget": "Oracle.JDK.18"
"WPFInstalljava18": {
"winget": "EclipseAdoptium.Temurin.18.JRE"
},
"Installjava8": {
"winget": "AdoptOpenJDK.OpenJDK.8"
"WPFInstalljava8": {
"winget": "EclipseAdoptium.Temurin.8.JRE"
},
"Installjetbrains": {
"WPFInstalljava19": {
"winget": "EclipseAdoptium.Temurin.19.JRE"
},
"WPFInstalljava17": {
"winget": "EclipseAdoptium.Temurin.17.JRE"
},
"WPFInstalljava11": {
"winget": "EclipseAdoptium.Temurin.11.JRE"
},
"WPFInstalljetbrains": {
"winget": "JetBrains.Toolbox"
},
"Installkeepass": {
"WPFInstallkeepass": {
"winget": "KeePassXCTeam.KeePassXC"
},
"Installlibrewolf": {
"WPFInstalllibrewolf": {
"winget": "LibreWolf.LibreWolf"
},
"Installmalwarebytes": {
"WPFInstallmalwarebytes": {
"winget": "Malwarebytes.Malwarebytes"
},
"Installmatrix": {
"WPFInstallmatrix": {
"winget": "Element.Element"
},
"Installmpc": {
"WPFInstallmpc": {
"winget": "clsid2.mpc-hc"
},
"Installmremoteng": {
"WPFInstallmremoteng": {
"winget": "mRemoteNG.mRemoteNG"
},
"Installnodejs": {
"WPFInstallnodejs": {
"winget": "OpenJS.NodeJS"
},
"Installnodejslts": {
"WPFInstallnodejslts": {
"winget": "OpenJS.NodeJS.LTS"
},
"Installnotepadplus": {
"WPFInstallnotepadplus": {
"winget": "Notepad++.Notepad++"
},
"Installnvclean": {
"WPFInstallnvclean": {
"winget": "TechPowerUp.NVCleanstall"
},
"Installobs": {
"WPFInstallobs": {
"winget": "OBSProject.OBSStudio"
},
"Installobsidian": {
"WPFInstallobsidian": {
"winget": "Obsidian.Obsidian"
},
"Installpowertoys": {
"WPFInstallpowertoys": {
"winget": "Microsoft.PowerToys"
},
"Installputty": {
"WPFInstallputty": {
"winget": "PuTTY.PuTTY"
},
"Installpython3": {
"WPFInstallpython3": {
"winget": "Python.Python.3"
},
"Installrevo": {
"winget": "RevoUninstaller.RevoUninstaller"
"WPFInstallrevo": {
"winget": "RevoUnWPFInstaller.RevoUnWPFInstaller"
},
"Installrufus": {
"WPFInstallrufus": {
"winget": "Rufus.Rufus"
},
"Installsevenzip": {
"WPFInstallsevenzip": {
"winget": "7zip.7zip"
},
"Installsharex": {
"WPFInstallsharex": {
"winget": "ShareX.ShareX"
},
"Installsignal": {
"WPFInstallsignal": {
"winget": "OpenWhisperSystems.Signal"
},
"Installskype": {
"WPFInstallskype": {
"winget": "Microsoft.Skype"
},
"Installslack": {
"WPFInstallslack": {
"winget": "SlackTechnologies.Slack"
},
"Installsteam": {
"WPFInstallsteam": {
"winget": "Valve.Steam"
},
"Installsublime": {
"WPFInstallsublime": {
"winget": "SublimeHQ.SublimeText.4"
},
"Installsumatra": {
"WPFInstallsumatra": {
"winget": "SumatraPDF.SumatraPDF"
},
"Installteams": {
"WPFInstallteams": {
"winget": "Microsoft.Teams"
},
"Installteamviewer": {
"WPFInstallteamviewer": {
"winget": "TeamViewer.TeamViewer"
},
"Installterminal": {
"WPFInstallterminal": {
"winget": "Microsoft.WindowsTerminal"
},
"Installtreesize": {
"WPFInstalltreesize": {
"winget": "JAMSoftware.TreeSize.Free"
},
"Installttaskbar": {
"WPFInstallttaskbar": {
"winget": "TranslucentTB.TranslucentTB"
},
"Installvisualstudio": {
"WPFInstallvisualstudio": {
"winget": "Microsoft.VisualStudio.2022.Community"
},
"Installvivaldi": {
"WPFInstallvivaldi": {
"winget": "VivaldiTechnologies.Vivaldi"
},
"Installvlc": {
"WPFInstallvlc": {
"winget": "VideoLAN.VLC"
},
"Installvoicemeeter": {
"WPFInstallvoicemeeter": {
"winget": "VB-Audio.Voicemeeter"
},
"Installvscode": {
"WPFInstallvscode": {
"winget": "Git.Git;Microsoft.VisualStudioCode"
},
"Installvscodium": {
"WPFInstallvscodium": {
"winget": "Git.Git;VSCodium.VSCodium"
},
"Installwindirstat": {
"WPFInstallwindirstat": {
"winget": "WinDirStat.WinDirStat"
},
"Installscp": {
"WPFInstallscp": {
"winget": "WinSCP.WinSCP"
},
"Installwireshark": {
"WPFInstallwireshark": {
"winget": "WiresharkFoundation.Wireshark"
},
"Installzoom": {
"WPFInstallzoom": {
"winget": "Zoom.Zoom"
},
"Installlibreoffice": {
"WPFInstalllibreoffice": {
"winget": "TheDocumentFoundation.LibreOffice"
},
"Installshell": {
"WPFInstallshell": {
"winget": "Nilesoft.Shell"
},
"Installklite": {
"WPFInstallklite": {
"winget": "CodecGuide.K-LiteCodecPack.Standard"
},
"Installsandboxie": {
"WPFInstallsandboxie": {
"winget": "Sandboxie.Plus"
},
"Installprocesslasso": {
"WPFInstallprocesslasso": {
"winget": "BitSum.ProcessLasso"
},
"Installwinmerge": {
"WPFInstallwinmerge": {
"winget": "WinMerge.WinMerge"
},
"Installdotnet3": {
"WPFInstalldotnet3": {
"winget": "Microsoft.DotNet.DesktopRuntime.3_1"
},
"Installdotnet5": {
"WPFInstalldotnet5": {
"winget": "Microsoft.DotNet.DesktopRuntime.5"
},
"Installdotnet6": {
"WPFInstalldotnet6": {
"winget": "Microsoft.DotNet.DesktopRuntime.6"
},
"Installvc2015_64": {
"WPFInstallvc2015_64": {
"winget": "Microsoft.VC++2015-2022Redist-x64"
},
"Installvc2015_32": {
"WPFInstallvc2015_32": {
"winget": "Microsoft.VC++2015-2022Redist-x86"
},
"Installfoxpdf": {
"WPFInstallfoxpdf": {
"winget": "Foxit.PhantomPDF"
},
"Installonlyoffice": {
"WPFInstallonlyoffice": {
"winget": "ONLYOFFICE.DesktopEditors"
},
"Installflux": {
"WPFInstallflux": {
"winget": "flux.flux"
},
"Installitunes": {
"WPFInstallitunes": {
"winget": "Apple.iTunes"
},
"Installcider": {
"WPFInstallcider": {
"winget": "CiderCollective.Cider"
},
"Installjoplin": {
"WPFInstalljoplin": {
"winget": "Joplin.Joplin"
},
"Installopenoffice": {
"WPFInstallopenoffice": {
"winget": "Apache.OpenOffice"
},
"Installrustdesk": {
"WPFInstallrustdesk": {
"winget": "RustDesk.RustDesk"
},
"Installjami": {
"WPFInstalljami": {
"winget": "SFLinux.Jami"
},
"Installjdownloader": {
"WPFInstalljdownloader": {
"winget": "AppWork.JDownloader"
},
"Installsimplewall": {
"WPFInstallsimplewall": {
"Winget": "Henry++.simplewall"
},
"Installrustlang": {
"WPFInstallrustlang": {
"Winget": "Rustlang.Rust.MSVC"
},
"Installalacritty": {
"WPFInstallalacritty": {
"Winget": "Alacritty.Alacritty"
},
"Installkdenlive": {
"WPFInstallkdenlive": {
"Winget": "KDE.Kdenlive"
},
"Installglaryutilities": {
"WPFInstallglaryutilities": {
"Winget": "Glarysoft.GlaryUtilities"
},
"Installtwinkletray": {
"WPFInstalltwinkletray": {
"Winget": "xanderfrangos.twinkletray"
},
"Installidm": {
"WPFInstallidm": {
"Winget": "Tonec.InternetDownloadManager"
},
"Installviber": {
"WPFInstallviber": {
"Winget": "Viber.Viber"
},
"Installgit": {
"WPFInstallgit": {
"Winget": "Git.Git"
},
"Installwiztree": {
"WPFInstallwiztree": {
"Winget": "AntibodySoftware.WizTree"
},
"Installtor": {
"WPFInstalltor": {
"Winget": "TorProject.TorBrowser"
},
"WPFInstallkrita": {
"winget": "KDE.Krita"
},
"WPFInstallnglide": {
"winget": "ZeusSoftware.nGlide"
},
"WPFInstallkodi": {
"winget": "XBMCFoundation.Kodi"
},
"WPFInstalltelegram": {
"winget": "Telegram.TelegramDesktop"
},
"WPFInstallunity": {
"winget": "UnityTechnologies.UnityHub"
},
"WPFInstallqbittorrent": {
"winget": "qBittorrent.qBittorrent"
},
"WPFInstallorigin": {
"winget": "ElectronicArts.EADesktop"
},
"WPFInstallopenshell": {
"winget": "Open-Shell.Open-Shell-Menu"
},
"WPFInstallbluestacks": {
"winget": "BlueStack.BlueStacks"
},
"WPFInstallstrawberry": {
"winget": "StrawberryMusicPlayer.Strawberry"
},
"WPFInstallsqlstudio": {
"winget": "Microsoft.SQLServerManagementStudio"
},
"WPFInstallwaterfox": {
"winget": "Waterfox.Waterfox"
},
"WPFInstallpowershell": {
"winget": "Microsoft.PowerShell"
},
"WPFInstallprocessmonitor": {
"winget": "Microsoft.Sysinternals.ProcessMonitor"
},
"WPFInstallonedrive": {
"winget": "Microsoft.OneDrive"
},
"WPFInstalledge": {
"winget": "Microsoft.Edge"
},
"WPFInstallnuget": {
"winget": "Microsoft.NuGet"
}
}
}

View File

@ -20,10 +20,10 @@ Example:
{
"install": {
"Installadobe": {
"WPFInstalladobe": {
"winget": "Adobe.Acrobat.Reader.64-bit"
},
"Installadvancedip": {
"WPFInstalladvancedip": {
"winget": "Famatech.AdvancedIPScanner"
}
}
@ -32,8 +32,9 @@ Example:
#>
#Modify the variables and run his code. It will import the current file and add your addition. From there you can create a pull request.
#------Do not delete WPF------
$NameofButton = ""
$NameofButton = "WPF" + ""
$WingetCommand = ""
$ButtonToAdd = New-Object psobject

View File

@ -1135,6 +1135,56 @@
# It will just not bother u anymore"
]
},
"MiscTweaksDisableMouseAcceleration": {
"registry": [
{
"path": "HKCU:\\Control Panel\\Mouse",
"OriginalValue": "1",
"name": "MouseSpeed",
"value": "0",
"type": "String"
},
{
"path": "HKCU:\\Control Panel\\Mouse",
"OriginalValue": "6",
"name": "MouseThreshold1",
"value": "0",
"type": "String"
},
{
"path": "HKCU:\\Control Panel\\Mouse",
"OriginalValue": "10",
"name": "MouseThreshold2",
"value": "0",
"type": "String"
}
]
},
"MiscTweaksEnableMouseAcceleration": {
"registry": [
{
"path": "HKCU:\\Control Panel\\Mouse",
"OriginalValue": "1",
"name": "MouseSpeed",
"value": "1",
"type": "String"
},
{
"path": "HKCU:\\Control Panel\\Mouse",
"OriginalValue": "6",
"name": "MouseThreshold1",
"value": "6",
"type": "String"
},
{
"path": "HKCU:\\Control Panel\\Mouse",
"OriginalValue": "10",
"name": "MouseThreshold2",
"value": "10",
"type": "String"
}
]
},
"EssTweaksDeleteTempFiles": {
"InvokeScript": [
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse

View File

@ -14,44 +14,48 @@
#region Load Variables needed for testing
#Config Files
$global:application = get-content ./config/applications.json | ConvertFrom-Json
$global:preset = get-content ./config/preset.json | ConvertFrom-Json
$global:feature = get-content ./config/feature.json | ConvertFrom-Json
$global:tweaks = get-content ./config/tweaks.json | ConvertFrom-Json
$global:configs = @{}
(
"applications",
"tweaks",
"preset",
"feature"
) | ForEach-Object {
$global:configs["$PSItem"] = Get-Content .\config\$PSItem.json | ConvertFrom-Json
}
#GUI
$global:sync = [Hashtable]::Synchronized(@{})
$global:inputXML = get-content MainWindow.xaml
$global:inputXML = $global:inputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^<Win.*', '<Window'
[xml]$global:XAML = $global:inputXML
[void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
$global:reader = (New-Object System.Xml.XmlNodeReader $global:xaml)
$global:sync["Form"] = [Windows.Markup.XamlReader]::Load( $global:reader )
$global:xaml.SelectNodes("//*[@Name]") | ForEach-Object {$sync["$("$($psitem.Name)")"] = $sync["Form"].FindName($psitem.Name)}
$global:Form = [Windows.Markup.XamlReader]::Load( $global:reader )
$global:xaml.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "Global:WPF$($_.Name)" -Value $global:Form.FindName($_.Name) -Scope global }
#Variables to compare GUI to config files
$Global:GUIFeatureCount = ($global:feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
$Global:GUITabCount = ($global:sync["TabNav"].Items.name).count
$Global:GUIApplicationCount = ($global:application.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
$Global:GUITweaksCount = ($global:tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
$Global:GUIFeatureCount = ( $global:configs.feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
$Global:GUIApplicationCount = ($global:configs.applications.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
$Global:GUITweaksCount = ($global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"}).count
#dotsource original script to pull in all variables and ensure no errors
$script = Get-Content .\winutil.ps1
$output = $script[0..($script.count - 2)] | Out-File .\pester.ps1
$output = $script[0..($script.count - 3)] | Out-File .\pester.ps1
#endregion Load Variables needed for testing
#===========================================================================
# Tests - Json
# Tests - Config Files
#===========================================================================
Describe "Json Files" {
Describe "Config Files" {
Context "Application installs" {
It "Imports with no errors" {
$global:application | should -Not -BeNullOrEmpty
$global:configs.Applications | should -Not -BeNullOrEmpty
}
It "Json should be in correct format" {
$winget = $global:application.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$winget = $global:configs.applications.install.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$winget.name | should -BeLike "*Install*"
$winget.winget | should -Not -BeNullOrEmpty
}
@ -59,10 +63,10 @@ Describe "Json Files" {
Context "Preset" {
It "Imports with no errors" {
$global:preset | should -Not -BeNullOrEmpty
$global:configs.preset | should -Not -BeNullOrEmpty
}
It "Json should be in correct format" {
$preset = $global:preset.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$preset = $global:configs.preset.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$preset.name | should -Not -BeNullOrEmpty
$preset.Value | should -BeLike "*Tweaks*"
}
@ -70,10 +74,10 @@ Describe "Json Files" {
Context "feature" {
It "Imports with no errors" {
$global:feature | should -Not -BeNullOrEmpty
$global:configs.feature | should -Not -BeNullOrEmpty
}
It "Json should be in correct format" {
$feature = $global:feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$feature = $global:configs.feature.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$feature.name | should -BeLike "*Feature*"
$feature.Value | should -Not -BeNullOrEmpty
}
@ -81,10 +85,10 @@ Describe "Json Files" {
Context "tweaks" {
It "Imports with no errors" {
$global:tweaks | should -Not -BeNullOrEmpty
$global:configs.tweaks | should -Not -BeNullOrEmpty
}
It "Json should be in correct format" {
$tweaks = $global:tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$tweaks = $global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$tweaks.name | should -BeLike "*Tweaks*"
$tweaks.Value.registry | should -Not -BeNullOrEmpty
$tweaks.Value.Service | should -Not -BeNullOrEmpty
@ -93,7 +97,7 @@ Describe "Json Files" {
$tweaks.Value.InvokeScript | should -Not -BeNullOrEmpty
}
It "Original Values should be set" {
$tweaks = $global:tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
$tweaks = $global:configs.tweaks.psobject.members | Where-Object {$psitem.MemberType -eq "NoteProperty"} | Select-Object Name,Value
Foreach($tweak in $tweaks){
if($tweak.value.registry){
@ -130,7 +134,6 @@ Describe "Json Files" {
#===========================================================================
Describe "GUI" {
Context "XML" {
It "Imports with no errors" {
$global:XAML | should -Not -BeNullOrEmpty
@ -142,33 +145,19 @@ Describe "GUI" {
Context "Form" {
It "Imports with no errors" {
$global:sync["Form"] | should -Not -BeNullOrEmpty
$global:Form | should -Not -BeNullOrEmpty
}
It "Title should match XML" {
$global:sync["Form"].title | should -Be $global:XAML.window.Title
}
It "Tabs should be $Global:GUITabCount" {
($global:sync.keys | Where-Object {$psitem -like "Tab?"}).count | should -Be $Global:GUITabCount
$global:Form.title | should -Be $global:XAML.window.Title
}
It "Features should be $Global:GUIFeatureCount" {
($global:sync.keys | Where-Object {
$psitem -like "*feature*" -and
$psitem -notlike "FeatureInstall"
}).count | should -Be $Global:GUIFeatureCount
(get-variable | Where-Object {$psitem.name -like "*feature*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUIFeatureCount
}
It "Applications should be $Global:GUIApplicationCount" {
($global:sync.keys | Where-Object {
$psitem -like "*Install*" -and
$psitem -notlike "Install" -and
$psitem -notlike "InstallUpgrade" -and
$psitem -notlike "featureInstall"
}).count | should -Be $Global:GUIApplicationCount
(get-variable | Where-Object {$psitem.name -like "*install*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUIApplicationCount
}
It "Tweaks should be $Global:GUITweaksCount" {
($global:sync.keys | Where-Object {
$psitem -like "*tweaks*" -and
$psitem -notlike "tweaksbutton"
}).count | should -Be $Global:GUITweaksCount
(get-variable | Where-Object {$psitem.name -like "*tweaks*" -and $psitem.value.GetType().name -eq "CheckBox"}).count | should -Be $Global:GUITweaksCount
}
}
}
@ -200,4 +189,12 @@ Describe "GUI Functions" {
$WPFInstallUpgrade | should -Not -BeNullOrEmpty
$WPFinstall | should -Not -BeNullOrEmpty
}
It "Get-CheckBoxes Install should return data" {
. .\pester.ps1
$WPFInstallvc2015_32.ischecked = $true
(Get-CheckBoxes -Group WPFInstall) | should -Not -BeNullOrEmpty
$WPFInstallvc2015_32.ischecked | should -be $false
}
}

View File

@ -1,5 +1,5 @@
#for CI/CD
$BranchToUse = 'main'
$BranchToUse = 'test'
<#
.NOTES
@ -40,6 +40,10 @@ function Invoke-Button {
#>
Param ([string]$Button)
#Use this to get the name of the button
#[System.Windows.MessageBox]::Show("$Button","Chris Titus Tech's Windows Utility","OK","Info")
Switch -Wildcard ($Button){
"*Tab*BT*" {switchtab $Button}
@ -58,6 +62,17 @@ function Invoke-Button {
"Panelsystem" {cmd /c sysdm.cpl}
"Paneluser" {cmd /c "control userpasswords2"}
"Updates*" {Invoke-command $sync.GUIUpdates -ArgumentList "$button"}
"FixesUpdate" {Invoke-command $sync.GUIUpdates -ArgumentList "$button"}
"*AutoLogin" {Invoke-Runspace $Sync.AutologinInstall}
"DisableDarkMode" {Invoke-Runspace $Sync.DarkModeToggle -ArgumentList "$False"}
"EnableDarkMode" {Invoke-Runspace $Sync.DarkModeToggle -ArgumentList "$True"}
"PanelDISM" {
Start-Process PowerShell -ArgumentList "Write-Host '(1/4) Chkdsk' -ForegroundColor Green; Chkdsk /scan;
Write-Host '`n(2/4) SFC - 1st scan' -ForegroundColor Green; sfc /scannow;
Write-Host '`n(3/4) DISM' -ForegroundColor Green; DISM /Online /Cleanup-Image /Restorehealth;
Write-Host '`n(4/4) SFC - 2nd scan' -ForegroundColor Green; sfc /scannow;
Read-Host '`nPress Enter to Continue'" -verb runas
}
}
}
@ -219,6 +234,30 @@ $sync.WriteLogs = {
Write-Verbose "$date $delimiter $Level $delimiter $message"
}
$Sync.AutologinInstall = {
# Official Microsoft recommendation https://learn.microsoft.com/en-us/sysinternals/downloads/autologon
Invoke-WebRequest "https://live.sysinternals.com/Autologon.exe" -OutFile $env:TEMP\autologin.exe
Start-Process -FilePath powershell.exe -Verb runas -ArgumentList "-c $ENV:Temp\autologin.exe" -WindowStyle Hidden
}
$Sync.DarkModeToggle = {
param($enabled)
$Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
if($enabled -eq $True){
Set-ItemProperty $Theme AppsUseLightTheme -Value 0
Invoke-command $sync.WriteLogs -ArgumentList ("INFO","Dark Mode has been enabled",$sync.logfile)
}
if($enabled -eq $False){
Set-ItemProperty $Theme AppsUseLightTheme -Value 1
Invoke-command $sync.WriteLogs -ArgumentList ("INFO","Dark Mode has been disabled",$sync.logfile)
}
}
#===========================================================================
# Install Tab
#===========================================================================
@ -273,7 +312,7 @@ $Sync.GUIInstallPrograms = {
else{
foreach ($program in $programstoinstall){
$($sync.applications.install.$program.winget) -split ";" | ForEach-Object {
$($sync.applications.install.$("WPF" + $program).winget) -split ";" | ForEach-Object {
if($psitem){
$winget += ",$psitem"
}Else{
@ -951,7 +990,7 @@ $sync.ScriptUpdates = {
param($Level, $Message, $LogPath)
Invoke-command $sync.WriteLogs -ArgumentList ($Level,$Message, $LogPath)
}
if($updatestoconfigure -eq "Updatesdefault"){
if($updatestoconfigure -eq "FixesUpdate"){
# Source: https://github.com/rgl/windows-vagrant/blob/master/disable-windows-updates.ps1 reversed!
Set-StrictMode -Version Latest
$ProgressPreference = 'SilentlyContinue'
@ -1240,6 +1279,43 @@ $sync.ScriptUpdates = {
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -Type DWord -Value 365
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -Type DWord -Value 4
}
if($updatestoconfigure -eq "Updatesdefault"){
If (!(Test-Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU")) {
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Force | Out-Null
}
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Type DWord -Value 0
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUOptions" -Type DWord -Value 3
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config")) {
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Force | Out-Null
}
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DeliveryOptimization\Config" -Name "DODownloadMode" -Type DWord -Value 1
$services = @(
"BITS"
"wuauserv"
)
foreach ($service in $services) {
# -ErrorAction SilentlyContinue is so it doesn't write an error to stdout if a service doesn't exist
Write-Host "Setting $service StartupType to Automatic"
Get-Service -Name $service -ErrorAction SilentlyContinue | Set-Service -StartupType Automatic
}
Write-Logs -Level "INFO" -LogPath $sync.logfile -Message "Enabling driver offering through Windows Update..."
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue
Write-Logs -Level "INFO" -LogPath $sync.logfile -Message "Enabling Windows Update automatic restart..."
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue
Write-Logs -Level "INFO" -LogPath $sync.logfile -Message "Enabled driver offering through Windows Update"
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays " -ErrorAction SilentlyContinue
Write-Logs -Level "INFO" -LogPath $sync.logfile -Message "Updates set to default"
}
Write-Logs -Level "INFO" -LogPath $sync.logfile -Message "Process complete. Please reboot your computer."
@ -1381,7 +1457,7 @@ if($gui -eq $true){
How to run Arguments
First step is to set the $env:args variable with the setups you wish to do. To do multiple items put a " " space between each command.
For commands that require input seperate the command with a semicolon ":" and provide the values to pass to that argument seperated by a comma ",". (IE: Install:git.git,windirstat.windirstat)
For commands that require input seperate the command with a colon ":" and provide the values to pass to that argument seperated by a comma ",". (IE: Install:git.git,windirstat.windirstat)
Supported arguments:
@ -1416,6 +1492,15 @@ Example usage:
If($env:args){
Write-Verbose "Arguments Detected, Running Args"
#Ensure Computer Info is populated before continuing
$x = 0
do{
Start-Sleep -Seconds 1
$x++
}until($sync.ComputerInfo -or $x -eq 10)
if($x -eq 5){Invoke-command $sync.WriteLogs -ArgumentList ("WARINING","Failed to pull computer info after 5 seconds, this can cause some scripts to fail.", $sync.logfile)}
If($env:args -match '\bInstallUpgrade\b'){Invoke-command $sync.ScriptsInstallPrograms -ArgumentList "Upgrade"}
If($env:args -match '\bUndoTweaks\b'){Invoke-command $sync.ScriptUndoTweaks}
If($env:args -match '\bPanelControl\b'){cmd /c control}

View File

@ -1,14 +1,39 @@
#for CI/CD
$BranchToUse = 'main'
$BranchToUse = 'test'
<#
.NOTES
Author : Chris Titus @christitustech
GitHub : https://github.com/ChrisTitusTech
Version 0.0.1
#>
# $inputXML = Get-Content "MainWindow.xaml" #uncomment for development
$inputXML = (new-object Net.WebClient).DownloadString("https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/MainWindow.xaml") #uncomment for Production
# Choco install
$testchoco = powershell choco -v
if(-not($testchoco)){
Write-Output "Seems Chocolatey is not installed, installing now"
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
powershell choco feature enable -n allowGlobalConfirmation
}
else{
Write-Output "Chocolatey Version $testchoco is already installed"
}
#Load config files to hashtable
$configs = @{}
(
"applications",
"tweaks",
"preset",
"feature"
) | ForEach-Object {
#$configs["$PSItem"] = Get-Content .\config\$PSItem.json | ConvertFrom-Json
$configs["$psitem"] = Invoke-RestMethod "https://raw.githubusercontent.com/ChrisTitusTech/winutil/$BranchToUse/config/$psitem.json"
}
$inputXML = $inputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^<Win.*', '<Window'
[void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
[xml]$XAML = $inputXML
@ -34,6 +59,10 @@ catch {
$xaml.SelectNodes("//*[@Name]") | ForEach-Object { Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) }
#===========================================================================
# Functions
#===========================================================================
Function Get-FormVariables {
#If ($global:ReadmeDisplay -ne $true) { Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow; $global:ReadmeDisplay = $true }
@ -66,13 +95,43 @@ Function Get-FormVariables {
#get-variable WPF*
}
Get-FormVariables
Function Get-CheckBoxes {
<#
.DESCRIPTION
Function is meant to find all checkboxes that are checked on the specefic tab and input them into a script.
Outputed data will be the names of the checkboxes that were checked
.EXAMPLE
Get-CheckBoxes "WPFInstall"
#>
Param($Group)
$CheckBoxes = get-variable | Where-Object {$psitem.name -like "$Group*" -and $psitem.value.GetType().name -eq "CheckBox"}
$Output = New-Object System.Collections.Generic.List[System.Object]
if($Group -eq "WPFInstall"){
Foreach ($CheckBox in $CheckBoxes){
if($checkbox.value.ischecked -eq $true){
$output.Add("$($configs.applications.install.$($checkbox.name).winget)")
$checkbox.value.ischecked = $false
}
}
}
Write-Output $Output
}
#===========================================================================
# Global Variables
#===========================================================================
$AppTitle = "Chris Titus Tech's Windows Utility"
$AppTitle = "Chris Titus Tech's Windows Utility"
#===========================================================================
# Navigation Controls
@ -106,439 +165,10 @@ $WPFTab4BT.Add_Click({
#===========================================================================
# Tab 1 - Install
#===========================================================================
$WPFinstall.Add_Click({
$wingetinstall = New-Object System.Collections.Generic.List[System.Object]
If ( $WPFInstalllibreoffice.IsChecked -eq $true ) {
$wingetinstall.Add("TheDocumentFoundation.LibreOffice")
$WPFInstalllibreoffice.IsChecked = $false
}
If ( $WPFInstalladobe.IsChecked -eq $true ) {
$wingetinstall.Add("Adobe.Acrobat.Reader.64-bit")
$WPFInstalladobe.IsChecked = $false
}
If ( $WPFInstalladvancedip.IsChecked -eq $true ) {
$wingetinstall.Add("Famatech.AdvancedIPScanner")
$WPFInstalladvancedip.IsChecked = $false
}
If ( $WPFInstallatom.IsChecked -eq $true ) {
$wingetinstall.Add("GitHub.Atom")
$WPFInstallatom.IsChecked = $false
}
If ( $WPFInstallaudacity.IsChecked -eq $true ) {
$wingetinstall.Add("Audacity.Audacity")
$WPFInstallaudacity.IsChecked = $false
}
If ( $WPFInstallautohotkey.IsChecked -eq $true ) {
$wingetinstall.Add("Lexikos.AutoHotkey")
$WPFInstallautohotkey.IsChecked = $false
}
If ( $WPFInstallbrave.IsChecked -eq $true ) {
$wingetinstall.Add("Brave.Brave")
$WPFInstallbrave.IsChecked = $false
}
If ( $WPFInstallchrome.IsChecked -eq $true ) {
$wingetinstall.Add("Google.Chrome")
$WPFInstallchrome.IsChecked = $false
}
If ( $WPFInstalltor.IsChecked -eq $true ) {
$wingetinstall.Add("TorProject.TorBrowser")
$WPFInstalltor.IsChecked = $false
}
If ( $WPFInstalldiscord.IsChecked -eq $true ) {
$wingetinstall.Add("Discord.Discord")
$WPFInstalldiscord.IsChecked = $false
}
If ( $WPFInstallesearch.IsChecked -eq $true ) {
$wingetinstall.Add("voidtools.Everything --source winget")
$WPFInstallesearch.IsChecked = $false
}
If ( $WPFInstalletcher.IsChecked -eq $true ) {
$wingetinstall.Add("Balena.Etcher")
$WPFInstalletcher.IsChecked = $false
}
If ( $WPFInstallfirefox.IsChecked -eq $true ) {
$wingetinstall.Add("Mozilla.Firefox")
$WPFInstallfirefox.IsChecked = $false
}
If ( $WPFInstallgimp.IsChecked -eq $true ) {
$wingetinstall.Add("GIMP.GIMP")
$WPFInstallgimp.IsChecked = $false
}
If ( $WPFInstallgit.IsChecked -eq $true ) {
$wingetinstall.Add("Git.Git")
$WPFInstallgithubdesktop.IsChecked = $false
}
If ( $WPFInstallgithubdesktop.IsChecked -eq $true ) {
$wingetinstall.Add("GitHub.GitHubDesktop")
$WPFInstallgithubdesktop.IsChecked = $false
}
If ( $WPFInstallimageglass.IsChecked -eq $true ) {
$wingetinstall.Add("DuongDieuPhap.ImageGlass")
$WPFInstallimageglass.IsChecked = $false
}
If ( $WPFInstalljava8.IsChecked -eq $true ) {
$wingetinstall.Add("AdoptOpenJDK.OpenJDK.8")
$WPFInstalljava8.IsChecked = $false
}
If ( $WPFInstalljava16.IsChecked -eq $true ) {
$wingetinstall.Add("AdoptOpenJDK.OpenJDK.16")
$WPFInstalljava16.IsChecked = $false
}
If ( $WPFInstalljava18.IsChecked -eq $true ) {
$wingetinstall.Add("Oracle.JDK.18")
$WPFInstalljava18.IsChecked = $false
}
If ( $WPFInstalljetbrains.IsChecked -eq $true ) {
$wingetinstall.Add("JetBrains.Toolbox")
$WPFInstalljetbrains.IsChecked = $false
}
If ( $WPFInstallmpc.IsChecked -eq $true ) {
$wingetinstall.Add("clsid2.mpc-hc")
$WPFInstallmpc.IsChecked = $false
}
If ( $WPFInstallnodejs.IsChecked -eq $true ) {
$wingetinstall.Add("OpenJS.NodeJS")
$WPFInstallnodejs.IsChecked = $false
}
If ( $WPFInstallnodejslts.IsChecked -eq $true ) {
$wingetinstall.Add("OpenJS.NodeJS.LTS")
$WPFInstallnodejslts.IsChecked = $false
}
If ( $WPFInstallnotepadplus.IsChecked -eq $true ) {
$wingetinstall.Add("Notepad++.Notepad++")
$WPFInstallnotepadplus.IsChecked = $false
}
If ( $WPFInstallpowertoys.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.PowerToys")
$WPFInstallpowertoys.IsChecked = $false
}
If ( $WPFInstallputty.IsChecked -eq $true ) {
$wingetinstall.Add("PuTTY.PuTTY")
$WPFInstallputty.IsChecked = $false
}
If ( $WPFInstallpython3.IsChecked -eq $true ) {
$wingetinstall.Add("Python.Python.3")
$WPFInstallpython3.IsChecked = $false
}
If ( $WPFInstallrustlang.IsChecked -eq $true ) {
$wingetinstall.Add("Rustlang.Rust.MSVC")
$WPFInstallrustlang.IsChecked = $false
}
If ( $WPFInstallsevenzip.IsChecked -eq $true ) {
$wingetinstall.Add("7zip.7zip")
$WPFInstallsevenzip.IsChecked = $false
}
If ( $WPFInstallsharex.IsChecked -eq $true ) {
$wingetinstall.Add("ShareX.ShareX")
$WPFInstallsharex.IsChecked = $false
}
If ( $WPFInstallsublime.IsChecked -eq $true ) {
$wingetinstall.Add("SublimeHQ.SublimeText.4")
$WPFInstallsublime.IsChecked = $false
}
If ( $WPFInstallsumatra.IsChecked -eq $true ) {
$wingetinstall.Add("SumatraPDF.SumatraPDF")
$WPFInstallsumatra.IsChecked = $false
}
If ( $WPFInstallterminal.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.WindowsTerminal")
$WPFInstallterminal.IsChecked = $false
}
If ( $WPFInstallidm.IsChecked -eq $true ) {
$wingetinstall.Add("Tonec.InternetDownloadManager")
$WPFInstallidm.IsChecked = $false
}
If ( $WPFInstallalacritty.IsChecked -eq $true ) {
$wingetinstall.Add("Alacritty.Alacritty")
$WPFInstallalacritty.IsChecked = $false
}
If ( $WPFInstallttaskbar.IsChecked -eq $true ) {
$wingetinstall.Add("9PF4KZ2VN4W9")
$WPFInstallttaskbar.IsChecked = $false
}
If ( $WPFInstallvlc.IsChecked -eq $true ) {
$wingetinstall.Add("VideoLAN.VLC")
$WPFInstallvlc.IsChecked = $false
}
If ( $WPFInstallkdenlive.IsChecked -eq $true ) {
$wingetinstall.Add("KDE.Kdenlive")
$WPFInstallkdenlive.IsChecked = $false
}
If ( $WPFInstallvscode.IsChecked -eq $true ) {
$wingetinstall.Add("Git.Git")
$wingetinstall.Add("Microsoft.VisualStudioCode --source winget")
$WPFInstallvscode.IsChecked = $false
}
If ( $WPFInstallvscodium.IsChecked -eq $true ) {
$wingetinstall.Add("Git.Git")
$wingetinstall.Add("VSCodium.VSCodium")
$WPFInstallvscodium.IsChecked = $false
}
If ( $WPFInstallscp.IsChecked -eq $true ) {
$wingetinstall.Add("WinSCP.WinSCP")
$WPFInstallscp.IsChecked = $false
}
If ( $WPFInstallanydesk.IsChecked -eq $true ) {
$wingetinstall.Add("AnyDeskSoftwareGmbH.AnyDesk")
$WPFInstallanydesk.IsChecked = $false
}
If ( $WPFInstallbitwarden.IsChecked -eq $true ) {
$wingetinstall.Add("Bitwarden.Bitwarden")
$WPFInstallbitwarden.IsChecked = $false
}
If ( $WPFInstallblender.IsChecked -eq $true ) {
$wingetinstall.Add("BlenderFoundation.Blender")
$WPFInstallblender.IsChecked = $false
}
If ( $WPFInstallchromium.IsChecked -eq $true ) {
$wingetinstall.Add("eloston.ungoogled-chromium")
$WPFInstallchromium.IsChecked = $false
}
If ( $WPFInstallcpuz.IsChecked -eq $true ) {
$wingetinstall.Add("CPUID.CPU-Z")
$WPFInstallcpuz.IsChecked = $false
}
If ( $WPFInstalleartrumpet.IsChecked -eq $true ) {
$wingetinstall.Add("File-New-Project.EarTrumpet")
$WPFInstalleartrumpet.IsChecked = $false
}
If ( $WPFInstallepicgames.IsChecked -eq $true ) {
$wingetinstall.Add("EpicGames.EpicGamesLauncher")
$WPFInstallepicgames.IsChecked = $false
}
If ( $WPFInstallflameshot.IsChecked -eq $true ) {
$wingetinstall.Add("Flameshot.Flameshot")
$WPFInstallflameshot.IsChecked = $false
}
If ( $WPFInstallfoobar.IsChecked -eq $true ) {
$wingetinstall.Add("PeterPawlowski.foobar2000")
$WPFInstallfoobar.IsChecked = $false
}
If ( $WPFInstallgog.IsChecked -eq $true ) {
$wingetinstall.Add("GOG.Galaxy")
$WPFInstallgog.IsChecked = $false
}
If ( $WPFInstallgpuz.IsChecked -eq $true ) {
$wingetinstall.Add("TechPowerUp.GPU-Z")
$WPFInstallgpuz.IsChecked = $false
}
If ( $WPFInstallglaryutilities.IsChecked -eq $true ) {
$wingetinstall.Add("Glarysoft.GlaryUtilities")
$WPFInstallglaryutilities.IsChecked = $false
}
If ( $WPFInstallgreenshot.IsChecked -eq $true ) {
$wingetinstall.Add("Greenshot.Greenshot")
$WPFInstallgreenshot.IsChecked = $false
}
If ( $WPFInstallhandbrake.IsChecked -eq $true ) {
$wingetinstall.Add("HandBrake.HandBrake")
$WPFInstallhandbrake.IsChecked = $false
}
If ( $WPFInstallhexchat.IsChecked -eq $true ) {
$wingetinstall.Add("HexChat.HexChat")
$WPFInstallhexchat.IsChecked = $false
}
If ( $WPFInstallhwinfo.IsChecked -eq $true ) {
$wingetinstall.Add("REALiX.HWiNFO")
$WPFInstallhwinfo.IsChecked = $false
}
If ( $WPFInstallinkscape.IsChecked -eq $true ) {
$wingetinstall.Add("Inkscape.Inkscape")
$WPFInstallinkscape.IsChecked = $false
}
If ( $WPFInstallkeepass.IsChecked -eq $true ) {
$wingetinstall.Add("KeePassXCTeam.KeePassXC")
$WPFInstallkeepass.IsChecked = $false
}
If ( $WPFInstalllibrewolf.IsChecked -eq $true ) {
$wingetinstall.Add("LibreWolf.LibreWolf")
$WPFInstalllibrewolf.IsChecked = $false
}
If ( $WPFInstallmalwarebytes.IsChecked -eq $true ) {
$wingetinstall.Add("Malwarebytes.Malwarebytes")
$WPFInstallmalwarebytes.IsChecked = $false
}
If ( $WPFInstallmatrix.IsChecked -eq $true ) {
$wingetinstall.Add("Element.Element")
$WPFInstallmatrix.IsChecked = $false
}
If ( $WPFInstallmremoteng.IsChecked -eq $true ) {
$wingetinstall.Add("mRemoteNG.mRemoteNG")
$WPFInstallmremoteng.IsChecked = $false
}
If ( $WPFInstallnvclean.IsChecked -eq $true ) {
$wingetinstall.Add("TechPowerUp.NVCleanstall")
$WPFInstallnvclean.IsChecked = $false
}
If ( $WPFInstallobs.IsChecked -eq $true ) {
$wingetinstall.Add("OBSProject.OBSStudio")
$WPFInstallobs.IsChecked = $false
}
If ( $WPFInstallobsidian.IsChecked -eq $true ) {
$wingetinstall.Add("Obsidian.Obsidian")
$WPFInstallobsidian.IsChecked = $false
}
If ( $WPFInstallrevo.IsChecked -eq $true ) {
$wingetinstall.Add("RevoUninstaller.RevoUninstaller")
$WPFInstallrevo.IsChecked = $false
}
If ( $WPFInstallrufus.IsChecked -eq $true ) {
$wingetinstall.Add("Rufus.Rufus")
$WPFInstallrufus.IsChecked = $false
}
If ( $WPFInstallsignal.IsChecked -eq $true ) {
$wingetinstall.Add("OpenWhisperSystems.Signal")
$WPFInstallsignal.IsChecked = $false
}
If ( $WPFInstallskype.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.Skype")
$WPFInstallskype.IsChecked = $false
}
If ( $WPFInstallslack.IsChecked -eq $true ) {
$wingetinstall.Add("SlackTechnologies.Slack")
$WPFInstallslack.IsChecked = $false
}
If ( $WPFInstallspotify.IsChecked -eq $true ) {
$wingetinstall.Add("Spotify.Spotify")
$WPFInstallspotify.IsChecked = $false
}
If ( $WPFInstallsteam.IsChecked -eq $true ) {
$wingetinstall.Add("Valve.Steam")
$WPFInstallsteam.IsChecked = $false
}
If ( $WPFInstallteamviewer.IsChecked -eq $true ) {
$wingetinstall.Add("TeamViewer.TeamViewer")
$WPFInstallteamviewer.IsChecked = $false
}
If ( $WPFInstallteams.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.Teams")
$WPFInstallteams.IsChecked = $false
}
If ( $WPFInstalltreesize.IsChecked -eq $true ) {
$wingetinstall.Add("JAMSoftware.TreeSize.Free")
$WPFInstalltreesize.IsChecked = $false
}
If ( $WPFInstallvisualstudio.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.VisualStudio.2022.Community")
$WPFInstallvisualstudio.IsChecked = $false
}
If ( $WPFInstallvivaldi.IsChecked -eq $true ) {
$wingetinstall.Add("VivaldiTechnologies.Vivaldi")
$WPFInstallvivaldi.IsChecked = $false
}
If ( $WPFInstallvoicemeeter.IsChecked -eq $true ) {
$wingetinstall.Add("VB-Audio.Voicemeeter")
$WPFInstallvoicemeeter.IsChecked = $false
}
If ( $WPFInstallwindirstat.IsChecked -eq $true ) {
$wingetinstall.Add("WinDirStat.WinDirStat")
$WPFInstallwindirstat.IsChecked = $false
}
If ( $WPFInstallwiztree.IsChecked -eq $true ) {
$wingetinstall.Add("AntibodySoftware.WizTree")
$WPFInstallwiztree.IsChecked = $false
}
If ( $WPFInstallwireshark.IsChecked -eq $true ) {
$wingetinstall.Add("WiresharkFoundation.Wireshark")
$WPFInstallwireshark.IsChecked = $false
}
If ( $WPFInstallsimplewall.IsChecked -eq $true ) {
$wingetinstall.Add("Henry++.simplewall")
$WPFInstallsimplewall.IsChecked = $false
}
If ( $WPFInstallzoom.IsChecked -eq $true ) {
$wingetinstall.Add("Zoom.Zoom")
$WPFInstallzoom.IsChecked = $false
}
If ( $WPFInstallviber.IsChecked -eq $true ) {
$wingetinstall.Add("Viber.Viber")
$WPFInstallviber.IsChecked = $false
}
If ( $WPFInstalltwinkletray.IsChecked -eq $true ) {
$wingetinstall.Add("xanderfrangos.twinkletray")
$WPFInstalltwinkletray.IsChecked = $false
}
# Fall 2022 Additions
If ( $WPFInstallshell.IsChecked -eq $true ) {
$wingetinstall.Add("Nilesoft.Shell")
$WPFInstallshell.IsChecked = $false
}
If ( $WPFInstallklite.IsChecked -eq $true ) {
$wingetinstall.Add("CodecGuide.K-LiteCodecPack.Standard")
$WPFInstallklite.IsChecked = $false
}
If ( $WPFInstallsandboxie.IsChecked -eq $true ) {
$wingetinstall.Add("Sandboxie.Plus")
$WPFInstallsandboxie.IsChecked = $false
}
If ( $WPFInstallprocesslasso.IsChecked -eq $true ) {
$wingetinstall.Add("BitSum.ProcessLasso")
$WPFInstallprocesslasso.IsChecked = $false
}
If ( $WPFInstallwinmerge.IsChecked -eq $true ) {
$wingetinstall.Add("WinMerge.WinMerge")
$WPFInstallwinmerge.IsChecked = $false
}
If ( $WPFInstalldotnet3.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.DotNet.DesktopRuntime.3_1")
$WPFInstalldotnet3.IsChecked = $false
}
If ( $WPFInstalldotnet5.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.DotNet.DesktopRuntime.5")
$WPFInstalldotnet5.IsChecked = $false
}
If ( $WPFInstalldotnet6.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.DotNet.DesktopRuntime.6")
$WPFInstalldotnet6.IsChecked = $false
}
If ( $WPFInstallvc2015_64.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.VC++2015-2022Redist-x64")
$WPFInstallvc2015_64.IsChecked = $false
}
If ( $WPFInstallvc2015_32.IsChecked -eq $true ) {
$wingetinstall.Add("Microsoft.VC++2015-2022Redist-x86")
$WPFInstallvc2015_32.IsChecked = $false
}
If ( $WPFInstallfoxpdf.IsChecked -eq $true ) {
$wingetinstall.Add("Foxit.PhantomPDF")
$WPFInstallfoxpdf.IsChecked = $false
}
If ( $WPFInstallonlyoffice.IsChecked -eq $true ) {
$wingetinstall.Add("ONLYOFFICE.DesktopEditors")
$WPFInstallonlyoffice.IsChecked = $false
}
If ( $WPFInstallflux.IsChecked -eq $true ) {
$wingetinstall.Add("flux.flux")
$WPFInstallflux.IsChecked = $false
}
If ( $WPFInstallitunes.IsChecked -eq $true ) {
$wingetinstall.Add("Apple.iTunes")
$WPFInstallitunes.IsChecked = $false
}
If ( $WPFInstallcider.IsChecked -eq $true ) {
$wingetinstall.Add("CiderCollective.Cider")
$WPFInstallcider.IsChecked = $false
}
If ( $WPFInstalljoplin.IsChecked -eq $true ) {
$wingetinstall.Add("Joplin.Joplin")
$WPFInstalljoplin.IsChecked = $false
}
If ( $WPFInstallopenoffice.IsChecked -eq $true ) {
$wingetinstall.Add("Apache.OpenOffice")
$WPFInstallopenoffice.IsChecked = $false
}
If ( $WPFInstallrustdesk.IsChecked -eq $true ) {
$wingetinstall.Add("RustDesk.RustDesk")
$WPFInstallrustdesk.IsChecked = $false
}
If ( $WPFInstalljami.IsChecked -eq $true ) {
$wingetinstall.Add("SFLinux.Jami")
$WPFInstalljami.IsChecked = $false
}
If ( $WPFInstalljdownloader.IsChecked -eq $true ) {
$wingetinstall.Add("AppWork.JDownloader")
$WPFInstalljdownloader.IsChecked = $false
}
$WingetInstall = Get-CheckBoxes -Group "WPFInstall"
# Check if winget is installed
Write-Host "Checking if Winget is Installed..."
if (Test-Path ~\AppData\Local\Microsoft\WindowsApps\winget.exe) {
@ -563,7 +193,7 @@ $WPFinstall.Add_Click({
# Switching to winget-install from PSGallery from asheroto
# Source: https://github.com/asheroto/winget-installer
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command irm https://raw.githubusercontent.com/asheroto/winget-installer/master/winget-install.ps1 | iex | Out-Host" -WindowStyle Normal
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command irm https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/winget.ps1 | iex | Out-Host" -WindowStyle Normal
}
elseif (((Get-ComputerInfo).WindowsVersion) -lt "1809") {
@ -587,14 +217,14 @@ $WPFinstall.Add_Click({
}
# Install all winget programs in new window
$wingetinstall.ToArray()
#$wingetinstall.ToArray()
# Define Output variable
$wingetResult = New-Object System.Collections.Generic.List[System.Object]
foreach ( $node in $wingetinstall ) {
try {
Start-Process powershell.exe -Verb RunAs -ArgumentList "-command winget install -e --accept-source-agreements --accept-package-agreements --silent $node | Out-Host" -WindowStyle Normal
$wingetResult.Add("$node`n")
Start-Sleep -s 3
Start-Sleep -s 6
Wait-Process winget -Timeout 90 -ErrorAction SilentlyContinue
}
catch [System.InvalidOperationException] {
@ -730,14 +360,6 @@ $WPFminimal.Add_Click({
$WPFtweaksbutton.Add_Click({
If ( $WPFEssTweaksDVR.IsChecked -eq $true ) {
#Installing PowerRun to edit some restricted registry keys (Need this to disable Gamebar Presence Writer)
curl.exe -s "https://www.sordum.org/files/download/power-run/PowerRun.zip" -o ".\PowerRun.zip"
Expand-Archive -Path ".\PowerRun.zip" -DestinationPath ".\" -Force
Copy-Item -Path ".\PowerRun\PowerRun.exe" -Destination "$env:windir" -Force
Remove-Item -Path ".\PowerRun\", ".\PowerRun.zip" -Recurse
}
If ( $WPFEssTweaksAH.IsChecked -eq $true ) {
Write-Host "Disabling Activity History..."
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Type DWord -Value 0
@ -771,12 +393,9 @@ $WPFtweaksbutton.Add_Click({
New-Item -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Force
}
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\GameDVR" -Name "AllowGameDVR" -Type DWord -Value 0
#Disabling Gamebar Presence Writer, which causes stutter in games
PowerRun.exe /SW:0 Powershell.exe -command { Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Gaming.GameBar.PresenceServer.Internal.PresenceWriter" -Name "ActivationType" -Type DWord -Value 0 }
$WPFEssTweaksDVR.IsChecked = $false
}
If ( $WPFEssTweaksHiber.IsChecked -eq $true ) {
Write-Host "Disabling Hibernation..."
Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Session Manager\Power" -Name "HibernateEnabled" -Type Dword -Value 0
@ -838,11 +457,43 @@ $WPFtweaksbutton.Add_Click({
New-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" -Name "InprocServer32" -force -value ""
$WPFMiscTweaksRightClickMenu.IsChecked = $false
}
If ( $WPFchangedns.text -eq 'Google' ) {
Write-Host "Setting DNS to Google for all connections..."
$DC = "8.8.8.8"
$Internet = "8.8.4.4"
$dns = "$DC", "$Internet"
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFchangedns.text -eq 'Cloud Flare' ) {
Write-Host "Setting DNS to Cloud Flare for all connections..."
$DC = "1.1.1.1"
$Internet = "1.0.0.1"
$dns = "$DC", "$Internet"
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFchangedns.text -eq 'Level3' ) {
Write-Host "Setting DNS to Level3 for all connections..."
$DC = "4.2.2.2"
$Internet = "4.2.2.1"
$dns = "$DC", "$Internet"
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFchangedns.text -eq 'Open DNS' ) {
Write-Host "Setting DNS to Open DNS for all connections..."
$DC = "208.67.222.222"
$Internet = "208.67.220.220"
$dns = "$DC", "$Internet"
$Interface = Get-WmiObject Win32_NetworkAdapterConfiguration
$Interface.SetDNSServerSearchOrder($dns) | Out-Null
}
If ( $WPFEssTweaksOO.IsChecked -eq $true ) {
If (!(Test-Path .\ooshutup10.cfg)) {
Write-Host "Running O&O Shutup with Recommended Settings"
curl.exe -ss "https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg" -o ooshutup10.cfg
curl.exe -ss "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -o OOSU10.exe
curl.exe -s "https://raw.githubusercontent.com/ChrisTitusTech/win10script/master/ooshutup10.cfg" -o ooshutup10.cfg
curl.exe -s "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -o OOSU10.exe
}
./OOSU10.exe ooshutup10.cfg /quiet
$WPFEssTweaksOO.IsChecked = $false
@ -1065,7 +716,7 @@ $WPFtweaksbutton.Add_Click({
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "MenuShowDelay" -Type DWord -Value 1
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "AutoEndTasks" -Type DWord -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -Name "ClearPageFileAtShutdown" -Type DWord -Value 0
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseHoverTime" -Type DWord -Value 10
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseHoverTime" -Type DWord -Value 400
## Timeout Tweaks cause flickering on Windows now
Remove-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "WaitToKillAppTimeout" -ErrorAction SilentlyContinue
@ -1187,6 +838,20 @@ $WPFtweaksbutton.Add_Click({
Write-Host "Adjusted visual effects for performance"
$WPFMiscTweaksDisplay.IsChecked = $false
}
If ( $WPFMiscTweaksDisableMouseAcceleration.IsChecked -eq $true ) {
Write-Host "Disabling mouse acceleration..."
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseSpeed" -Type String -Value 0
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseThreshold1" -Type String -Value 0
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseThreshold2" -Type String -Value 0
$WPFMiscTweaksDisableMouseAcceleration.IsChecked = $false
}
If ( $WPFMiscTweaksEnableMouseAcceleration.IsChecked -eq $true ) {
Write-Host "Enabling mouse acceleration..."
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseSpeed" -Type String -Value 1
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseThreshold1" -Type String -Value 6
Set-ItemProperty -Path "HKCU:\Control Panel\Mouse" -Name "MouseThreshold2" -Type String -Value 10
$WPFMiscTweaksEnableMouseAcceleration.IsChecked = $false
}
If ( $WPFEssTweaksRemoveCortana.IsChecked -eq $true ) {
Write-Host "Removing Cortana..."
Get-AppxPackage -allusers Microsoft.549981C3F5F10 | Remove-AppxPackage
@ -1385,10 +1050,25 @@ $WPFtweaksbutton.Add_Click({
[System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
})
$WPFAddUltPerf.Add_Click({
Write-Host "Adding Ultimate Performance Profile"
powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61
Write-Host "Profile added"
}
)
$WPFRemoveUltPerf.Add_Click({
Write-Host "Removing Ultimate Performance Profile"
powercfg -delete e9a42b02-d5df-448d-aa00-03f14749eb61
Write-Host "Profile Removed"
}
)
$WPFEnableDarkMode.Add_Click({
Write-Host "Enabling Dark Mode"
$Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
Set-ItemProperty $Theme AppsUseLightTheme -Value 0
Set-ItemProperty $Theme SystemUsesLightTheme -Value 0
Write-Host "Enabled"
}
)
@ -1397,6 +1077,7 @@ $WPFDisableDarkMode.Add_Click({
Write-Host "Disabling Dark Mode"
$Theme = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
Set-ItemProperty $Theme AppsUseLightTheme -Value 1
Set-ItemProperty $Theme SystemUsesLightTheme -Value 1
Write-Host "Disabled"
}
)
@ -1540,9 +1221,6 @@ $WPFundoall.Add_Click({
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Feeds" -Name "ShellFeedsTaskbarViewMode" -Type DWord -Value 0
Write-Host "Done - Reverted to Stock Settings"
#Enable Gamebar Presence Writer
PowerRun.exe /SW:0 Powershell.exe -command { Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Gaming.GameBar.PresenceServer.Internal.PresenceWriter" -Name "ActivationType" -Type DWord -Value 1 }
Write-Host "Essential Undo Completed"
$ButtonType = [System.Windows.MessageBoxButton]::OK
@ -1855,4 +1533,5 @@ $WPFUpdatessecurity.Add_Click({
#===========================================================================
# Shows the form
#===========================================================================
Get-FormVariables
$Form.ShowDialog() | out-null