├── .github
├── CODEOWNERS
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── Applications.json.md
│ ├── Tweaks.json.md
│ └── bug_report.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ ├── build.yaml
│ └── powershell.yml
├── .gitignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Initialize
├── main.ps1
├── start.ps1
└── xaml.ps1
├── LICENSE
├── README.md
├── SECURITY.md
├── build.ps1
├── itt.ps1
├── locales
├── ar.csv
├── de.csv
├── en.csv
├── es.csv
├── fr.csv
├── hi.csv
├── it.csv
├── ko.csv
├── ru.csv
├── tr.csv
└── zh.csv
├── newApp.ps1
├── newLocale.ps1
├── newOST.ps1
├── newQuote.ps1
├── newTheme.ps1
├── newTweak.ps1
├── scripts
├── Core
│ ├── 1.Script-Block.ps1
│ ├── 2.Restore-Point.ps1
│ ├── Add-Log.ps1
│ ├── Disable-Service.ps1
│ ├── ExecuteCommand.ps1
│ ├── Finish.ps1
│ ├── Get-CheckBoxes.ps1
│ ├── Get-ToggleStatus.ps1
│ ├── Install-App.ps1
│ ├── Install-Dependencies.ps1
│ ├── Install-Winget.ps1
│ ├── Refresh-Explorer.ps1
│ ├── Remove-Tasks.ps1
│ ├── Save-Load.ps1
│ ├── Set-Registry.ps1
│ ├── Set-Taskbar.ps1
│ ├── Startup-Log.ps1
│ ├── Tap-On-Selection-Changed.ps1
│ └── Uninstall-AppxPackage.ps1
├── Install&Apply
│ ├── apply.ps1
│ └── install.ps1
├── Invoke
│ ├── Invoke-Button.ps1
│ └── Invoke-Toogle.ps1
├── Settings
│ ├── AutoEndTasks.ps1
│ ├── ChangeToThisPC.ps1
│ ├── ClearPageFile.ps1
│ ├── CoreIsolation.ps1
│ ├── DarkMode.ps1
│ ├── Disable-DriversUpdate.ps1
│ ├── HyperV.ps1
│ ├── MouseAcceleration.ps1
│ ├── NumLock.ps1
│ ├── PerformanceOptions.ps1
│ ├── Show-HiddenItems.ps1
│ ├── ShowExt.ps1
│ ├── ShowFile-Icons.ps1
│ ├── ShowTaskbarEnd.ps1
│ ├── StickyKeys.ps1
│ ├── WSL.ps1
│ └── WindowsSandbox.ps1
└── UI
│ ├── About-Dev.ps1
│ ├── Create-Shortcut.ps1
│ ├── Filter-Category.ps1
│ ├── Keyboard-Shortcuts .ps1
│ ├── Message.ps1
│ ├── Notify.ps1
│ ├── Play-Music.ps1
│ ├── Set-Langusege.ps1
│ ├── Set-Theme.ps1
│ ├── Show-Event.ps1
│ ├── Statusbar.ps1
│ ├── Update-UI.ps1
│ └── detected-gpu.ps1
├── static
├── Database
│ ├── Applications.json
│ ├── OST.json
│ ├── Quotes.json
│ ├── Settings.json
│ └── Tweaks.json
├── Icons
│ ├── blog.png
│ ├── done.png
│ ├── error.png
│ ├── github.png
│ ├── icon.ico
│ ├── telegram.png
│ └── youtube.png
├── Images
│ ├── coffee.png
│ ├── gitt.gif
│ ├── happy.jpg
│ ├── logo.png
│ ├── ps.png
│ ├── ps_flag.jpg
│ ├── text_logo.jpg
│ ├── text_logo.png
│ ├── themes.gif
│ ├── themes.webp
│ └── thumbnail.jpg
├── Themes
│ ├── Colors.xaml
│ └── Styles.xaml
└── files
│ └── start2.bin
├── templates
└── README.md
├── themes
├── Dark.xaml
├── DarkKnight.xaml
├── Light.xaml
└── Palestine.xaml
└── xaml
├── Controls
├── Buttons.xaml
├── Menu.xaml
├── Search.xaml
└── Tabs.xaml
└── Views
├── AboutWindow.xaml
├── EventWindow.xaml
└── MainWindow.xaml
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @emadadel4
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | custom: ["https://palestinercs.org"]
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/Applications.json.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: App Request
3 | about: Create app request
4 | title: ''
5 | labels: 'Request'
6 | assignees: ''
7 | ---
8 |
9 | ## App Name
10 |
11 |
12 | ## Description
13 |
14 |
15 | ## Download link
16 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/Tweaks.json.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Tweak Request
3 | about: Create a tweaks request
4 | title: ''
5 | labels: 'Request'
6 | assignees: ''
7 | ---
8 |
9 | ## Script
10 |
11 |
12 | ## Describe The tweak
13 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: 'bug'
6 | assignees: ''
7 | ---
8 | ## Describe the bug
9 |
10 | ## Screenshots
11 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ## Type of Change
2 | - [ ] Refactoring
3 | - [ ] New feature
4 | - [ ] New language
5 | - [ ] Hotfix
6 | - [ ] Bug fix
7 | - [ ] UI improvement
8 | - [ ] Update build script
9 | ## Screenshot (Optional)
10 |
11 | ## Description (Optional)
12 |
--------------------------------------------------------------------------------
/.github/workflows/build.yaml:
--------------------------------------------------------------------------------
1 | name: Build
2 | permissions:
3 | contents: write
4 | actions: read
5 | on:
6 | workflow_dispatch:
7 | push:
8 | paths:
9 | - static/Database/Applications.json
10 | - templates/README.md
11 | - CHANGELOG.md
12 | branches:
13 | - main
14 | jobs:
15 | build-runspace:
16 | runs-on: windows-latest
17 | steps:
18 | - name: Checkout Repository
19 | uses: actions/checkout@v4
20 | - name: Build project
21 | shell: pwsh
22 | run: |
23 | Set-ExecutionPolicy Bypass -Scope Process -Force; ./build.ps1 -Realsee
24 | continue-on-error: false
25 | env:
26 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27 | - name: Commit update
28 | run: |
29 | git config --global user.name "itt-co"
30 | git config --global user.email "167635892+itt-co@users.noreply.github.com"
31 | git add itt.ps1
32 | git add README.md
33 | git commit -m "update"
34 | git push origin main
35 | env:
36 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
37 |
--------------------------------------------------------------------------------
/.github/workflows/powershell.yml:
--------------------------------------------------------------------------------
1 | # This workflow uses actions that are not certified by GitHub.
2 | # They are provided by a third-party and are governed by
3 | # separate terms of service, privacy policy, and support
4 | # documentation.
5 | #
6 | # https://github.com/microsoft/action-psscriptanalyzer
7 | # For more information on PSScriptAnalyzer in general, see
8 | # https://github.com/PowerShell/PSScriptAnalyzer
9 | name: PSScriptAnalyzer
10 | on:
11 | push:
12 | branches: [ "main", "rules" ]
13 | pull_request:
14 | branches: [ "main" ]
15 | schedule:
16 | - cron: '35 17 * * 1'
17 | permissions:
18 | contents: read
19 | jobs:
20 | build:
21 | permissions:
22 | contents: read # for actions/checkout to fetch code
23 | security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
24 | actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
25 | name: PSScriptAnalyzer
26 | runs-on: ubuntu-latest
27 | steps:
28 | - uses: actions/checkout@v4
29 | - name: Run PSScriptAnalyzer
30 | uses: microsoft/psscriptanalyzer-action@6b2948b1944407914a58661c49941824d149734f
31 | with:
32 | # Check https://github.com/microsoft/action-psscriptanalyzer for more info about the options.
33 | # The below set up runs PSScriptAnalyzer to your entire repository and runs some basic security rules.
34 | path: .\
35 | recurse: true
36 | # Include your own basic security rules. Removing this option will run all the rules
37 | includeRule: '"PSAvoidGlobalAliases", "PSAvoidUsingConvertToSecureStringWithPlainText"'
38 | output: results.sarif
39 | # Upload the SARIF file generated in the previous step
40 | - name: Upload SARIF results file
41 | uses: github/codeql-action/upload-sarif@v2
42 | with:
43 | sarif_file: results.sarif
44 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *locales.json
2 | myapps.itt
3 | test.ps1
4 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ###### 04/11/2025
2 |
3 | ## Changelog
4 |
5 | ### 📦 Package manager
6 |
7 | ![itt.xName:preview [https://github.com/emadadel4/itt]](https://github.com/user-attachments/assets/4e5b1040-313f-49cb-8f43-2127ef5d53ac)
8 |
9 | #### Select the package manager used to install packages
10 |
11 | ##### Keyboard Shortcuts
12 |
13 | - Ctrl+A: Clear category filter.
14 | - Ctrl+F: toggle search mode.
15 | - Ctrl+Q: Switch to Apps.
16 | - Ctrl+W: Switch to Tweaks.
17 | - Ctrl+E: Switch to Settings.
18 | - Ctrl+S: Install selected Apps/Tweaks.
19 | - Shift+S: Save selected.
20 | - Shift+D: Load save file.
21 | - Shift+M: Toggle music.
22 | - Shift+P: Open Choco folder.
23 | - Shift+T: Open ITT folder.
24 | - Shift+Q: Restore point.
25 | - Shift+I: ITT Shortcut.
26 | - Ctrl+G: Close application.
27 |
28 | ![itt.xName:preview2 [https://github.com/emadadel4/itt]](https://github.com/user-attachments/assets/2a4fedc7-1d0e-419d-940c-b784edc7d1d1)
29 |
30 | ##### 📥 Download any Youtube video
31 |
32 | ![itt.xName:shell [https://www.youtube.com/watch?v=nI7rUhWeOrA]](https://raw.githubusercontent.com/emadadel4/ShellTube/main/demo.jpg)
33 |
34 | #### Shelltube is simple way to downnload videos and playlist from youtube just Launch it and start download your video you can Launch it from Third-party section.
35 |
36 | ##### 💡 A Secret Feature Awaits – Unlock It
37 |
38 | ![itt.xName:esg [https://github.com/emadadel4/itt]](https://github.com/user-attachments/assets/edb67270-d9d2-4e94-8873-1c822c3afe2f)
39 |
40 | #### Can You Find the Hidden Easter Egg? Open the source code and uncover the secret features waiting for you!
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | emadadel4
2 | yousefmhmd
--------------------------------------------------------------------------------
/Initialize/main.ps1:
--------------------------------------------------------------------------------
1 | #===========================================================================
2 | #region Select elements with a Name attribute using XPath and iterate over them
3 | #===========================================================================
4 | $MainXaml.SelectNodes("//*[@Name]") | ForEach-Object {
5 | $name = $_.Name
6 | $element = $itt["window"].FindName($name)
7 |
8 | if ($element) {
9 | $itt[$name] = $element
10 | $type = $element.GetType().Name
11 |
12 | switch ($type) {
13 | "Button" { $element.Add_Click({ Invoke-Button $this.Name $this.Content }) }
14 | "MenuItem" { $element.Add_Click({ Invoke-Button $this.Name -Content $this.Header }) }
15 | "TextBox" { $element.Add_TextChanged({ Invoke-Button $this.Name $this.Text }) }
16 | "ComboBox" { $element.add_SelectionChanged({ Invoke-Button $this.Name $this.SelectedItem.Content }) }
17 | "TabControl" { $element.add_SelectionChanged({ Invoke-Button $this.Name $this.SelectedItem.Name }) }
18 | "CheckBox" {
19 | $element.IsChecked = Get-ToggleStatus -ToggleSwitch $name
20 | $element.Add_Click({ Invoke-Toggle $this.Name })
21 | }
22 | }
23 | }
24 | }
25 | #===========================================================================
26 | #endregion Select elements with a Name attribute using XPath and iterate over them
27 | #===========================================================================
28 |
29 | # Define OnClosing event handler
30 | $onClosingEvent = {
31 | param($s, $c)
32 | # Show confirmation message box
33 | $result = Message -key "Exit_msg" -icon "ask" -action "YesNo"
34 | if ($result -eq "Yes") {
35 | Manage-Music -action "StopAll"
36 | }
37 | else {
38 | $c.Cancel = $true
39 | }
40 | }
41 |
42 | $itt["window"].Add_ContentRendered({
43 | Startup
44 | Show-Event
45 | })
46 |
47 | # Search input events
48 | $itt.SearchInput.Add_GotFocus({
49 | $itt.Search_placeholder.Visibility = "Hidden"
50 | })
51 |
52 | $itt.SearchInput.Add_LostFocus({
53 | if ([string]::IsNullOrEmpty($itt.SearchInput.Text)) {
54 | $itt.Search_placeholder.Visibility = "Visible"
55 | }
56 | })
57 |
58 | # Quick install
59 | if ($i) {
60 | Quick-Install -file $i *> $null
61 | }
62 |
63 | # Close event handler
64 | $itt["window"].add_Closing($onClosingEvent)
65 |
66 | # Keyboard shortcut
67 | $itt["window"].Add_PreViewKeyDown($KeyEvents)
68 |
69 | # Show Window
70 | $itt["window"].ShowDialog() | Out-Null
71 |
72 | # Dispose of runspaces and other objects
73 | $itt.runspace.Dispose()
74 | $itt.runspace.Close()
75 |
76 | # Collect garbage
77 | [System.GC]::Collect()
78 | [System.GC]::WaitForPendingFinalizers()
79 |
80 | # Stop PowerShell session and release resources
81 | $script:powershell.Dispose()
82 | $script:powershell.Stop()
83 |
84 | # Stop transcript logging
85 | Stop-Transcript *> $null
--------------------------------------------------------------------------------
/Initialize/start.ps1:
--------------------------------------------------------------------------------
1 | param (
2 | # debug start
3 | [switch]$Debug,
4 | # debug end
5 | # Quick install
6 | [string]$i
7 | )
8 |
9 | # Load DLLs
10 | Add-Type -AssemblyName 'System.Windows.Forms', 'PresentationFramework', 'PresentationCore', 'WindowsBase'
11 |
12 | # Synchronized Hashtable for shared variables
13 | $itt = [Hashtable]::Synchronized(@{
14 |
15 | database = @{}
16 | ProcessRunning = $false
17 | lastupdate = "#{replaceme}"
18 | registryPath = "HKCU:\Software\ITT@emadadel"
19 | icon = "https://raw.githubusercontent.com/emadadel4/ITT/main/static/Icons/icon.ico"
20 | Theme = "default"
21 | Date = (Get-Date -Format "MM/dd/yyy")
22 | Music = "0"
23 | PopupWindow = "0"
24 | Language = "default"
25 | ittDir = "$env:ProgramData\itt\"
26 | command = "$($MyInvocation.MyCommand.Definition)"
27 | })
28 |
29 | # Ask user for administrator privileges if not already running as admin
30 | if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
31 | Start-Process -FilePath "PowerShell" -ArgumentList "-ExecutionPolicy Bypass -NoProfile -Command `"$($MyInvocation.MyCommand.Definition)`"" -Verb RunAs
32 | exit
33 |
34 | }
35 |
36 | $itt.mediaPlayer = New-Object -ComObject WMPlayer.OCX
37 | $Host.UI.RawUI.WindowTitle = "Install Twaeks Tool"
38 |
39 | # Create directory if it doesn't exist
40 | $ittDir = $itt.ittDir
41 | if (-not (Test-Path -Path $ittDir)) {New-Item -ItemType Directory -Path $ittDir -Force | Out-Null}
42 |
43 | # Trace the script
44 | $logDir = Join-Path $ittDir 'logs'
45 | $timestamp = Get-Date -Format "yyyy-MM-dd"
46 | Start-Transcript -Path "$logDir\log_$timestamp.log" -Append -NoClobber *> $null
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 | Copyright (c) 2025 Emad Adel
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 | The above copyright notice and this permission notice shall be included in all
10 | copies or substantial portions of the Software.
11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17 | SOFTWARE.
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | ## Install Tweaks Tool
14 |
15 | ITT (Install Tweaks Tool) included most Windows 10/11 Software and Windows Tweaks & Remove Bloatwares & Windows activation
16 |
17 | 
18 | 
19 | 
20 |
21 |
22 |
23 | [](https://t.me/ittcommunity)
24 | [](https://discord.gg/Twyz2Wd5fB)
25 | [](https://www.reddit.com/r/ittea)
26 |
27 | [](/locales/ar.csv) [](/locales/fr.csv) [](/locales/tr.csv) [](/locales/zh.csv) [](/locales/ko.csv) [](/locales/de.csv) [](/locales/ru.csv) [](/locales/es.csv) [](/locales/it.csv) [](/locales/hi.csv)
28 |
29 | ###### 📦 409 Apps • ⚙️ 54 Tweaks • 🔧 17 Settings • 💬 109 Quote • 🎵 28 Soundtrack • 🌐 11 Localization
30 |
31 | [](https://git.io/typing-svg)
32 |
33 |
34 |
35 |
36 |
37 | 
38 |
39 |
40 |
41 | Overview
42 |
43 | - **🚀 Automated Installation**: Say goodbye to manual software installations. ITT automates the process, saving you time and effort.
44 | - **⚙️ Windows Debloater**: Remove bloatware, boost performance, and customize Windows effortlessly with ITT. Optimize your system in minutes.
45 | - **👩💻 Developer-Friendly**: Easy-to-use and clear documentation to add a new app or tweaks as you like, you can create a new method to download apps. Be creative. How to Contribute or App Request
46 | - **🎵 Soundtracks**: Enjoy listening to best music from games and movies while downloading your programs.
47 |
48 | ⚡ Usage
49 |
50 | On Windows 10/11:
51 |
52 | Right-click on the Start menu.
53 | Choose "PowerShell" and paste any of the following commands:
54 |
55 |
56 | > [!CAUTION]
57 | > **LAUNCH THE SCRIPT ONLY USING OFFICIAL COMMANDS FROM THIS REPOSITORY.**
58 | > **IT'S NOT PORTABLE, SO DO NOT DOWNLOAD OR RUN IT FROM ELSEWHERE.**
59 |
60 | irm bit.ly/ittea | iex
61 |
62 | If the URL is blocked in your region try:
63 | irm emadadel4.github.io/itt.ps1 | iex
64 | irm raw.githubusercontent.com/emadadel4/itt/main/itt.ps1 | iex
65 |
66 | > [!NOTE]
67 | > All links point directly to the [itt.ps1](https://raw.githubusercontent.com/emadadel4/itt/refs/heads/main/itt.ps1) file in this repository. You can test them in browser, make sure the link starts with https://
68 |
69 | ## ⚡ Quick Install Your Saved Apps (Run as Admin is recommended)
70 | Example:
71 | iex "& { $(irm bit.ly/ittea) } -i .\myapps.itt"
72 |
73 | # 🤝 How to Contribute
74 |
75 | ### Project Structure:
76 | ```
77 | ├── itt/
78 | │ ├── static/ > Static files (e.g., apps, settings, images, etc.)
79 | │ ├── Initialize/ > Scripts to set up default registry keys and launch the WPF app window
80 | │ ├── locales/ > Localization files for different languages
81 | │ ├── scripts/ > Core functionality scripts (e.g., install, script blocks, utility scripts)
82 | │ ├── templates/ > Template files (e.g., README.md or other templates)
83 | │ ├── themes/ > Theme files that define the application's visual style
84 | │ ├── xaml/ > UI elements and windows (XAML files)
85 | │ ├── build.ps1 > Builds the project and generates the final output script
86 | │ └── itt.ps1 > This is the script that you run using the commands above
87 | ```
88 |
89 | 1. **Make sure you have PowerShell 7 installed (recommended) for building. is available on ITT**
90 |
91 | 2. **Fork the repository and clone it using [Github desktop](https://desktop.github.com/download/). is available on ITT**
92 |
93 | 3. **Open the ITT directory in PowerShell 7 run as administrator:**
94 |
95 | Set-Location "C:\Users\$env:USERNAME\Documents\Github\ITT"
96 |
97 |
98 |
99 | Choose what you want to add.
100 |
101 |
102 | 📦 Add a New App
103 |
104 | .\newApp.ps1
105 |
106 |
107 | ⚙️ Add a New Tweak
108 |
109 | .\newTweak.ps1
110 |
111 |
112 | > [!NOTE]
113 | > Ensure you understand the tweak you are adding and test it before committing.
114 |
115 | 🌐 Add your native language
116 |
117 |
118 | .\newLocale.ps1
119 |
120 |
121 | > Edit locale.csv file using [edit-csv extension ](https://marketplace.visualstudio.com/items?itemName=janisdd.vscode-edit-csv)
122 |
123 | 🎨 Create your own theme
124 |
125 | .\newTheme.ps1
126 |
127 |
128 | 🎵 Add a New Soundtrack
129 |
130 | .\newOST.ps1
131 |
132 |
133 | 📜 Add a New Quote
134 |
135 | .\newQuote.ps1
136 |
137 |
138 | 🛠️ Build and debug
139 |
140 | .\build.ps1 -Debug
141 |
142 |
143 | > [!NOTE]
144 | > Test your changes before you submit the Pull Request
145 |
146 |
147 |
148 |
149 | # 🌟 Support
150 |
151 | **Love the project?** Show your support by clicking the ⭐ (top right) and joining our community of [stargazers](https://github.com/emadadel4/itt/stargazers)!
152 |
153 | [](https://github.com/emadadel4/itt/stargazers)
154 |
155 |
156 | # Resistance Struggling for Justice in an Authoritarian World
157 |
158 | [](https://git.io/typing-svg)
159 |
160 | 
161 |
162 | Don’t hesitate to speak up and join the conversation about Palestine. In this age, each of us has a role in raising awareness. Every post or message can inspire or educate others. Don’t fear expressing yourself, as words are a powerful force to change reality. Make your platforms spaces for dialogue and contribute to creating change. Together, we raise the voices of the oppressed and work toward global justice. Let’s unite for Palestine and restore hope to those who need it.
163 |
164 | [Donation](https://www.palestinercs.org/en/Donation)
165 |
166 | [Other way to support (boycott)](https://boycott4.github.io/boycott/)
167 |
168 | ### Recommended videos.
169 |
170 |
184 |
185 |
186 |
187 | "YouTube continues to remove recommended videos!"
188 |
189 |
190 |
191 | If you can't lift the injustice, at least tell everyone about it.
192 |
193 | إذا لم تستطع رفع الظلم، فعلى الأقل أخبر الجميع عنه.
194 |
195 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 | If you believe you have found a security vulnerability in this project, please report it as soon as possible. Your feedback is crucial to maintaining the security of this project.
3 | ### Content me [Here](https://t.me/emadadel4)
4 |
--------------------------------------------------------------------------------
/locales/ar.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,عربي
3 | Welcome,توفر هذه الأداة تسهيلات كبيرة في عملية تثبيت البرامج وتحسين الويندوز. انضم إلينا وكن جزءًا في تطويرها
4 | System_Info,معلومات النظام
5 | Power_Options,خيارات الطاقة
6 | Device_Manager,إدارة الأجهزة
7 | Services,خدمات
8 | Networks,شبكات
9 | Apps_features,التطبيقات و الميزات
10 | Task_Manager,مدير المهام
11 | Disk_Managment,إدارة القرص
12 | Msconfig,تكوين النظام
13 | Environment_Variables,متغيرات بيئة النظام
14 | Install,تثبيت
15 | Apply,تطبيق
16 | Downloading,...جارٍ التحميل
17 | About,عن الاداة
18 | Third_party,ادوات اخرى
19 | Preferences,التفضيلات
20 | Management,إدارة الجهاز
21 | Apps,برامج
22 | Tweaks,تحسينات
23 | Settings,إعدادات
24 | Save,حفظ البرامج
25 | Restore,أسترجاع البرامج
26 | Music,الموسيقى
27 | On,تشغيل
28 | Off,كتم
29 | Dark,ليلا
30 | Light,نهارا
31 | Use_system_setting,استخدم إعدادات النظام
32 | Create_desktop_shortcut,أنشاء أختصار على سطح المكتب
33 | Reset_preferences,إعادة التفضيلات إلى الوضع الافتراضي
34 | Reopen_itt_again,يرجى اعادة فتح الاداة مرة اخرى
35 | Theme,المظهر
36 | Language,اللغة
37 | Browsers_extensions,أضافات المتصفحات
38 | All,الكل
39 | Search,بحث
40 | Create_restore_point,إنشاء نقطة الاستعادة
41 | Portable_Downloads_Folder,مجلد التنزيلات المحمولة
42 | Install_msg,هل تريد تثبيت البرامج التالية
43 | Apply_msg,هل تريد تطبيق التحسينات التالية
44 | Applying,...جارٍي التطبيق
45 | Please_wait,يرجى الانتظار، يوجد عملية في الخلفية
46 | Last_update,آخر تحديث
47 | Exit_msg,هل أنت متأكد من رغبتك في إغلاق البرنامج؟ إذا كان هناك أي تثبيتات، فسيتم إيقافها.
48 | Empty_save_msg,يرجى اختيار تطبيق واحد على الاقل لحفظه
49 | easter_egg,تقدر تكتشف الميزة المخفية؟ تصفح الكود، وكن أول واحد يكتشف الميزة، ويضيفها للأداة
50 | system_protection,حماية النظام
51 | web_browsers,المتصفحات
52 | media,مشغل
53 | media_tools,أدوات الفيديو
54 | documents,المستندات
55 | compression,الضغط
56 | communication,الاتصال
57 | file_sharing,مشاركة الملفات
58 | imaging,صور
59 | gaming,ألعاب
60 | utilities,أدوات النظام
61 | disk_tools,أدوات القرص
62 | development,تطوير
63 | security,حماية
64 | portable,محمولة
65 | runtimes,مكاتب
66 | drivers,تعريفات
67 | privacy,الخصوصية
68 | fixer,المصحح
69 | performance,الأداء
70 | personalization,التخصيص
71 | power,الطاقة
72 | protection,حماية
73 | classic,كلاسيكي
--------------------------------------------------------------------------------
/locales/de.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,Deutsch
3 | Welcome,Sparen Sie Zeit indem Sie mehrere Programme gleichzeitig instAllieren und die Leistung Ihres Windows steigern. Schließen Sie sich uns an um dieses Tool zu verbessern und noch besser zu machen. Sie können auch Ihre Lieblings-Musik-Apps und Anpassungen hinzufügen.
4 | Install,InstAllieren
5 | Apply,Anwenden
6 | Downloading,Herunterladen...
7 | About,Über
8 | Third_party,Drittanbieter
9 | Preferences,Einstellungen
10 | Management,Verwaltung
11 | Apps,Apps
12 | Tweaks,Optimierungen
13 | Settings,Einstellungen
14 | Save,Speichern
15 | Restore,Wiederherstellen
16 | Music,Musik
17 | On,Ein
18 | Off,Aus
19 | Disk_Managment,Datenträgerverwaltung
20 | Msconfig,Systemkonfiguration
21 | Environment_Variables,Umgebungsvariablen
22 | Task_Manager,Task-Manager
23 | Apps_features,Apps-FunktiOnen
24 | Networks,Netzwerke
25 | Services,Dienste
26 | Device_Manager,Geräte-Manager
27 | Power_Options,EnergieoptiOnen
28 | System_Info,Systeminfo
29 | Use_system_setting,Systemeinstellungen verwenden
30 | Create_desktop_shortcut,Desktop-Verknüpfung erstellen
31 | Reset_preferences,Einstellungen zurücksetzen
32 | Reopen_itt_again,Bitte ITT erneut öffnen.
33 | Theme,Thema
34 | Language,Sprache
35 | Browsers_extensions,Browser-Erweiterungen
36 | All,Alle
37 | Search,Suchen
38 | Create_restore_point,Wiederherstellungspunkt erstellen
39 | Portable_Downloads_Folder,Ordner für tragbare Downloads
40 | Install_msg,Sind Sie sicher dass Sie die folgenden Anwendungen instAllieren möchten?
41 | Apply_msg,Sind Sie sicher dass Sie die folgenden Anpassungen anwenden möchten?
42 | Applying,Anwenden...
43 | Please_wait,Bitte warten ein Prozess läuft im Hintergrund
44 | Last_update,Letztes Update
45 | Exit_msg,Sind Sie sicher dass Sie das Programm schließen möchten? Alle InstAllatiOnen werden abgebrochen.
46 | Empty_save_msg,Wählen Sie mindestens eine App zum Speichern aus
47 | easter_egg, Kannst du das verborgene Geheimnis entdecken? Tauche in den Quellcode ein sei der erste der die Funktion entdeckt und integriere sie in das Tool
48 | system_protection, Systemschutz
49 | web_browsers,Webbrowser
50 | media,Medien
51 | media_tools,Medienwerkzeuge
52 | documents,Dokumente
53 | compression,Komprimierung
54 | communication,Kommunikation
55 | file_sharing,Dateifreigabe
56 | imaging,Bildbearbeitung
57 | gaming,Spiele
58 | utilities,Dienstprogramme
59 | disk_tools,Laufwerkswerkzeuge
60 | development,Entwicklung
61 | security,Sicherheit
62 | portable,Tragbar
63 | runtimes,Laufzeitumgebungen
64 | drivers,Treiber
65 | privacy,Datenschutz
66 | fixer,Reparierer
67 | performance,Leistung
68 | personalization,Personalisierung
69 | power,Energie
70 | protection,Schutz
71 | classic,Klassisch
--------------------------------------------------------------------------------
/locales/en.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,English
3 | Welcome,Save time and install all your programs at once and debloat Windows and more. Be part of ITT and contribute to improving it
4 | Install,Install
5 | Apply,Apply
6 | Downloading,Downloading...
7 | About,About
8 | Third_party,Third-party
9 | Preferences,Preferences
10 | Management,Management
11 | Apps,Apps
12 | Tweaks,Tweaks
13 | Settings,Settings
14 | Save,Save
15 | Restore,Restore
16 | Music,Music
17 | On,On
18 | Off,Off
19 | Disk_Managment,Disk Managment
20 | Msconfig,System Configuration
21 | Environment_Variables,Environment Variables
22 | Task_Manager,Task Manager
23 | Apps_features,Programs and Features
24 | Networks,Networks
25 | Services,Services
26 | Device_Manager,Device Manager
27 | Power_Options,Power options
28 | System_Info,System Info
29 | Use_system_setting,Use system setting
30 | Create_desktop_shortcut,Create desktop shortcut
31 | Reset_preferences,Reset Preferences
32 | Reopen_itt_again,Please reopen itt again.
33 | Theme,Theme
34 | Language,Language
35 | Browsers_extensions,Browsers extensions
36 | All,All
37 | Search,Search
38 | Create_restore_point,Create a restore point
39 | Portable_Downloads_Folder,Portable Downloads Folder
40 | Install_msg,Are you sure you want to install the following App(s)
41 | Apply_msg,Are you sure you want to apply the following Tweak(s)
42 | Applying,Applying...
43 | Please_wait,Please wait a process is running in the background
44 | Last_update,Last update
45 | Exit_msg,Are you sure you want to close the program? Any ongoing installations will be canceled
46 | Empty_save_msg,Choose at least One app to save it
47 | easter_egg,Can you uncover the hidden secret? Dive into the source code be the first to discover the feature and integrate it into the tool
48 | system_protection,System protection
49 | web_browsers,Web Browsers
50 | media,Media
51 | media_tools,Media Tools
52 | documents,Documents
53 | compression,Compression
54 | communication,Communication
55 | file_sharing,File Sharing
56 | imaging,Imaging
57 | gaming,Gaming
58 | utilities,Utilities
59 | disk_tools,Disk Tools
60 | development,Development
61 | security,Security
62 | portable,Portable
63 | runtimes,Runtimes
64 | drivers,Drivers
65 | privacy,Privacy
66 | fixer,Fixer
67 | performance,Performance
68 | personalization,Personalization
69 | power,Power
70 | protection,Protection
71 | classic,Classic
--------------------------------------------------------------------------------
/locales/es.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,Español
3 | Welcome,Ahorra tiempo instalando varios prograMAS a la vez y mejora el rendimiento de tu Windows. Únete a nosotros para mejorar esta herramienta y hacerla aún mejor. También puedes agregar tus aplicaciOnes Musicales y ajustes favoritos.
4 | Install,Instalar
5 | Apply,Aplicar
6 | Downloading,Descargando...
7 | About,Acerca de
8 | Third_party,Terceros
9 | Preferences,Preferencias
10 | Management,Gestión
11 | Apps,AplicaciOnes
12 | Tweaks,Ajustes
13 | Settings,COnfiguración
14 | Save,Guardar
15 | Restore,Restaurar
16 | Music,Música
17 | On,Encendido
18 | Off,Apagado
19 | Disk_Managment,Administración de discos
20 | Msconfig,Configuración del sistema
21 | Environment_Variables,Variables de entorno
22 | Task_Manager,Administrador de tareas
23 | Apps_features,AplicaciOnes-FunciOnes
24 | Networks,Redes
25 | Services,Servicios
26 | Device_Manager,Administrador de dispositivos
27 | Power_Options,OpciOnes de energía
28 | System_Info,Información del sistema
29 | Use_system_setting,Usar la cOnfiguración del sistema
30 | Create_desktop_shortcut,Crear acceso directo en el escritorio
31 | Reset_preferences,Restablecer preferencias
32 | Reopen_itt_again,Vuelve a abrir ITT.
33 | Theme,Tema
34 | Language,Idioma
35 | Browsers_extensions,ExtensiOnes del navegador
36 | All,Todos
37 | Search,Buscar
38 | Create_restore_point,Crear un punto de restauración
39 | Portable_Downloads_Folder,Carpeta de descargas portátiles
40 | Install_msg,¿Estás seguro de que deseas instalar las siguientes aplicaciOnes?
41 | Apply_msg,¿Estás seguro de que deseas aplicar los siguientes ajustes?
42 | Applying,Aplicando...
43 | Please_wait,Por favorespera un proceso se está ejecutando en segundo plano.
44 | Last_update,Última actualización
45 | Exit_msg,¿Estás seguro de que deseas cerrar el programa? Si hay instalaciOnes se interrumpirán.
46 | Empty_save_msg,Elige al menos una aplicación para guardarla.
47 | easter_egg, ¿Puedes descubrir el secreto oculto? Sumérgete en el código fuente sé el primero en descubrir la función e intégrala en la herramienta
48 | system_protection,Protección del sistema
49 | web_browsers,Navegadores web
50 | media,Medios
51 | media_tools,Herramientas multimedia
52 | documents,Documentos
53 | compression,Compresión
54 | communication,Comunicación
55 | file_sharing,Compartición de archivos
56 | imaging,Imágenes
57 | gaming,Juegos
58 | utilities,Utilidades
59 | disk_tools,Herramientas de disco
60 | development,Desarrollo
61 | security,Seguridad
62 | portable,Portátil
63 | runtimes,Runtimes
64 | drivers,Controladores
65 | privacy,Privacidad
66 | fixer,Reparador
67 | performance,Rendimiento
68 | personalization,Personalización
69 | power,Potencia
70 | protection,Protección
71 | classic,Clásico
--------------------------------------------------------------------------------
/locales/fr.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,Français
3 | Welcome,Gagnez du temps en instAllant plusieurs programmes à la fois et améliorez les performances de votre Windows. Rejoignez-nous pour améliorer cet outil et le rendre encore meilleur. Vous pouvez également ajouter vos applicatiOns Musicales et vos Tweaks préférés.
4 | Install,InstAller
5 | Apply,Appliquer
6 | Downloading,Téléchargement...
7 | About,À propos
8 | Third_party,Tiers
9 | Preferences,Préférences
10 | Management,GestiOn
11 | Apps,ApplicatiOns
12 | Tweaks,OptimisatiOns
13 | Settings,Paramètres
14 | Save,Sauvegarder
15 | Restore,Restaurer
16 | Music,Musique
17 | On,Activé
18 | Off,Désactivé
19 | Disk_Managment,GestiOn des disques
20 | Msconfig,Configuration du système
21 | Environment_Variables,Variables d'environnement
22 | Task_Manager,GestiOnnaire des tâches
23 | Apps_features,ApplicatiOns-FOnctiOnnalités
24 | Networks,Réseaux
25 | Services,Services
26 | Device_Manager,GestiOnnaire de périphériques
27 | Power_Options,OptiOns d'alimentatiOn
28 | System_Info,Infos système
29 | Use_system_setting,Utiliser les paramètres système
30 | Create_desktop_shortcut,Créer un raccourci sur le bureau
31 | Reset_preferences,Réinitialiser les préférences
32 | Reopen_itt_again,Veuillez rouvrir ITT.
33 | Theme,Thème
34 | Language,Langue
35 | Browsers_extensions,Browsers_extensions de navigateurs
36 | All,Tout
37 | Search,Rechercher
38 | Create_restore_point,Créer un point de restauratiOn
39 | Portable_Downloads_Folder,Dossier de téléchargements portables
40 | Install_msg,Êtes-vous sûr de vouloir instAller les applicatiOns suivantes ?
41 | Apply_msg,Êtes-vous sûr de vouloir appliquer les Tweaks suivants ?
42 | Applying,ApplicatiOn...
43 | Please_wait,Veuillez patienter
44 | Last_update,Dernière mise à jour un processus est en cours d'exécutiOn en arrière-plan.
45 | Exit_msg,Êtes-vous sûr de vouloir fermer le programme ? Si des instAllatiOns sOnt en cours elles serOnt interrompues
46 | Empty_save_msg,Choisissez au moins une applicatiOn à sauvegarder
47 | easter_egg, Peux-tu découvrir le secret caché ? Plonge dans le code source sois le premier à découvrir la fonctionnalité et intègre-la dans l'outil
48 | system_protection,Protection du système
49 | web_browsers,Navigateurs Web
50 | media,Médias
51 | media_tools,Outils multimédias
52 | documents,Documents
53 | compression,Compression
54 | communication,Communication
55 | file_sharing,Partage de fichiers
56 | imaging,Imagerie
57 | gaming,Jeux
58 | utilities,Utilitaires
59 | disk_tools,Outils de disque
60 | development,Développement
61 | security,Sécurité
62 | portable,Portable
63 | runtimes,Runtimes
64 | drivers,Pilotes
65 | privacy,Confidentialité
66 | fixer,Réparateur
67 | performance,Performance
68 | personalization,Personnalisation
69 | power,Puissance
70 | protection,Protection
71 | classic,Classique
--------------------------------------------------------------------------------
/locales/hi.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,अंग्रेज़ी
3 | Welcome,एक बार में कई प्रोग्राम इंस्टॉल करके समय बचाएं और अपने विंडोज़ के प्रदर्शन को बढ़ावा दें। इस टूल को बेहतर बनाने और इसे और अच्छा बनाने में हमारा साथ दें। आप अपने पसंदीदा म्यूज़िक ऐप्स और ट्विक्स भी जोड़ सकते हैं।
4 | Install,इंस्टॉल करें
5 | Apply,लागू करें
6 | Downloading,डाउनलोड हो रहा है...
7 | About,के बारे में
8 | Third_party,थर्ड-पार्टी
9 | Preferences,पसंद
10 | Management,प्रबंधन
11 | Apps,ऐप्स
12 | Tweaks,ट्विक्स
13 | Settings,सेटिंग्स
14 | Save,सहेजें
15 | Restore,पुनर्स्थापित करें
16 | Music,संगीत
17 | On,चालू
18 | Off,बंद
19 | Disk_Managment,डिस्क प्रबंधन
20 | Msconfig,सिस्टम कॉन्फ़िगरेशन
21 | Environment_Variables,एन्विर्बल वार्डियल्स
22 | Task_Manager,टास्क मैनेजर
23 | Apps_features,ऐप्स-फीचर्स
24 | Networks,नेटवर्क्स
25 | Services,सेवाएँ
26 | Device_Manager,डिवाइस मैनेजर
27 | Power_Options,पावर विकल्प
28 | System_Info,सिस्टम जानकारी
29 | Use_system_setting,सिस्टम सेटिंग का उपयोग करें
30 | Create_desktop_shortcut,डेस्कटॉप शॉर्टकट बनाएं
31 | Reset_preferences,पसंद रीसेट करें
32 | Reopen_itt_again,कृपया इसे फिर से खोलें।
33 | Theme,थीम
34 | Language,भाषा
35 | Browsers_extensions,ब्राउज़र एक्सटेंशन
36 | All,सभी
37 | Search,खोज
38 | Create_restore_point,पुनर्स्थापना बिंदु बनाएँ
39 | Portable_Downloads_Folder,पोर्टेबल डाउनलोड फ़ोल्डर
40 | Install_msg,क्या आप निश्चित हैं कि आप निम्न ऐप्स इंस्टॉल करना चाहते हैं?
41 | Apply_msg,क्या आप निश्चित हैं कि आप निम्न ट्विक्स लागू करना चाहते हैं?
42 | Applying,लागू किया जा रहा है...
43 | Please_wait,कृपया प्रतीक्षा करें बैकग्राउंड में एक प्रक्रिया चल रही है
44 | Last_update,आखिरी अपडेट
45 | Exit_msg,क्या आप निश्चित हैं कि आप प्रोग्राम बंद करना चाहते हैं? यदि कोई इंस्टॉलेशन चल रहा हो तो वह समाप्त हो जाएगा
46 | Empty_save_msg,कम से कम एक ऐप चुनें और उसे सहेजें।
47 | easter_egg, क्या आप छिपे हुए रहस्य को उजागर कर सकते हैं? सोर्स कोड में डूबकी लगाएं पहले व्यक्ति बनें जो फीचर को खोजे और इसे टूल में इंटीग्रेट करें
48 | system_protection,सिस्टम सुरक्षा
49 | web_browsers,वेब ब्राउज़र
50 | media,मीडिया
51 | media_tools,मीडिया उपकरण
52 | documents,दस्तावेज़
53 | compression,संपीड़न
54 | communication,संचार
55 | file_sharing,फ़ाइल साझा करना
56 | imaging,इमेजिंग
57 | gaming,गेमिंग
58 | utilities,उपयोगिताएँ
59 | disk_tools,डिस्क उपकरण
60 | development,विकास
61 | security,सुरक्षा
62 | portable,पोर्टेबल
63 | runtimes,रनटाइम्स
64 | drivers,ड्राइवर
65 | privacy,गोपनीयता
66 | fixer,ठीक करने वाला
67 | performance,प रदर्शन
68 | personalization,वैयक्तिकरण
69 | power,शक्ति
70 | protection,सुरक्षा
71 | classic,क्लासिक
72 |
--------------------------------------------------------------------------------
/locales/it.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,Italiano
3 | Welcome,Risparmia tempo installando più programmi contemporaneamente e migliora le prestazioni di Windows. Unisciti a noi per migliorare questo strumento e renderlo migliore. Puoi anche aggiungere le tue app musicali preferite e le personalizzazioni.
4 | Install,Installa
5 | Apply,Applica
6 | Downloading,Download in corso...
7 | About,Informazioni
8 | Third_party,Terze parti
9 | Preferences,Preferenze
10 | Management,Gestione
11 | Apps,App
12 | Tweaks,Personalizzazioni
13 | Settings,Impostazioni
14 | Save,Salva
15 | Restore,Ripristina
16 | Music,Musica
17 | On,Acceso
18 | Off,Spento
19 | Disk_Managment,Gestione disco
20 | Msconfig,Configurazione di sistema
21 | Environment_Variables,Variabili di ambiente
22 | Task_Manager,Gestore attività
23 | Apps_features,App-Funzionalità
24 | Networks,Reti
25 | Services,Servizi
26 | Device_Manager,Gestore dispositivi
27 | Power_Options,Opzioni risparmio energia
28 | System_Info,Informazioni di sistema
29 | Use_system_setting,Usa impostazioni di sistema
30 | Create_desktop_shortcut,Crea collegamento sul desktop
31 | Reset_preferences,Reimposta preferenze
32 | Reopen_itt_again,Per favore riapri di nuovo.
33 | Theme,Tema
34 | Language,Lingua
35 | Browsers_extensions,Estensioni per browser
36 | All,Tutti
37 | Search,Cerca
38 | Create_restore_point,Crea un punto di ripristino
39 | Portable_Downloads_Folder,Cartella download portatile
40 | Install_msg,Sei sicuro di voler installare le seguenti app?
41 | Apply_msg,Sei sicuro di voler applicare le seguenti personalizzazioni?
42 | Applying,Applicazione in corso...
43 | Please_wait,Attendere un processo è in corso in background
44 | Last_update,Ultimo aggiornamento
45 | Exit_msg,Sei sicuro di voler chiudere il programma? Se ci sono installazioni in corso verranno terminate.
46 | Empty_save_msg,Scegli almeno un'app per salvarla.
47 | easter_egg, Riuscirai a scoprire il segreto nascosto? Tuffati nel codice sorgente sii il primo a scoprire la funzionalità e integrala nello strumento
48 | system_protection,Protezione del sistema
49 | web_browsers,Browser Web
50 | media,Media
51 | media_tools,Strumenti Media
52 | documents,Documenti
53 | compression,Compressione
54 | communication,Comunicazione
55 | file_sharing,Condivisione File
56 | imaging,Imaging
57 | gaming,Giochi
58 | utilities,Utilità
59 | disk_tools,Strumenti Disco
60 | development,Sviluppo
61 | security,Sicurezza
62 | portable,Portatile
63 | runtimes,Runtime
64 | drivers,Driver
65 | privacy,Privacy
66 | fixer,Riparatore
67 | performance,Prestazioni
68 | personalization,Personalizzazione
69 | power,Potenza
70 | protection,Protezione
71 | classic,Classico
--------------------------------------------------------------------------------
/locales/ko.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,한국어
3 | Welcome,여러 프로그램을 한 번에 설치하여 시간을 절약하고 Windows 성능을 향상시킵니다. 도구를 개선하고 우리와 함께 훌륭하게 만들어 보세요.
4 | System_Info,시스템 정보
5 | Power_Options,전원 옵션
6 | Device_Manager,장치 관리자
7 | Services,서비스
8 | Networks,네트워크
9 | Apps_features,앱 기능
10 | Task_Manager,작업 관리자
11 | Disk_Managment,디스크 관리
12 | Msconfig,시스템 구성
13 | Environment_Variables,연습별 변수
14 | Install,설치
15 | Apply,적용
16 | Downloading,다운로드 중
17 | About,정보
18 | Third_party,외부
19 | Preferences,환경 설정
20 | Management,관리
21 | Apps,앱
22 | Tweaks,설정
23 | Settings,설정
24 | Save,선택한 앱 저장
25 | Restore,선택한 앱 복원
26 | Music,음악
27 | On,켜기
28 | Reset_preferences,환경 설정 초기화
29 | Off,끄기
30 | Dark,다크
31 | Light,라이트
32 | Use_system_setting,시스템
33 | Create_desktop_shortcut,바탕화면 바로 가기 만들기
34 | Reopen_itt_again,ITT를 다시 열어주세요.
35 | Theme,테마
36 | Language,언어
37 | Browsers_extensions,브라우저 확장 프로그램
38 | All,모두
39 | Create_restore_point,복원 지점 생성
40 | Portable_Downloads_Folder,휴대용 다운로드 폴더
41 | Install_msg,선택한 앱을 설치하시겠습니까
42 | Apply_msg,선택한 조정 사항을 적용하시겠습니까
43 | instAlling,설치 중..
44 | Applying,적용 중..
45 | Please_wait,배경에서 프로세스가 진행 중입니다. 잠시 기다려주세요.
46 | Last_update,마지막 업데이트
47 | Exit_msg,프로그램을 종료하시겠습니까? 진행 중인 설치가 있으면 중단됩니다.
48 | easter_egg,숨겨진 비밀을 발견할 수 있습니다. 소스 코드에 뛰어들고 최초로 기능을 발견하고 도구에 통합하세요
49 | system_protection,웹 보호
50 | web_browsers,웹 브라우저
51 | media,미디어
52 | media_tools,미디어 도구
53 | documents,문서
54 | compression,압축
55 | communication,커뮤니케이션
56 | file_sharing,파일 공유
57 | imaging,이미지 처리
58 | gaming,게임
59 | utilities,유틸리티
60 | disk_tools,디스크 도구
61 | development,개발
62 | security,보호
63 | portable,포터블
64 | runtimes,런타임
65 | drivers,드라이버
66 | privacy,개인 정보 보호
67 | fixer,수리공
68 | performance,성능
69 | personalization,개인화
70 | power,전력
71 | protection,보호
72 | classic,클래식
73 |
--------------------------------------------------------------------------------
/locales/ru.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,Русский
3 | Welcome,Сэкономьте время устанавливая несколько программ одновременно и улучшите производительность Windows. Присоединяйтесь к нам для улучшения этого инструмента и его совершенствования. Вы также можете добавить свои любимые музыкальные приложения и настройки.
4 | Install,Установить
5 | Apply,Применить
6 | Downloading,Загрузка...
7 | About,О нас
8 | Third_party,Сторонние
9 | Preferences,Настройки
10 | Management,Управление
11 | Apps,Приложения
12 | Tweaks,Настройки
13 | Settings,Параметры
14 | Save,Сохранить
15 | Restore,Восстановить
16 | Music,Музыка
17 | On,Вкл
18 | Off,Выкл
19 | Disk_Managment,Управление дисками
20 | Msconfig,Конфигурация системы
21 | Environment_Variables,Переменные окружения
22 | Task_Manager,Диспетчер задач
23 | Apps_features,Приложения-Функции
24 | Networks,Сети
25 | Services,Сервисы
26 | Device_Manager,Диспетчер устройств
27 | Power_Options,Энергопитание
28 | System_Info,Информация о системе
29 | Use_system_setting,Использовать системные настройки
30 | Create_desktop_shortcut,Создать ярлык на рабочем столе
31 | Reset_preferences,Сбросить настройки
32 | Reopen_itt_again,Пожалуйста перезапустите ITT.
33 | Theme,Тема
34 | Language,Язык
35 | Browsers_extensions,Расширения для браузеров
36 | All,Все
37 | Search,Поиск
38 | Create_restore_point,Создать точку восстановления
39 | Portable_Downloads_Folder,Папка для портативных загрузок
40 | Install_msg,Вы уверены что хотите установить следующие приложения?
41 | Apply_msg,Вы уверены что хотите применить следующие настройки?
42 | Applying,Применение...
43 | Please_wait,Подождите выполняется фоновый процесс.
44 | Last_update,Последнее обновление
45 | Exit_msg,Вы уверены что хотите закрыть программу? Все установки будут прерваны.
46 | Empty_save_msg,Выберите хотя бы одно приложение для сохранения
47 | easter_egg, Можешь ли ты раскрыть скрытый секрет? Погрузись в исходный код стань первым кто обнаружит функцию и интегрируй её в инструмент
48 | system_protection,Системная защита
49 | web_browsers,Веб-браузеры
50 | media,Медиа
51 | media_tools,Медиа-инструменты
52 | documents,Документы
53 | compression,Архивация
54 | communication,Связь
55 | file_sharing,Обмен файлами
56 | imaging,Обработка изображений
57 | gaming,Игры
58 | utilities,Утилиты
59 | disk_tools,Работа с дисками
60 | development,Разработка
61 | security,Безопасность
62 | portable,Портативные
63 | runtimes,Среды выполнения
64 | drivers,Драйверы
65 | privacy,Конфиденциальность
66 | fixer,Исправитель
67 | performance,Производительность
68 | personalization,Персонализация
69 | power,Мощность
70 | protection,Защита
71 | classic,Классический
--------------------------------------------------------------------------------
/locales/tr.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,Türkçe
3 | Welcome,Birden fazla programı aynı anda yükleyerek zaman kazanın ve Windows performansınızı artırın. Bu aracı geliştirmek ve daha da iyileştirmek için bize katılın. Ayrıca favori müzik uygulamalarınızı ve ayarlarınızı da ekleyebilirsiniz.
4 | Install,Yükle
5 | Apply,Uygula
6 | Downloading,İndiriliyor...
7 | About,Hakkında
8 | Third_party,Üçüncü Taraf
9 | Preferences,Tercihler
10 | Management,Yönetim
11 | Apps,Uygulamalar
12 | Tweaks,İnce Ayarlar
13 | Settings,Ayarlar
14 | Save,Kayıt Et
15 | Restore,Geri Yükle
16 | Music,Müzik
17 | On,Açık
18 | Off,Kapalı
19 | Disk_Managment,Disk Yönetimi
20 | Msconfig,Sistem Yapılandırması
21 | Environment_Variables,Ortam Değişkenleri
22 | Task_Manager,Görev Yöneticisi
23 | Apps_features,Uygulamalar-Özellikler
24 | Networks,Ağlar
25 | Services,Hizmetler
26 | Device_Manager,Aygıt Yöneticisi
27 | Power_Options,Güç Seçenekleri
28 | System_Info,Sistem Bilgisi
29 | Use_system_setting,Sistem ayarlarını kullan
30 | Create_desktop_shortcut,MASaüstü kısayolu oluştur
31 | Reset_preferences,Tercihleri sıfırla
32 | Reopen_itt_again,Lütfen ITT'yi tekrar açın.
33 | Theme,Tema
34 | Language,Dil
35 | Browsers_extensions,Tarayıcı Eklentileri
36 | All, Tümü
37 | Search,Ara
38 | Create_restore_point,Geri yükleme noktası oluştur
39 | Portable_Downloads_Folder,Taşınabilir İndirilenler Klasörü
40 | Install_msg,Aşağıdaki uygulamaları yüklemek istediğinizden emin misiniz?
41 | Apply_msg,Aşağıdaki ayarları uygulamak istediğinizden emin misiniz?
42 | Applying,Uygulanıyor...
43 | Please_wait,Lütfen bekleyin arka planda bir işlem çalışıyor
44 | Last_update,SOn güncelleme
45 | Exit_msg,Programı kapatmak istediğinizden emin misiniz? Herhangi bir kurulum varsa durdurulacak
46 | Empty_save_msg,Kaydetmek için en az bir uygulama seçin
47 | easter_egg, Gizli sırrı keşfedebilir misin? Kaynağa dal özelliği ilk keşfeden ol ve araca entegre et
48 | system_protection,Sistem koruması
49 | web_browsers,Web Tarayıcıları
50 | media,Medya
51 | media_tools,Medya Araçları
52 | documents, Belgeler
53 | compression,Sıkıştırma
54 | communication,İletişim
55 | file_sharing,Dosya Paylaşımı
56 | imaging,Görüntü İşleme
57 | gaming,Oyun
58 | utilities,Araçlar
59 | disk_tools,Disk Araçları
60 | development,Geliştirme
61 | security,Güvenlik
62 | portable,Taşınabilir
63 | runtimes,Çalışma Zamanı
64 | drivers,Sürücüler
65 | privacy,Gizlilik
66 | fixer,Düzeltici
67 | performance,Performans
68 | personalization,Kişiselleştirme
69 | power,Güç
70 | protection,Koruma
71 | classic,Klasik
--------------------------------------------------------------------------------
/locales/zh.csv:
--------------------------------------------------------------------------------
1 | Key,Text
2 | name,中文
3 | Welcome,通过一次安装多个程序节省时间并提升您的Windows性能。加入我们,改进工具,使其更加优秀。
4 | System_Info,系统信息
5 | Power_Options,电源选项
6 | Device_Manager,设备管理器
7 | Services,服务
8 | Networks,网络
9 | Apps_features,应用特性
10 | Task_Manager,任务管理器
11 | Disk_Managment,磁盘管理
12 | Msconfig,系统配置
13 | Environment_Variables,环境变量
14 | Install,安装
15 | Apply,应用
16 | Downloading,下载中
17 | About,关于
18 | Third_party,第三方
19 | Preferences,偏好
20 | Management,管理
21 | Apps,应用
22 | Tweaks,调整
23 | Settings,设置
24 | Save,保存选定应用
25 | Restore,恢复选定应用
26 | Music,音乐
27 | On,开启
28 | Off,关闭
29 | Reset_preferences,重置偏好设置
30 | Dark,深色
31 | Light,浅色
32 | Use_system_setting,系统
33 | Create_desktop_shortcut,创建桌面快捷方式
34 | Reopen_itt_again,请重新打开ITT。
35 | Theme,主题
36 | Language,语言
37 | Browsers_extensions,浏览器扩展
38 | All,都
39 | Create_restore_point,创建还原点
40 | Portable_Downloads_Folder,便携下载文件夹
41 | Install_msg,是否要安装选定的应用
42 | Apply_msg,是否要应用选定的调整
43 | instAlling,安装中..
44 | Applying,应用中..
45 | Please_wait,请等待,后台有进程在进行中。
46 | Last_update,最后更新
47 | Exit_msg,您确定要关闭程序吗?如果有任何安装正在进行,它们将被终止。
48 | easter_egg, 你能发现隐藏的秘密吗?深入源代码,成为第一个发现功能的人,并将其集成到工具中
49 | system_protection,系统保护
50 | web_browsers,网页浏览器
51 | media,媒体
52 | media_tools,媒体工具
53 | documents,文档
54 | compression,压缩
55 | communication,通讯
56 | file_sharing,文件共享
57 | imaging,图像处理
58 | gaming,游戏
59 | utilities,实用工具
60 | disk_tools,磁盘工具
61 | development,开发
62 | security,安全
63 | portable,便携版
64 | runtimes,运行时
65 | drivers,驱动程序
66 | privacy,隐私
67 | fixer,修复工具
68 | performance,性能
69 | personalization,个性化
70 | power,电力
71 | protection,保护
72 | classic,经典
--------------------------------------------------------------------------------
/newApp.ps1:
--------------------------------------------------------------------------------
1 | param (
2 | [string]$applications = "./static/Database/Applications.json"
3 | )
4 | Write-Host "
5 | +-------------------------------------------------------------------------+
6 | | ___ _____ _____ ____ _ _____ _ ____ _ ____ _____ |
7 | | |_ _|_ _|_ _| | _ \ / \|_ _|/ \ | __ ) / \ / ___|| ____| |
8 | | | | | | | | | | | |/ _ \ | | / _ \ | _ \ / _ \ \___ \| _| |
9 | | | | | | | | | |_| / ___ \| |/ ___ \| |_) / ___ \ ___) | |___ |
10 | | |___| |_| |_| |____/_/ \_\_/_/ \_\____/_/ \_\____/|_____| |
11 | | Made with ♥ By Emad Adel |
12 | | |
13 | | Choco packages: https://community.chocolatey.org/packages |
14 | | Winget packages: https://winget.run/ & https://winget.ragerworks.com/ |
15 | | ITT packages: https://github.com/itt-co/itt-packages |
16 | +-------------------------------------------------------------------------+
17 | "
18 | #===========================================================================
19 | #region Begin Prompt user to choose download method
20 | #===========================================================================
21 | $Mthoed = @{
22 | 1 = "API [Choco/Winget/ITT]"
23 | }
24 | do {
25 |
26 | Write-Host "Which method to download this app will be?:"
27 |
28 | foreach ($key in $Mthoed.Keys | Sort-Object) {
29 | Write-Host "$key - $($Mthoed[$key])"
30 | }
31 |
32 | $choice = Read-Host "Enter the number corresponding to the methods"
33 |
34 | if ([int]$choice -in $Mthoed.Keys) {
35 | $userInput = $Mthoed[[int]$choice]
36 | }
37 | else {
38 | Write-Host "Invalid choice. Please select a valid option."
39 | }
40 |
41 | } until ([int]$choice -in $Mthoed.Keys)
42 | #===========================================================================
43 | #endregion end Prompt user to choose download method
44 | #===========================================================================
45 | function Check {
46 |
47 | param (
48 | [string]$choco,
49 | [string]$winget,
50 | [string]$itt,
51 | [string]$scoop
52 | )
53 |
54 | $jsonContent = Get-Content -Path $applications -Raw | ConvertFrom-Json
55 |
56 | foreach ($item in $jsonContent) {
57 |
58 | if ($item.choco -eq $choco -and $item.choco -ne "na") {
59 | Write-Host "($choco) already exists!" -ForegroundColor Yellow
60 | exit
61 | }
62 | elseif ($item.winget -eq $winget -and $item.winget -ne "na") {
63 | Write-Host "($winget) already exists!" -ForegroundColor Yellow
64 | exit
65 |
66 | }elseif ($item.itt -eq $itt -and $item.itt -ne "na") {
67 | Write-Host "($itt) already exists!" -ForegroundColor Yellow
68 | exit
69 | }
70 | elseif ($item.scoop -eq $scoop -and $item.scoop -ne "na") {
71 | Write-Host "($scoop) already exists!" -ForegroundColor Yellow
72 | exit
73 | }
74 | }
75 | }
76 | function Create-JsonObject {
77 |
78 | $Name = Read-Host "Enter app name"
79 | $Description = Read-Host "Enter app description"
80 |
81 | # Create the base JSON object
82 | $jsonObject = @{
83 | name = $Name
84 | description = $Description
85 | choco = "na"
86 | scoop = "na"
87 | winget = "na"
88 | itt = "na"
89 | category = ""
90 | }
91 |
92 | $downloadMethod = Download-Mthoed
93 |
94 | # Set the itt ,winget, choco values
95 | $jsonObject.itt = $downloadMethod.itt
96 | $jsonObject.winget = $downloadMethod.winget
97 | $jsonObject.choco = $downloadMethod.choco
98 | $jsonObject.scoop = $downloadMethod.scoop
99 | $jsonObject.category += Category
100 | return $jsonObject
101 | }
102 | function Download-Mthoed {
103 | # Handle the selected method
104 | switch ($userInput) {
105 |
106 | "API [Choco/Winget/ITT]" {
107 |
108 | # choco input
109 | $choco = Read-Host "Enter Chocolatey package name"
110 | $choco = ($choco -replace "choco install", "" -replace ",,", ",").Trim()
111 | if ($choco -eq "") { $choco = "na" } # Set default value if empty
112 | # choco Prompt
113 |
114 | # winget input
115 | $winget = Read-Host "Enter winget package"
116 | if ($winget -eq "") { $winget = "na" } # Set default value if empty
117 | $cleanedWinget = $winget -replace "winget install -e --id", "" -replace "\s+", ""
118 | # winget input
119 |
120 | # itt scoop
121 | $scoop = Read-Host "Enter scoop package name"
122 | if ($scoop -eq "") { $scoop = "na" } # Set default value if empty
123 | # itt scoop
124 |
125 | # itt input
126 | $itt = Read-Host "Enter itt package name"
127 | if ($itt -eq "") { $itt = "na" } # Set default value if empty
128 | # itt input
129 |
130 | # Check if there is dublicate
131 | Check -itt $itt -choco $choco -winget $winget -scoop $scoop
132 |
133 | return @{
134 | choco = $choco
135 | winget = $cleanedWinget
136 | scoop = $scoop
137 | itt = $itt
138 | }
139 | }
140 | }
141 | }
142 | function Category {
143 | #===========================================================================
144 | #region Begin Categories Prompt
145 | #===========================================================================
146 | # Define category options
147 | $validCategories = @{
148 | 1 = "Web Browsers"
149 | 2 = "Media"
150 | 3 = "Media Tools"
151 | 4 = "Documents"
152 | 5 = "Compression"
153 | 6 = "Communication"
154 | 7 = "Gaming"
155 | 8 = "Imaging"
156 | 9 = "Drivers"
157 | 10 = "Utilities"
158 | 11 = "Disk Tools"
159 | 12 = "File Sharing"
160 | 13 = "Development"
161 | 14 = "Runtimes"
162 | 15 = "Portable"
163 | 16 = "Security"
164 | 17 = "GPU Drivers"
165 | }
166 | # Prompt user to choose category
167 | do {
168 | Write-Host "Which category this app will be?:"
169 | foreach ($key in $validCategories.Keys | Sort-Object) {
170 | Write-Host "$key - $($validCategories[$key])"
171 | }
172 | $choice = Read-Host "Enter the number corresponding to the category"
173 | if ([int]$choice -in $validCategories.Keys) {
174 | $category = $validCategories[[int]$choice]
175 | }
176 | else {
177 | Write-Host "Invalid choice. Please select a valid option."
178 | }
179 | } until ([int]$choice -in $validCategories.Keys)
180 | return $category
181 | #===========================================================================
182 | #endregion Categories
183 | #===========================================================================
184 | }
185 | #===========================================================================
186 | #region Begin output json file
187 | #===========================================================================
188 | # Check if the JSON file exists
189 | if (Test-Path $applications) {
190 | # Read existing JSON file
191 | $existingJson = Get-Content -Path $applications -Raw | ConvertFrom-Json
192 | # Create a new JSON object to add
193 | $newJsonObject = Create-JsonObject
194 | # Append the new object to the existing JSON structure
195 | $existingJson += $newJsonObject
196 | # Convert back to JSON format while maintaining the property order
197 | $jsonOutput = @()
198 | foreach ($item in $existingJson) {
199 | $jsonOutput += [PSCustomObject]@{
200 | Name = $item.Name
201 | Description = $item.Description
202 | choco = $item.choco
203 | scoop = $item.scoop
204 | winget = $item.winget
205 | itt = $item.itt
206 | category = $item.category
207 | }
208 | }
209 | # Write the ordered JSON to the file
210 | $jsonOutput | ConvertTo-Json -Depth 20 | Out-File -FilePath $applications -Encoding utf8
211 | Write-Host "Added successfully, Don't forget to build and test it before PR!" -ForegroundColor Green
212 | }
213 | else {
214 | Write-Host "The file $applications does not exist!" -ForegroundColor Red
215 | exit
216 | }
217 | #===========================================================================
218 | #endregion end output json file
219 | #===========================================================================
--------------------------------------------------------------------------------
/newLocale.ps1:
--------------------------------------------------------------------------------
1 | Clear-Host
2 | Write-Host "
3 | +-------------------------------------------------------------------------+
4 | | ___ _____ _____ ____ _ _____ _ ____ _ ____ _____ |
5 | | |_ _|_ _|_ _| | _ \ / \|_ _|/ \ | __ ) / \ / ___|| ____| |
6 | | | | | | | | | | | |/ _ \ | | / _ \ | _ \ / _ \ \___ \| _| |
7 | | | | | | | | | |_| / ___ \| |/ ___ \| |_) / ___ \ ___) | |___ |
8 | | |___| |_| |_| |____/_/ \_\_/_/ \_\____/_/ \_\____/|_____| |
9 | | Made with ♥ By Emad Adel |
10 | +-------------------------------------------------------------------------+
11 | "
12 | Write-Host "[!] Check the locales directory before adding a new Language." -ForegroundColor Yellow
13 | try {
14 | $name = Read-Host "Enter language display name (e.g. English)"
15 | $locales = Read-Host "Enter language code (e.g. en)"
16 | $Author = Read-Host "Enter author name (e.g. Emad Adel)"
17 | $csvFilePath = "$locales"
18 | # Define the cOntent in the desired format
19 | $table = @"
20 | Key,Text
21 | author,"$Author",
22 | name,"$name",
23 | Welcome,Save time and install all your programs at once and debloat Windows and more. Be part of ITT and contribute to improving it
24 | Install,Install
25 | Apply,Apply
26 | Downloading,Downloading...
27 | About,About
28 | Third_party,Third-party
29 | Preferences,Preferences
30 | Management,Management
31 | Apps,Apps
32 | Tweaks,Tweaks
33 | Settings,Settings
34 | Save,Save
35 | Restore,Restore
36 | Music,Music
37 | On,On
38 | Off,Off
39 | Disk_Managment,Disk Managment
40 | Msconfig,System Configuration
41 | Environment_Variables,Environment Variables
42 | Task_Manager,Task Manager
43 | Apps_features,Programs and Features
44 | Networks,Networks
45 | Services,Services
46 | Device_Manager,Device Manager
47 | Power_Options,Power options
48 | System_Info,System Info
49 | Use_system_setting,Use system setting
50 | Create_desktop_shortcut,Create desktop shortcut
51 | Reset_preferences,Reset Preferences
52 | Reopen_itt_again,Please reopen itt again.
53 | Theme,Theme
54 | Language,Language
55 | Browsers_extensions,Browsers extensions
56 | All,All
57 | Search,Search
58 | Create_restore_point,Create a restore point
59 | Portable_Downloads_Folder,Portable Downloads Folder
60 | Install_msg,Are you sure you want to install the following App(s)
61 | Apply_msg,Are you sure you want to apply the following Tweak(s)
62 | Applying,Applying...
63 | Please_wait,Please wait a process is running in the background
64 | Last_update,Last update
65 | Exit_msg,Are you sure you want to close the program? Any ongoing installations will be canceled
66 | Empty_save_msg,Choose at least One app to save it
67 | easter_egg,Can you uncover the hidden secret? Dive into the source code be the first to discover the feature and integrate it into the tool
68 | system_protection,System protection
69 | web_browsers,Web Browsers
70 | media,Media
71 | media_tools,Media Tools
72 | documents,Documents
73 | compression,Compression
74 | communication,Communication
75 | file_sharing,File Sharing
76 | imaging,Imaging
77 | gaming,Gaming
78 | utilities,Utilities
79 | disk_tools,Disk Tools
80 | development,Development
81 | security,Security
82 | portable,Portable
83 | runtimes,Runtimes
84 | drivers,Drivers
85 | privacy,Privacy
86 | fixer,Fixer
87 | performance,Performance
88 | personalization,Personalization
89 | power,Power
90 | protection,Protection
91 | classic,Classic
92 | "@
93 | # Write the cOntent to the CSV file
94 | $csvFilePath = "locales/$csvFilePath.csv"
95 | Set-COntent -Path $csvFilePath -Value $table -Encoding UTF8
96 | Write-Host "Template saved at "$csvFilePath". You can edit the file using any CSV editor such as Excel, or VSCode."
97 | }
98 | catch {
99 | Write-Host "An error occurred: $_"
100 | }
--------------------------------------------------------------------------------
/newOST.ps1:
--------------------------------------------------------------------------------
1 | param (
2 | [string]$json = "./static/Database/OST.json"
3 | )
4 | Write-Host "
5 | +-------------------------------------------------------------------------+
6 | | ___ _____ _____ ____ _ _____ _ ____ _ ____ _____ |
7 | | |_ _|_ _|_ _| | _ \ / \|_ _|/ \ | __ ) / \ / ___|| ____| |
8 | | | | | | | | | | | |/ _ \ | | / _ \ | _ \ / _ \ \___ \| _| |
9 | | | | | | | | | |_| / ___ \| |/ ___ \| |_) / ___ \ ___) | |___ |
10 | | |___| |_| |_| |____/_/ \_\_/_/ \_\____/_/ \_\____/|_____| |
11 | | Made with ♥ By Emad Adel |
12 | +-------------------------------------------------------------------------+
13 | "
14 | try {
15 | # Read existing JSON file
16 | $jsonFilePath = $json
17 | $existingData = Get-Content $json -Raw -ErrorAction Stop | ConvertFrom-Json
18 | # Prompt for input
19 | $name = Read-Host "Enter track name"
20 | $url = Read-Host "Enter URL (Example: emadadel4.github.io/ezio_family.mp3)"
21 | # Store input
22 | $newTrack = @{
23 | name = $name
24 | url = $url
25 | }
26 | # Add new object to existing array
27 | $existingData.Tracks += $newTrack
28 | # Write updated JSON to file
29 | $existingData | ConvertTo-Json -Depth 10 | Set-Content $jsonFilePath -ErrorAction Stop
30 | }
31 | catch {
32 | Write-Host "An error occurred: $_"
33 | }
34 | finally {
35 | Write-Host "Added successfully, Don't forget to build and test it before commit" -ForegroundColor Green
36 | }
37 |
--------------------------------------------------------------------------------
/newQuote.ps1:
--------------------------------------------------------------------------------
1 | param (
2 | [string]$json = "./static/Database/Quotes.json"
3 | )
4 | Write-Host "
5 | +-------------------------------------------------------------------------+
6 | | ___ _____ _____ ____ _ _____ _ ____ _ ____ _____ |
7 | | |_ _|_ _|_ _| | _ \ / \|_ _|/ \ | __ ) / \ / ___|| ____| |
8 | | | | | | | | | | | |/ _ \ | | / _ \ | _ \ / _ \ \___ \| _| |
9 | | | | | | | | | |_| / ___ \| |/ ___ \| |_) / ___ \ ___) | |___ |
10 | | |___| |_| |_| |____/_/ \_\_/_/ \_\____/_/ \_\____/|_____| |
11 | | Made with ♥ By Emad Adel |
12 | +-------------------------------------------------------------------------+
13 | "
14 | try {
15 | # Read existing JSON file
16 | $jsonFilePath = $json
17 | $existingData = Get-Content $jsonFilePath -Raw -ErrorAction Stop | ConvertFrom-Json
18 | $QuotesList = @{
19 | # Available options
20 | 1 = "quote"
21 | 2 = "info"
22 | 3 = "music"
23 | }
24 | # Prompt user to choose mothed
25 | do {
26 | Write-Host "Select text type"
27 | foreach ($key in $QuotesList.Keys | Sort-Object) {
28 | Write-Host "$key - $($QuotesList[$key])"
29 | }
30 | $choice = Read-Host "Enter the number corresponding to the methods"
31 | if ([int]$choice -in $QuotesList.Keys) {
32 | $type = $QuotesList[[int]$choice]
33 | } else {
34 | Write-Host "Invalid choice. Please select a valid option."
35 | }
36 | } until ([int]$choice -in $QuotesList.Keys)
37 | # Prompt for input
38 | $text = Read-Host "Enter text"
39 | $name = Read-Host "Enter author name or source -You can skip this"
40 | # Store input
41 | $Quotes = @{
42 | type = $type
43 | text = $text
44 | }
45 | # Add name only if it's not empty
46 | if (-not [string]::IsNullOrWhiteSpace($name)) {
47 | $Quotes.name = $name
48 | }
49 | # Add new software object to existing array
50 | $existingData.Quotes += $Quotes
51 | # Write updated JSON to file
52 | $existingData | ConvertTo-Json -Depth 4 | Out-File $jsonFilePath -ErrorAction Stop
53 | }
54 | catch {
55 | Write-Host "An error occurred: $_"
56 | }
57 | finally {
58 | Write-Host "Added successfully, Don't forget to build and test it before commit" -ForegroundColor Green
59 | }
--------------------------------------------------------------------------------
/newTheme.ps1:
--------------------------------------------------------------------------------
1 | Write-Host "
2 | +-------------------------------------------------------------------------+
3 | | ___ _____ _____ ____ _ _____ _ ____ _ ____ _____ |
4 | | |_ _|_ _|_ _| | _ \ / \|_ _|/ \ | __ ) / \ / ___|| ____| |
5 | | | | | | | | | | | |/ _ \ | | / _ \ | _ \ / _ \ \___ \| _| |
6 | | | | | | | | | |_| / ___ \| |/ ___ \| |_) / ___ \ ___) | |___ |
7 | | |___| |_| |_| |____/_/ \_\_/_/ \_\____/_/ \_\____/|_____| |
8 | | Made with ♥ By Emad Adel |
9 | +-------------------------------------------------------------------------+
10 | "
11 | try {
12 | # Prompt the user for the name and author
13 | $themeName = Read-Host -Prompt "Enter theme name (e.g., The Dark Knight)"
14 | $authorName = Read-Host -Prompt "Enter author name (e.g., Emad Adel)"
15 | $Key = $themeName -replace , '[^\w]', ''
16 | # Define the path for the Theme folder
17 | $themeFolderPath = "themes"
18 | # Create the Theme folder if it doesn't exist
19 | if (-not (Test-Path -Path $themeFolderPath)) {
20 | New-Item -ItemType Directory -Path $themeFolderPath | Out-Null
21 | }
22 | # Define the file name based on the theme name
23 | $fileName = "$themeFolderPath\$($themeName -replace '_', '' -replace ' ', '' -replace '[^\w]', '').xaml"
24 | # Generate the ResourceDictionary content
25 | $resourceDictionary = @"
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | Install Tweaks Tool
64 |
65 |
66 |
67 | "@
68 | # Save the ResourceDictionary content to a file
69 | Set-Content -Path $fileName -Value $resourceDictionary
70 | # Output the location of the saved file
71 | Write-Output "Theme has been successfully generated and saved to: $fileName" -ForegroundColor Green
72 | Write-Output "Feel free to customize the colors and create your own cool theme!"
73 | }
74 | catch {
75 | Write-Host "An error occurred: $_"
76 | }
--------------------------------------------------------------------------------
/newTweak.ps1:
--------------------------------------------------------------------------------
1 | Write-Host "
2 | +-------------------------------------------------------------------------+
3 | | ___ _____ _____ ____ _ _____ _ ____ _ ____ _____ |
4 | | |_ _|_ _|_ _| | _ \ / \|_ _|/ \ | __ ) / \ / ___|| ____| |
5 | | | | | | | | | | | |/ _ \ | | / _ \ | _ \ / _ \ \___ \| _| |
6 | | | | | | | | | |_| / ___ \| |/ ___ \| |_) / ___ \ ___) | |___ |
7 | | |___| |_| |_| |____/_/ \_\_/_/ \_\____/_/ \_\____/|_____| |
8 | | Made with ♥ By Emad Adel |
9 | +-------------------------------------------------------------------------+
10 | "
11 | # Function to create JSON structure
12 | function Create-JsonObject {
13 | $Name = Read-Host "Tweak name"
14 | $Description = Read-Host "Description"
15 | $jsonObject = @{
16 | Name = $Name
17 | Description = $Description
18 | Check = "false"
19 | Category = ""
20 | Refresh = "false"
21 | Registry = @()
22 | AppxPackage = @()
23 | ScheduledTask = @()
24 | Script = @()
25 | UndoScript = @()
26 | Services = @()
27 | }
28 | $jsonObject.Category += Category
29 | $addRemoveCommands = Read-Host "Do you want to add 'Command' in this tweak? (y/n)"
30 | if ($addRemoveCommands -eq "y") {
31 | $jsonObject.Script += Add-Commands
32 | }
33 | # Prompt user to add items to specific properties
34 | $addRemoveTasks = (Read-Host "Do you want to add 'Remove ScheduledTask' in this tweak? (y/n)").ToLower()
35 | if ($addRemoveTasks -eq "y") {
36 | $jsonObject.ScheduledTask += Add-RemoveTasks
37 | }
38 | $addRegistry = Read-Host "Do you want to Modify 'Registry' in this tweak? (y/n)"
39 | if ($addRegistry -eq "y") {
40 | $jsonObject.Registry += Add-Registry
41 | }
42 | # Prompt user to add Appx packages
43 | $addRemoveAppxPackage = Read-Host "Do you want to Remove 'AppxPackage' in this tweak? (y/n)"
44 | if ($addRemoveAppxPackage -eq "y") {
45 | $jsonObject.AppxPackage += Add-AppxPackage
46 | }
47 | $addServices = Read-Host "Do you want to add 'Services' in this tweak? (y/n)"
48 | if ($addServices -eq "y") {
49 | $jsonObject.Services += Add-Services
50 | }
51 | return $jsonObject
52 | }
53 | function Category {
54 | # category
55 | $ActionType = @{
56 | 1 = "Privacy"
57 | 2 = "Fixer"
58 | 3 = "Performance"
59 | 4 = "Personalization"
60 | 5 = "Power"
61 | 6 = "Protection"
62 | 7 = "Classic"
63 | }
64 | do {
65 | Write-Host "Which category will this tweak belong to?"
66 | foreach ($key in $ActionType.Keys | Sort-Object) {
67 | Write-Host "$key - $($ActionType[$key])"
68 | }
69 | $choice = Read-Host "Enter the number corresponding to the Tweak Type"
70 | if ([int]$choice -in $ActionType.Keys) {
71 | $category = $ActionType[[int]$choice]
72 | } else {
73 | Write-Host "Invalid choice. Please select a valid option."
74 | }
75 | } until ([int]$choice -in $ActionType.Keys)
76 | # category
77 | return $category
78 | }
79 | # Function to add Command
80 | function Add-Commands {
81 | $Commands = @() # Initialize an array for tasks
82 | do {
83 | $cmd = Read-Host "Enter a command"
84 | $Commands += $cmd
85 | # Ask if the user wants to add another task
86 | $addAnotherCommand = Read-Host "Do you want to add another command? (y/n)"
87 | } while ($addAnotherCommand -eq "y")
88 | return $Commands
89 | }
90 | # Function to add tasks to RemoveTasks
91 | function Add-RemoveTasks {
92 | $tasks = @() # Initialize an array for tasks
93 | do {
94 | $task = Read-Host "Enter ScheduledTask name"
95 | $tasks += $task
96 | # Ask if the user wants to add another task
97 | $addAnotherTask = Read-Host "Do you want to add another task? (yes/no)"
98 | } while ($addAnotherTask -eq "yes")
99 | return $tasks
100 | }
101 | # Function to add Services
102 | function Add-Services {
103 | $ServicesEntries = @() # Initialize an array
104 | do {
105 | # StartupType
106 | $StartupType = @{
107 | 1 = "Disabled"
108 | 2 = "Automatic"
109 | 4 = "Manual "
110 | }
111 | do {
112 | Write-Host "Which category will this tweak belong to?"
113 | foreach ($key in $StartupType.Keys | Sort-Object) {
114 | Write-Host "$key - $($StartupType[$key])"
115 | }
116 | $choice = Read-Host "Enter the number corresponding to the Tweak Type"
117 | if ([int]$choice -in $StartupType.Keys) {
118 | $type = $StartupType[[int]$choice]
119 | } else {
120 | Write-Host "Invalid choice. Please select a valid option."
121 | }
122 | } until ([int]$choice -in $StartupType.Keys)
123 | # StartupType
124 | # Create a new entry for Modify
125 | $Services = @{
126 | Name = Read-Host "Enter Service name"
127 | StartupType = $type
128 | DefaultType = "Manual"
129 | }
130 | $ServicesEntries += $Services # Add the entry to the array
131 | # Ask if the user wants to add another Modify entry
132 | $continue = Read-Host "Do you want to add another Service entry? (y/n)"
133 | } while ($continue -eq "y")
134 | return $ServicesEntries
135 | }
136 | # Function to add modify entries to Registry
137 | function Add-Registry {
138 | $modifyEntries = @() # Initialize an array
139 | do {
140 | # ValueType
141 | $ValueType = @{
142 | 1 = "DWord"
143 | 2 = "Qword"
144 | 3 = "Binary"
145 | 4 = "String"
146 | 5 = "MultiString"
147 | 6 = "ExpandString"
148 | 7 = "LINK"
149 | 8 = "NONE"
150 | 9 = "QWORD_LITTLE_ENDIAN"
151 | }
152 | do {
153 | Write-Host "What is the value type"
154 | foreach ($key in $ValueType.Keys | Sort-Object) {
155 | Write-Host "$key - $($ValueType[$key])"
156 | }
157 | $choice = Read-Host "Enter the number corresponding to the Tweak Type"
158 | if ([int]$choice -in $ValueType.Keys) {
159 | $type = $ValueType[[int]$choice]
160 | } else {
161 | Write-Host "Invalid choice. Please select a valid option."
162 | }
163 | } until ([int]$choice -in $ValueType.Keys)
164 | # ValueType
165 | # Create a new entry for Registry
166 | $modifyEntry = @{
167 | Path = Read-Host "Enter Path"
168 | Name = Read-Host "Enter value Name"
169 | Type = $type
170 | Value = Read-Host "Enter Value"
171 | DefaultValue = Read-Host "Enter Default Value"
172 | }
173 | $modifyEntries += $modifyEntry # Add the entry to the Modify array
174 | # Ask if the user wants to add another Modify entry
175 | $continue = Read-Host "Do you want to add another Modify entry? (y/n)"
176 | } while ($continue -eq "y")
177 | return $modifyEntries
178 | }
179 | # Function to add Appx packages
180 | function Add-AppxPackage {
181 | $appxPackages = @() # Initialize an array for Appx packages
182 | do {
183 | $packageName = Read-Host "Enter Appx package name'"
184 | $appxPackages += $packageName
185 | # Ask if the user wants to add another Appx package
186 | $addAnotherAppx = Read-Host "Do you want to add another Appx package? (y/n)"
187 | } while ($addAnotherAppx -eq "y")
188 | return $appxPackages
189 | }
190 | # Main script execution
191 | $outputFilePath = "./static/Database/Tweaks.json"
192 | # Check if the JSON file exists
193 | if (Test-Path $outputFilePath) {
194 | # Read existing JSON file
195 | $existingJson = Get-Content -Path $outputFilePath -Raw | ConvertFrom-Json
196 | # Create a new JSON object to add
197 | $newJsonObject = Create-JsonObject
198 | # Append the new object to the existing JSON structure
199 | $existingJson += $newJsonObject
200 | # Convert back to JSON format while maintaining the property order
201 | $jsonOutput = @()
202 | foreach ($item in $existingJson) {
203 | $jsonOutput += [PSCustomObject]@{
204 | Name = $item.Name
205 | Description = $item.Description
206 | Category = $item.Category
207 | Check = $item.Check
208 | Refresh = $item.Refresh
209 | Script = $item.Script
210 | UndoScript = $item.UndoScript
211 | ScheduledTask = $item.ScheduledTask
212 | AppxPackage = $item.AppxPackage
213 | Services = $item.Services
214 | Registry = $item.Registry
215 | }
216 | }
217 | # Write the ordered JSON to the file
218 | $jsonOutput | ConvertTo-Json -Depth 20 | Out-File -FilePath $outputFilePath -Encoding utf8
219 | Write-Host "Added successfully to existing JSON file. Don't forget to build and test it before commit" -ForegroundColor Green
220 | } else {
221 | Write-Host "The file $outputFilePath does not exist!" -ForegroundColor Red
222 | }
223 |
--------------------------------------------------------------------------------
/scripts/Core/1.Script-Block.ps1:
--------------------------------------------------------------------------------
1 | function ITT-ScriptBlock {
2 | <#
3 | .SYNOPSIS
4 | Executes a given script block asynchronously within a specified runspace.
5 | .DESCRIPTION
6 | This function creates a new PowerShell instance to execute a provided script block asynchronously. It accepts an optional array of arguments to pass to the script block and manages the runspace and PowerShell instance resources. The function ensures that resources are properly disposed of after the script block completes execution.
7 | .EXAMPLE
8 | ITT-ScriptBlock -ScriptBlock { param($arg1) Write-Output $arg1 } -ArgumentList @("Hello, World!")
9 | Executes the script block that outputs the provided argument "Hello, World!" asynchronously.
10 | #>
11 | param(
12 | [scriptblock]$ScriptBlock,
13 | [array]$ArgumentList,
14 | $Debug
15 | )
16 | $script:powershell = [powershell]::Create()
17 | # Add the script block and arguments to the runspace
18 | $script:powershell.AddScript($ScriptBlock)
19 | $script:powershell.AddArgument($ArgumentList)
20 | $script:powershell.AddArgument($Debug)
21 | $script:powershell.RunspacePool = $itt.runspace
22 | # Begin running the script block asynchronously
23 | $script:handle = $script:powershell.BeginInvoke()
24 | # If the script has completed, clean up resources
25 | if ($script:handle.IsCompleted) {
26 | $script:powershell.EndInvoke($script:handle)
27 | $script:powershell.Dispose()
28 | $itt.runspace.Dispose()
29 | $itt.runspace.Close()
30 | [System.GC]::Collect()
31 | }
32 |
33 | return $handle
34 | }
--------------------------------------------------------------------------------
/scripts/Core/2.Restore-Point.ps1:
--------------------------------------------------------------------------------
1 | function CreateRestorePoint {
2 |
3 | <#
4 | .SYNOPSIS
5 | Create Restore Point
6 | #>
7 |
8 | try {
9 | Set-Statusbar -Text "✋ Please wait Creating a restore point..."
10 | Set-ItemProperty "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore" "SystemRestorePointCreationFrequency" 0 -Type DWord -Force
11 | powershell.exe -NoProfile -Command {
12 | Enable-ComputerRestore -Drive $env:SystemDrive
13 | Checkpoint-Computer -Description ("ITT-" + (Get-Date -Format "yyyyMMdd-hhmmss-tt")) -RestorePointType "MODIFY_SETTINGS"
14 | }
15 | Set-ItemProperty $itt.registryPath "backup" 1 -Force
16 | Set-Statusbar -Text "✔ Created successfully. Applying tweaks..."
17 | } catch {
18 | Add-Log "Error: $_" "ERROR"
19 | }
20 | }
--------------------------------------------------------------------------------
/scripts/Core/Add-Log.ps1:
--------------------------------------------------------------------------------
1 | function Add-Log {
2 |
3 | <#
4 | .SYNOPSIS
5 | Custom Write-Host Display Text with icon and name
6 | #>
7 |
8 | param ([string]$Message, [string]$Level = "Default")
9 |
10 | $level = $Level.ToUpper()
11 | $colorMap = @{ INFO="White"; WARNING="Yellow"; ERROR="Red"; INSTALLED="White"; APPLY="White"; DEBUG="Yellow" }
12 | $iconMap = @{ INFO="[+]"; WARNING="[!]"; ERROR="[X]"; DEFAULT=""; DEBUG="[Debug]"; ITT="[ITT]"; Chocolatey="[Chocolatey]"; Winget="[Winget]" }
13 |
14 | $color = if ($colorMap.ContainsKey($level)) { $colorMap[$level] } else { "White" }
15 | $icon = if ($iconMap.ContainsKey($level)) { $iconMap[$level] } else { "i" }
16 |
17 | Write-Host "$icon $Message" -ForegroundColor $color
18 | }
--------------------------------------------------------------------------------
/scripts/Core/Disable-Service.ps1:
--------------------------------------------------------------------------------
1 | function Disable-Service {
2 |
3 | <#
4 | .SYNOPSIS
5 | Disables a specified service by changing its startup type and stopping it.
6 | .DESCRIPTION
7 | This function disables a Windows service by first changing its startup type to the specified value, then stopping the service if it is running. The function logs the outcome of the operation, including whether the service was found and successfully disabled or if an error occurred.
8 | .PARAMETER ServiceName
9 | The name of the service to be disabled. This is a required parameter.
10 | .PARAMETER StartupType
11 | The desired startup type for the service. Common values include 'Disabled', 'Manual', and 'Automatic'. This is a required parameter.
12 | .EXAMPLE
13 | Disable-Service -ServiceName "wuauserv" -StartupType "Disabled"
14 | #>
15 |
16 | param([array]$tweak)
17 |
18 | foreach ($serv in $tweak) {
19 | try {
20 | Add-Log -Message "Setting Service $($serv.Name)" -Level "info"
21 | $service = Get-Service -Name $serv.Name -ErrorAction Stop
22 | Stop-Service -Name $serv.Name -ErrorAction Stop
23 | $service | Set-Service -StartupType $serv.StartupType -ErrorAction Stop
24 | }
25 | catch {
26 | Add-Log -Message "Service $Name was not found" -Level "info"
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/scripts/Core/ExecuteCommand.ps1:
--------------------------------------------------------------------------------
1 | function ExecuteCommand {
2 |
3 | <#
4 | .SYNOPSIS
5 | Executes a PowerShell command in a new process.
6 | .DESCRIPTION
7 | This function starts a new PowerShell process to execute the specified command.
8 | .EXAMPLE
9 | ExecuteCommand -Name "Greeting" -Command "Write-Output 'Welcome to ITT'"
10 | Executes the PowerShell command `Write-Output 'Welcome to ITT'` in a new PowerShell process.
11 | #>
12 |
13 | param ([array]$tweak)
14 |
15 | try {
16 | foreach ($cmd in $tweak) {
17 | Add-Log -Message "Please wait..."
18 | $script = [scriptblock]::Create($cmd)
19 | Invoke-Command $script -ErrorAction Stop
20 | }
21 | } catch {
22 | Add-Log -Message "The specified command was not found." -Level "WARNING"
23 | }
24 | }
--------------------------------------------------------------------------------
/scripts/Core/Finish.ps1:
--------------------------------------------------------------------------------
1 | function Finish {
2 |
3 | <#
4 | .SYNOPSIS
5 | Clears checkboxes in a specified ListView and displays a notification.
6 | .DESCRIPTION
7 | Clears all checkboxes in the ListView named "myListView" and displays a notification with the title "Process Completed", message "All items have been processed", and icon "Success".
8 | #>
9 |
10 | param (
11 | [string]$ListView,
12 | [string]$title = "ITT Emad Adel",
13 | [string]$icon = "Info"
14 | )
15 | switch ($ListView) {
16 | "AppsListView" {
17 | UpdateUI -Button "InstallBtn" -Content "Install" -Width "140"
18 | Notify -title "$title" -msg "All installations have finished" -icon "Info" -time 30000
19 | Add-Log -Message "::::All installations have finished::::"
20 | Set-Statusbar -Text "📢 All installations have finished"
21 | }
22 | "TweaksListView" {
23 | UpdateUI -Button "ApplyBtn" -Content "Apply" -Width "140"
24 | Add-Log -Message "::::All tweaks have finished::::"
25 | Set-Statusbar -Text "📢 All tweaks have finished"
26 | Notify -title "$title" -msg "All tweaks have finished" -icon "Info" -time 30000
27 | }
28 | }
29 |
30 | # Reset Taskbar Progress
31 | $itt["window"].Dispatcher.Invoke([action] { Set-Taskbar -progress "None" -value 0.01 -icon "done" })
32 |
33 | # Uncheck all items in ListView
34 | $itt.$ListView.Dispatcher.Invoke([Action] {
35 | # Uncheck all items
36 | foreach ($item in $itt.$ListView.Items) {
37 | if ($item.Children.Count -gt 0 -and $item.Children[0].Children.Count -gt 0) {
38 | $item.Children[0].Children[0].IsChecked = $false
39 | }
40 | }
41 |
42 | # Clear the list view selection and reset the filter
43 | $collectionView = [System.Windows.Data.CollectionViewSource]::GetDefaultView($itt.$ListView.Items)
44 | $collectionView.Filter = $null
45 | $collectionView.Refresh()
46 |
47 | # Close window after install apps
48 | # if ($i -ne "") {
49 | # Manage-Music -action "StopAll"
50 | # $itt["window"].Close()
51 | # }
52 | })
53 | }
54 | function Show-Selected {
55 | param (
56 | [string]$ListView,
57 | [string]$mode
58 | )
59 |
60 | $collectionView = [System.Windows.Data.CollectionViewSource]::GetDefaultView($itt.$ListView.Items)
61 |
62 | switch ($mode) {
63 | "Filter" {
64 | $collectionView.Filter = {
65 | param ($item)
66 |
67 | # Check if item is selected
68 | return $item.Children[0].Children[0].IsChecked -eq $true
69 | }
70 | }
71 | Default {
72 |
73 | $collectionView.Filter = {
74 | param ($item)
75 |
76 | # Uncheck all checkboxes
77 | $item.Children[0].Children[0].IsChecked = $false
78 | }
79 |
80 | # Reset collection view
81 | $collectionView.Filter = $null
82 | }
83 | }
84 | }
--------------------------------------------------------------------------------
/scripts/Core/Get-CheckBoxes.ps1:
--------------------------------------------------------------------------------
1 | function Get-SelectedItems {
2 |
3 | <#
4 | .SYNOPSIS
5 | Retrieves selected items from the ListView based on the specified mode.
6 | .DESCRIPTION
7 | This function collects information about selected items from a ListView, depending on the mode specified. It extracts data from the ListView items that have checkboxes that are checked and returns this information in a structured format.
8 | .PARAMETER Mode
9 | Specifies the mode for item retrieval. Options include:
10 | - `Apps`: Retrieves information about selected applications from the `AppsListView`.
11 | - `Tweaks`: Retrieves information about selected tweaks from the `TweaksListView`.
12 | .EXAMPLE
13 | Get-SelectedItems -Mode "Apps"
14 | Retrieves and returns a list of selected applications from the `AppsListView`.
15 | #>
16 |
17 | param ([string]$Mode)
18 |
19 | switch ($Mode) {
20 | "Apps" {
21 |
22 | $items = @()
23 |
24 | foreach ($item in $itt.AppsListView.Items) {
25 |
26 | $checkbox = $item.Children[0].Children[0]
27 |
28 | $tags = $item.Children[0].Children[0].Tag -split "\|"
29 |
30 | if ($checkbox.IsChecked) {
31 |
32 | $items += @{
33 | Name = $checkbox.Content
34 | Choco = $tags[0]
35 | Scoop = $tags[1]
36 | Winget = $tags[2]
37 | ITT = $tags[3]
38 | }
39 | }
40 | }
41 | }
42 | "Tweaks" {
43 |
44 | $items = @()
45 |
46 | foreach ($item in $itt.TweaksListView.Items) {
47 |
48 | $child = $item.Children[0].Children[0]
49 |
50 | if ($tweaksDict.ContainsKey($child.Content) -and $child.IsChecked) {
51 |
52 | $items += @{
53 |
54 | Name = $tweaksDict[$child.Content].Name
55 | Registry = $tweaksDict[$child.Content].Registry
56 | Services = $tweaksDict[$child.Content].Services
57 | ScheduledTask = $tweaksDict[$child.Content].ScheduledTask
58 | AppxPackage = $tweaksDict[$child.Content].AppxPackage
59 | Script = $tweaksDict[$child.Content].Script
60 | UndoScript = $tweaksDict[$child.Content].UndoScript
61 | Refresh = $tweaksDict[$child.Content].Refresh
62 | # Add a new tweak method here
63 | }
64 | }
65 | }
66 | }
67 | }
68 | return $items
69 | }
--------------------------------------------------------------------------------
/scripts/Core/Get-ToggleStatus.ps1:
--------------------------------------------------------------------------------
1 | function Get-ToggleStatus {
2 |
3 | <#
4 | .SYNOPSIS
5 | Checks the status of various system toggle switches based on the provided parameter.
6 | .DESCRIPTION
7 | This function retrieves the status of the specified toggle switch.
8 | .EXAMPLE
9 | Get-ToggleStatus -ToggleSwitch "ToggleDarkMode"
10 | #>
11 |
12 | Param($ToggleSwitch)
13 | # Check status of "ToggleDarkMode"
14 | if ($ToggleSwitch -eq "darkmode") {
15 | $app = (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize').AppsUseLightTheme
16 | $system = (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize').SystemUsesLightTheme
17 | if ($app -eq 0 -and $system -eq 0) {
18 | return $true
19 | }
20 | else {
21 | # Return true if Sticky Keys are enabled
22 | return $false
23 | }
24 | }
25 |
26 | # Check status of "ToggleShowExt" (Show File Extensions)
27 | if ($ToggleSwitch -eq "showfileextensions") {
28 | $hideextvalue = (Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced').HideFileExt
29 | if ($hideextvalue -eq 0) {
30 | return $true
31 | }
32 | else {
33 | # Return true if Sticky Keys are enabled
34 | return $false
35 | }
36 | }
37 |
38 | # Check status of "showsuperhidden" (Show Hidden Files)
39 | if ($ToggleSwitch -eq "showsuperhidden") {
40 | $hideextvalue = (Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "ShowSuperHidden")
41 | if ($hideextvalue -eq 1) {
42 | return $true
43 | }
44 | else {
45 | # Return true if Sticky Keys are enabled
46 | return $false
47 | }
48 | }
49 |
50 | # Check status of "ToggleNumLock"
51 | if ($ToggleSwitch -eq "numlook") {
52 | $numlockvalue = (Get-ItemProperty -path 'HKCU:\Control Panel\Keyboard').InitialKeyboardIndicators
53 | if ($numlockvalue -eq 2) {
54 | return $true
55 | }
56 | else {
57 | # Return true if Sticky Keys are enabled
58 | return $false
59 | }
60 | }
61 |
62 | # Check status of "ToggleStickyKeys"
63 | if ($ToggleSwitch -eq "stickykeys") {
64 | $StickyKeys = (Get-ItemProperty -path 'HKCU:\Control Panel\Accessibility\StickyKeys').Flags
65 | if ($StickyKeys -eq 58) {
66 | return $false
67 | }
68 | else {
69 | # Return true if Sticky Keys are enabled
70 | return $true
71 | }
72 | }
73 |
74 | # Check status of "MouseAcceleration"
75 | if ($ToggleSwitch -eq "mouseacceleration") {
76 | $Speed = (Get-ItemProperty -path 'HKCU:\Control Panel\Mouse').MouseSpeed
77 | $Threshold1 = (Get-ItemProperty -path 'HKCU:\Control Panel\Mouse').MouseThreshold1
78 | $Threshold2 = (Get-ItemProperty -path 'HKCU:\Control Panel\Mouse').MouseThreshold2
79 | if ($Speed -eq 1 -and $Threshold1 -eq 6 -and $Threshold2 -eq 10) {
80 | return $true
81 | }
82 | else {
83 | return $false
84 | }
85 | }
86 |
87 | # EndTaskOnTaskbar
88 | if ($ToggleSwitch -eq "endtaskontaskbarwindows11") {
89 | $path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
90 | if (-not (Test-Path $path)) {
91 | return $false
92 | }
93 | else {
94 | $TaskBar = (Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings').TaskbarEndTask
95 | if ($TaskBar -eq 1) {
96 | return $true
97 | }
98 | else {
99 | return $false
100 | }
101 | }
102 | }
103 |
104 | # Remove Page file
105 | if ($ToggleSwitch -eq "clearpagefileatshutdown") {
106 | $PageFile = (Get-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\\Memory Management').ClearPageFileAtShutdown
107 | if ($PageFile -eq 1) {
108 | return $true
109 | }
110 | else {
111 | return $false
112 | }
113 | }
114 |
115 | # Auto end tasks
116 | if ($ToggleSwitch -eq "autoendtasks") {
117 | $PageFile = (Get-ItemProperty -path 'HKCU:\Control Panel\Desktop').AutoEndTasks
118 | if ($PageFile -eq 1) {
119 | return $true
120 | }
121 | else {
122 | return $false
123 | }
124 | }
125 |
126 | # Performance Options
127 | if ($ToggleSwitch -eq "performanceoptions") {
128 | $VisualFXSetting = (Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects').VisualFXSetting
129 | if ($VisualFXSetting -eq 2) {
130 | return $true
131 | }
132 | else {
133 | return $false
134 | }
135 | }
136 |
137 | # Quick Access
138 | if ($ToggleSwitch -eq "launchtothispc") {
139 | $LaunchTo = (Get-ItemProperty -path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced').LaunchTo
140 | if ($LaunchTo -eq 1) {
141 | return $true
142 | }
143 | else {
144 | return $false
145 | }
146 | }
147 |
148 | # Disable Automatic Driver Installation
149 | if ($ToggleSwitch -eq "disableautomaticdriverinstallation") {
150 | $disableautomaticdrive = (Get-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching').SearchOrderConfig
151 | if ($disableautomaticdrive -eq 1) {
152 | return $true
153 | }
154 | else {
155 | return $false
156 | }
157 | }
158 |
159 | # Always show icons never thumbnail
160 | if ($ToggleSwitch -eq "AlwaysshowiconsneverThumbnail") {
161 | $alwaysshowicons = (Get-ItemProperty -path 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced').IconsOnly
162 | if ($alwaysshowicons -eq 1) {
163 | return $true
164 | }
165 | else {
166 | return $false
167 | }
168 | }
169 |
170 | # Core Isolation Memory Integrity
171 | if ($ToggleSwitch -eq "CoreIsolationMemoryIntegrity") {
172 | $CoreIsolationMemory = (Get-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\CredentialGuard').Enabled
173 | if ($CoreIsolationMemory -eq 1) {
174 | return $true
175 | }
176 | else {
177 | return $false
178 | }
179 |
180 | }
181 |
182 | # Windows Sandbox
183 | if ($ToggleSwitch -eq "WindowsSandbox") {
184 | $WS = Get-WindowsOptionalFeature -Online -FeatureName "Containers-DisposableClientVM"
185 | if ($WS.State -eq "Enabled") {
186 | return $true
187 | }
188 | else {
189 | return $false
190 | }
191 | }
192 |
193 | # Windows Sandbox
194 | if ($ToggleSwitch -eq "WindowsSubsystemforLinux") {
195 | $WSL = Get-WindowsOptionalFeature -Online -FeatureName "Microsoft-Windows-Subsystem-Linux"
196 | if ($WSL.State -eq "Enabled") {
197 | return $true
198 | }
199 | else {
200 | return $false
201 | }
202 | }
203 |
204 | # HyperV
205 | if ($ToggleSwitch -eq "HyperVVirtualization") {
206 |
207 | $HyperV = Get-WindowsOptionalFeature -Online -FeatureName "Microsoft-Hyper-V"
208 |
209 | if ($HyperV.State -eq "Enabled") {
210 | return $true
211 | }
212 | else {
213 | return $false
214 | }
215 | }
216 | }
--------------------------------------------------------------------------------
/scripts/Core/Install-App.ps1:
--------------------------------------------------------------------------------
1 | function Install-App {
2 |
3 | <#
4 | .SYNOPSIS
5 | Installs an application using either Chocolatey or Winget package managers.
6 | #>
7 |
8 | param ([string]$Source, [string]$Name,[string]$Choco,[string]$Scoop,[string]$Winget,[string]$ITT)
9 |
10 | # Arguments
11 | $wingetArgs = "install --id $Winget --silent --accept-source-agreements --accept-package-agreements --force"
12 | $chocoArgs = "install $Choco --confirm --acceptlicense -q --ignore-http-cache --limit-output --allowemptychecksumsecure --ignorechecksum --allowemptychecksum --usepackagecodes --ignoredetectedreboot --ignore-checksums --ignore-reboot-requests"
13 | $ittArgs = "install $ITT -y"
14 | $scoopArgs = "$Scoop"
15 |
16 | # Helper function to install an app using a specific installer
17 | function Install-AppWithInstaller {
18 | param ([string]$Installer,[string]$InstallArgs)
19 |
20 | # Try to install and return the exit code
21 | $process = Start-Process -FilePath $Installer -ArgumentList $InstallArgs -NoNewWindow -Wait -PassThru
22 | return $process.ExitCode
23 | }
24 |
25 | # Function to log installation result
26 | function Log {
27 |
28 | param ([string]$Installer,[string]$Source)
29 |
30 | if ($Installer -ne 0) {
31 | return @{ Success = $false; Message = "Installation Failed for ($Name). Report the issue in ITT repository." }
32 | }
33 | else {
34 | return @{ Success = $true; Message = "Successfully Installed ($Name)" }
35 | }
36 | }
37 |
38 | # If specific package manager is requested
39 | if ($Source -ne "auto") {
40 |
41 | switch ($Source.ToLower()) {
42 | "choco" {
43 |
44 | if ($Choco -eq "na") {
45 | Add-Log -Message "Chocolatey package not available for $Name" -Level "WARNING"
46 | return @{ Success = $false; Message = "This app is not available in Chocolatey" }
47 | }
48 |
49 | Install-Dependencies -PKGMan "choco"
50 |
51 | $exitCode = Install-AppWithInstaller "choco" $chocoArgs
52 |
53 | return Log $exitCode "Chocolatey"
54 | }
55 | "winget" {
56 |
57 | if ($Winget -eq "na") {
58 | Add-Log -Message "Winget package not available for $Name" -Level "WARNING"
59 | return @{ Success = $false; Message = "This app is not available in Winget" }
60 | }
61 |
62 | Install-Dependencies -PKGMan "winget"
63 |
64 | $exitCode = Install-AppWithInstaller "winget" $wingetArgs
65 |
66 | return Log $exitCode "Winget"
67 | }
68 | "scoop" {
69 |
70 | if ($Scoop -eq "na") {
71 | Add-Log -Message "Scoop package not available for $Name" -Level "WARNING"
72 | return @{ Success = $false; Message = "This app is not available in Scoop" }
73 | }
74 |
75 | Install-Dependencies -PKGMan "scoop"
76 |
77 | $LASTEXITCODE = scoop install $scoopArgs
78 |
79 | return Log $LASTEXITCODE "Scoop"
80 | }
81 | default {
82 | Add-Log -Message "Invalid package manager specified: $Source" -Level "ERROR"
83 | return @{ Success = $false; Message = "Invalid package manager" }
84 | }
85 | }
86 | }
87 |
88 | # TODO: if all package managers are 'none', use itt
89 | if ($Choco -eq "na" -and $Winget -eq "na" -and $itt -ne "na" -and $scoop -eq "na") {
90 |
91 | Install-ITTAChoco
92 | Add-Log -Message "Attempting to install $Name." -Level "ITT"
93 | $ITTResult = Install-AppWithInstaller "itt" $ittArgs
94 | Log $ITTResult "itt"
95 | }
96 | else
97 | {
98 | # TODO: if choco is 'none' and Scoop is equal to 'none' and winget is NOT 'none', use winget
99 | # Skip choco and scoop
100 | if ($Choco -eq "na" -and $Scoop -eq "na" -and $Winget -ne "na")
101 | {
102 | Add-Log -Message "Attempting to install $Name." -Level "Winget"
103 |
104 | Install-Winget
105 |
106 | Start-Process -FilePath "winget" -ArgumentList "settings --enable InstallerHashOverride" -NoNewWindow -Wait -PassThru
107 |
108 | $wingetResult = Install-AppWithInstaller "winget" $wingetArgs
109 | Log $wingetResult "Winget"
110 | }
111 | else
112 | {
113 | # TODO: If choco is not equal to 'none' and winget is not equal to 'none', use choco first and fallback to scoop and if scoop is failed, use winget for last try
114 | if ($Choco -ne "na" -or $Winget -ne "na" -or $Scoop -ne "na")
115 | {
116 | Add-Log -Message "Attempting to install $Name." -Level "Chocolatey"
117 |
118 | Install-Dependencies -PKGMan "choco"
119 |
120 | $chocoResult = Install-AppWithInstaller "choco" $chocoArgs
121 |
122 | if ($chocoResult -ne 0) {
123 |
124 | Add-Log -Message "installation failed, Falling back to winget." -Level "info"
125 |
126 | Install-Dependencies -PKGMan "winget"
127 |
128 | $wingetResult = Install-AppWithInstaller "winget" $wingetArgs
129 |
130 | if ($wingetResult -ne 0) {
131 |
132 | Add-Log -Message "installation failed, Falling back to scoop." -Level "info"
133 |
134 | Install-Dependencies -PKGMan "scoop"
135 |
136 | scoop install $scoopArgs
137 |
138 | Log $LASTEXITCODE "Scoop"
139 |
140 | }else {
141 | Log $wingetResult "Winget"
142 | }
143 | }
144 | else
145 | {
146 | Log $chocoResult "Chocolatey"
147 | }
148 | }
149 | else
150 | {
151 | Add-Log -Message "$Name is not available in any package manager" -Level "info"
152 | }
153 | }
154 | }
155 | }
--------------------------------------------------------------------------------
/scripts/Core/Install-Dependencies.ps1:
--------------------------------------------------------------------------------
1 | function Install-Dependencies {
2 |
3 | param ([string]$PKGMan)
4 |
5 | switch ($PKGMan)
6 | {
7 | "itt" {
8 |
9 | # Installing ITT Package manager if not exist
10 | if (-not (Get-Command itt -ErrorAction SilentlyContinue))
11 | {
12 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/itt-co/bin/refs/heads/main/install.ps1')) *> $null
13 | }
14 | else
15 | {
16 | try {
17 | # Check for updates
18 | $currentVersion = (itt.exe -ver)
19 | $installerPath = "$env:TEMP\installer.msi"
20 | $latestReleaseApi = "https://api.github.com/repos/itt-co/bin/releases/latest"
21 | $latestVersion = (Invoke-RestMethod -Uri $latestReleaseApi).tag_name
22 | if ($latestVersion -eq $currentVersion) {return}
23 | # Write-Host "New version available: $latestVersion. Updating..."
24 | Invoke-WebRequest "https://github.com/itt-co/bin/releases/latest/download/installer.msi" -OutFile $installerPath
25 | Start-Process msiexec.exe -ArgumentList "/i `"$installerPath`" /q" -NoNewWindow -Wait
26 | Write-Host "Updated to version $latestVersion successfully."
27 | # Remove-Item -Path $installerPath -Force
28 | }
29 | catch {
30 | Add-Log -Message "$_" -Level "error"
31 | }
32 | }
33 | }
34 | "choco" {
35 |
36 | if (-not (Get-Command choco -ErrorAction SilentlyContinue))
37 | {
38 | Add-Log -Message "Installing dependencies... This might take few seconds" -Level "INFO"
39 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) *> $null
40 | }
41 | }
42 | "winget" {
43 |
44 | if(Get-Command winget -ErrorAction SilentlyContinue) {return}
45 |
46 | $ComputerInfo = Get-ComputerInfo -ErrorAction Stop
47 |
48 | $arch = [int](($ComputerInfo).OsArchitecture -replace '\D', '')
49 |
50 | if ($ComputerInfo.WindowsVersion -lt "1809") {
51 | Add-Log -Message "Winget is not supported on this version of Windows Upgrade to 1809 or newer." -Level "info"
52 | return
53 | }
54 |
55 | $VCLibs = "https://aka.ms/Microsoft.VCLibs.x$arch.14.00.Desktop.appx"
56 | $UIXaml = "https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x$arch.appx"
57 | $WingetLatset = "https://aka.ms/getwinget"
58 |
59 | try {
60 |
61 | Add-Log -Message "Installing Winget... This might take several minutes" -Level "info"
62 | Start-BitsTransfer -Source $VCLibs -Destination "$env:TEMP\Microsoft.VCLibs.Desktop.appx"
63 | Start-BitsTransfer -Source $UIXaml -Destination "$env:TEMP\Microsoft.UI.Xaml.appx"
64 | Start-BitsTransfer -Source $WingetLatset -Destination "$env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
65 |
66 | Add-AppxPackage "$env:TEMP\Microsoft.VCLibs.Desktop.appx"
67 | Add-AppxPackage "$env:TEMP\Microsoft.UI.Xaml.appx"
68 | Add-AppxPackage "$env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
69 | Start-Sleep -Seconds 1
70 | Add-Log -Message "Successfully installed Winget. Continuing to install selected apps..." -Level "info"
71 | return
72 | }
73 | catch {
74 | Write-Error "Failed to install $_"
75 | }
76 | }
77 | "scoop" {
78 |
79 | if (-not (Get-Command scoop -ErrorAction SilentlyContinue))
80 | {
81 | Add-Log -Message "Installing scoop... This might take few seconds" -Level "info"
82 | Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
83 | Invoke-WebRequest -useb get.scoop.sh | Invoke-Expression
84 | scoop bucket add extras
85 | }
86 | }
87 | }
88 | }
--------------------------------------------------------------------------------
/scripts/Core/Install-Winget.ps1:
--------------------------------------------------------------------------------
1 | function Install-Winget {
2 |
3 | <#
4 | .SYNOPSIS
5 | Installs Winget on Windows systems that support it.
6 |
7 | .DESCRIPTION
8 | This function checks if Winget is installed on the system. If not, it verifies the system's architecture and Windows version to ensure compatibility. It
9 | then downloads and installs the necessary dependencies and Winget itself.
10 | #>
11 |
12 | if(Get-Command winget -ErrorAction SilentlyContinue) {return}
13 | $ComputerInfo = Get-ComputerInfo -ErrorAction Stop
14 | $arch = [int](($ComputerInfo).OsArchitecture -replace '\D', '')
15 |
16 | if ($ComputerInfo.WindowsVersion -lt "1809") {
17 | Add-Log -Message "Winget is not supported on this version of Windows Upgrade to 1809 or newer." -Level "info"
18 | return
19 | }
20 |
21 | $VCLibs = "https://aka.ms/Microsoft.VCLibs.x$arch.14.00.Desktop.appx"
22 | $UIXaml = "https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x$arch.appx"
23 | $WingetLatset = "https://aka.ms/getwinget"
24 |
25 | try {
26 |
27 | Add-Log -Message "Installing Winget... This might take several minutes" -Level "info"
28 | Start-BitsTransfer -Source $VCLibs -Destination "$env:TEMP\Microsoft.VCLibs.Desktop.appx"
29 | Start-BitsTransfer -Source $UIXaml -Destination "$env:TEMP\Microsoft.UI.Xaml.appx"
30 | Start-BitsTransfer -Source $WingetLatset -Destination "$env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
31 |
32 | Add-AppxPackage "$env:TEMP\Microsoft.VCLibs.Desktop.appx"
33 | Add-AppxPackage "$env:TEMP\Microsoft.UI.Xaml.appx"
34 | Add-AppxPackage "$env:TEMP\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
35 | Start-Sleep -Seconds 1
36 | Add-Log -Message "Successfully installed Winget. Continuing to install selected apps..." -Level "info"
37 | return
38 | }
39 | catch {
40 | Write-Error "Failed to install $_"
41 | }
42 | }
--------------------------------------------------------------------------------
/scripts/Core/Refresh-Explorer.ps1:
--------------------------------------------------------------------------------
1 | function Refresh-Explorer {
2 |
3 |
4 | Add-Log -Message "Restart explorer." -Level "info"
5 |
6 | Stop-Process -processName: Explorer -Force
7 |
8 | Start-Sleep -Seconds 1
9 |
10 | # Check if explorer is not running and start it if needed
11 | if (-not (Get-Process -processName: Explorer)) {
12 | Start-Process explorer.exe
13 | }
14 | }
--------------------------------------------------------------------------------
/scripts/Core/Remove-Tasks.ps1:
--------------------------------------------------------------------------------
1 | function Remove-ScheduledTasks {
2 |
3 | param ([Parameter(Mandatory = $true)][array]$tweak)
4 |
5 | foreach ($task in $tweak) {
6 | Add-Log -Message "Removing $task ScheduledTask..." -Level "info"
7 | $tasks = Get-ScheduledTask -TaskName "*$task*" -ErrorAction SilentlyContinue
8 | if ($tasks)
9 | {
10 | foreach ($task in $tasks)
11 | {
12 | Unregister-ScheduledTask -TaskName $task.TaskName -Confirm:$false
13 | Add-Log -Message "$($task.TaskName) Removed" -Level "INFO"
14 | }
15 | }
16 | else
17 | {
18 | if ($Debug)
19 | {
20 | Add-Log -Message "No tasks matching '$task' found" -Level "debug"
21 | }
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/scripts/Core/Save-Load.ps1:
--------------------------------------------------------------------------------
1 | # load file.itt
2 | function Get-file {
3 |
4 | # Check if a process is running
5 | if ($itt.ProcessRunning) {
6 | Message -key "Please_wait" -icon "Warning" -action "OK"
7 | return
8 | }
9 |
10 | # Open file dialog to select JSON file
11 | $openFileDialog = New-Object Microsoft.Win32.OpenFileDialog -Property @{
12 | Filter = "itt files (*.itt)|*.itt"
13 | Title = "itt File"
14 | }
15 |
16 | if ($openFileDialog.ShowDialog() -eq $true) {
17 |
18 | try {
19 |
20 | # Load and parse JSON data
21 | $FileContent = Get-Content -Path $openFileDialog.FileName -Raw | ConvertFrom-Json -ErrorAction Stop
22 |
23 | # Get the apps list and collection view
24 | $collectionView = [System.Windows.Data.CollectionViewSource]::GetDefaultView($itt.AppsListView.Items)
25 |
26 | # Define the filter predicate
27 | $collectionView.Filter = {
28 | param($item)
29 |
30 | if ($FileContent.Name -contains $item.Children[0].Children[0].Content) { return $item.Children[0].Children[0].IsChecked = $true } else { return $false }
31 | }
32 | }
33 | catch {
34 | Write-Warning "Failed to load or parse JSON file: $_"
35 | }
36 | }
37 |
38 | # Clear search input
39 | $itt.Search_placeholder.Visibility = "Visible"
40 | $itt.SearchInput.Text = $null
41 | }
42 |
43 | # Save selected items to a JSON file
44 | function Save-File {
45 |
46 | $itt['window'].FindName("AppsCategory").SelectedIndex = 0
47 | Show-Selected -ListView "AppsListView" -Mode "Filter"
48 |
49 | # Collect checked items
50 | $items = foreach ($item in $itt.AppsListView.Items) {
51 |
52 | if ($item.Children[0].Children[0].IsChecked) {
53 | [PSCustomObject]@{
54 | Name = $item.Children[0].Children[0].Content
55 | }
56 | }
57 | }
58 |
59 | # If no items are selected, show a message and return
60 | if ($items.Count -eq 0) {
61 | Message -key "Empty_save_msg" -icon "Information" -action "OK"
62 | return
63 | }
64 |
65 | # Open save file dialog
66 | $saveFileDialog = New-Object Microsoft.Win32.SaveFileDialog -Property @{
67 | Filter = "JSON files (*.itt)|*.itt"
68 | Title = "Save JSON File"
69 | }
70 |
71 | if ($saveFileDialog.ShowDialog() -eq $true) {
72 | # Save items to JSON file
73 | $items | ConvertTo-Json -Compress | Out-File -FilePath $saveFileDialog.FileName -Force
74 | Write-Host "Saved: $($saveFileDialog.FileName)"
75 | }
76 |
77 | # Uncheck checkboxex if user Cancel
78 | Show-Selected -ListView "AppsListView" -Mode "Default"
79 |
80 | # Clear search input
81 | $itt.Search_placeholder.Visibility = "Visible"
82 | $itt.SearchInput.Text = $null
83 | }
84 |
85 | # Quick Install
86 | function Quick-Install {
87 |
88 | param (
89 | [string]$file
90 | )
91 |
92 | try {
93 | # Get file local or remote
94 | if ($file -match "^https?://") {
95 |
96 | $FileContent = Invoke-RestMethod -Uri $file -ErrorAction Stop
97 |
98 | if ($FileContent -isnot [array] -or $FileContent.Count -eq 0) {
99 | Message -NoneKey "The file is corrupt or access is forbidden" -icon "Warning" -action "OK"
100 | return
101 | }
102 |
103 | }
104 | else {
105 |
106 | $FileContent = Get-Content -Path $file -Raw | ConvertFrom-Json -ErrorAction Stop
107 |
108 | if ($file -notmatch "\.itt") {
109 | Message -NoneKey "Invalid file format. Expected .itt file." -icon "Warning" -action "OK"
110 | return
111 | }
112 | }
113 |
114 | }
115 | catch {
116 | Write-Warning "Failed to load or parse JSON file: $_"
117 | return
118 | }
119 |
120 | if ($null -eq $FileContent) { return }
121 |
122 | # Get the apps list and collection view
123 | $collectionView = [System.Windows.Data.CollectionViewSource]::GetDefaultView($itt['Window'].FindName('appslist').Items)
124 |
125 | # Set the filter predicate
126 | $collectionView.Filter = {
127 | param($item)
128 |
129 | if ($FileContent.Name -contains $item.Children[0].Children[0].Content) { return $item.Children[0].Children[0].IsChecked = $true } else { return $false }
130 | }
131 |
132 | # Start the installation process
133 | try {
134 | Invoke-Install *> $null
135 | }
136 | catch {
137 | Write-Warning "Installation failed: $_"
138 | }
139 | }
--------------------------------------------------------------------------------
/scripts/Core/Set-Registry.ps1:
--------------------------------------------------------------------------------
1 | function Set-Registry {
2 |
3 | <#
4 | .SYNOPSIS
5 | Sets or creates a registry value at a specified path.
6 | .DESCRIPTION
7 | This function sets a registry value at a given path. If the specified registry path does not exist, the function attempts to create the path and set the value.
8 | .EXAMPLE
9 | Set-Registry -Name "EnableFeeds" -Type "DWord" -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds" -Value 0
10 | Sets the registry value named "EnableFeeds" to 0 (DWORD) under "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds". If the path does not exist, it attempts to create it.
11 | #>
12 |
13 | param ([array]$tweak)
14 |
15 | try {
16 | if(!(Test-Path 'HKU:\')) {New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS}
17 | $tweak | ForEach-Object {
18 | if($_.Value -ne "Remove")
19 | {
20 | If (!(Test-Path $_.Path)) {
21 | Add-Log -Message "$($_.Path) was not found, Creating..." -Level "info"
22 | New-Item -Path $_.Path | Out-Null
23 | }
24 | Add-Log -Message "Optmize $($_.name)..." -Level "info"
25 | New-ItemProperty -Path $_.Path -Name $_.Name -PropertyType $_.Type -Value $_.Value -Force | Out-Null
26 | }else
27 | {
28 | if($_.Name -ne $null)
29 | {
30 | # Remove the specific registry value
31 | Add-Log -Message "Remove $($_.name) from registry..." -Level "info"
32 | Remove-ItemProperty -Path $_.Path -Name $_.Name -Force -ErrorAction SilentlyContinue
33 | }else{
34 | # remove the registry path
35 | Add-Log -Message "Remove $($_.Path)..." -Level "info"
36 | Remove-Item -Path $_.Path -Recurse -Force -ErrorAction SilentlyContinue
37 | }
38 | }
39 | }
40 | } catch {
41 | Add-Log -Message "An error occurred: $_" -Level "WARNING"
42 | }
43 | }
--------------------------------------------------------------------------------
/scripts/Core/Set-Taskbar.ps1:
--------------------------------------------------------------------------------
1 | function Set-Taskbar {
2 |
3 | <#
4 | .SYNOPSIS
5 | Sets the taskbar progress and overlay icon in the application window.
6 | .DESCRIPTION
7 | The `Set-Taskbar` function allows setting the taskbar progress state, progress value,
8 | #>
9 |
10 | param ([string]$progress,[double]$value,[string]$icon)
11 |
12 |
13 | try {
14 |
15 | if ($value) {
16 | $itt["window"].taskbarItemInfo.ProgressValue = $value
17 | }
18 |
19 | if($progress)
20 | {
21 | switch ($progress) {
22 | 'None' { $itt["window"].taskbarItemInfo.ProgressState = "None" }
23 | 'Normal' { $itt["window"].taskbarItemInfo.ProgressState = "Normal" }
24 | 'Indeterminate' { $itt["window"].taskbarItemInfo.ProgressState = "Indeterminate" }
25 | 'Error' { $itt["window"].taskbarItemInfo.ProgressState = "Error" }
26 | default { throw "Set-Taskbar Invalid state" }
27 | }
28 | }
29 | if($icon)
30 | {
31 | switch ($icon) {
32 | "done" {$itt["window"].taskbarItemInfo.Overlay = "https://raw.githubusercontent.com/emadadel4/ITT/main/static/Icons/done.png"}
33 | "logo" {$itt["window"].taskbarItemInfo.Overlay = "https://raw.githubusercontent.com/emadadel4/ITT/main/static/Icons/icon.ico"}
34 | "error" {$itt["window"].taskbarItemInfo.Overlay = "https://raw.githubusercontent.com/emadadel4/IT/main/static/Icons/error.png"}
35 | default{$itt["window"].taskbarItemInfo.Overlay = "https://raw.githubusercontent.com/emadadel4/main//static/Icons/icon.ico"}
36 | }
37 | }
38 |
39 | }
40 | catch {
41 | #Add-Log -Message "$_" -Level "info"
42 | }
43 | }
--------------------------------------------------------------------------------
/scripts/Core/Startup-Log.ps1:
--------------------------------------------------------------------------------
1 | function Startup {
2 |
3 | $UsersCount = "https://ittools-7d9fe-default-rtdb.firebaseio.com/message/message.json"
4 |
5 | ITT-ScriptBlock -ArgumentList $Debug $UsersCount -ScriptBlock {
6 |
7 | param($Debug, $UsersCount)
8 | function Telegram {
9 | param (
10 | [string]$Message
11 | )
12 | try {
13 | # This only do Devices count please don't play with it
14 | $BotToken = "7140758327:AAF4BeD8wl4xspYvtYu7qwhd0XC82bubI1k"
15 | $ChatID = "1299033071"
16 | # This only do Devices count please don't play with it
17 | $SendMessageUrl = "https://api.telegram.org/bot$BotToken"
18 | $PostBody = @{
19 | chat_id = $ChatID
20 | text = $Message
21 | }
22 | $Response = Invoke-RestMethod -Uri "$SendMessageUrl/sendMessage" -Method Post -Body $PostBody -ContentType "application/x-www-form-urlencoded"
23 | }
24 | catch {
25 | Add-Log -Message "Your internet connection appears to be slow." -Level "WARNING"
26 | }
27 | }
28 |
29 | function GetCount {
30 | # Fetch data using GET request
31 | $response = Invoke-RestMethod -Uri $UsersCount -Method Get
32 |
33 | # Output the Users count
34 | return $response
35 | }
36 |
37 | function PlayMusic {
38 |
39 | $ST = Invoke-RestMethod -Uri "https://raw.githubusercontent.com/emadadel4/itt/refs/heads/main/static/Database/OST.json" -Method Get
40 |
41 | # Function to play an audio track
42 | function PlayAudio($track) {
43 | $mediaItem = $itt.mediaPlayer.newMedia($track)
44 | $itt.mediaPlayer.currentPlaylist.appendItem($mediaItem)
45 | $itt.mediaPlayer.controls.play()
46 |
47 | # debug start
48 | # $currentFileName = $itt.mediaPlayer.currentMedia.name
49 | # Write-Host "Currently playing: $currentFileName"
50 | # debug end
51 | }
52 | # Shuffle the playlist and create a new playlist
53 | function GetShuffledTracks {
54 | switch ($itt.Date.Month, $itt.Date.Day) {
55 | { $_ -eq 9, 1 } { return $ST.Favorite | Get-Random -Count $ST.Favorite.Count }
56 | { $_ -eq 10, 6 -or $_ -eq 10, 7 } { return $ST.Otobers | Get-Random -Count $ST.Otobers.Count }
57 | default { return $ST.Tracks | Get-Random -Count $ST.Tracks.Count }
58 | }
59 | }
60 | # Preload and play the shuffled playlist
61 | function PlayPreloadedPlaylist {
62 | # Preload the shuffled playlist
63 | $shuffledTracks = GetShuffledTracks
64 | foreach ($track in $shuffledTracks) {
65 | PlayAudio -track $track.url
66 | # Wait for the track to finish playing
67 | while ($itt.mediaPlayer.playState -in @(3, 6)) {
68 | Start-Sleep -Milliseconds 100
69 | }
70 | }
71 | }
72 | # Play the preloaded playlist
73 | PlayPreloadedPlaylist
74 | }
75 |
76 | function Quotes {
77 | function Get-Quotes {(Invoke-RestMethod "https://raw.githubusercontent.com/emadadel4/itt/refs/heads/main/static/Database/Quotes.json").Quotes | Sort-Object { Get-Random }}
78 |
79 | function Show-Quote($text, $icon) {}
80 |
81 | Set-Statusbar -Text "☕ $($itt.database.locales.Controls.$($itt.Language).welcome)"
82 | Start-Sleep 18
83 | Set-Statusbar -Text "👁🗨 $($itt.database.locales.Controls.$($itt.Language).easter_egg)"
84 | Start-Sleep 18
85 | $iconMap = @{quote = "💬"; info = "📢"; music = "🎵"; Cautton = "⚠"; default = "☕" }
86 | do {
87 | foreach ($q in Get-Quotes) {
88 | $icon = if ($iconMap.ContainsKey($q.type)) { $iconMap[$q.type] } else { $iconMap.default }
89 | $text = "`“$($q.text)`”" + $(if ($q.name) { " ― $($q.name)" } else { "" })
90 | Set-Statusbar -Text "$icon $text"
91 | Start-Sleep 25
92 | }
93 | } while ($true)
94 | }
95 |
96 | function UsageCount {
97 |
98 | # Fetch current count from Firebase as a string
99 | $currentCount = Invoke-RestMethod -Uri $UsersCount -Method Get
100 |
101 | # Convert to integer, increment, and convert back to string
102 | $Runs = ([int]$currentCount + 1).ToString()
103 |
104 | # Update the count in Firebase as a string
105 | Invoke-RestMethod -Uri $UsersCount -Method Put -Body ($Runs | ConvertTo-Json -Compress) -Headers @{ "Content-Type" = "application/json" }
106 |
107 | # Output success
108 | Telegram -Message "Version: $($itt.lastupdate)`nURL: $($itt.command)`nLang: $($itt.Language)`nTotal Usage: $($Runs)"
109 | }
110 |
111 | function LOG {
112 | Write-Host " `n` "
113 | Write-Host " ███████████████████╗ Be the first to uncover the secret! Dive into"
114 | Write-Host " ██╚══██╔══╚═══██╔══╝ the source code, find the feature and integrate it"
115 | Write-Host " ██║ ██║ Emad ██║ https://github.com/emadadel4/itt"
116 | Write-Host " ██║ ██║ Adel ██║ "
117 | Write-Host " ██║ ██║ ██║ "
118 | Write-Host " ╚═╝ ╚═╝ ╚═╝ "
119 | UsageCount
120 | Write-Host "`n ITT has been used $(GetCount) times worldwide.`n" -ForegroundColor White
121 | #Set-Statusbar -Text "🎉 ITT has been used 50 times worldwide."
122 | }
123 | # debug start
124 | if ($Debug) { return }
125 | # debug end
126 | LOG
127 | PlayMusic
128 | Quotes
129 | }
130 | }
--------------------------------------------------------------------------------
/scripts/Core/Tap-On-Selection-Changed.ps1:
--------------------------------------------------------------------------------
1 | function ChangeTap {
2 |
3 | <#
4 | .SYNOPSIS
5 | Updates the visibility of buttons and sets the current list based on the selected tab.
6 | .DESCRIPTION
7 | This function manages the visibility of buttons and the selection of lists based on which tab is currently selected in a user interface.
8 | .EXAMPLE
9 | ChangeTap
10 | Updates the visibility of the 'installBtn' and 'applyBtn' and sets the 'currentList' property based on the currently selected tab.
11 | .NOTES
12 | Ensure that the `$itt['window']` object and its method `FindName` are correctly implemented and available in the context where this function is used. The function relies on these objects to access and modify UI elements.
13 | #>
14 |
15 | $tabSettings = @{
16 | 'apps' = @{
17 | 'installBtn' = 'Visible';
18 | 'applyBtn' = 'Hidden';
19 | 'CurrentList' = 'appslist';
20 | 'CurrentCategory' = 'AppsCategory'
21 | }
22 | 'tweeksTab' = @{
23 | 'installBtn' = 'Hidden';
24 | 'applyBtn' = 'Visible';
25 | 'CurrentList' = 'tweakslist';
26 | 'CurrentCategory' = 'TwaeksCategory'
27 | }
28 | 'SettingsTab' = @{
29 | 'installBtn' = 'Hidden';
30 | 'applyBtn' = 'Hidden';
31 | 'CurrentList' = 'SettingsList'
32 | }
33 | }
34 | # Iterate over the tab settings
35 | foreach ($tab in $tabSettings.Keys) {
36 | # Check if the current tab is selected
37 | if ($itt['window'].FindName($tab).IsSelected) {
38 | $settings = $tabSettings[$tab]
39 | # Update button visibility and currentList based on the selected tab
40 | $itt.CurrentList = $settings['CurrentList']
41 | $itt.CurrentCategory = $settings['CurrentCategory']
42 | $itt['window'].FindName('installBtn').Visibility = $settings['installBtn']
43 | $itt['window'].FindName('applyBtn').Visibility = $settings['applyBtn']
44 | $itt['window'].FindName('AppsCategory').Visibility = $settings['installBtn']
45 | $itt['window'].FindName('TwaeksCategory').Visibility = $settings['applyBtn']
46 | break
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/scripts/Core/Uninstall-AppxPackage.ps1:
--------------------------------------------------------------------------------
1 | function Uninstall-AppxPackage {
2 |
3 | <#
4 | .SYNOPSIS
5 | Uninstalls an AppX package and removes any provisioned package references.
6 | .DESCRIPTION
7 | This function uninstalls a specified AppX package.
8 | .EXAMPLE
9 | Uninstall-AppxPackage -Name "Microsoft.BingNews"
10 | #>
11 |
12 | param ([array]$tweak)
13 |
14 | try {
15 | foreach ($name in $tweak) {
16 | Add-Log -Message "Removing $name..." -Level "info"
17 | Get-AppxPackage "*$name*" | Remove-AppxPackage -ErrorAction SilentlyContinue
18 | Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like "*$name*" | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
19 | }
20 | }
21 | catch
22 | {
23 | Add-Log -Message "PLEASE USE (WINDOWS POWERSHELL) NOT (TERMINAL POWERSHELL 7) TO UNINSTALL $NAME." -Level "WARNING"
24 | }
25 | }
--------------------------------------------------------------------------------
/scripts/Install&Apply/apply.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-Apply {
2 |
3 | <#
4 | .SYNOPSIS
5 | Handles the application of selected tweaks by executing the relevant commands, registry modifications, and other operations.
6 | #>
7 |
8 | # Clear Search QUery
9 | $itt.searchInput.text = $null
10 | $itt.Search_placeholder.Visibility = "Visible"
11 |
12 | $itt['window'].FindName("TwaeksCategory").SelectedIndex = 0
13 | $selectedTweaks = Get-SelectedItems -Mode "Tweaks"
14 |
15 | if ($itt.ProcessRunning) {
16 | Message -key "Please_wait" -icon "Warning" -action "OK"
17 | return
18 | }
19 |
20 | # Return if there is no selection
21 | if ($selectedTweaks.Count -le 0) {return}
22 |
23 | Show-Selected -ListView "TweaksListView" -Mode "Filter"
24 |
25 | $result = Message -key "Apply_msg" -icon "ask" -action "YesNo"
26 |
27 | if ($result -eq "no") {
28 | Show-Selected -ListView "TweaksListView" -Mode "Default"
29 | return
30 | }
31 |
32 | ITT-ScriptBlock -ArgumentList $selectedTweaks -debug $debug -ScriptBlock {
33 |
34 | param($selectedTweaks, $debug)
35 |
36 | if((Get-ItemProperty -Path $itt.registryPath -Name "backup" -ErrorAction Stop).backup -eq 0){CreateRestorePoint}
37 |
38 | $itt.ProcessRunning = $true
39 |
40 | UpdateUI -Button "ApplyBtn" -Content "Applying" -Width "auto"
41 |
42 | $itt["window"].Dispatcher.Invoke([action] { Set-Taskbar -progress "Indeterminate" -value 0.01 -icon "logo" })
43 |
44 | foreach ($tweak in $selectedTweaks) {
45 | Add-Log -Message "::::$($tweak.Name)::::" -Level "default"
46 | $tweak | ForEach-Object {
47 | if ($_.Script -and $_.Script.Count -gt 0) {
48 | ExecuteCommand -tweak $tweak.Script
49 | if ($_.Refresh -eq $true) {
50 | Refresh-Explorer
51 | }
52 | }
53 | if ($_.Registry -and $_.Registry.Count -gt 0) {
54 | Set-Registry -tweak $tweak.Registry
55 | if ($_.Refresh -eq $true) {
56 | Refresh-Explorer
57 | }
58 | }
59 | if ($_.AppxPackage -and $_.AppxPackage.Count -gt 0) {
60 | Uninstall-AppxPackage -tweak $tweak.AppxPackage
61 | if ($_.Refresh -eq $true) {
62 | Refresh-Explorer
63 | }
64 | }
65 | if ($_.ScheduledTask -and $_.ScheduledTask.Count -gt 0) {
66 | Remove-ScheduledTasks -tweak $tweak.ScheduledTask
67 | if ($_.Refresh -eq $true) {
68 | Refresh-Explorer
69 | }
70 | }
71 | if ($_.Services -and $_.Services.Count -gt 0) {
72 | Disable-Service -tweak $tweak.Services
73 | if ($_.Refresh -eq $true) {
74 | Refresh-Explorer
75 | }
76 | }
77 | }
78 | }
79 |
80 | $itt.ProcessRunning = $false
81 | Finish -ListView "TweaksListView"
82 | }
83 | }
--------------------------------------------------------------------------------
/scripts/Install&Apply/install.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-Install {
2 | <#
3 | .SYNOPSIS
4 | Handles the installation of selected applications by invoking the appropriate installation methods.
5 | #>
6 |
7 |
8 | if ($itt.ProcessRunning) {
9 | Message -key "Please_wait" -icon "Warning" -action "OK"
10 | return
11 | }
12 |
13 | # Clear Search QUery
14 | $itt.searchInput.text = $null
15 | $itt.Search_placeholder.Visibility = "Visible"
16 |
17 | # Get Selected apps
18 | $itt['window'].FindName("AppsCategory").SelectedIndex = 0
19 | $selectedApps = Get-SelectedItems -Mode "Apps"
20 |
21 | # Return if there is no selection
22 | if ($selectedApps.Count -le 0) {return}
23 |
24 | Show-Selected -ListView "AppsListView" -Mode "Filter"
25 |
26 | if (-not $i) {
27 | $result = Message -key "Install_msg" -icon "ask" -action "YesNo"
28 | }
29 |
30 | if ($result -eq "no") {
31 | Show-Selected -ListView "AppsListView" -Mode "Default"
32 | return
33 | }
34 |
35 | $itt.PackgeManager = (Get-ItemProperty -Path $itt.registryPath -Name "source" -ErrorAction Stop).source
36 |
37 | ITT-ScriptBlock -ArgumentList $selectedApps $i $source -Debug $debug -ScriptBlock {
38 |
39 | param($selectedApps , $i, $source)
40 |
41 | UpdateUI -Button "installBtn" -Content "Downloading" -Width "auto"
42 |
43 | $itt["window"].Dispatcher.Invoke([action] { Set-Taskbar -progress "Indeterminate" -value 0.01 -icon "logo" })
44 |
45 | $itt.ProcessRunning = $true
46 |
47 | foreach ($App in $selectedApps) {
48 |
49 | Write-Host $source
50 |
51 | Set-Statusbar -Text "⬇ Current task: Downloading $($App.Name)"
52 |
53 | # Some packages won't install until the package folder is removed.
54 | $chocoFolder = Join-Path $env:ProgramData "chocolatey\lib\$($App.Choco)"
55 | $ITTFolder = Join-Path $env:ProgramData "itt\downloads\$($App.ITT)"
56 |
57 | Remove-Item -Path "$chocoFolder" -Recurse -Force
58 | Remove-Item -Path "$chocoFolder.install" -Recurse -Force
59 | Remove-Item -Path "$env:TEMP\chocolatey" -Recurse -Force
60 | Remove-Item -Path "$ITTFolder" -Recurse -Force
61 |
62 |
63 | $Install_result = Install-App -Source $itt.PackgeManager -Name $App.Name -Choco $App.Choco -Scoop $App.Scoop -Winget $App.Winget -itt $App.ITT
64 |
65 | if ($Install_result.Success) {
66 | Set-Statusbar -Text "✔ $($Install_result.Message)"
67 | Add-Log -Message "$($Install_result.Message)" -Level "info"
68 | } else {
69 | Set-Statusbar -Text "✖ $($Install_result.Message)"
70 | Add-Log -Message "$($Install_result.Message)" -Level "ERROR"
71 | }
72 |
73 | # debug start
74 | if ($Debug) { Add-Log -Message "$($App.Choco) | $($App.Scoop) | $($App.Winget) | $($App.ITT)" -Level "debug" }
75 | # debug end
76 | }
77 |
78 | Finish -ListView "AppsListView"
79 | $itt.ProcessRunning = $false
80 | }
81 | }
--------------------------------------------------------------------------------
/scripts/Invoke/Invoke-Toogle.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-Toggle {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles various system settings based on the provided debug string input.
6 | #>
7 |
8 | Param ([string]$debug)
9 |
10 | Switch -Wildcard ($debug) {
11 |
12 | "showfileextensions" { Invoke-ShowFile-Extensions $(Get-ToggleStatus showfileextensions) }
13 | "darkmode" { Invoke-DarkMode $(Get-ToggleStatus darkmode) }
14 | "showsuperhidden" { Invoke-ShowFile $(Get-ToggleStatus showsuperhidden) }
15 | "numlook" { Invoke-NumLock $(Get-ToggleStatus numlook) }
16 | "stickykeys" { Invoke-StickyKeys $(Get-ToggleStatus stickykeys) }
17 | "mouseacceleration" { Invoke-MouseAcceleration $(Get-ToggleStatus mouseacceleration) }
18 | "endtaskontaskbarwindows11" { Invoke-TaskbarEnd $(Get-ToggleStatus endtaskontaskbarwindows11) }
19 | "clearpagefileatshutdown" { Invoke-ClearPageFile $(Get-ToggleStatus clearpagefileatshutdown) }
20 | "autoendtasks" { Invoke-AutoEndTasks $(Get-ToggleStatus autoendtasks) }
21 | "performanceoptions" { Invoke-PerformanceOptions $(Get-ToggleStatus performanceoptions) }
22 | "launchtothispc" { Invoke-LaunchTo $(Get-ToggleStatus launchtothispc) }
23 | "disableautomaticdriverinstallation" { Invoke-DisableAutoDrivers $(Get-ToggleStatus disableautomaticdriverinstallation) }
24 | "AlwaysshowiconsneverThumbnail" { Invoke-ShowFile-Icons $(Get-ToggleStatus AlwaysshowiconsneverThumbnail) }
25 | "CoreIsolationMemoryIntegrity" { Invoke-Core-Isolation $(Get-ToggleStatus CoreIsolationMemoryIntegrity) }
26 | "WindowsSandbox" { Invoke-WindowsSandbox $(Get-ToggleStatus WindowsSandbox) }
27 | "WindowsSubsystemforLinux" { Invoke-WindowsSandbox $(Get-ToggleStatus WindowsSubsystemforLinux) }
28 | "HyperVVirtualization" { Invoke-HyperV $(Get-ToggleStatus HyperVVirtualization) }
29 | }
30 | # debug start
31 | Add-Log -Message $debug -Level "debug"
32 | # debug end
33 | }
34 |
--------------------------------------------------------------------------------
/scripts/Settings/AutoEndTasks.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-AutoEndTasks {
2 | <#
3 | .SYNOPSIS
4 | Toggles the visibility of file extensions in Windows Explorer.
5 | .DESCRIPTION
6 | The `Invoke-ShowFile-Extensions` function updates the Windows registry to show or hide file extensions for known file types in Windows Explorer based on the `$Enabled` parameter.
7 | - If `$Enabled` is `$true`, file extensions are shown.
8 | - If `$Enabled` is `$false`, file extensions are hidden.
9 | .PARAMETER Enabled
10 | A boolean value that determines whether file extensions should be shown (`$true`) or hidden (`$false`).
11 | .EXAMPLE
12 | Invoke-ShowFile-Extensions -Enabled $true
13 | This example makes file extensions visible in Windows Explorer.
14 | .EXAMPLE
15 | Invoke-ShowFile-Extensions -Enabled $false
16 | This example hides file extensions in Windows Explorer.
17 | .NOTES
18 | - The function requires restarting Windows Explorer to apply the changes.
19 | - Administrative privileges might be required depending on system configuration.
20 | #>
21 | Param(
22 | $Enabled,
23 | [string]$Path = "HKCU:\Control Panel\Desktop",
24 | [string]$name = "AutoEndTasks"
25 | )
26 | Try{
27 | if ($Enabled -eq $false){
28 | $value = 1
29 | Add-Log -Message "Enabled auto end tasks" -Level "info"
30 | }
31 | else {
32 | $value = 0
33 | Add-Log -Message "Disabled auto end tasks" -Level "info"
34 | }
35 | Set-ItemProperty -Path $Path -Name $name -Value $value -ErrorAction Stop
36 | }
37 | Catch [System.Security.SecurityException] {
38 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
39 | }
40 | Catch [System.Management.Automation.ItemNotFoundException] {
41 | Write-Warning $psitem.Exception.ErrorRecord
42 | }
43 | Catch{
44 | Write-Warning "Unable to set $Name due to unhandled exception"
45 | Write-Warning $psitem.Exception.StackTrace
46 | }
47 | }
--------------------------------------------------------------------------------
/scripts/Settings/ChangeToThisPC.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-LaunchTo {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of hidden files and folders in Windows Explorer.
6 | #>
7 |
8 | Param(
9 | $Enabled,
10 | [string]$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced",
11 | [string]$name = "LaunchTo"
12 | )
13 |
14 | Try{
15 | if ($Enabled -eq $false){
16 | $value = 1
17 | Add-Log -Message "Launch to This PC" -Level "info"
18 | }
19 | else {
20 | $value = 2
21 | Add-Log -Message "Launch to Quick Access" -Level "info"
22 | }
23 |
24 | Set-ItemProperty -Path $Path -Name $name -Value $value -ErrorAction Stop
25 |
26 | Refresh-Explorer
27 | }
28 | Catch [System.Security.SecurityException] {
29 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
30 | }
31 | Catch [System.Management.Automation.ItemNotFoundException] {
32 | Write-Warning $psitem.Exception.ErrorRecord
33 | }
34 | Catch{
35 | Write-Warning "Unable to set $Name due to unhandled exception"
36 | Write-Warning $psitem.Exception.StackTrace
37 | }
38 | }
--------------------------------------------------------------------------------
/scripts/Settings/ClearPageFile.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-ClearPageFile {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param(
9 | $Enabled,
10 | [string]$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\\Memory Management",
11 | [string]$name = "ClearPageFileAtShutdown"
12 | )
13 | Try {
14 | if ($Enabled -eq $false) {
15 | $value = 1
16 | Add-Log -Message "Show End Task on taskbar" -Level "info"
17 | }
18 | else {
19 | $value = 0
20 | Add-Log -Message "Disable End Task on taskbar" -Level "info"
21 | }
22 | Set-ItemProperty -Path $Path -Name $name -Value $value -ErrorAction Stop
23 | }
24 | Catch [System.Security.SecurityException] {
25 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
26 | }
27 | Catch [System.Management.Automation.ItemNotFoundException] {
28 | Write-Warning $psitem.Exception.ErrorRecord
29 | }
30 | Catch {
31 | Write-Warning "Unable to set $Name due to unhandled exception"
32 | Write-Warning $psitem.Exception.StackTrace
33 | }
34 | }
--------------------------------------------------------------------------------
/scripts/Settings/CoreIsolation.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-Core-Isolation {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of thmbnails in Windows Explorer.
6 | #>
7 |
8 | param ($Enabled, $Name = "Enabled", $Path = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\CredentialGuard")
9 |
10 | Try {
11 | if ($Enabled -eq $false) {
12 | $value = 1
13 | Add-Log -Message "This change require a restart" -Level "info"
14 | }
15 | else {
16 | $value = 0
17 | Add-Log -Message "This change require a restart" -Level "info"
18 | }
19 | Set-ItemProperty -Path $Path -Name $Name -Value $value -ErrorAction Stop
20 | Refresh-Explorer
21 | }
22 | Catch [System.Security.SecurityException] {
23 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
24 | }
25 | Catch [System.Management.Automation.ItemNotFoundException] {
26 | Write-Warning $psitem.Exception.ErrorRecord
27 | }
28 | Catch {
29 | Write-Warning "Unable to set $Name due to unhandled exception"
30 | Write-Warning $psitem.Exception.StackTrace
31 | }
32 | }
--------------------------------------------------------------------------------
/scripts/Settings/DarkMode.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-DarkMode {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the Windows theme between Dark Mode and Light Mode based on the provided setting.
6 | #>
7 |
8 | Param($DarkMoveEnabled)
9 | Try{
10 | $Theme = (Get-ItemProperty -Path $itt.registryPath -Name "Theme").Theme
11 | if ($DarkMoveEnabled -eq $false){
12 | $DarkMoveValue = 0
13 | Add-Log -Message "Dark Mode" -Level "info"
14 | if($Theme -eq "default")
15 | {
16 | $itt['window'].Resources.MergedDictionaries.Add($itt['window'].FindResource("Dark"))
17 | $itt.Theme = "Dark"
18 | }
19 | }
20 | else {
21 | $DarkMoveValue = 1
22 | Add-Log -Message "Light Mode" -Level "info"
23 | if($Theme -eq "default")
24 | {
25 | $itt['window'].Resources.MergedDictionaries.Add($itt['window'].FindResource("Light"))
26 | $itt.Theme = "Light"
27 | }
28 | }
29 | $Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
30 | Set-ItemProperty -Path $Path -Name AppsUseLightTheme -Value $DarkMoveValue
31 | Set-ItemProperty -Path $Path -Name SystemUsesLightTheme -Value $DarkMoveValue
32 | }
33 | Catch [System.Security.SecurityException] {
34 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
35 | }
36 | Catch [System.Management.Automation.ItemNotFoundException] {
37 | Write-Warning $psitem.Exception.ErrorRecord
38 | }
39 | Catch{
40 | Write-Warning "Unable to set $Name due to unhandled exception"
41 | Write-Warning $psitem.Exception.StackTrace
42 | }
43 | }
--------------------------------------------------------------------------------
/scripts/Settings/Disable-DriversUpdate.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-DisableAutoDrivers {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param(
9 | $Enabled,
10 | [string]$Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\DriverSearching",
11 | [string]$name = "SearchOrderConfig"
12 | )
13 | Try{
14 | if ($Enabled -eq $false){
15 | $value = 1
16 | Add-Log -Message "Enabled auto drivers update" -Level "info"
17 | }
18 | else {
19 | $value = 0
20 | Add-Log -Message "Disabled auto drivers update" -Level "info"
21 | }
22 | Set-ItemProperty -Path $Path -Name $name -Value $value -ErrorAction Stop
23 | }
24 | Catch [System.Security.SecurityException] {
25 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
26 | }
27 | Catch [System.Management.Automation.ItemNotFoundException] {
28 | Write-Warning $psitem.Exception.ErrorRecord
29 | }
30 | Catch{
31 | Write-Warning "Unable to set $Name due to unhandled exception"
32 | Write-Warning $psitem.Exception.StackTrace
33 | }
34 | }
--------------------------------------------------------------------------------
/scripts/Settings/HyperV.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-HyperV {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param($Enabled)
9 |
10 | Try{
11 | if ($Enabled -eq $false){
12 | Add-Log -Message "HyperV disabled" -Level "info"
13 | dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V-All /all /norestart
14 | }
15 | else {
16 | Add-Log -Message "HyperV enabled" -Level "info"
17 | dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V-All /norestart
18 | }
19 | }
20 |
21 | Catch [System.Security.SecurityException] {
22 | Write-Warning "Unable to set HyperV due to a Security Exception"
23 | }
24 | }
--------------------------------------------------------------------------------
/scripts/Settings/MouseAcceleration.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-MouseAcceleration {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles mouse acceleration settings on or off.
6 | #>
7 |
8 | param (
9 | $Mouse,
10 | $Speed = 0,
11 | $Threshold1 = 0,
12 | $Threshold2 = 0,
13 | [string]$Path = "HKCU:\Control Panel\Mouse"
14 | )
15 | try {
16 | if($Mouse -eq $false)
17 | {
18 | Add-Log -Message "Mouse Acceleration" -Level "info"
19 | $Speed = 1
20 | $Threshold1 = 6
21 | $Threshold2 = 10
22 | }else {
23 | $Speed = 0
24 | $Threshold1 = 0
25 | $Threshold2 = 0
26 | Add-Log -Message "Mouse Acceleration" -Level "info"
27 | }
28 | Set-ItemProperty -Path $Path -Name MouseSpeed -Value $Speed
29 | Set-ItemProperty -Path $Path -Name MouseThreshold1 -Value $Threshold1
30 | Set-ItemProperty -Path $Path -Name MouseThreshold2 -Value $Threshold2
31 | }
32 | catch {
33 | Add-Log -Message "Unable set valuse" -LEVEL "ERROR"
34 | }
35 | }
--------------------------------------------------------------------------------
/scripts/Settings/NumLock.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-NumLock {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the Num Lock state on the system by modifying registry settings.
6 | #>
7 |
8 | param(
9 | [Parameter(Mandatory = $true)]
10 | [bool]$Enabled
11 | )
12 | try {
13 | if ($Enabled -eq $false)
14 | {
15 | Add-Log -Message "Numlock Enabled" -Level "info"
16 | $value = 2
17 | }
18 | else
19 | {
20 | Add-Log -Message "Numlock Disabled" -Level "info"
21 | $value = 0
22 | }
23 | New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS -ErrorAction Stop
24 | $Path = "HKU:\.Default\Control Panel\Keyboard"
25 | $Path2 = "HKCU:\Control Panel\Keyboard"
26 | Set-ItemProperty -Path $Path -Name InitialKeyboardIndicators -Value $value -ErrorAction Stop
27 | Set-ItemProperty -Path $Path2 -Name InitialKeyboardIndicators -Value $value -ErrorAction Stop
28 | }
29 | catch {
30 | Write-Warning "An error occurred: $($_.Exception.Message)"
31 | }
32 | }
--------------------------------------------------------------------------------
/scripts/Settings/PerformanceOptions.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-PerformanceOptions {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param(
9 | $Enabled,
10 | [string]$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects",
11 | [string]$name = "VisualFXSetting"
12 | )
13 | Try{
14 | if ($Enabled -eq $false){
15 | $value = 2
16 | Add-Log -Message "Enabled auto end tasks" -Level "info"
17 | }
18 | else {
19 | $value = 0
20 | Add-Log -Message "Disabled auto end tasks" -Level "info"
21 | }
22 | Set-ItemProperty -Path $Path -Name $name -Value $value -ErrorAction Stop
23 | Refresh-Explorer
24 | }
25 | Catch [System.Security.SecurityException] {
26 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
27 | }
28 | Catch [System.Management.Automation.ItemNotFoundException] {
29 | Write-Warning $psitem.Exception.ErrorRecord
30 | }
31 | Catch{
32 | Write-Warning "Unable to set $Name due to unhandled exception"
33 | Write-Warning $psitem.Exception.StackTrace
34 | }
35 | }
--------------------------------------------------------------------------------
/scripts/Settings/Show-HiddenItems.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-ShowFile {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of hidden files and folders in Windows Explorer.
6 | #>
7 |
8 | Param($Enabled)
9 | Try {
10 | if ($Enabled -eq $false)
11 | {
12 | $value = 1
13 | Add-Log -Message "Show hidden files , folders etc.." -Level "info"
14 | }
15 | else
16 | {
17 | $value = 2
18 | Add-Log -Message "Don't Show hidden files , folders etc.." -Level "info"
19 | }
20 | $hiddenItemsKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
21 | # Set registry values to show or hide hidden items
22 | Set-ItemProperty -Path $hiddenItemsKey -Name Hidden -Value $value
23 | Set-ItemProperty -Path $hiddenItemsKey -Name ShowSuperHidden -Value $value
24 | Refresh-Explorer
25 | }
26 | Catch [System.Security.SecurityException] {
27 | Write-Warning "Unable to set registry keys due to a Security Exception"
28 | }
29 | Catch [System.Management.Automation.ItemNotFoundException] {
30 | Write-Warning $psitem.Exception.ErrorRecord
31 | }
32 | Catch {
33 | Write-Warning "Unable to set registry keys due to unhandled exception"
34 | Write-Warning $psitem.Exception.StackTrace
35 | }
36 | }
--------------------------------------------------------------------------------
/scripts/Settings/ShowExt.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-ShowFile-Extensions {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param($Enabled)
9 | Try{
10 | if ($Enabled -eq $false){
11 | $value = 0
12 | Add-Log -Message "Hidden extensions" -Level "info"
13 | }
14 | else {
15 | $value = 1
16 | Add-Log -Message "Hidden extensions" -Level "info"
17 | }
18 | $Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
19 | Set-ItemProperty -Path $Path -Name HideFileExt -Value $value
20 | Refresh-Explorer
21 | }
22 | Catch [System.Security.SecurityException] {
23 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
24 | }
25 | Catch [System.Management.Automation.ItemNotFoundException] {
26 | Write-Warning $psitem.Exception.ErrorRecord
27 | }
28 | Catch{
29 | Write-Warning "Unable to set $Name due to unhandled exception"
30 | Write-Warning $psitem.Exception.StackTrace
31 | }
32 | }
--------------------------------------------------------------------------------
/scripts/Settings/ShowFile-Icons.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-ShowFile-Icons {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of thmbnails in Windows Explorer.
6 | #>
7 |
8 | param ($Enabled, $Name = "IconsOnly", $Path = "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced")
9 |
10 | Try {
11 | if ($Enabled -eq $false) {
12 | $value = 1
13 | Add-Log -Message "ON" -Level "info"
14 | }
15 | else {
16 | $value = 0
17 | Add-Log -Message "OFF" -Level "info"
18 | }
19 | Set-ItemProperty -Path $Path -Name $Name -Value $value -ErrorAction Stop
20 | Refresh-Explorer
21 | }
22 | Catch [System.Security.SecurityException] {
23 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
24 | }
25 | Catch [System.Management.Automation.ItemNotFoundException] {
26 | Write-Warning $psitem.Exception.ErrorRecord
27 | }
28 | Catch {
29 | Write-Warning "Unable to set $Name due to unhandled exception"
30 | Write-Warning $psitem.Exception.StackTrace
31 | }
32 | }
--------------------------------------------------------------------------------
/scripts/Settings/ShowTaskbarEnd.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-TaskbarEnd {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param($Enabled)
9 | Try{
10 | if ($Enabled -eq $false){
11 | $value = 1
12 | Add-Log -Message "Show End Task on taskbar" -Level "info"
13 | }
14 | else {
15 | $value = 0
16 | Add-Log -Message "Disable End Task on taskbar" -Level "info"
17 | }
18 | $Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings\"
19 | $name = "TaskbarEndTask"
20 | if (-not (Test-Path $path)) {
21 | New-Item -Path $path -Force | Out-Null
22 | New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
23 | }else {
24 | Set-ItemProperty -Path $Path -Name $name -Value $value -ErrorAction Stop
25 | Refresh-Explorer
26 | Add-Log -Message "This Setting require a restart" -Level "INFO"
27 | }
28 | }
29 | Catch [System.Security.SecurityException] {
30 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
31 | }
32 | Catch [System.Management.Automation.ItemNotFoundException] {
33 | Write-Warning $psitem.Exception.ErrorRecord
34 | }
35 | Catch{
36 | Write-Warning "Unable to set $Name due to unhandled exception"
37 | Write-Warning $psitem.Exception.StackTrace
38 | }
39 | }
--------------------------------------------------------------------------------
/scripts/Settings/StickyKeys.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-StickyKeys {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles Sticky Keys functionality in Windows.
6 | #>
7 |
8 | Param($Enabled)
9 | Try {
10 | if ($Enabled -eq $false){
11 | $value = 510
12 | $value2 = 510
13 | Add-Log -Message "Sticky Keys" -Level "info"
14 | }
15 | else {
16 | $value = 58
17 | $value2 = 122
18 | Add-Log -Message "Sticky Keys" -Level "info"
19 | }
20 | $Path = "HKCU:\Control Panel\Accessibility\StickyKeys"
21 | $Path2 = "HKCU:\Control Panel\Accessibility\Keyboard Response"
22 | Set-ItemProperty -Path $Path -Name Flags -Value $value
23 | Set-ItemProperty -Path $Path2 -Name Flags -Value $value2
24 | Refresh-Explorer
25 | Add-Log -Message "This Setting require a restart" -Level "INFO"
26 | }
27 | Catch [System.Security.SecurityException] {
28 | Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
29 | }
30 | Catch{
31 | Write-Warning "Unable to set $Name due to unhandled exception"
32 | }
33 | }
--------------------------------------------------------------------------------
/scripts/Settings/WSL.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-WSL {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param($Enabled)
9 |
10 | Try{
11 | if ($Enabled -eq $false){
12 | Add-Log -Message "WSL2 disabled" -Level "info"
13 | dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
14 | dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
15 | }
16 | else {
17 | Add-Log -Message "WSL2 enabled" -Level "info"
18 | dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
19 | dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
20 | }
21 | }
22 |
23 | Catch [System.Security.SecurityException] {
24 | Write-Warning "Unable to set WSL2 due to a Security Exception"
25 | }
26 | }
--------------------------------------------------------------------------------
/scripts/Settings/WindowsSandbox.ps1:
--------------------------------------------------------------------------------
1 | function Invoke-WindowsSandbox {
2 |
3 | <#
4 | .SYNOPSIS
5 | Toggles the visibility of file extensions in Windows Explorer.
6 | #>
7 |
8 | Param($Enabled)
9 |
10 | Try{
11 | if ($Enabled -eq $false){
12 | Add-Log -Message "Sandbox disabled" -Level "info"
13 | Dism /online /Disable-Feature /FeatureName:"Containers-DisposableClientVM"
14 | }
15 | else {
16 | Add-Log -Message "Sandbox enabled" -Level "info"
17 | Dism /online /Enable-Feature /FeatureName:"Containers-DisposableClientVM" -All
18 | }
19 | }
20 | Catch [System.Security.SecurityException] {
21 | Write-Warning "Unable to set Windows Sandbox due to a Security Exception"
22 | }
23 | }
--------------------------------------------------------------------------------
/scripts/UI/About-Dev.ps1:
--------------------------------------------------------------------------------
1 | function About {
2 | # init child window
3 | [xml]$about = $AboutWindowXaml
4 | $childWindowReader = (New-Object System.Xml.XmlNodeReader $about)
5 | $itt.about = [Windows.Markup.XamlReader]::Load($childWindowReader)
6 | $itt.about.Add_PreViewKeyDown({ if ($_.Key -eq "Escape") { $itt.about.Close() } })
7 | # Get main style theme
8 | $itt['about'].Resources.MergedDictionaries.Clear()
9 | $itt["about"].Resources.MergedDictionaries.Add($itt["window"].FindResource($itt.Theme))
10 | # # Set Events on Click
11 | $itt.about.FindName('ver').Text = "Last update $($itt.lastupdate)"
12 | $itt.about.FindName("telegram").Add_Click({ Start-Process("https://t.me/emadadel4") })
13 | $itt.about.FindName("github").Add_Click({ Start-Process("https://github.com/emadadel4/itt") })
14 | $itt.about.FindName("blog").Add_Click({ Start-Process("https://emadadel4.github.io") })
15 | $itt.about.FindName("yt").Add_Click({ Start-Process("https://www.youtube.com/@emadadel4") })
16 | $itt.about.FindName("coffee").Add_Click({ Start-Process("https://buymeacoffee.com/emadadel") })
17 | # Set data context language
18 | $itt.about.DataContext = $itt.database.locales.Controls.$($itt.Language)
19 | # Show window
20 | $itt.about.ShowDialog() | Out-Null
21 | }
--------------------------------------------------------------------------------
/scripts/UI/Create-Shortcut.ps1:
--------------------------------------------------------------------------------
1 | function ITTShortcut {
2 |
3 | <#
4 | .SYNOPSIS
5 | Creates a desktop shortcut.
6 | #>
7 |
8 | # URL of the icon file
9 | # Determine the path in AppData\Roaming
10 | $appDataPath = "$env:ProgramData/itt"
11 | $localIconPath = Join-Path -Path $appDataPath -ChildPath "icon.ico"
12 | # Download the icon file
13 | Invoke-WebRequest -Uri $itt.icon -OutFile $localIconPath
14 | # Create a shortcut object
15 | $Shortcut = (New-Object -ComObject WScript.Shell).CreateShortcut("$([Environment]::GetFolderPath('Desktop'))\ITT Emad Adel.lnk")
16 | # Set the target path to PowerShell with your command
17 | $Shortcut.TargetPath = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
18 | $Shortcut.Arguments = "-ExecutionPolicy Bypass -NoProfile -Command ""irm raw.githubusercontent.com/emadadel4/ITT/main/itt.ps1 | iex"""
19 | # Set the icon path to the downloaded icon file in AppData\Roaming
20 | $Shortcut.IconLocation = "$localIconPath"
21 | # Save the shortcut
22 | $Shortcut.Save()
23 | }
--------------------------------------------------------------------------------
/scripts/UI/Filter-Category.ps1:
--------------------------------------------------------------------------------
1 | function Search {
2 |
3 | <#
4 | .SYNOPSIS
5 | Filters items in the current list view based on the search input.
6 | #>
7 |
8 | $filter = $itt.searchInput.Text.ToLower() -replace '[^\p{L}\p{N}]', ''
9 | $collectionView = [System.Windows.Data.CollectionViewSource]::GetDefaultView($itt['window'].FindName($itt.currentList).Items)
10 |
11 | $collectionView.Filter = {
12 | param ($item)
13 |
14 | # Ensure item structure is valid
15 | if ($item.Children.Count -lt 1 -or $item.Children[0].Children.Count -lt 1) {
16 | return $false
17 | }
18 |
19 | # Search within first-level child content
20 | return $item.Children[0].Children[0].Content -match $filter -or $item.Children[0].Children[0].Tag -match $filter
21 | }
22 | }
23 | function FilterByCat {
24 |
25 | param ($Cat)
26 |
27 | $collectionView = [System.Windows.Data.CollectionViewSource]::GetDefaultView($itt['window'].FindName($itt.CurrentList).Items)
28 |
29 | if ($Cat -eq "All" -or [string]::IsNullOrWhiteSpace($Cat)) {
30 |
31 | $collectionView.Filter = $null
32 | }
33 | else {
34 | $collectionView.Filter = {
35 | param ($item)
36 |
37 | $tags = $item.Children[0].Children[0].Tag -split "\|"
38 |
39 | return $tags[4] -imatch $Cat
40 | }
41 | }
42 |
43 | $collectionView.Refresh()
44 | }
--------------------------------------------------------------------------------
/scripts/UI/Keyboard-Shortcuts .ps1:
--------------------------------------------------------------------------------
1 | $KeyEvents = {
2 | if ($itt.ProcessRunning) { return }
3 |
4 | $modifiers = $_.KeyboardDevice.Modifiers
5 | $key = $_.Key
6 |
7 | switch ($key) {
8 | "Enter" {
9 | if ($itt.currentList -eq "appslist") { Invoke-Install }
10 | elseif ($itt.currentList -eq "tweakslist") { Invoke-Apply }
11 | }
12 | "S" {
13 | if ($modifiers -eq "Ctrl") {
14 | if ($itt.currentList -eq "appslist") { Invoke-Install }
15 | elseif ($itt.currentList -eq "tweakslist") { Invoke-Apply }
16 | }
17 | elseif ($modifiers -eq "Shift") { Save-File }
18 | }
19 | "D" { if ($modifiers -eq "Shift") { Get-file } }
20 | "M" {
21 | if ($modifiers -eq "Shift") {
22 | $global:toggleState = -not $global:toggleState
23 | if ($global:toggleState) { Manage-Music -action "SetVolume" -volume 100 }
24 | else { Manage-Music -action "SetVolume" -volume 0 }
25 | }
26 | }
27 | # Easter Egg: Uncomment to enable functionality
28 | # "N" { if ($modifiers -eq "Ctrl") { $itt.mediaPlayer.controls.next() } }
29 | # "B" { if ($modifiers -eq "Ctrl") { $itt.mediaPlayer.controls.previous() } }
30 | "Q" {
31 | if ($modifiers -eq "Ctrl") {
32 | $itt.TabControl.SelectedItem = $itt.TabControl.Items | Where-Object { $_.Name -eq "apps" }
33 | }
34 | elseif ($modifiers -eq "Shift") { RestorePoint }
35 | }
36 | "W" { if ($modifiers -eq "Ctrl") { $itt.TabControl.SelectedItem = $itt.TabControl.Items | Where-Object { $_.Name -eq "tweeksTab" } } }
37 | "E" { if ($modifiers -eq "Ctrl") { $itt.TabControl.SelectedItem = $itt.TabControl.Items | Where-Object { $_.Name -eq "SettingsTab" } } }
38 | "I" {
39 | if ($modifiers -eq "Ctrl") { About }
40 | elseif ($modifiers -eq "Shift") { ITTShortcut }
41 | }
42 | "C" { if ($modifiers -eq "Shift") { Start-Process explorer.exe $env:ProgramData\chocolatey\lib } }
43 | "T" { if ($modifiers -eq "Shift") { Start-Process explorer.exe $env:ProgramData\itt } }
44 | "G" { if ($modifiers -eq "Ctrl") { $this.Close() } }
45 | "F" {
46 | if ($modifiers -eq "Ctrl") {
47 | if ($itt.SearchInput.IsFocused) {
48 | $itt.SearchInput.MoveFocus((New-Object System.Windows.Input.TraversalRequest([System.Windows.Input.FocusNavigationDirection]::Next)))
49 | } else {
50 | $itt.SearchInput.Focus()
51 | }
52 | }
53 | }
54 | "A" {
55 | if ($modifiers -eq "Ctrl" -and ($itt.CurrentCategory -eq "AppsCategory" -or $itt.CurrentCategory -eq "TwaeksCategory")) {
56 | $itt["window"].FindName($itt.CurrentCategory).SelectedIndex = 0
57 | }
58 | }
59 | }
60 | }
--------------------------------------------------------------------------------
/scripts/UI/Message.ps1:
--------------------------------------------------------------------------------
1 | function Message {
2 |
3 | <#
4 | .SYNOPSIS
5 | Displays a localized message box to the user with a specified icon.
6 | .EXAMPLE
7 | Message -key "Welcome" -icon "Warning"
8 | .EXAMPLE 2
9 | Message -NoneKey "This normal text not based on locales" -icon "Warning"
10 |
11 | #>
12 |
13 | param([string]$key,[string]$NoneKey,[string]$title = "ITT",[string]$icon,[string]$action)
14 |
15 | $iconMap = @{ info = "Information"; ask = "Question"; warning = "Warning"; default = "Question" }
16 | $actionMap = @{ YesNo = "YesNo"; OK = "OK"; default = "OK" }
17 | $icon = if ($iconMap.ContainsKey($icon.ToLower())) { $iconMap[$icon.ToLower()] } else { $iconMap.default }
18 | $action = if ($actionMap.ContainsKey($action.ToLower())) { $actionMap[$action.ToLower()] } else { $actionMap.default }
19 | $msg = if ([string]::IsNullOrWhiteSpace($key)) { $NoneKey } else { $itt.database.locales.Controls.$($itt.Language).$key }
20 | [System.Windows.MessageBox]::Show($msg, $title, [System.Windows.MessageBoxButton]::$action, [System.Windows.MessageBoxImage]::$icon)
21 | }
--------------------------------------------------------------------------------
/scripts/UI/Notify.ps1:
--------------------------------------------------------------------------------
1 | function Notify {
2 |
3 | <#
4 | .SYNOPSIS
5 | Displays a balloon tip notification in the system tray with a customizable title, message, icon, and duration.
6 | .EXAMPLE
7 | Notify -title "ITT" -msg "Hello world!" -icon "Information" -time 3000
8 | Displays a notification balloon with the title "ITT" and the message "Hello world!" with an informational icon for 3 seconds.
9 | #>
10 |
11 | param(
12 | [string]$title,
13 | [string]$msg,
14 | [string]$icon,
15 | [Int32]$time
16 | )
17 | $notification = New-Object System.Windows.Forms.NotifyIcon
18 | $notification.Icon = [System.Drawing.SystemIcons]::Information
19 | $notification.BalloonTipIcon = $icon
20 | $notification.BalloonTipText = $msg
21 | $notification.BalloonTipTitle = $title
22 | $notification.Visible = $true
23 | $notification.ShowBalloonTip($time)
24 | # Clean up resources
25 | $notification.Dispose()
26 | }
--------------------------------------------------------------------------------
/scripts/UI/Play-Music.ps1:
--------------------------------------------------------------------------------
1 | function Manage-Music {
2 |
3 | <#
4 | .SYNOPSIS
5 | Manages music playback, volume
6 | #>
7 |
8 | param([string]$action, [int]$volume = 0)
9 |
10 | switch ($action) {
11 | "SetVolume" {
12 | $itt.mediaPlayer.settings.volume = $volume
13 | $global:toggleState = ($volume -ne 0)
14 | Set-ItemProperty -Path $itt.registryPath -Name "Music" -Value "$volume" -Force
15 | $itt["window"].title = "Install Tweaks Tool " + @("🔊", "🔈")[$volume -eq 0]
16 | }
17 | "StopAll" {
18 | $itt.mediaPlayer.controls.stop()
19 | $itt.mediaPlayer = $null
20 | $itt.runspace.Dispose()
21 | $itt.runspace.Close()
22 | $script:powershell.Dispose()
23 | $script:powershell.Stop()
24 | [System.GC]::Collect()
25 | [System.GC]::WaitForPendingFinalizers()
26 | }
27 | default { Write-Host "Invalid action. Use 'SetVolume' or 'StopAll'." }
28 | }
29 | }
--------------------------------------------------------------------------------
/scripts/UI/Set-Langusege.ps1:
--------------------------------------------------------------------------------
1 | function System-Default {
2 |
3 | try {
4 |
5 | $dc = $itt.database.locales.Controls.$shortCulture
6 |
7 | if (-not $dc -or [string]::IsNullOrWhiteSpace($dc)) {
8 | Set-Statusbar -Text "Your default system language is not supported yet, fallback to English"
9 | $dc = $itt.database.locales.Controls.en
10 | }
11 |
12 | $itt["window"].DataContext = $dc
13 |
14 | Set-ItemProperty -Path $itt.registryPath -Name "locales" -Value "default" -Force
15 | }
16 | catch {
17 | Write-Host "An error occurred: $_"
18 | }
19 | }
20 |
21 | function Set-Language {
22 | param ([string]$lang)
23 | if ($lang -eq "default") { System-Default }
24 | else {
25 | $itt.Language = $lang
26 | $itt["window"].DataContext = $itt.database.locales.Controls.$($itt.Language)
27 | Set-ItemProperty -Path $itt.registryPath -Name "locales" -Value $lang -Force
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/scripts/UI/Set-Theme.ps1:
--------------------------------------------------------------------------------
1 | function SwitchToSystem {
2 |
3 | <#
4 | .SYNOPSIS
5 | Functions to manage application theme settings.
6 |
7 | .DESCRIPTION
8 | SwitchToSystem resets the theme to the system default and applies the appropriate resource.
9 | Set-Theme applies a user-defined theme and updates the registry accordingly.
10 | #>
11 |
12 | try {
13 | $appsTheme = Get-ItemPropertyValue -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize" -Name "AppsUseLightTheme"
14 | $theme = if ($AppsTheme -eq "0") { "Dark" } elseif ($AppsTheme -eq "1") { "Light" } else { Write-Host "Unknown theme: $AppsTheme"; return }
15 | $itt['window'].Resources.MergedDictionaries.Add($itt['window'].FindResource($theme))
16 | Set-ItemProperty -Path $itt.registryPath -Name "Theme" -Value "default" -Force
17 | $itt.Theme = $Theme
18 | }
19 | catch { Write-Host "Error: $_" }
20 | }
21 |
22 | function Set-Theme {
23 | param ([string]$Theme)
24 | try {
25 | $itt['window'].Resources.MergedDictionaries.Clear()
26 | $itt['window'].Resources.MergedDictionaries.Add($itt['window'].FindResource($Theme))
27 | Set-ItemProperty -Path $itt.registryPath -Name "Theme" -Value $Theme -Force
28 | $itt.Theme = $Theme
29 | }
30 | catch { Write-Host "Error: $_" }
31 | }
--------------------------------------------------------------------------------
/scripts/UI/Show-Event.ps1:
--------------------------------------------------------------------------------
1 | function Show-Event {
2 |
3 | [xml]$event = $EventWindowXaml
4 | $itt.event = [Windows.Markup.XamlReader]::Load((New-Object System.Xml.XmlNodeReader $event))
5 | $itt.event.Resources.MergedDictionaries.Add($itt["window"].FindResource($itt.Theme))
6 |
7 | $itt.event.FindName('closebtn').add_MouseLeftButtonDown({ $itt.event.Close() })
8 | $itt.event.FindName('DisablePopup').add_MouseLeftButtonDown({ Set-ItemProperty -Path $itt.registryPath -Name "PopupWindow" -Value 1 -Force; $itt.event.Close() })
9 |
10 | #{title}
11 | #{contorlshandler}
12 |
13 | # Calculate timestamp
14 | $storedDate = [datetime]::ParseExact($itt.event.FindName('date').Text, 'MM/dd/yyyy', $null)
15 | $daysElapsed = (Get-Date) - $storedDate
16 | if (($daysElapsed.Days -ge 1) -and (($itt.PopupWindow -ne "0") -or $i)) {return}
17 | $itt.event.Add_PreViewKeyDown({ if ($_.Key -eq "Escape") { $itt.event.Close() } })
18 | if ($daysElapsed.Days -lt 1){$itt.event.FindName('DisablePopup').Visibility = 'Hidden'}
19 | $itt.event.ShowDialog() | Out-Null
20 |
21 | }
--------------------------------------------------------------------------------
/scripts/UI/Statusbar.ps1:
--------------------------------------------------------------------------------
1 | function Set-Statusbar {
2 |
3 | <#
4 | .SYNOPSIS
5 | Set Statusbar text
6 | #>
7 |
8 | param ([string]$Text)
9 | $itt.Statusbar.Dispatcher.Invoke([Action]{$itt.Statusbar.Text = $Text })
10 | }
--------------------------------------------------------------------------------
/scripts/UI/Update-UI.ps1:
--------------------------------------------------------------------------------
1 | function UpdateUI {
2 |
3 | <#
4 | .SYNOPSIS
5 | Update button's content width, text.
6 | #>
7 |
8 | param([string]$Button,[string]$Content,[string]$Width = "140")
9 |
10 | $itt['window'].Dispatcher.Invoke([Action]{
11 | $itt.$Button.Width = $Width
12 | $itt.$Button.Content = $itt.database.locales.Controls.$($itt.Language).$Content
13 | })
14 | }
--------------------------------------------------------------------------------
/scripts/UI/detected-gpu.ps1:
--------------------------------------------------------------------------------
1 | function Find-Driver {
2 |
3 | $gpuInfo = Get-CimInstance Win32_VideoController | Where-Object { $_.Status -eq "OK" } | Select-Object -First 1 -ExpandProperty Name
4 | $encodedName = [System.Web.HttpUtility]::UrlEncode($gpuInfo) -replace '\+', '%20'
5 |
6 | if (-not $gpuInfo) {
7 | Write-Host "No GPU detected"
8 | }
9 |
10 |
11 | if ($gpuInfo -match "NVIDIA") {
12 | Start-Process "https://www.nvidia.com/en-us/drivers/"
13 | }
14 | elseif ($gpuInfo -match "AMD" -or $gpuInfo -match "Radeon") {
15 | Start-Process "https://www.amd.com/en/support/download/drivers.html"
16 | }
17 | elseif ($gpuInfo -match "Intel") {
18 | Start-Process "https://www.intel.com/content/www/us/en/search.html?ws=idsa-suggested#q=$encodedName&sort=relevancy&f:@tabfilter=[Downloads]"
19 | }
20 |
21 | }
--------------------------------------------------------------------------------
/static/Database/OST.json:
--------------------------------------------------------------------------------
1 | {
2 | "Tracks": [
3 | {
4 | "name": "Further - Far cry-3",
5 | "url": "https://eta.vgmtreasurechest.com/soundtracks/far-cry-3/iqgdbfrhtw/17.%20Further%20%28feat.%20Serena%20McKinney%29.mp3"
6 | },
7 | {
8 | "name": "Grand Theft Auto 4 Theme Song",
9 | "url": "https://emadadel4.github.io/sounds/Michael Hunter - Soviet Connection — the Theme from Grand Theft Auto IV.mp3"
10 | },
11 | {
12 | "name": "Mass Effect-3 - End of Cycle",
13 | "url": "https://vgmsite.com/soundtracks/mass-effect-3-extended-cut/eyophevp/02.%20An%20End%2C%20Once%20And%20For%20All%20%28Extended%20Cut%29.mp3"
14 | },
15 | {
16 | "name": "Intro (Somerville Original Soundtrack)",
17 | "url": "https://kappa.vgmsite.com/soundtracks/somerville-2022/naszqoqnhr/01.%20Intro%20%28Somerville%20Original%20Soundtrack%29%20%28feat.%20Dominique%20Charpentier%29.mp3"
18 | },
19 | {
20 | "name": "Kate Chruscicka - Requiem For A Dream",
21 | "url": "https://emadadel4.github.io/sounds/Kate Chruscicka - Requiem for a Dream.mp3"
22 | },
23 | {
24 | "name": "Hans Zimmer - Time",
25 | "url": "https://emadadel4.github.io/sounds/Hans Zimmer - Time.mp3"
26 | },
27 | {
28 | "name": "Westworld - Exit Music (For a Film)",
29 | "url": "https://emadadel4.github.io/sounds/Ramin Djawadi - Exit Music (For a Film).mp3"
30 | },
31 | {
32 | "name": "Homelander in Hallway",
33 | "url": "https://emadadel4.github.io/sounds/Homelander in Hallway.mp3"
34 | },
35 | {
36 | "name": "Grand Theft Auto San Andreas Official Theme",
37 | "url": "https://emadadel4.github.io/sounds/Grand Theft Auto_ San Andreas Official Theme Song.mp3"
38 | },
39 | {
40 | "name": "1.0_8-whatsyourask.m4p",
41 | "url": "https://emadadel4.github.io/sounds/1.0_8-whatsyourask.m4p.mp3"
42 | },
43 | {
44 | "name": "Ludovico Einaudi - Experience",
45 | "url": "https://emadadel4.github.io/sounds/Ludovico Einaudi, Daniel Hope, I Virtuosi Italiani - Experience.mp3"
46 | },
47 | {
48 | "name": "Hans Zimmer - No Time for Caution ",
49 | "url": "https://emadadel4.github.io/sounds/Hans Zimmer - No Time for Caution.mp3"
50 | },
51 | {
52 | "name": "Cyberpunk - Rebel Path",
53 | "url": "https://eta.vgmtreasurechest.com/soundtracks/cyberpunk-2077-original-game-score/zalnnwrhwh/1-03%20The%20Rebel%20Path.mp3"
54 | },
55 | {
56 | "name": "Assassin Creed II - Ezio's Family",
57 | "url": "https://emadadel4.github.io/sounds/Jesper Kyd, Assassin's Creed - Ezio's Family.mp3"
58 | },
59 | {
60 | "name": "Little Nightmares II (Main Theme)",
61 | "url": "https://emadadel4.github.io/sounds/Little Nightmares II (Main Theme).mp3"
62 | },
63 | {
64 | "name": "The Leftovers The Departure Suite",
65 | "url": "https://emadadel4.github.io/sounds/The Leftovers The Departure Suite.mp3"
66 | },
67 | {
68 | "name": "Hollow Knight",
69 | "url": "https://emadadel4.github.io/sounds/Hollow Knight.mp3"
70 | },
71 | {
72 | "name": "Max Payne 3 - Theme Variation 02",
73 | "url": "https://vgmsite.com/soundtracks/max-payne-3-macos-ps3-windows-xbox-360-gamerip-2012/lksuleoehs/111.%20Theme%20Variation%2002.mp3"
74 | },
75 | {
76 | "name": "Max Payne 1 - Theme",
77 | "url": "https://kappa.vgmsite.com/soundtracks/max-payne-re-engineered-soundtrack-2001/rvcbkjxnwt/01.%20Max%20Payne%20Theme.mp3"
78 | },
79 | {
80 | "name": "Zack Hemsey - The Way",
81 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Zack%20Hemsey%20-%20The%20Way.mp3"
82 | },
83 | {
84 | "name": "Can't Fight City Halloween",
85 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Can't%20Fight%20City%20Halloween.mp3"
86 | },
87 | {
88 | "name": "Dona Nobis Pacem 2",
89 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Dona%20Nobis%20Pacem%202.mp3"
90 | },
91 | {
92 | "name": "Cold",
93 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Inner%20Demon.mp3"
94 | },
95 | {
96 | "name": "Inner Demon",
97 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Cold.mp3"
98 | },
99 | {
100 | "name": "Interstellar - Organ Variation",
101 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Organ%20Variation.mp3"
102 | },
103 | {
104 | "name": "God, Please (Disco Elysium)",
105 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/God,%20Please%20(Disco%20Elysium).mp3"
106 | },
107 | {
108 | "name": "Outlaws From The West",
109 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Outlaws%20From%20The%20West.mp3"
110 | },
111 | {
112 | "name": "Alarm - Boys Noize",
113 | "url": "https://github.com/emadadel4/emadadel4.github.io/raw/refs/heads/main/static/sounds/Alarm%20-%20Boys%20Noize.mp3"
114 | }
115 | ],
116 | "Favorite": [
117 | {
118 | "name": "Radiohead - Exit Music (For a Film)",
119 | "url": "https://archive.org/download/06-everything-in-its-right-place-live-in-france/OK%20Computer/04%20Exit%20Music%20%28For%20a%20Film%29.mp3"
120 | },
121 | {
122 | "name": "Billie Eilish - No Time To Die",
123 | "url": "https://archive.org/download/06-everything-in-its-right-place-live-in-france/OK%20Computer/04%20Exit%20Music%20%28For%20a%20Film%29.mp3"
124 | },
125 | {
126 | "name": "Imagine Dragons - Roots",
127 | "url": "https://archive.org/download/ImagineDragons_20190510_0456/Imagine%20Dragons%20-%20Roots.mp3"
128 | },
129 | {
130 | "name": "Imagine Dragons - Believer",
131 | "url": "https://archive.org/download/bunchofimaginedragons/14%20Imagine%20Dragons%20-%20Believer.mp3"
132 | },
133 | {
134 | "name": "Imagine Dragons - Thunder",
135 | "url": "https://archive.org/download/imaginedragonsmusicalbum/Imagine%20Dragons%20-%20Thunder.mp3"
136 | },
137 | {
138 | "name": "Imagine Dragons - Birds",
139 | "url": "https://archive.org/download/bunchofimaginedragons/14%20Imagine%20Dragons%20-%20Birds.mp3"
140 | },
141 | {
142 | "name": "Kxllswxtch - WASTE",
143 | "url": "https://archive.org/download/rock-playlist_202305/WASTE.mp3"
144 | },
145 | {
146 | "name": "Imagine Dragons - Lonely",
147 | "url": "https://archive.org/download/discography-imagine-dragons/discography%20Imagine%20Dragons/MP3%20320%20Kbps/05Imagine%20Dragons%20-%20Mercury%20-%20Act%201/03%20Lonely.mp3"
148 | },
149 | {
150 | "name": "Sharks - Imagine Dragons",
151 | "url": "https://archive.org/download/discography-imagine-dragons/discography%20Imagine%20Dragons/MP3%20320%20Kbps/06Imagine%20Dragons%20-%20Mercury%20-%20Act%202/03%20Sharks.mp3"
152 | },
153 | {
154 | "name": "Roma - Cairokee",
155 | "url": "https://archive.org/download/Cairokee-Roma/07%20-%20Roma.mp3"
156 | },
157 | {
158 | "name": "Sigrid - Everybody Knows",
159 | "url": "https://archive.org/download/justiceleagueflac/Danny%20Elfman%20-%20Justice%20League%20%28Original%20Motion%20Picture%20Soundtrack%29/01%20-%20Everybody%20Knows.mp3"
160 | }
161 | ],
162 | "Otobers": [
163 | {
164 | "name": "محمد عساف - انا دمي فلسطيني",
165 | "url": "https://emadadel4.github.io/sounds/Falstiny.mp3"
166 | },
167 | {
168 | "name": "تلك قضية - كايروكي",
169 | "url": "https://emadadel4.github.io/sounds/Telk Qadeya.mp3"
170 | },
171 | {
172 | "name": "Rajieen",
173 | "url": "https://emadadel4.github.io/sounds/Rajieen.mp3"
174 | }
175 | ]
176 | }
177 |
--------------------------------------------------------------------------------
/static/Database/Settings.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Name": "Show file extensions",
4 | "description": "Show file extensions in Windows displays the suffix at the end of file names (like .txt, .jpg, .exe) etc",
5 | "category": "Protection"
6 | },
7 | {
8 | "Name": "Show Super Hidden",
9 | "description": "Show Super Hidden displays files and folders",
10 | "category": "Protection"
11 | },
12 | {
13 | "Name": "Dark Mode",
14 | "description": "Dark Mode is a setting that changes the screen to darker colors, reducing eye strain and saving battery life on OLED screens",
15 | "category": "Personalize"
16 | },
17 | {
18 | "Name": "NumLook",
19 | "description": "Toggle the Num Lock key state when your computer starts",
20 | "category": "Protection"
21 | },
22 | {
23 | "Name": "Sticky Keys",
24 | "description": "Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities",
25 | "category": "Accessibility"
26 | },
27 | {
28 | "Name": "Mouse Acceleration",
29 | "description": "Cursor movement is affected by the speed of your physical mouse movements",
30 | "category": "Accessibility"
31 | },
32 | {
33 | "Name": "End Task On Taskbar Windows 11",
34 | "description": "End task when right clicking a program in the taskbar",
35 | "category": "Accessibility"
36 | },
37 | {
38 | "Name": "Clear Page File At Shutdown",
39 | "description": "Removes sensitive data stored in virtual memory when the system shuts down",
40 | "category": "Storage "
41 | },
42 | {
43 | "Name": "Auto End Tasks",
44 | "description": "Automatically end tasks that are not responding",
45 | "category": "Performance"
46 | },
47 | {
48 | "Name": "Performance Options",
49 | "description": "Adjust for best performance",
50 | "category": "Performance"
51 | },
52 | {
53 | "Name": "Launch To This PC",
54 | "description": "File Explorer open directly to This PC",
55 | "category": "Accessibility"
56 | },
57 | {
58 | "Name": "Disable Automatic Driver Installation",
59 | "description": "Automatically downloading and installing drivers",
60 | "category": "Drivers"
61 | },
62 | {
63 | "Name": "Always show icons never Thumbnail",
64 | "description": "Show icons in the file explorer instead of thumbnails",
65 | "category": "Performance"
66 | },
67 | {
68 | "Name": "Core Isolation Memory Integrity",
69 | "description": "Core Isolation Memory Integrity",
70 | "category": "Security"
71 | },
72 | {
73 | "Name": "Windows Sandbox",
74 | "description": "Windows Sandbox is a feature that allows you to run a sandboxed version of Windows",
75 | "category": "Features"
76 | },
77 | {
78 | "Name": "Windows Subsystem for Linux",
79 | "description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting",
80 | "category": "Features"
81 | },
82 | {
83 | "Name": "HyperV Virtualization",
84 | "description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines",
85 | "category": "Features"
86 | }
87 | ]
--------------------------------------------------------------------------------
/static/Icons/blog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/blog.png
--------------------------------------------------------------------------------
/static/Icons/done.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/done.png
--------------------------------------------------------------------------------
/static/Icons/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/error.png
--------------------------------------------------------------------------------
/static/Icons/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/github.png
--------------------------------------------------------------------------------
/static/Icons/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/icon.ico
--------------------------------------------------------------------------------
/static/Icons/telegram.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/telegram.png
--------------------------------------------------------------------------------
/static/Icons/youtube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Icons/youtube.png
--------------------------------------------------------------------------------
/static/Images/coffee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/coffee.png
--------------------------------------------------------------------------------
/static/Images/gitt.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/gitt.gif
--------------------------------------------------------------------------------
/static/Images/happy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/happy.jpg
--------------------------------------------------------------------------------
/static/Images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/logo.png
--------------------------------------------------------------------------------
/static/Images/ps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/ps.png
--------------------------------------------------------------------------------
/static/Images/ps_flag.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/ps_flag.jpg
--------------------------------------------------------------------------------
/static/Images/text_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/text_logo.jpg
--------------------------------------------------------------------------------
/static/Images/text_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/text_logo.png
--------------------------------------------------------------------------------
/static/Images/themes.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/themes.gif
--------------------------------------------------------------------------------
/static/Images/themes.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/themes.webp
--------------------------------------------------------------------------------
/static/Images/thumbnail.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/Images/thumbnail.jpg
--------------------------------------------------------------------------------
/static/Themes/Colors.xaml:
--------------------------------------------------------------------------------
1 |
2 | {{CustomThemes}}
3 |
4 |
--------------------------------------------------------------------------------
/static/files/start2.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/emadadel4/itt/2dcc35607e41695e0f965dc78ac236018d479f2a/static/files/start2.bin
--------------------------------------------------------------------------------
/templates/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | ## Install Tweaks Tool
14 |
15 | ITT (Install Tweaks Tool) included most Windows 10/11 Software and Windows Tweaks & Remove Bloatwares & Windows activation
16 |
17 | 
18 | #{last}
19 | 
20 |
21 |
22 |
23 | [](https://t.me/ittcommunity)
24 | [](https://discord.gg/Twyz2Wd5fB)
25 | [](https://www.reddit.com/r/ittea)
26 |
27 | [](/locales/ar.csv) [](/locales/fr.csv) [](/locales/tr.csv) [](/locales/zh.csv) [](/locales/ko.csv) [](/locales/de.csv) [](/locales/ru.csv) [](/locales/es.csv) [](/locales/it.csv) [](/locales/hi.csv)
28 |
29 | ###### 📦 #{a} Apps • ⚙️ #{t} Tweaks • 🔧 #{s} Settings • 💬 #{q} Quote • 🎵 #{OST} Soundtrack • 🌐 #{loc} Localization
30 |
31 | [](https://git.io/typing-svg)
32 |
33 |
34 |
35 |
36 |
37 | 
38 |
39 |
40 |
41 | Overview
42 |
43 | - **🚀 Automated Installation**: Say goodbye to manual software installations. ITT automates the process, saving you time and effort.
44 | - **⚙️ Windows Debloater**: Remove bloatware, boost performance, and customize Windows effortlessly with ITT. Optimize your system in minutes.
45 | - **👩💻 Developer-Friendly**: Easy-to-use and clear documentation to add a new app or tweaks as you like, you can create a new method to download apps. Be creative. How to Contribute or App Request
46 | - **🎵 Soundtracks**: Enjoy listening to best music from games and movies while downloading your programs.
47 |
48 | ⚡ Usage
49 |
50 | On Windows 10/11:
51 |
52 | Right-click on the Start menu.
53 | Choose "PowerShell" and paste any of the following commands:
54 |
55 |
56 | > [!CAUTION]
57 | > **LAUNCH THE SCRIPT ONLY USING OFFICIAL COMMANDS FROM THIS REPOSITORY.**
58 | > **IT'S NOT PORTABLE, SO DO NOT DOWNLOAD OR RUN IT FROM ELSEWHERE.**
59 |
60 | irm bit.ly/ittea | iex
61 |
62 | If the URL is blocked in your region try:
63 | irm emadadel4.github.io/itt.ps1 | iex
64 | irm raw.githubusercontent.com/emadadel4/itt/main/itt.ps1 | iex
65 |
66 | > [!NOTE]
67 | > All links point directly to the [itt.ps1](https://raw.githubusercontent.com/emadadel4/itt/refs/heads/main/itt.ps1) file in this repository. You can test them in browser, make sure the link starts with https://
68 |
69 | ## ⚡ Quick Install Your Saved Apps (Run as Admin is recommended)
70 | Example:
71 | iex "& { $(irm bit.ly/ittea) } -i .\myapps.itt"
72 |
73 | # 🤝 How to Contribute
74 |
75 | ### Project Structure:
76 | ```
77 | ├── itt/
78 | │ ├── static/ > Static files (e.g., apps, settings, images, etc.)
79 | │ ├── Initialize/ > Scripts to set up default registry keys and launch the WPF app window
80 | │ ├── locales/ > Localization files for different languages
81 | │ ├── scripts/ > Core functionality scripts (e.g., install, script blocks, utility scripts)
82 | │ ├── templates/ > Template files (e.g., README.md or other templates)
83 | │ ├── themes/ > Theme files that define the application's visual style
84 | │ ├── xaml/ > UI elements and windows (XAML files)
85 | │ ├── build.ps1 > Builds the project and generates the final output script
86 | │ └── itt.ps1 > This is the script that you run using the commands above
87 | ```
88 |
89 | 1. **Make sure you have PowerShell 7 installed (recommended) for building. is available on ITT**
90 |
91 | 2. **Fork the repository and clone it using [Github desktop](https://desktop.github.com/download/). is available on ITT**
92 |
93 | 3. **Open the ITT directory in PowerShell 7 run as administrator:**
94 |
95 | Set-Location "C:\Users\$env:USERNAME\Documents\Github\ITT"
96 |
97 |
98 |
99 | Choose what you want to add.
100 |
101 |
102 | 📦 Add a New App
103 |
104 | .\newApp.ps1
105 |
106 |
107 | ⚙️ Add a New Tweak
108 |
109 | .\newTweak.ps1
110 |
111 |
112 | > [!NOTE]
113 | > Ensure you understand the tweak you are adding and test it before committing.
114 |
115 | 🌐 Add your native language
116 |
117 |
118 | .\newLocale.ps1
119 |
120 |
121 | > Edit locale.csv file using [edit-csv extension ](https://marketplace.visualstudio.com/items?itemName=janisdd.vscode-edit-csv)
122 |
123 | 🎨 Create your own theme
124 |
125 | .\newTheme.ps1
126 |
127 |
128 | 🎵 Add a New Soundtrack
129 |
130 | .\newOST.ps1
131 |
132 |
133 | 📜 Add a New Quote
134 |
135 | .\newQuote.ps1
136 |
137 |
138 | 🛠️ Build and debug
139 |
140 | .\build.ps1 -Debug
141 |
142 |
143 | > [!NOTE]
144 | > Test your changes before you submit the Pull Request
145 |
146 |
147 |
148 |
149 | # 🌟 Support
150 |
151 | **Love the project?** Show your support by clicking the ⭐ (top right) and joining our community of [stargazers](https://github.com/emadadel4/itt/stargazers)!
152 |
153 | [](https://github.com/emadadel4/itt/stargazers)
154 |
155 |
156 | # Resistance Struggling for Justice in an Authoritarian World
157 |
158 | [](https://git.io/typing-svg)
159 |
160 | 
161 |
162 | Don’t hesitate to speak up and join the conversation about Palestine. In this age, each of us has a role in raising awareness. Every post or message can inspire or educate others. Don’t fear expressing yourself, as words are a powerful force to change reality. Make your platforms spaces for dialogue and contribute to creating change. Together, we raise the voices of the oppressed and work toward global justice. Let’s unite for Palestine and restore hope to those who need it.
163 |
164 | [Donation](https://www.palestinercs.org/en/Donation)
165 |
166 | [Other way to support (boycott)](https://boycott4.github.io/boycott/)
167 |
168 | ### Recommended videos.
169 |
170 |
184 |
185 |
186 |
187 | "YouTube continues to remove recommended videos!"
188 |
189 |
190 |
191 | If you can't lift the injustice, at least tell everyone about it.
192 |
193 | إذا لم تستطع رفع الظلم، فعلى الأقل أخبر الجميع عنه.
194 |
--------------------------------------------------------------------------------
/themes/Dark.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | Install Tweaks Tool
39 |
40 |
--------------------------------------------------------------------------------
/themes/DarkKnight.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | I am not a hero
39 |
40 |
41 |
--------------------------------------------------------------------------------
/themes/Light.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | Install Tweaks Tool
39 |
40 |
--------------------------------------------------------------------------------
/themes/Palestine.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | #StandWithPalestine
39 |
40 |
41 |
--------------------------------------------------------------------------------
/xaml/Controls/Buttons.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
19 |
20 |
21 |
22 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/xaml/Controls/Search.xaml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
20 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/xaml/Views/EventWindow.xaml:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
33 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
117 |
118 |
129 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 | UpdateContent
147 |
148 |
149 |
150 |
151 |
163 |
164 |
165 |
166 |
167 |
--------------------------------------------------------------------------------
/xaml/Views/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 | {{Style}}
20 | {{Colors}}
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 | {{menu}}
37 |
38 |
39 |
40 |
41 |
42 | {{Catagory}}
43 | {{search}}
44 |
45 |
46 |
47 | {{Tabs}}
48 | {{buttons}}
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------