Merge branch 'main' into remove-trailing-whitespace-characters

This commit is contained in:
Mr.k 2024-06-28 19:04:45 +03:00 committed by GitHub
commit 19ed50b449
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 790 additions and 1976 deletions

View File

@ -16,8 +16,20 @@ jobs:
- name: Close inactive issues
uses: actions/stale@v9.0.0
with:
# A list of labels to reference when looking through issues,
# and only when one (or even more) of these labels are found..
# then skip this issue, and never try to stale and/or close it.
exempt-issue-labels: "Keep Issue Open"
days-before-issue-close: 14
close-issue-message: "This issue was closed because it has been inactive for 14 days"
debug-only: false # Make this field equal true if you want to test your configuration if it works or not
# Split it into two weeks, after one week the issue will be marked as stale,
# after another week have pasted without any update.. the issue will then be closed.
days-before-issue-stale: 7
days-before-issue-close: 7
# NEVER mark PRs as Stale or Close + this workflow should never have write permissions on PRs, EVER!
days-before-pr-stale: -1
days-before-pr-close: -1
# Sends a message for both the Stale and Close events of an issue.
stale-issue-message: "This issue was marked as stale because it has been inactive for 7 days"
close-issue-message: "This issue was closed because it has been inactive for 7 days since it was marked as stale"
# Make this field equal true if you want to test your configuration if it works correctly or not
debug-only: false
repo-token: ${{ secrets.GITHUB_TOKEN }}

46
.github/workflows/pre-release.yaml vendored Normal file
View File

@ -0,0 +1,46 @@
name: Pre-Release WinUtil
on:
workflow_run:
workflows: ["Compile"] #Ensure Compile winget.ps1 is done
types:
- completed
workflow_dispatch: # Manual trigger added
jobs:
build-runspace:
runs-on: windows-latest
outputs:
version: ${{ steps.extract_version.outputs.version }}
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Extract Version from winutil.ps1
id: extract_version
run: |
$version = ''
Get-Content ./winutil.ps1 -TotalCount 30 | ForEach-Object {
if ($_ -match 'Version\s*:\s*(\d{2}\.\d{2}\.\d{2})') {
$version = $matches[1]
echo "version=$version" >> $GITHUB_ENV
echo "::set-output name=version::$version"
break
}
}
if (-not $version) {
Write-Error "Version not found in winutil.ps1"
exit 1
}
shell: pwsh
- name: Create and Upload Release
id: create_release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.extract_version.outputs.version }}
name: Pre-Release ${{ steps.extract_version.outputs.version }}
files: ./winutil.ps1
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,10 +1,6 @@
name: Release WinUtil
on:
workflow_run:
workflows: ["Compile"] #Ensure Compile winget.ps1 is done
types:
- completed
workflow_dispatch: # Manual trigger added
jobs:
@ -41,5 +37,6 @@ jobs:
tag_name: ${{ steps.extract_version.outputs.version }}
name: Release ${{ steps.extract_version.outputs.version }}
files: ./winutil.ps1
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,5 +1,6 @@
param (
[switch]$Debug
[switch]$Debug,
[switch]$Run
)
$OFS = "`r`n"
$scriptname = "winutil.ps1"
@ -63,13 +64,6 @@ Get-ChildItem .\config | Where-Object {$psitem.extension -eq ".json"} | ForEach-
$sync.configs.$($psitem.BaseName) = $json | convertfrom-json
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$json' `| convertfrom-json" ))
}
Write-Progress -Activity "Compiling" -Status "Adding: Config *.cfg" -PercentComplete 45
Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object {
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'"))
}
Get-ChildItem .\config | Where-Object {$PSItem.Extension -eq ".cfg"} | ForEach-Object {
$script_content.Add($(Write-output "`$sync.configs.$($psitem.BaseName) = '$(Get-Content $PSItem.FullName)'"))
}
$xaml = (Get-Content .\xaml\inputXML.xaml).replace("'","''")
@ -107,3 +101,13 @@ else {
Set-Content -Path $scriptname -Value ($script_content -join "`r`n") -Encoding ascii
Write-Progress -Activity "Compiling" -Completed
if ($run){
try {
Start-Process -FilePath "pwsh" -ArgumentList ".\$scriptname"
}
catch {
Start-Process -FilePath "powershell" -ArgumentList ".\$scriptname"
}
}

View File

@ -32,9 +32,9 @@ or by executing:
iwr -useb https://christitus.com/win | iex
```
if for some reason this site is not reachable from your country please try running it directly from github (replace `RELEASE_TAG` with current release that you are interested in, for example `v2024.06.05`)
if for some reason this site is not reachable from your country please try running it directly from github.
```
irm "https://github.com/ChrisTitusTech/winutil/releases/download/RELEASE_TAG/winutil.ps1" | iex
irm "https://github.com/ChrisTitusTech/winutil/releases/latest/download/winutil.ps1" | iex
```
#### Automation

View File

@ -151,14 +151,6 @@
"link": "https://github.com/sharkdp/bat",
"winget": "sharkdp.bat"
},
"WPFInstallbitcomet": {
"category": "Utilities",
"choco": "bitcomet",
"content": "BitComet",
"description": "BitComet is a free and open-source BitTorrent client that supports HTTP/FTP downloads and provides download management features.",
"link": "https://www.bitcomet.com/",
"winget": "CometNetwork.BitComet"
},
"WPFInstallbitwarden": {
"category": "Utilities",
"choco": "bitwarden",
@ -183,14 +175,6 @@
"link": "https://www.blender.org/",
"winget": "BlenderFoundation.Blender"
},
"WPFInstallbluestacks": {
"category": "Games",
"choco": "bluestacks",
"content": "Bluestacks",
"description": "Bluestacks is an Android emulator for running mobile apps and games on a PC.",
"link": "https://www.bluestacks.com/",
"winget": "BlueStack.BlueStacks"
},
"WPFInstallbrave": {
"category": "Browsers",
"choco": "brave",
@ -215,6 +199,14 @@
"link": "https://www.bulkrenameutility.co.uk",
"winget": "TGRMNSoftware.BulkRenameUtility"
},
"WPFInstallAdvancedRenamer": {
"category": "Utilities",
"choco": "advanced-renamer",
"content": "Advanced Renamer",
"description": "Advanced Renamer is a program for renaming multiple files and folders at once. By configuring renaming methods the names can be manipulated in various ways.",
"link": "https://www.advancedrenamer.com/",
"winget": "XP9MD3S1KFCPH1"
},
"WPFInstallcalibre": {
"category": "Document",
"choco": "calibre",
@ -311,14 +303,6 @@
"link": "https://copyq.readthedocs.io/",
"winget": "hluk.CopyQ"
},
"WPFInstallditto": {
"category": "Utilities",
"choco": "ditto",
"content": "Ditto (Clipboard Manager)",
"description": "Ditto is an extension to the Windows Clipboard. You copy something to the Clipboard and Ditto takes what you copied and stores it in a database to retrieve at a later time.",
"link": "https://github.com/sabrogden/Ditto",
"winget": "Ditto.Ditto"
},
"WPFInstallcpuz": {
"category": "Utilities",
"choco": "cpu-z",
@ -389,7 +373,7 @@
"content": "DevToys",
"description": "DevToys is a collection of development-related utilities and tools for Windows. It includes tools for file management, code formatting, and productivity enhancements for developers.",
"link": "https://devtoys.app/",
"winget": "9PGCV4V3BK4W"
"winget": "DevToys-app.DevToys"
},
"WPFInstalldigikam": {
"category": "Multimedia Tools",
@ -407,14 +391,17 @@
"link": "https://discord.com/",
"winget": "Discord.Discord"
},
<<<<<<< purging-applications
"WPFInstallditto": {
"category": "Utilities",
"choco": "ditto",
"content": "Ditto",
"description": "Ditto is an extension to the standard windows clipboard.",
"link": "https://ditto-cp.sourceforge.io/",
"link": "https://github.com/sabrogden/Ditto",
"winget": "Ditto.Ditto"
},
=======
>>>>>>> main
"WPFInstalldockerdesktop": {
"category": "Development",
"choco": "docker-desktop",
@ -567,6 +554,14 @@
"link": "https://www.falkon.org/",
"winget": "KDE.Falkon"
},
"WPFInstallfastfetch": {
"category": "Utilities",
"choco": "na",
"content": "Fastfetch",
"description": "Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way",
"link": "https://github.com/fastfetch-cli/fastfetch/",
"winget": "fastfetch"
},
"WPFInstallferdium": {
"category": "Communications",
"choco": "ferdium",
@ -695,14 +690,6 @@
"link": "https://www.freecadweb.org/",
"winget": "FreeCAD.FreeCAD"
},
"WPFInstallorcaslicer": {
"category": "Multimedia Tools",
"choco": "orcaslicer",
"content": "OrcaSlicer",
"description": "G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)",
"link": "https://github.com/SoftFever/OrcaSlicer",
"winget": "SoftFever.OrcaSlicer"
},
"WPFInstallfxsound": {
"category": "Multimedia Tools",
"choco": "fxsound",
@ -749,7 +736,7 @@
"content": "Git Extensions",
"description": "Git Extensions is a graphical user interface for Git, providing additional features for easier source code management.",
"link": "https://gitextensions.github.io/",
"winget": "Git.Git;GitExtensionsTeam.GitExtensions"
"winget": "GitExtensionsTeam.GitExtensions"
},
"WPFInstallgithubcli": {
"category": "Development",
@ -757,7 +744,7 @@
"content": "GitHub CLI",
"description": "GitHub CLI is a command-line tool that simplifies working with GitHub directly from the terminal.",
"link": "https://cli.github.com/",
"winget": "Git.Git;GitHub.cli"
"winget": "GitHub.cli"
},
"WPFInstallgithubdesktop": {
"category": "Development",
@ -765,7 +752,7 @@
"content": "GitHub Desktop",
"description": "GitHub Desktop is a visual Git client that simplifies collaboration on GitHub repositories with an easy-to-use interface.",
"link": "https://desktop.github.com/",
"winget": "Git.Git;GitHub.GitHubDesktop"
"winget": "GitHub.GitHubDesktop"
},
"WPFInstallgitkrakenclient": {
"category": "Development",
@ -799,12 +786,20 @@
"link": "https://www.gog.com/galaxy",
"winget": "GOG.Galaxy"
},
"WPFInstallgitify": {
"category": "Development",
"choco": "na",
"content": "Gitify",
"description": "GitHub notifications on your menu bar.",
"link": "https://www.gitify.io/",
"winget": "Gitify.Gitify"
},
"WPFInstallgolang": {
"category": "Development",
"choco": "golang",
"content": "GoLang",
"description": "GoLang (or Golang) is a statically typed, compiled programming language designed for simplicity, reliability, and efficiency.",
"link": "https://golang.org/",
"content": "Go",
"description": "Go (or Golang) is a statically typed, compiled programming language designed for simplicity, reliability, and efficiency.",
"link": "https://go.dev/",
"winget": "GoLang.Go"
},
"WPFInstallgoogledrive": {
@ -975,14 +970,6 @@
"link": "https://www.oracle.com/java/",
"winget": "EclipseAdoptium.Temurin.18.JRE"
},
"WPFInstalljava20": {
"category": "Development",
"choco": "na",
"content": "Azul Zulu JDK 20",
"description": "Azul Zulu JDK 20 is a distribution of the OpenJDK with long-term support, performance enhancements, and security updates.",
"link": "https://www.azul.com/downloads/zulu-community/",
"winget": "Azul.Zulu.20.JDK"
},
"WPFInstalljava21": {
"category": "Development",
"choco": "na",
@ -1287,9 +1274,17 @@
"link": "https://www.msi.com/Landing/afterburner",
"winget": "Guru3D.Afterburner"
},
"WPFInstallmullvadvpn": {
"category": "Pro Tools",
"choco": "mullvad-app",
"content": "Mullvad VPN",
"description": "This is the VPN client software for the Mullvad VPN service.",
"link": "https://github.com/mullvad/mullvadvpn-app",
"winget": "MullvadVPN.MullvadVPN"
},
"WPFInstallBorderlessGaming": {
"category": "Utilities",
"choco": "na",
"choco": "borderlessgaming",
"content": "Borderless Gaming",
"description": "Play your favorite games in a borderless window; no more time consuming alt-tabs.",
"link": "https://github.com/Codeusa/Borderless-Gaming",
@ -1303,14 +1298,6 @@
"link": "https://sourceforge.net/projects/equalizerapo",
"winget": "na"
},
"WPFInstallFreeFileSync": {
"category": "Utilities",
"choco": "freefilesync",
"content": "FreeFileSync",
"description": "Synchronize Files and Folders",
"link": "https://freefilesync.org",
"winget": "na"
},
"WPFInstallCompactGUI": {
"category": "Utilities",
"choco": "compactgui",
@ -1359,6 +1346,14 @@
"link": "https://www.mp3tag.de/en/",
"winget": "Mp3tag.Mp3tag"
},
"WPFInstalltagscanner": {
"category": "Multimedia Tools",
"choco": "tagscanner",
"content": "TagScanner (Tag Scanner)",
"description": "TagScanner is a powerful tool for organizing and managing your music collection",
"link": "https://www.xdlab.ru/en/",
"winget": "SergeySerkov.TagScanner"
},
"WPFInstallnanazip": {
"category": "Utilities",
"choco": "nanazip",
@ -1663,6 +1658,14 @@
"link": "https://www.plex.tv/your-media/",
"winget": "Plex.PlexMediaServer"
},
"WPFInstallplexdesktop": {
"category": "Multimedia Tools",
"choco": "plex",
"content": "Plex Desktop",
"description": "Plex Desktop for Windows is the front end for Plex Media Server.",
"link": "https://www.plex.tv",
"winget": "Plex.Plex"
},
"WPFInstallPortmaster": {
"category": "Pro Tools",
"choco": "portmaster",
@ -1751,6 +1754,14 @@
"link": "https://docs.microsoft.com/en-us/sysinternals/downloads/procmon",
"winget": "Microsoft.Sysinternals.ProcessMonitor"
},
"WPFInstallorcaslicer": {
"category": "Utilities",
"choco": "orcaslicer",
"content": "OrcaSlicer",
"description": "G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)",
"link": "https://github.com/SoftFever/OrcaSlicer",
"winget": "SoftFever.OrcaSlicer"
},
"WPFInstallprucaslicer": {
"category": "Utilities",
"choco": "prusaslicer",
@ -1791,6 +1802,14 @@
"link": "https://www.qbittorrent.org/",
"winget": "qBittorrent.qBittorrent"
},
"WPFInstalltransmission": {
"category": "Utilities",
"choco": "transmission",
"content": "Transmission",
"description": "Transmission is a cross-platform BitTorrent client that is open source, easy, powerful, and lean.",
"link": "https://transmissionbt.com/",
"winget": "Transmission.Transmission"
},
"WPFInstalltixati": {
"category": "Utilities",
"choco": "tixati.portable",
@ -2199,6 +2218,14 @@
"link": "https://github.com/thonny/thonny",
"winget": "AivarAnnamaa.Thonny"
},
"WPFInstallMuEditor": {
"category": "Development",
"choco": "na",
"content": "Code With Mu (Mu Editor)",
"description": "Mu is a Python code editor for beginner programmers",
"link": "https://codewith.mu/",
"winget": "Mu.Mu"
},
"WPFInstallthorium": {
"category": "Browsers",
"choco": "na",
@ -2397,7 +2424,7 @@
"content": "VS Code",
"description": "Visual Studio Code is a free, open-source code editor with support for multiple programming languages.",
"link": "https://code.visualstudio.com/",
"winget": "Git.Git;Microsoft.VisualStudioCode"
"winget": "Microsoft.VisualStudioCode"
},
"WPFInstallvscodium": {
"category": "Development",
@ -2405,7 +2432,7 @@
"content": "VS Codium",
"description": "VSCodium is a community-driven, freely-licensed binary distribution of Microsoft's VS Code.",
"link": "https://vscodium.com/",
"winget": "Git.Git;VSCodium.VSCodium"
"winget": "VSCodium.VSCodium"
},
"WPFInstallwaterfox": {
"category": "Browsers",
@ -2431,14 +2458,6 @@
"link": "https://wezfurlong.org/wezterm/index.html",
"winget": "wez.wezterm"
},
"WPFInstallwindirstat": {
"category": "Utilities",
"choco": "windirstat",
"content": "WinDirStat",
"description": "WinDirStat is a disk usage statistics viewer and cleanup tool for Windows.",
"link": "https://windirstat.net/",
"winget": "WinDirStat.WinDirStat"
},
"WPFInstallwindowspchealth": {
"category": "Utilities",
"choco": "na",
@ -2818,7 +2837,7 @@
"WPFInstallForceAutoHDR": {
"category": "Utilities",
"choco": "na",
"content": "GUI That Forces Auto HDR In Unsupported Games",
"content": "ForceAutoHDR",
"description": "ForceAutoHDR simplifies the process of adding games to the AutoHDR list in the Windows Registry",
"link": "https://github.com/7gxycn08/ForceAutoHDR",
"winget": "ForceAutoHDR.7gxycn08"
@ -2831,6 +2850,7 @@
"link": "https://joytokey.net/en/",
"winget": "JTKsoftware.JoyToKey"
},
"WPFInstallnditools": {
"category": "Multimedia Tools",
"choco": "na",
@ -2838,5 +2858,29 @@
"description":"NDI, or Network Device Interface, is a video connectivity standard that enables multimedia systems to identify and communicate with one another over IP and to encode, transmit, and receive high-quality, low latency, frame-accurate video and audio, and exchange metadata in real-time.",
"link": "https://ndi.video/",
"winget": "NDI.NDITools"
},
"WPFInstallkicad": {
"category": "Pro Tools",
"choco": "na",
"content": "Kicad",
"description":"Kicad is an open-source EDA tool. It's a good starting point for those who want to do electrical design and is even used by professionals in the industry.",
"link": "https://www.kicad.org/",
"winget": "KiCad.KiCad"
},
"WPFInstallFormatFactory": {
"category": "Utilities",
"choco": "formatfactory",
"content": "Format Factory",
"description":"FormatFactory is an ad-supported freeware multimedia converter that can convert video, audio, and picture files. It is also capable of ripping DVDs and CDs to other file formats, as well as creating .iso images. It can also join multiple video files together into one.",
"link": "http://www.pcfreetime.com/formatfactory/",
"winget": "na"
},
"WPFInstalldropox": {
"category": "Utilities",
"choco": "na",
"content": "Dropbox",
"description":"The Dropbox desktop app! Save hard drive space, share and edit files and send for signature all without the distraction of countless browser tabs.",
"link": "https://www.dropbox.com/en_GB/desktop",
"winget": "Dropbox.Dropbox"
}
}

View File

@ -1,227 +0,0 @@
############################################################################
# This file was created with O&O ShutUp10++ V1.9.1436
# and can be imported onto another computer.
#
# Download the application at https://www.oo-software.com/shutup10
# You can then import the file from within the program.
#
# Alternatively you can import it automatically over a command line.
# Simply use the following parameter:
# OOSU10.exe <path to file>
#
# Selecting the Option /quiet ends the app right after the import and the
# user does not get any feedback about the import.
#
# We are always happy to answer any questions you may have!
# © 2015-2023 O&O Software GmbH, Berlin. All rights reserved.
# https://www.oo-software.com/
############################################################################
P001 -
P002 -
P003 -
P004 -
P005 -
P006 -
P008 -
P026 -
P027 -
P028 -
P064 -
P065 -
P066 -
P067 -
P070 -
P069 -
P009 -
P010 -
P015 -
P068 -
P016 -
A001 -
A002 -
A003 -
A004 -
A006 -
A005 -
P007 -
P036 -
P025 -
P033 -
P023 -
P056 -
P057 -
P012 -
P034 -
P013 -
P035 -
P062 -
P063 -
P081 -
P047 -
P019 -
P048 -
P049 -
P020 -
P037 -
P011 -
P038 -
P050 -
P051 -
P018 -
P039 -
P021 -
P040 -
P022 -
P041 -
P014 -
P042 -
P052 -
P053 -
P054 -
P055 -
P029 -
P043 -
P030 -
P044 -
P031 -
P045 -
P032 -
P046 -
P058 -
P059 -
P060 -
P061 -
P071 -
P072 -
P073 -
P074 -
P075 -
P076 -
P077 -
P078 -
P079 -
P080 -
P024 -
S001 -
S002 -
S003 -
S008 -
E101 -
E201 -
E115 -
E215 -
E118 -
E218 -
E107 -
E207 -
E111 -
E211 -
E112 -
E212 -
E109 -
E209 -
E121 -
E221 -
E103 -
E203 -
E123 -
E223 -
E124 -
E224 -
E128 -
E228 -
E119 -
E219 -
E120 -
E220 -
E122 -
E222 -
E125 -
E225 -
E126 -
E226 -
E106 -
E206 -
E127 -
E227 -
E001 -
E002 -
E003 -
E008 -
E007 -
E010 -
E011 +
E012 +
E009 -
E004 -
E005 -
E013 -
E014 -
E006 -
Y001 -
Y002 -
Y003 -
Y004 -
Y005 -
Y006 -
Y007 -
C012 -
C002 -
C013 -
C007 -
C008 -
C009 -
C010 -
C011 -
C014 -
C015 -
C101 -
C201 -
C102 -
L001 -
L003 -
L004 -
L005 -
U001 -
U004 -
U005 -
U006 -
U007 -
W001 -
W011 -
W004 -
W005 -
W010 -
W009 -
P017 -
W006 -
W008 -
M006 -
M011 -
M010 -
O003 -
O001 -
S012 -
S013 -
S014 -
K001 -
K002 -
K005 -
M003 -
M015 -
M016 -
M017 -
M018 -
M019 -
M020 -
M021 -
M022 -
M001 -
M004 -
M005 -
M024 -
M012 -
M013 -
M014 -
N001 -

View File

@ -1,231 +0,0 @@
############################################################################
# This file was created with O&O ShutUp10++ V1.9.1438
# and can be imported onto another computer.
#
# Download the application at https://www.oo-software.com/shutup10
# You can then import the file from within the program.
#
# Alternatively you can import it automatically over a command line.
# Simply use the following parameter:
# OOSU10.exe <path to file>
#
# Selecting the Option /quiet ends the app right after the import and the
# user does not get any feedback about the import.
#
# We are always happy to answer any questions you may have!
# © 2015-2024 O&O Software GmbH, Berlin. All rights reserved.
# https://www.oo-software.com/
############################################################################
P001 +
P002 +
P003 +
P004 +
P005 +
P006 +
P008 +
P026 +
P027 +
P028 +
P064 +
P065 +
P066 +
P067 +
P070 +
P069 +
P009 -
P010 +
P015 +
P068 -
P016 -
A001 +
A002 +
A003 +
A004 +
A006 +
A005 +
P007 +
P036 +
P025 +
P033 +
P023 +
P056 +
P057 -
P012 -
P034 -
P013 -
P035 -
P062 -
P063 -
P081 -
P047 -
P019 -
P048 -
P049 -
P020 -
P037 -
P011 -
P038 -
P050 -
P051 -
P018 -
P039 -
P021 -
P040 -
P022 -
P041 -
P014 -
P042 -
P052 -
P053 -
P054 -
P055 -
P029 -
P043 -
P030 -
P044 -
P031 -
P045 -
P032 -
P046 -
P058 -
P059 -
P060 -
P061 -
P071 -
P072 -
P073 -
P074 -
P075 -
P076 -
P077 -
P078 -
P079 -
P080 -
P024 +
S001 +
S002 +
S003 +
S008 -
E101 +
E201 +
E115 +
E215 +
E118 +
E218 +
E107 +
E207 +
E111 +
E211 +
E112 +
E212 +
E109 +
E209 +
E121 +
E221 +
E103 +
E203 +
E123 +
E223 +
E124 +
E224 +
E128 +
E228 +
E119 -
E219 -
E120 -
E220 -
E122 -
E222 -
E125 -
E225 -
E126 -
E226 -
E106 -
E206 -
E127 -
E227 -
E001 +
E002 +
E003 +
E008 +
E007 +
E010 +
E011 +
E012 +
E009 -
E004 -
E005 -
E013 -
E014 -
E006 -
Y001 +
Y002 +
Y003 +
Y004 +
Y005 +
Y006 +
Y007 +
C012 +
C002 +
C013 +
C007 +
C008 +
C009 +
C010 +
C011 +
C014 +
C015 +
C101 +
C201 +
C102 +
C103 +
C203 +
L001 +
L003 +
L004 -
L005 -
U001 +
U004 +
U005 +
U006 +
U007 +
W001 +
W011 +
W004 -
W005 -
W010 -
W009 -
P017 +
W006 -
W008 -
M006 +
M011 -
M010 +
O003 -
O001 -
S012 -
S013 -
S014 -
K001 +
K002 +
K005 +
M003 +
M015 +
M016 +
M017 -
M018 +
M019 -
M020 +
M021 +
M022 +
M001 +
M004 +
M005 +
M024 +
M026 +
M027 +
M012 -
M013 -
M014 -
N001 -

View File

@ -1,11 +1,11 @@
{
"Standard": [
"WPFTweaksAH",
"WPFTweaksConsumerFeatures",
"WPFTweaksDVR",
"WPFTweaksHiber",
"WPFTweaksHome",
"WPFTweaksLoc",
"WPFTweaksOO",
"WPFTweaksServices",
"WPFTweaksStorage",
"WPFTweaksTele",
@ -17,8 +17,8 @@
"WPFTweaksTeredo"
],
"Minimal": [
"WPFTweaksConsumerFeatures",
"WPFTweaksHome",
"WPFTweaksOO",
"WPFTweaksServices",
"WPFTweaksTele"
]

View File

@ -58,7 +58,7 @@
"powercfg.exe /hibernate on"
]
},
"WPFToggleTweaksLaptopHybernation": {
"WPFTweaksLaptopHibernation": {
"Content": "Set Hibernation as default (good for laptops)",
"Description": "Most modern laptops have connected stadby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
"category": "Essential Tweaks",
@ -1223,11 +1223,6 @@
"StartupType": "Automatic",
"OriginalType": "Automatic"
},
{
"Name": "WwanSvc",
"StartupType": "Manual",
"OriginalType": "Manual"
},
{
"Name": "XblAuthManager",
"StartupType": "Manual",
@ -1585,6 +1580,22 @@
}
]
},
"WPFTweaksConsumerFeatures":{
"Content": "Disable ConsumerFeatures",
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a003_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent",
"OriginalValue": "0",
"Name": "DisableWindowsConsumerFeatures",
"Value": "1",
"Type": "DWord"
}
]
},
"WPFTweaksTele": {
"Content": "Disable Telemetry",
"Description": "Disables Microsoft Telemetry. Note: This will lock many Edge Browser settings. Microsoft spies heavily on you when using the Edge browser.",
@ -1743,13 +1754,6 @@
"Value": "0",
"Type": "DWord"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent",
"OriginalValue": "0",
"Name": "DisableWindowsConsumerFeatures",
"Value": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Siuf\\Rules",
"OriginalValue": "0",
@ -2313,20 +2317,6 @@
"Invoke-WPFTweakPS7 -action \"PS5\""
]
},
"WPFTweaksOO": {
"Content": "Run OO Shutup",
"Description": "Runs OO Shutup and applies the recommended Tweaks. https://www.oo-software.com/en/shutup10",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a009_",
"ToolTip": "Runs OO Shutup and applies the recommended Tweaks https://www.oo-software.com/en/shutup10",
"InvokeScript": [
"Invoke-WPFOOSU -action \"recommended\""
],
"UndoScript": [
"Invoke-WPFOOSU -action \"undo\""
]
},
"WPFTweaksStorage": {
"Content": "Disable Storage Sense",
"Description": "Storage Sense deletes temp files automatically.",
@ -2342,17 +2332,15 @@
},
"WPFTweaksRemoveEdge": {
"Content": "Remove Microsoft Edge - NOT RECOMMENDED",
"Description": "Removes MS Edge when it gets reinstalled by updates.",
"Description": "Removes MS Edge when it gets reinstalled by updates. Credit: AveYo",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a029_",
"InvokeScript": [
"
#:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat
curl.exe -s \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -o $ENV:temp\\edgeremoval.bat
Invoke-WebRequest -Uri \"https://raw.githubusercontent.com/ChrisTitusTech/winutil/main/edgeremoval.bat\" -OutFile \"$ENV:TEMP\\edgeremoval.bat\"
Start-Process $ENV:temp\\edgeremoval.bat
"
],
"UndoScript": [
@ -2408,12 +2396,12 @@
"WPFTweaksDisableLMS1": {
"Content": "Disable Intel MM (vPro LMS)",
"Description": "Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.",
"category": "Essential Tweaks",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a0015_",
"Order": "a026_",
"InvokeScript": [
"
Write-Host \"Kill OneDrive process\"
Write-Host \"Kill LMS\"
$serviceName = \"LMS\"
Write-Host \"Stopping and disabling service: $serviceName\"
Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue;
@ -2457,8 +2445,7 @@
],
"UndoScript": [
"
Write-Host \"Install Microsoft Edge\"
taskkill.exe /F /IM \"OneDrive.exe\"
Write-Host \"LMS vPro needs to be redownloaded from intel.com\"
"
]
@ -2719,7 +2706,7 @@
},
"WPFTweaksBlockAdobeNet": {
"Content": "Adobe Network Block",
"Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. ",
"Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. Credit: Ruddernation-Designs",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a021_",
@ -2982,28 +2969,6 @@
}
]
},
"WPFTweaksEnableipsix": {
"Content": "Enable IPv6",
"Description": "Enables IPv6.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a023_",
"registry": [
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
"Name": "DisabledComponents",
"Value": "0",
"OriginalValue": "0",
"Type": "DWord"
}
],
"InvokeScript": [
"Enable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
],
"UndoScript": [
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
]
},
"WPFToggleDarkMode": {
"Content": "Dark Theme",
"Description": "Enable/Disable Dark Mode.",
@ -3081,11 +3046,19 @@
"Description": "If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a069_",
"Order": "a070_",
"Type": "Toggle"
},
"WPFToggleTaskbarSearch": {
"Content": "Taskbar Search",
"Description": "If Enabled Search Button will be on the taskbar.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a068_",
"Type": "Toggle"
},
"WPFOOSUbutton": {
"Content": "Customize OO Shutup Tweaks",
"Content": "Run OO Shutup 10",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a039_",
@ -3096,7 +3069,7 @@
"Description": "If Enabled then Widgets Icon in Taskbar will be shown.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a068_",
"Order": "a069_",
"Type": "Toggle"
},
"WPFchangedns": {
@ -3141,5 +3114,13 @@
"panel": "2",
"Order": "a082_",
"Type": "300"
},
"WPFToggleTaskView": {
"Content": "Task View",
"Description": "If Enabled then Task View Icon in Taskbar will be shown.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a069_",
"Type": "Toggle"
}
}

View File

@ -30,58 +30,5 @@ function Get-LocalizedYesNo {
Write-Debug "According to takeown.exe local Yes is $charactersArray[0]"
# Return the array of characters
return $charactersArray
}
function Get-LocalizedYesNoTakeown {
<#
.SYNOPSIS
This function runs takeown.exe and captures its output to extract yes no in a localized Windows
.DESCRIPTION
The function retrieves lines from the output of takeown.exe until there are at least 2 characters
captured in a specific format, such as "Yes=<first character>, No=<second character>".
.EXAMPLE
$yesNoArray = Get-LocalizedYesNo
Write-Host "Yes=$($yesNoArray[0]), No=$($yesNoArray[1])"
#>
# Run takeown.exe and capture its output
$takeownOutput = & takeown.exe /? | Out-String
# Parse the output and retrieve lines until there are at least 2 characters in the array
$found = $false
$charactersArray = @()
foreach ($line in $takeownOutput -split "`r`n")
{
# skip everything before /D flag help
if ($found)
{
# now that /D is found start looking for a single character in double quotes
# in help text there is another string in double quotes but it is not a single character
$regexPattern = '"([a-zA-Z])"'
$charactersArray = [regex]::Matches($line, $regexPattern) | ForEach-Object { $_.Groups[1].Value }
# if ($charactersArray.Count -gt 0) {
# Write-Output "Extracted symbols: $($matches -join ', ')"
# } else {
# Write-Output "No matches found."
# }
if ($charactersArray.Count -ge 2)
{
break
}
}
elseif ($line -match "/D ")
{
$found = $true
}
}
Write-Debug "According to takeown.exe local Yes is $charactersArray[0]"
# Return the array of characters
return $charactersArray
}

View File

@ -98,6 +98,15 @@ Function Get-WinUtilToggleStatus {
return $false
}
}
if($ToggleSwitch -eq "WPFToggleTaskbarSearch"){
$SearchButton = (Get-ItemProperty -path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search").SearchboxTaskbarMode
if($SearchButton -eq 0){
return $false
}
else{
return $true
}
}
if ($ToggleSwitch -eq "WPFToggleStickyKeys") {
$StickyKeys = (Get-ItemProperty -path 'HKCU:\Control Panel\Accessibility\StickyKeys').Flags
if($StickyKeys -eq 58){
@ -107,6 +116,15 @@ Function Get-WinUtilToggleStatus {
return $true
}
}
if ($ToggleSwitch -eq "WPFToggleTaskView") {
$TaskView = (Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced').ShowTaskViewButton
if($TaskView -eq 0){
return $false
}
else{
return $true
}
}
if ($ToggleSwitch -eq "WPFToggleTaskbarWidgets") {
$TaskbarWidgets = (Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced").TaskBarDa
if($TaskbarWidgets -eq 0) {

View File

@ -1,19 +1,3 @@
function Invoke-MicroWin-Helper {
<#
.SYNOPSIS
checking unit tests
.PARAMETER Name
no parameters
.EXAMPLE
placeholder
#>
}
function Test-CompatibleImage() {
<#
@ -175,8 +159,14 @@ function Remove-ProvisionedPackages([switch] $keepSecurity = $false)
{
$status = "Removing Provisioned $($appx.PackageName)"
Write-Progress -Activity "Removing Provisioned Apps" -Status $status -PercentComplete ($counter++/$appxProvisionedPackages.Count*100)
try {
Remove-AppxProvisionedPackage -Path $scratchDir -PackageName $appx.PackageName -ErrorAction SilentlyContinue
}
catch {
Write-Host "Application $($appx.PackageName) could not be removed"
continue
}
}
Write-Progress -Activity "Removing Provisioned Apps" -Status "Ready" -Completed
}
else

View File

@ -1,29 +1,21 @@
function Invoke-WinUtilGPU {
$gpuInfo = Get-CimInstance Win32_VideoController
foreach ($gpu in $gpuInfo) {
$gpuName = $gpu.Name
if ($gpuName -like "*NVIDIA*") {
return $true # NVIDIA GPU found
}
}
# GPUs to blacklist from using Demanding Theming
$lowPowerGPUs = (
"*NVIDIA GeForce*M*",
"*NVIDIA GeForce*Laptop*",
"*NVIDIA GeForce*GT*",
"*AMD Radeon(TM)*",
"*UHD*"
)
foreach ($gpu in $gpuInfo) {
$gpuName = $gpu.Name
if ($gpuName -like "*AMD Radeon RX*") {
return $true # AMD GPU Found
foreach ($gpuPattern in $lowPowerGPUs){
if ($gpu.Name -like $gpuPattern) {
return $false
}
}
foreach ($gpu in $gpuInfo) {
$gpuName = $gpu.Name
if ($gpuName -like "*UHD*") {
return $false # Intel Intergrated GPU Found
}
}
foreach ($gpu in $gpuInfo) {
$gpuName = $gpu.Name
if ($gpuName -like "*AMD Radeon(TM)*") {
return $false # AMD Intergrated GPU Found
}
}
return $true
}

View File

@ -0,0 +1,34 @@
function Invoke-WinUtilTaskView {
<#
.SYNOPSIS
Enable/Disable Task View
.PARAMETER Enabled
Indicates whether to enable or disable Task View
#>
Param($Enabled)
Try{
if ($Enabled -eq $false){
Write-Host "Enabling Task View"
$value = 1
}
else {
Write-Host "Disabling Task View"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name ShowTaskViewButton -Value $value
}
Catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
}
Catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
}
Catch{
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}

View File

@ -0,0 +1,34 @@
function Invoke-WinUtilTaskbarSearch {
<#
.SYNOPSIS
Enable/Disable Taskbar Widgets
.PARAMETER Enabled
Indicates whether to enable or disable Taskbar Widgets
#>
Param($Enabled)
Try{
if ($Enabled -eq $false){
Write-Host "Enabling Search Button"
$value = 1
}
else {
Write-Host "Disabling Search Button"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search\"
Set-ItemProperty -Path $Path -Name SearchboxTaskbarMode -Value $value
}
Catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
}
Catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
}
Catch{
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}

View File

@ -178,17 +178,67 @@ $cttLogoPath = @"
$winutilTextBlock.Foreground = $foregroundColor
$winutilTextBlock.Margin = New-Object Windows.Thickness(10, 5, 10, 5) # Add margins around the text block
$stackPanel.Children.Add($winutilTextBlock)
# Add TextBlock for information with text wrapping and margins
$messageTextBlock = New-Object Windows.Controls.TextBlock
$messageTextBlock.Text = $Message
$messageTextBlock.TextWrapping = [Windows.TextWrapping]::Wrap # Enable text wrapping
$messageTextBlock.HorizontalAlignment = [Windows.HorizontalAlignment]::Left
$messageTextBlock.VerticalAlignment = [Windows.VerticalAlignment]::Top
$messageTextBlock.Margin = New-Object Windows.Thickness(10) # Add margins around the text block
# Define the Regex to find hyperlinks formatted as HTML <a> tags
$regex = [regex]::new('<a href="([^"]+)">([^<]+)</a>')
$lastPos = 0
# Iterate through each match and add regular text and hyperlinks
foreach ($match in $regex.Matches($Message)) {
# Add the text before the hyperlink, if any
$textBefore = $Message.Substring($lastPos, $match.Index - $lastPos)
if ($textBefore.Length -gt 0) {
$messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textBefore)))
}
# Create and add the hyperlink
$hyperlink = New-Object Windows.Documents.Hyperlink
$hyperlink.NavigateUri = New-Object System.Uri($match.Groups[1].Value)
$hyperlink.Inlines.Add($match.Groups[2].Value)
$hyperlink.TextDecorations = [Windows.TextDecorations]::None # Remove underline
$hyperlink.Foreground = $foregroundColor
$hyperlink.Add_Click({
param($sender, $args)
Start-Process $sender.NavigateUri.AbsoluteUri
})
$hyperlink.Add_MouseEnter({
param($sender, $args)
$sender.Foreground = [Windows.Media.Brushes]::LightGray
})
$hyperlink.Add_MouseLeave({
param($sender, $args)
$sender.Foreground = $foregroundColor
})
$messageTextBlock.Inlines.Add($hyperlink)
# Update the last position
$lastPos = $match.Index + $match.Length
}
# Add any remaining text after the last hyperlink
if ($lastPos -lt $Message.Length) {
$textAfter = $Message.Substring($lastPos)
$messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($textAfter)))
}
# If no matches, add the entire message as a run
if ($regex.Matches($Message).Count -eq 0) {
$messageTextBlock.Inlines.Add((New-Object Windows.Documents.Run($Message)))
}
# Add the TextBlock to the Grid
$grid.Children.Add($messageTextBlock)
[Windows.Controls.Grid]::SetRow($messageTextBlock, 1) # Set the row to the second row (0-based index)
# Add OK button
$okButton = New-Object Windows.Controls.Button
$okButton.Content = "OK"

View File

@ -26,7 +26,7 @@ function Invoke-WPFButton {
"WPFclear" {Invoke-WPFPresets -preset $null -imported $true}
"WPFclearWinget" {Invoke-WPFPresets -preset $null -imported $true -CheckBox "WPFInstall"}
"WPFtweaksbutton" {Invoke-WPFtweaksbutton}
"WPFOOSUbutton" {Invoke-WPFOOSU -action "customize"}
"WPFOOSUbutton" {Invoke-WPFOOSU}
"WPFAddUltPerf" {Invoke-WPFUltimatePerformance -State "Enabled"}
"WPFRemoveUltPerf" {Invoke-WPFUltimatePerformance -State "Disabled"}
"WPFundoall" {Invoke-WPFundoall}

View File

@ -1,43 +1,20 @@
function Invoke-WPFOOSU {
<#
.SYNOPSIS
Downloads and runs OO Shutup 10 with or without config files
.PARAMETER action
Specifies how OOSU should be started
customize: Opens the OOSU GUI
recommended: Loads and applies the recommended OOSU policies silently
undo: Resets all policies to factory silently
Downloads and runs OO Shutup 10
#>
param (
[ValidateSet("customize", "recommended", "undo")]
[string]$action
)
try {
$OOSU_filepath = "$ENV:temp\OOSU10.exe"
$Initial_ProgressPreference = $ProgressPreference
$ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest
Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath
switch ($action)
{
"customize"{
Write-Host "Starting OO Shutup 10 ..."
Start-Process $OOSU_filepath
}
"recommended"{
$oosu_config = "$ENV:temp\ooshutup10_recommended.cfg"
$sync.configs.ooshutup10_recommended | Out-File -FilePath $oosu_config -Force
Write-Host "Applying recommended OO Shutup 10 Policies"
Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait
}
"undo"{
$oosu_config = "$ENV:temp\ooshutup10_factory.cfg"
$sync.configs.ooshutup10_factory | Out-File -FilePath $oosu_config -Force
Write-Host "Resetting all OO Shutup 10 Policies"
Start-Process $OOSU_filepath -ArgumentList "$oosu_config /quiet" -Wait
}
catch {
Write-Host "Error Downloading and Running OO Shutup 10" -ForegroundColor Red
}
finally {
$ProgressPreference = $Initial_ProgressPreference
}
}

View File

@ -5,6 +5,8 @@ function Invoke-WPFPanelAutologin {
Enables autologin using Sysinternals Autologon.exe
#>
curl.exe -ss "https://live.sysinternals.com/Autologon.exe" -o $env:temp\autologin.exe # Official Microsoft recommendation https://learn.microsoft.com/en-us/sysinternals/downloads/autologon
cmd /c $env:temp\autologin.exe /accepteula
# Official Microsoft recommendation: https://learn.microsoft.com/en-us/sysinternals/downloads/autologon
Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe"
cmd /c "$env:temp\autologin.exe" /accepteula
}

View File

@ -28,5 +28,7 @@ function Invoke-WPFToggle {
"WPFToggleMouseAcceleration" {Invoke-WinUtilMouseAcceleration $(Get-WinUtilToggleStatus WPFToggleMouseAcceleration)}
"WPFToggleStickyKeys" {Invoke-WinUtilStickyKeys $(Get-WinUtilToggleStatus WPFToggleStickyKeys)}
"WPFToggleTaskbarWidgets" {Invoke-WinUtilTaskbarWidgets $(Get-WinUtilToggleStatus WPFToggleTaskbarWidgets)}
"WPFToggleTaskbarSearch" {Invoke-WinUtilTaskbarSearch $(Get-WinUtilToggleStatus WPFToggleTaskbarSearch)}
"WPFToggleTaskView" {Invoke-WinUtilTaskView $(Get-WinUtilToggleStatus WPFToggleTaskView)}
}
}

View File

@ -15,7 +15,7 @@ function Invoke-WPFUnInstall {
$PackagesToInstall = (Get-WinUtilCheckBoxes)["Install"]
if ($PackagesToInstall.Count -eq 0) {
$WarningMsg = "Please select the program(s) to install"
$WarningMsg = "Please select the program(s) to uninstall"
[System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}

View File

View File

@ -133,9 +133,17 @@ $sync.keys | ForEach-Object {
# Load computer information in the background
Invoke-WPFRunspace -ScriptBlock {
try{
$oldProgressPreference = $ProgressPreference
$ProgressPreference = "SilentlyContinue"
$sync.ConfigLoaded = $False
$sync.ComputerInfo = Get-ComputerInfo
$sync.ConfigLoaded = $True
}
finally{
$ProgressPreference = "Continue"
}
} | Out-Null
#===========================================================================
@ -145,9 +153,6 @@ Invoke-WPFRunspace -ScriptBlock {
# Print the logo
Invoke-WPFFormVariables
# Install Winget if not already present
Install-WinUtilWinget
# Set the titlebar
$sync["Form"].title = $sync["Form"].title + " " + $sync.version
# Set the commands that will run when the form is closed
@ -282,19 +287,37 @@ Add-Type @"
}
}
# need to experiemnt more
# setting icon for the windows is still not working
# $pngUrl = "https://christitus.com/images/logo-full.png"
# $pngPath = "$env:TEMP\cttlogo.png"
# $iconPath = "$env:TEMP\cttlogo.ico"
# # Download the PNG file
# Invoke-WebRequest -Uri $pngUrl -OutFile $pngPath
# if (Test-Path -Path $pngPath) {
# ConvertTo-Icon -bitmapPath $pngPath -iconPath $iconPath
# }
# $icon = [System.Drawing.Icon]::ExtractAssociatedIcon($iconPath)
# Write-Host $icon.Handle
# [Window]::SendMessage($windowHandle, 0x80, [IntPtr]::Zero, $icon.Handle)
# Using a TaskbarItem Overlay until someone figures out how to replace the icon correctly
# URL of the image
$imageUrl = "https://christitus.com/images/logo-full.png"
# Download the image
$imagePath = "$env:TEMP\logo-full.png"
Invoke-WebRequest -Uri $imageUrl -OutFile $imagePath
# Read the image file as a byte array
$imageBytes = [System.IO.File]::ReadAllBytes($imagePath)
# Convert the byte array to a Base64 string
$base64String = [System.Convert]::ToBase64String($imageBytes)
# Create a streaming image by streaming the base64 string to a bitmap streamsource
$bitmap = New-Object System.Windows.Media.Imaging.BitmapImage
$bitmap.BeginInit()
$bitmap.StreamSource = [System.IO.MemoryStream][System.Convert]::FromBase64String($base64String)
$bitmap.EndInit()
$bitmap.Freeze()
# Ensure TaskbarItemInfo is created if not already
if (-not $sync["Form"].TaskbarItemInfo) {
$sync["Form"].TaskbarItemInfo = New-Object System.Windows.Shell.TaskbarItemInfo
}
# Set the overlay icon for the taskbar
$sync["Form"].TaskbarItemInfo.Overlay = $bitmap
$rect = New-Object RECT
[Window]::GetWindowRect($windowHandle, [ref]$rect)
@ -467,14 +490,12 @@ $sync["AboutMenuItem"].Add_Click({
# Handle Export menu item click
Write-Debug "About clicked"
$sync["SettingsPopup"].IsOpen = $false
# Example usage
$authorInfo = @"
Author : @christitustech
Runspace : @DeveloperDurp
GUI : @KonTy
MicroWin : @KonTy
GitHub : https://github.com/ChrisTitusTech/winutil
Version : $($sync.version)
Author : <a href="https://github.com/ChrisTitusTech">@christitustech</a>
Runspace : <a href="https://github.com/DeveloperDurp">@DeveloperDurp</a>
MicroWin : <a href="https://github.com/KonTy">@KonTy</a>
GitHub : <a href="https://github.com/ChrisTitusTech/winutil">ChrisTitusTech/winutil</a>
Version : <a href="https://github.com/ChrisTitusTech/winutil/releases/tag/$($sync.version)">$($sync.version)</a>
"@
Show-CustomDialog -Message $authorInfo -Width 400
})

File diff suppressed because it is too large Load Diff

View File

@ -571,6 +571,18 @@
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ScrollVisibilityRectangle" TargetType="Rectangle">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=ComputedHorizontalScrollBarVisibility, ElementName=scrollViewer}" Value="Visible"/>
<Condition Binding="{Binding Path=ComputedVerticalScrollBarVisibility, ElementName=scrollViewer}" Value="Visible"/>
</MultiDataTrigger.Conditions>
<Setter Property="Visibility" Value="Visible"/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
<Grid Background="{MainBackgroundColor}" ShowGridLines="False" Name="WPFMainGrid" Width="Auto" Height="Auto" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
@ -701,18 +713,20 @@
<StackPanel Background="{MainBackgroundColor}" Orientation="Horizontal" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="0" Grid.ColumnSpan="3" Margin="5">
<Button Name="WPFinstall" Content=" Install/Upgrade Selected" Margin="2" />
<Button Name="WPFInstallUpgrade" Content=" Upgrade All" Margin="2"/>
<Button Name="WPFuninstall" Content=" Uninstall Selection" Margin="2"/>
<Button Name="WPFuninstall" Content=" Uninstall Selected" Margin="2"/>
<Button Name="WPFGetInstalled" Content=" Get Installed" Margin="2"/>
<Button Name="WPFclearWinget" Content=" Clear Selection" Margin="2"/>
</StackPanel>
<ScrollViewer Grid.Row="1" Grid.Column="0" Padding="-1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
<ScrollViewer x:Name="scrollViewer" Grid.Row="1" Grid.Column="0" Padding="-1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto"
BorderBrush="Transparent" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
{{InstallPanel_applications}}
</Grid>
</ScrollViewer>
<Rectangle Grid.Row="1" Grid.Column="0" Width="18" Height="18" Fill="{MainBackgroundColor}" HorizontalAlignment="Right" VerticalAlignment="Bottom" Style="{StaticResource ScrollVisibilityRectangle}"/>
</Grid>
</TabItem>
<TabItem Header="Tweaks" Visibility="Collapsed" Name="WPFTab2">