Initial commit
This commit is contained in:
commit
9c1e897bdc
36 changed files with 6638 additions and 0 deletions
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
21
LICENSE
Normal file
21
LICENSE
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2025 robojerk
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
86
OOSU.ps1
Normal file
86
OOSU.ps1
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
<#
|
||||
This PowerShell script attempts to replicate the functionality of O&O ShutUp10++'s recommended and somewhat recommended settings.
|
||||
|
||||
Disclaimer:
|
||||
- This script is provided for informational and educational purposes only.
|
||||
- Modifying system settings can have unintended consequences. Use with caution.
|
||||
- Always create a system restore point or backup before making significant changes.
|
||||
- This script is not a perfect 1:1 replacement for O&O ShutUp10++.
|
||||
- Some settings may require administrator privileges.
|
||||
- Some settings might not be available in all Windows versions.
|
||||
- Double check the settings this script intends to change against your own Windows settings.
|
||||
- Run this script in an elevated PowerShell session (Run as administrator).
|
||||
#>
|
||||
|
||||
# Recommended Settings (Based on common interpretations of ShutUp10++'s recommendations)
|
||||
|
||||
# Disable telemetry and data collection
|
||||
Write-Host "Disabling telemetry and data collection..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowCommercialDataPipeline" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" -Name "ShowedToastAtLevel" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack" -Name "TelemetryLevel" -Value 0 -Force
|
||||
|
||||
# Disable advertising ID
|
||||
Write-Host "Disabling advertising ID..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled" -Value 0 -Force
|
||||
|
||||
# Disable location services
|
||||
Write-Host "Disabling location services..."
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc" -Name "Start" -Value 4 -Force
|
||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\SensorService" -Name "Start" -Value 4 -Force
|
||||
|
||||
# Disable connected user experiences and telemetry
|
||||
Write-Host "Disabling connected user experiences..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Privacy\UserDataSync" -Name "SyncState" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\AppCompat" -Name "DisableUAR" -Value 1 -Force
|
||||
|
||||
# Disable feedback prompts
|
||||
Write-Host "Disabling feedback prompts..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Siuf\Rules" -Name "PeriodInNanoSeconds" -Value 0 -Force
|
||||
|
||||
# Disable Cortana
|
||||
Write-Host "Disabling Cortana..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search" -Name "AllowCortana" -Value 0 -Force
|
||||
|
||||
# Disable automatic updates for Microsoft Store apps
|
||||
Write-Host "Disabling Microsoft Store automatic updates..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" -Name "AutoDownload" -Value 2 -Force
|
||||
|
||||
# Somewhat Recommended Settings (Based on common interpretations of ShutUp10++'s recommendations)
|
||||
|
||||
# Disable background apps
|
||||
Write-Host "Disabling background apps..."
|
||||
#This is harder to script universally, because it depends on installed apps.
|
||||
#You'd need to loop through installed apps, which is complex.
|
||||
#Instead, consider manually disabling them in Settings -> Privacy -> Background apps.
|
||||
Write-Host "Please manually disable unwanted background apps in Settings -> Privacy -> Background apps."
|
||||
|
||||
# Disable activity history
|
||||
Write-Host "Disabling activity history..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\System" -Name "PublishUserActivities" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\System" -Name "UploadUserActivities" -Value 0 -Force
|
||||
|
||||
# Disable handwriting recognition data sharing
|
||||
Write-Host "Disabling handwriting recognition data sharing..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitInkCollection" -Value 1 -Force
|
||||
|
||||
# Disable typing personalization
|
||||
Write-Host "Disabling typing personalization..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\InputPersonalization" -Name "RestrictImplicitTextCollection" -Value 1 -Force
|
||||
|
||||
# Disable diagnostic data inking and typing
|
||||
Write-Host "Disabling diagnostic data inking and typing..."
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\InputPersonalization" -Name "AllowInputPersonalization" -Value 0 -Force
|
||||
|
||||
# Disable Windows tips
|
||||
Write-Host "Disabling Windows tips..."
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SystemPaneSuggestions" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SoftLandingEnabled" -Value 0 -Force
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name "SubscribedContent-338389Enabled" -Value 0 -Force
|
||||
|
||||
#Disable cloud clipboard
|
||||
Write-Host "Disabling cloud clipboard"
|
||||
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\System\Clipboard" -Name "AllowCrossDeviceClipboard" -Value 0 -Force
|
||||
|
||||
Write-Host "Script execution complete. Please restart your computer for changes to take effect."
|
||||
266
README.md
Normal file
266
README.md
Normal file
|
|
@ -0,0 +1,266 @@
|
|||
# Setup a Windows 11 PC as a Living Room PC with emphasis on gaming
|
||||
|
||||
## Setup PC
|
||||
|
||||
### Install Windows 11
|
||||
|
||||
Install Windows 11, preferably using an ISO generated from Chris Titus Tech's Winutil. This will ensure a stable system without the bloatware that Microsoft tries to install. And will setup a local account with a password not connected to Microsoft.
|
||||
|
||||
You can download Winutil from [here](https://github.com/ChrisTitusTech/winutil/releases).
|
||||
|
||||
You can link your Windows local account to your Microsoft account after installation if you need it.
|
||||
|
||||
Make sure to install the latest drivers for your GPU, NIC, and other hardware.
|
||||
|
||||
### Setup Autologin
|
||||
|
||||
There are several methods to enable automatic login in Windows 11. Choose the method that works best for your setup:
|
||||
|
||||
#### Method 1: Using netplwiz (Recommended)
|
||||
1. Press Windows key + R to open Run
|
||||
2. Type `netplwiz` and press Enter
|
||||
3. Uncheck "Users must enter a username and password to use this computer"
|
||||
4. Click Apply
|
||||
5. Enter your username and password in the popup dialog
|
||||
6. Click OK to save
|
||||
|
||||
#### Method 2: Using Registry Editor
|
||||
If you prefer using a script, you can modify the registry directly:
|
||||
|
||||
```powershell
|
||||
# Change LocalAccount to your local account name
|
||||
# Change LocalAccountPassword to your password
|
||||
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_DWORD /d 1 /f
|
||||
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "LocalAccount" /f
|
||||
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "LocalAccountPassword" /f
|
||||
```
|
||||
|
||||
#### Method 3: Using Windows Settings
|
||||
1. Open Windows Settings
|
||||
2. Go to Accounts > Sign-in options
|
||||
3. Under "Additional settings", turn off "Windows Hello sign-in for Microsoft accounts"
|
||||
4. Enter your password when prompted
|
||||
5. Follow Method 1 or 2 to complete the setup
|
||||
|
||||
**Important Security Considerations:**
|
||||
- Only enable autologin on private, secure networks
|
||||
- Consider using a local account instead of a Microsoft account
|
||||
- Anyone with physical access to your PC will be able to use it
|
||||
- If using a Microsoft account, you may need to re-enable this after major Windows updates
|
||||
|
||||
**Note:** If you used Chris Titus Tech's Winutil ISO, autologin may already be configured with your local account.
|
||||
|
||||
### Disable Game Bar
|
||||
|
||||
There are several ways to disable the Xbox Game Bar to prevent it from interfering with Steam and other gaming functions:
|
||||
|
||||
#### Method 1: Via Windows Settings (Windows 11)
|
||||
1. Open Windows Settings
|
||||
2. Go to System > System components > Game Bar
|
||||
3. Click "..." next to Game Bar and select "Advanced options"
|
||||
4. Under Background apps permissions, select "Never"
|
||||
5. Click "Terminate" to stop the game bar app
|
||||
6. Under Gaming settings, toggle off "Allow your controller to open Game Bar"
|
||||
|
||||
#### Method 2: Via Windows Settings (Windows 10)
|
||||
1. Press Windows + I to open Settings
|
||||
2. Go to Gaming > Xbox Game Bar
|
||||
3. Toggle off "Enable Xbox Game Bar"
|
||||
4. Toggle off "Open Xbox Game Bar using this button on a controller"
|
||||
|
||||
#### Method 3: Complete Removal (PowerShell)
|
||||
To permanently remove Xbox Game Bar:
|
||||
```powershell
|
||||
Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage
|
||||
```
|
||||
|
||||
**Note:** If you need to reinstall Xbox Game Bar later, you can download it from the Microsoft Store.
|
||||
|
||||
**Important:** Disabling Game Bar is recommended for a living room PC setup as it:
|
||||
- Prevents conflicts with Steam's overlay
|
||||
- Stops unwanted popups when using controllers
|
||||
- Reduces background processes
|
||||
- Avoids recording conflicts with other capture software
|
||||
|
||||
### Install Steam and Configure Big Picture Mode
|
||||
|
||||
Steam needs to be configured to provide a console-like experience on startup:
|
||||
|
||||
#### Basic Setup
|
||||
1. Install Steam from https://store.steampowered.com/
|
||||
2. Create or log into your Steam account
|
||||
3. Go to Steam Settings > Interface
|
||||
4. Enable both:
|
||||
- "Run Steam when my computer starts"
|
||||
- "Start Steam in Big Picture Mode"
|
||||
|
||||
#### Optimize for Gaming
|
||||
- Disable unnecessary startup programs through Task Manager (Winutil will do this for you)
|
||||
- Configure Steam to launch your most-played games automatically
|
||||
- Consider using Steam's controller configurations for non-Steam games
|
||||
|
||||
**Important Notes:**
|
||||
- Steam Big Picture Mode provides a TV-friendly interface optimized for controller use
|
||||
- All your games can be launched without needing a keyboard/mouse
|
||||
- The interface can be customized with different themes and layouts
|
||||
- Controller configurations can be saved and shared with the Steam community
|
||||
|
||||
**Tip:** Test the full boot sequence once configured:
|
||||
1. Restart your PC
|
||||
2. It should auto-login
|
||||
3. Steam should auto-start
|
||||
4. Big Picture Mode should launch automatically
|
||||
|
||||
### Wireless Adapter for Xbox Controller
|
||||
Bluetooth connections can have issues if you plan on using a controller ONLY with your living room PC. Windows Updates can take bluetooth out of commission, and if you want to wake the PC with the controller most Bluetooth adapters do not support this.
|
||||
|
||||
If you use an xbox controller, you will likely need a Xbox Wireless Adapter Compatible with Xbox One S/X/Series X/S Controller. It plugs into the USB port of your PCand the controller will connect to it using wifi instead of bluetooth. Becareful, some adapters just use bluetooth. Make sure it supports wifi.
|
||||
The one I am using https://amazon.com/dp/B08CY14VGD
|
||||
|
||||
Some controllers that come included with a wireless adapter.
|
||||
Razor Wolverine V3 https://amazon.com/dp/B0DB6S6R89
|
||||
8Bitdo Ultimate 2.4G Wireless Controller https://amazon.com/dp/B00TY8UR2K
|
||||
|
||||
### HDMI CEC Setup for PC Gaming
|
||||
|
||||
When using an Xbox Wireless Adapter, the goal is to create a seamless gaming experience where you can:
|
||||
1. Wake the PC from sleep using just the controller
|
||||
2. Have a TV and AV receiver turn on automatically
|
||||
3. Have everything switch to the correct input
|
||||
|
||||
Key components needed:
|
||||
- Pulse-Eight HDMI CEC USB Adapter https://www.pulse-eight.com/p/104/usb-hdmi-cec-adapter
|
||||
- LibCEC software installed from https://github.com/Pulse-Eight/libcec/releases
|
||||
- Windows Task Scheduler to handle wake events
|
||||
|
||||
**Important Notes:**
|
||||
- No current consumer GPUs (NVIDIA, AMD, or Intel) support HDMI CEC natively
|
||||
- The HDMI CEC adapter may affect display refresh rates
|
||||
- The adapter sits between your PC and AV receiver/TV
|
||||
|
||||
#### Setup Process:
|
||||
1. Install LibCEC
|
||||
2. Connect the HDMI CEC adapter
|
||||
3. Configure Windows Task Scheduler to handle wake events
|
||||
4. Test the wake-from-sleep functionality with your controller
|
||||
|
||||
For testing and debugging CEC commands, you can use: https://www.cec-o-matic.com/
|
||||
https://karlquinsland.com/pulse-eight-hdmi-cec-injector-teardown/
|
||||
### Use Controller as Mouse Input
|
||||
|
||||
There are two popular options for using your controller as a mouse:
|
||||
|
||||
#### Option 1: Gopher360 (Free, Simple Setup)
|
||||
1. Download Gopher360 from [GitHub](https://github.com/Tylemagne/Gopher360/releases)
|
||||
2. Extract and run Gopher.exe
|
||||
3. Default controls:
|
||||
- Left analog stick: Mouse movement
|
||||
- A button: Left click
|
||||
- X button: Right click
|
||||
- B button: Enter
|
||||
- Right analog stick: Scroll wheel
|
||||
- D-pad: Alternative scrolling
|
||||
- Start button: Windows key
|
||||
- Left stick click: Middle mouse button
|
||||
|
||||
To make Gopher360 start automatically:
|
||||
1. Press Windows + R
|
||||
2. Type `shell:startup`
|
||||
3. Copy Gopher.exe to this folder
|
||||
|
||||
#### Option 2: AntiMicro (More Customizable)
|
||||
1. Download and install AntiMicro
|
||||
2. Connect your controller via USB or wireless adapter
|
||||
3. Basic setup:
|
||||
- Click "All stick" in AntiMicro
|
||||
- Set left stick to "Mouse normal"
|
||||
- Configure L shoulder for left mouse click
|
||||
- Configure R shoulder for right mouse click
|
||||
4. Adjust mouse sensitivity and other settings as needed
|
||||
5. Save your configuration profile
|
||||
|
||||
**Tips:**
|
||||
- Test different sensitivity settings to find what works best for your TV setup
|
||||
- You can create different profiles for different games or applications
|
||||
- Consider mapping additional buttons for keyboard shortcuts
|
||||
- Both tools work with most Xbox and compatible controllers
|
||||
|
||||
**Note:** For a living room setup, Gopher360 is often the simpler choice as it's preconfigured for common use cases and starts up quickly.
|
||||
|
||||
## Optional Setup
|
||||
|
||||
### Install bginfo
|
||||
bginfo is a tool that allows you to display information on your desktop. It can be useful for a living room PC setup.
|
||||
``` powershell
|
||||
winget install Microsoft.Sysinternals.BGInfo
|
||||
```
|
||||
Auto run bginfo at startup.
|
||||
``` powershell
|
||||
$bginfoPath = "C:\Program Files\Sysinternals\BGInfo.exe"
|
||||
$startupPath = "C:\Users\Public\Desktop\BGInfo.lnk"
|
||||
|
||||
# Create a shortcut to BGInfo
|
||||
$wsh = New-Object -ComObject WScript.Shell
|
||||
$shortcut = $wsh.CreateShortcut($startupPath)
|
||||
$shortcut.TargetPath = $bginfoPath
|
||||
$shortcut.Save()
|
||||
```
|
||||
|
||||
|
||||
### Install OpenSSH Server
|
||||
There may come a time where you need to access your PC remotely. This will allow you to do so.
|
||||
This will give you a command prompt to access your PC remotely.
|
||||
```powershell
|
||||
# Check if OpenSSH is already installed
|
||||
if (-not (Get-WindowsCapability -Online -Name 'OpenSSH.Client~~~~0.0.1.0')) {
|
||||
# Install OpenSSH Client
|
||||
Add-WindowsCapability -Online -Name 'OpenSSH.Client~~~~0.0.1.0'
|
||||
} else {
|
||||
Write-Host "OpenSSH Client is already installed."
|
||||
}
|
||||
|
||||
if (-not (Get-WindowsCapability -Online -Name 'OpenSSH.Server~~~~0.0.1.0')) {
|
||||
# Install OpenSSH Server
|
||||
Add-WindowsCapability -Online -Name 'OpenSSH.Server~~~~0.0.1.0'
|
||||
} else {
|
||||
Write-Host "OpenSSH Server is already installed."
|
||||
}
|
||||
|
||||
#Start the OpenSSH SSH Server service and set it to automatic startup.
|
||||
if((Get-Service sshd).Status -ne "Running"){
|
||||
Start-Service sshd
|
||||
Set-Service sshd -StartupType Automatic
|
||||
Write-Host "OpenSSH SSH Server service started and set to automatic startup."
|
||||
} else {
|
||||
Write-Host "OpenSSH SSH Server service is already running."
|
||||
}
|
||||
|
||||
#Configure the Windows Firewall to allow SSH connections.
|
||||
if (-not (Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue)) {
|
||||
New-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -DisplayName "OpenSSH Server (TCP)" -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
|
||||
Write-Host "Firewall rule created for OpenSSH."
|
||||
} else {
|
||||
Write-Host "Firewall rule for OpenSSH already exists."
|
||||
}
|
||||
|
||||
#Optional: you can check the status of the service using get-service sshd.
|
||||
Get-Service sshd
|
||||
|
||||
#Optional: Verify the installation by checking the OpenSSH version.
|
||||
ssh -V
|
||||
```
|
||||
|
||||
You can now connect to your PC remotely using ssh.
|
||||
``` powershell
|
||||
ssh username@your-pc-ip-address
|
||||
```
|
||||
You can install applications like btop kill process, etc.
|
||||
``` powershell
|
||||
winget install Microsoft.VCRedist.2015+.x86
|
||||
winget install btop4win
|
||||
```
|
||||
|
||||
## References
|
||||
https://youtu.be/xpki1IcjinU?si=GbyGOj6mM51C243L
|
||||
https://www.youtube.com/watch?v=suwjpXqNeTs
|
||||
https://github.com/Tylemagne/Gopher360
|
||||
176
Steps.md
Normal file
176
Steps.md
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
This file contains the steps to optimize and install the necessary software for a living room PC with a target of running Steam Big Picture Mode. The goal is to make it as close to a console experience as possible. Requiring minimal input from a user that requires more than a game controller.
|
||||
|
||||
Install apps using Winget for script simplicity.
|
||||
|
||||
1. Optimize Windows
|
||||
|
||||
Debloat Windows https://github.com/Raphire/Win11Debloat
|
||||
Debloat Windows
|
||||
1. Microsoft Apps
|
||||
a. Candy Crush (and all King games)
|
||||
b. Solitaire Collection
|
||||
c. Minesweeper
|
||||
d. Paint (keep Paint.NET or similar alternative)
|
||||
e. Voice Recorder
|
||||
f. Clipchamp
|
||||
g. 3D Builder/Viewer
|
||||
h. Mixed Reality Portal
|
||||
i. News
|
||||
j. Feedback Hub
|
||||
k. Maps
|
||||
l. Microsoft Family
|
||||
m. Microsoft Teams (personal)
|
||||
n. Tips
|
||||
o. Weather
|
||||
p. Get Help
|
||||
q. Microsoft To Do
|
||||
r. Sticky Notes
|
||||
s. Power Automate
|
||||
t. Phone Link
|
||||
u. Quick Assist
|
||||
v. Microsoft People
|
||||
w. Office Hub
|
||||
x. OneNote
|
||||
y. Skype
|
||||
z. Windows Web Experience Pack
|
||||
|
||||
2. Third Party Apps
|
||||
a. Adobe Express/Photoshop Express
|
||||
b. Amazon/Prime Video
|
||||
c. Booking.com
|
||||
d. Disney+
|
||||
e. Facebook
|
||||
f. Instagram
|
||||
g. Netflix
|
||||
h. Spotify
|
||||
i. TikTok
|
||||
j. Twitter/X
|
||||
k. WhatsApp
|
||||
l. Kindle
|
||||
m. LinkedIn
|
||||
n. Cortana
|
||||
o. Hidden City
|
||||
p. Asphalt Racing games
|
||||
q. Candy Crush series
|
||||
r. Farmville games
|
||||
s. Royal Match
|
||||
t. Township
|
||||
u. McAfee
|
||||
v. ExpressVPN
|
||||
w. Dropbox Promotion
|
||||
|
||||
Keep (Required for Gaming/Functionality):
|
||||
1. Xbox Identity Provider
|
||||
2. Xbox Game Bar (optional but useful)
|
||||
3. Xbox Gaming Services
|
||||
4. Windows Store (required for some game installations)
|
||||
5. Calculator (useful utility)
|
||||
6. Notepad (useful utility)
|
||||
7. Windows Terminal
|
||||
8. Microsoft.NET
|
||||
9. Windows Media Player (for video playback)
|
||||
|
||||
Set Services to Manual/Disabled:
|
||||
a. Manual Services:
|
||||
- Connected User Experiences and Telemetry (DiagTrack)
|
||||
- Device Management Wireless Application Protocol (dmwappushservice)
|
||||
- Downloaded Maps Manager (MapsBroker)
|
||||
- Function Discovery Provider Host (fdPHost)
|
||||
- Function Discovery Resource Publication (FDResPub)
|
||||
- Geolocation Service (lfsvc)
|
||||
- Microsoft Account Sign-in Assistant (wlidsvc)
|
||||
- Offline Files (CscService)
|
||||
- Phone Service (PhoneSvc)
|
||||
- Print Spooler (Spooler) - unless printing needed
|
||||
- Program Compatibility Assistant Service (PcaSvc)
|
||||
- Radio Management Service (RmSvc)
|
||||
- Remote Registry (RemoteRegistry)
|
||||
- Retail Demo Service (RetailDemo)
|
||||
- Secondary Logon (seclogon)
|
||||
- Sensor Data Service (SensorDataService)
|
||||
- Sensor Service (SensorService)
|
||||
- Shell Hardware Detection (ShellHWDetection)
|
||||
- Smart Card (SCardSvr)
|
||||
- Smart Card Device Enumeration Service (ScDeviceEnum)
|
||||
- SSDP Discovery (SSDPSRV)
|
||||
- Touch Keyboard and Handwriting Panel Service (TabletInputService)
|
||||
- Windows Biometric Service (WbioSrvc)
|
||||
- Windows Image Acquisition (WIA)
|
||||
- Windows Media Player Network Sharing Service (WMPNetworkSvc)
|
||||
- Windows Mobile Hotspot Service (icssvc)
|
||||
- Windows Search (WSearch)
|
||||
- Xbox Accessory Management Service (XboxGipSvc)
|
||||
- Xbox Live Auth Manager (XblAuthManager)
|
||||
- Xbox Live Game Save (XblGameSave)
|
||||
- Xbox Live Networking Service (XboxNetApiSvc)
|
||||
|
||||
b. Disabled Services
|
||||
- Windows Connect Now (wcncsvc)
|
||||
- Windows Event Collector (Wecsvc)
|
||||
- Windows Remote Management (WinRM) ( We will use OpenSSH for this )
|
||||
|
||||
Info for these steps can be found here https://christitustech.github.io/winutil/devdocs/
|
||||
Tweaks
|
||||
a. Create Restore Point
|
||||
b. Delete temporary files
|
||||
c. Disable Consumer Features
|
||||
d. Disable Telemetry
|
||||
e. Disable Activity History
|
||||
f. Disable GameDVR
|
||||
g. Disable Hibernation (Im not sure if this is wanted, maybe discuss this)
|
||||
h. Disable Home Groups
|
||||
i. Disable Location Tracking
|
||||
k. Disable Storage Sense
|
||||
j. Disable Wifi Sense
|
||||
l. Enable End Task with right click
|
||||
m. Run Disk Cleanup
|
||||
n. change Windows Terminal default profile to Powershell 7
|
||||
o. Disable Powershell 7 Telemetry
|
||||
p. Disable recall
|
||||
q. Set unwanted background apps "manual" startup
|
||||
r. Debloat Edge
|
||||
s. Disable Microsoft Copilot
|
||||
t. Disable Notifications
|
||||
u. Remove Home and Gallery from File Explorer
|
||||
v. Block Razer software install (optional)
|
||||
w. Remove OneDrive
|
||||
x. Set DNS to DHCP
|
||||
y. Set Display to Performance
|
||||
z. Run OOSU.ps1
|
||||
|
||||
Preferences
|
||||
a. Set Dark Theme
|
||||
b. Remove Bing Search from Start Menu
|
||||
c. Remove Recommendations from Start Menu
|
||||
d. Disable Snap Windows, Assist Flyout, and Snap Assist Suggestion
|
||||
e. Disable Sticky Keys
|
||||
f. Disable Search Button in Taskbar
|
||||
g. Disable Task View Button in Taskbar
|
||||
h. Disable Center Taskbar Items
|
||||
i. Disable Show Task View Button
|
||||
j. Disable Widgets in Taskbar
|
||||
Set Power Plan
|
||||
I want high performance, but when the controller is disconnected, put the PC to sleep or hibernate (whichever is better for the system).
|
||||
Enable Automatic Login (Ask for current user, if not scan for users and ask which one to use)
|
||||
Check if Winget is updated, reinstall if not (https://christitustech.github.io/winutil/dev/features/Fixes/Winget/)
|
||||
Set Windows Updates to Security (Recommended) Settings ( https://christitustech.github.io/winutil/userguide/ )
|
||||
|
||||
2. Update GPU Drivers for the GPU on the system. If using an NVIDIA GPU, install the latest NVIDIA drivers. If using an AMD GPU, install the latest AMD drivers. If using an Intel GPU, install the latest Intel drivers. If two GPUs and one is an igpu or apu, install the latest drivers for the discrete GPU.
|
||||
|
||||
3. Install Steam
|
||||
a. Install Steam
|
||||
c. Enable Autostart & Big Picture Mode
|
||||
3. Install all VCRedist (games will need them any way)
|
||||
4. Configure Controller
|
||||
a. Enable controller to wake PC, put PC to sleep when controller is disconnected.
|
||||
using 'powercfg /devicequery wake_programmable' to find the program name controller, preferabbly a "Wireless Adapter Compatible with Xbox One Controller"
|
||||
b. Choose between Gopher360 (https://github.com/gophergala/gopher360) or Antimicro (https://github.com/AntiMicro/antimicro) for controller support.
|
||||
c. Figure out a way to open on screen keyboard with controller
|
||||
|
||||
|
||||
4. Extras (Optional)
|
||||
a. If using optional Pulse-Eight HDMI-CEC Adapter, setup CEC scripts
|
||||
b. Enable OpenSSH Server (allow remote tui connection to run winget or btop4win)
|
||||
c. Install btop4win (with dependencies)
|
||||
d. Install BGInfo with my settings
|
||||
e. Install nano or vim for text editing
|
||||
58
bginfo/bginfo.md
Normal file
58
bginfo/bginfo.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# BGInfo Command-Line Arguments
|
||||
|
||||
BGInfo uses command-line switches to control its behavior. Here's a list of all available arguments:
|
||||
|
||||
* **`[configuration_file]`**:
|
||||
* Specifies the path to the BGInfo configuration file (`.bgi`).
|
||||
* If omitted, BGInfo uses the default configuration.
|
||||
* Example: `bginfo.exe "C:\MyBGInfo\myconfig.bgi"`
|
||||
|
||||
* **`/timer:x`**:
|
||||
* Sets the update interval in seconds.
|
||||
* `x` represents the number of seconds.
|
||||
* Example: `/timer:60` (updates every 60 seconds).
|
||||
|
||||
* **`/silent`**:
|
||||
* Runs BGInfo in silent mode, without displaying the configuration dialog.
|
||||
|
||||
* **`/taskbar`**:
|
||||
* Displays the BGInfo icon in the system tray (taskbar notification area).
|
||||
|
||||
* **`/popup`**:
|
||||
* Displays the bginfo information in a popup window.
|
||||
|
||||
* **`/all`**:
|
||||
* Applies the BGInfo configuration to all connected monitors.
|
||||
|
||||
* **`/display:n`**:
|
||||
* Applies the BGInfo configuration to a specific display.
|
||||
* `n` is the display number (starting from 1).
|
||||
* Example: `/display:2` (applies to the second display).
|
||||
|
||||
* **`/position:x,y`**:
|
||||
* Sets the position of the BGInfo text on the desktop.
|
||||
* `x` and `y` are the coordinates in pixels.
|
||||
* Example: `/position:100,200`.
|
||||
|
||||
* **`/fontsize:n`**:
|
||||
* Sets the font size of the BGInfo text.
|
||||
* `n` is the font size.
|
||||
* Example: `/fontsize:12`.
|
||||
|
||||
* **`/fontname:"fontname"`**:
|
||||
* Sets the font name of the BGInfo text.
|
||||
* `"fontname"` is the name of the font, enclosed in double quotes.
|
||||
* Example: `/fontname:"Arial"`.
|
||||
|
||||
* **`/color:rrggbb`**:
|
||||
* Sets the font color of the BGInfo text.
|
||||
* `rrggbb` is the hexadecimal RGB color code.
|
||||
* Example: `/color:0000FF` (blue).
|
||||
|
||||
* **`/background:filename`**:
|
||||
* Sets the background image for the BGInfo text.
|
||||
* `filename` is the full path to the image, enclosed in double quotes if it contains spaces.
|
||||
* Example: `/background:"C:\path\to\image.jpg"`.
|
||||
|
||||
* **`/config`**:
|
||||
* Opens the configuration dialog, even if the `/silent` switch is used.
|
||||
BIN
bginfo/config.bgi
Normal file
BIN
bginfo/config.bgi
Normal file
Binary file not shown.
16
bginfo/cpuname.vbs
Normal file
16
bginfo/cpuname.vbs
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
Set cpu = wmi.ExecQuery("SELECT * FROM Win32_Processor")
|
||||
|
||||
' Get CPU name
|
||||
For Each item In cpu
|
||||
' Return the value directly - this is how BGInfo expects it
|
||||
Echo item.Name
|
||||
Exit For
|
||||
Next
|
||||
|
||||
' Clean up
|
||||
Set cpu = Nothing
|
||||
Set wmi = Nothing
|
||||
25
bginfo/gpu.vbs
Normal file
25
bginfo/gpu.vbs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
'=============================================================================
|
||||
' GPU Info Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: This script gets the dedicated GPU name, ignoring integrated GPUs
|
||||
'=============================================================================
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
|
||||
' Get GPU info - look for NVIDIA or AMD GPUs
|
||||
Set gpus = wmi.ExecQuery("SELECT Name FROM Win32_VideoController WHERE Name LIKE '%NVIDIA%' OR Name LIKE '%AMD%' OR Name LIKE '%Radeon%'")
|
||||
|
||||
' Get GPU name
|
||||
For Each gpu In gpus
|
||||
If Not IsNull(gpu.Name) Then
|
||||
Echo gpu.Name
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
' Clean up
|
||||
Set gpus = Nothing
|
||||
Set wmi = Nothing
|
||||
66
bginfo/hdinfo.vbs
Normal file
66
bginfo/hdinfo.vbs
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
'=============================================================================
|
||||
' Hard Drive Info Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: Shows fixed drive letters with free and total space
|
||||
' Output Styles:
|
||||
' 1 = Percentage (C:\ 74.7GB/118GB (63% free))
|
||||
' 2 = Bar (C:\ [¦¦¦¦¦¦¦¦¦¦] 74.7GB free)
|
||||
' 3 = Compact (C:\ 74.7/118 GB)
|
||||
' 4 = Detailed (C:\ Free: 74.7GB | Total: 118GB | Used: 43.3GB)
|
||||
' 5 = Simple (C:\ 74.7 of 118GB)
|
||||
' 6 = Minimal (C:\ 74.7/118)
|
||||
'=============================================================================
|
||||
|
||||
' Configuration
|
||||
If IsEmpty(OUTPUT_STYLE) Then OUTPUT_STYLE = 1 ' Default to Percentage style
|
||||
If OUTPUT_STYLE < 1 Or OUTPUT_STYLE > 6 Then OUTPUT_STYLE = 1
|
||||
IGNORE_USB = True ' Set to False to show USB drives
|
||||
SHOW_DRIVE_TYPE = False ' Set to True to show drive type (HDD/SSD)
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
|
||||
' Get fixed drives only (Type 3)
|
||||
Set drives = wmi.ExecQuery("SELECT DeviceID, FreeSpace, Size FROM Win32_LogicalDisk WHERE DriveType=3")
|
||||
|
||||
' Format and output drive info
|
||||
For Each drive In drives
|
||||
If Not IsNull(drive.Size) Then
|
||||
' Calculate sizes in GB
|
||||
freeGB = Round(drive.FreeSpace / 1024 / 1024 / 1024, 1)
|
||||
totalGB = Round(drive.Size / 1024 / 1024 / 1024, 0)
|
||||
usedGB = Round(totalGB - freeGB, 1)
|
||||
percentFree = Round((freeGB / totalGB) * 100, 0)
|
||||
|
||||
' Format output based on style
|
||||
Select Case OUTPUT_STYLE
|
||||
Case 1 ' Percentage
|
||||
Echo drive.DeviceID & "\ " & freeGB & "GB/" & totalGB & "GB (" & percentFree & "% free)"
|
||||
|
||||
Case 2 ' Bar (10 segments)
|
||||
barCount = Round(percentFree/10, 0)
|
||||
bar = String(barCount, "¦") & String(10-barCount, "¦")
|
||||
Echo drive.DeviceID & "\ [" & bar & "] " & freeGB & "GB free"
|
||||
|
||||
Case 3 ' Compact
|
||||
Echo drive.DeviceID & "\ " & freeGB & "/" & totalGB & " GB"
|
||||
|
||||
Case 4 ' Detailed
|
||||
Echo drive.DeviceID & "\ Free: " & freeGB & "GB | Total: " & totalGB & "GB | Used: " & usedGB & "GB"
|
||||
|
||||
Case 5 ' Simple
|
||||
Echo drive.DeviceID & "\ " & freeGB & " of " & totalGB & "GB"
|
||||
|
||||
Case 6 ' Minimal
|
||||
Echo drive.DeviceID & "\ " & freeGB & "/" & totalGB
|
||||
|
||||
Case Else ' Default to Simple if invalid style
|
||||
Echo drive.DeviceID & "\ " & freeGB & " of " & totalGB & "GB"
|
||||
End Select
|
||||
End If
|
||||
Next
|
||||
|
||||
' Clean up
|
||||
Set wmi = Nothing
|
||||
29
bginfo/igpu.vbs
Normal file
29
bginfo/igpu.vbs
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
'=============================================================================
|
||||
' Integrated GPU Info Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: This script gets the integrated GPU name (Intel/AMD)
|
||||
'=============================================================================
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
|
||||
' Get iGPU info - look for Intel or AMD integrated graphics
|
||||
Set gpus = wmi.ExecQuery("SELECT Name FROM Win32_VideoController WHERE " & _
|
||||
"Name LIKE '%Intel%' OR " & _
|
||||
"Name LIKE '%AMD Radeon Graphics%' OR " & _
|
||||
"Name LIKE '%AMD Radeon(TM) Graphics%' OR " & _
|
||||
"Name LIKE '%AMD Ryzen%'")
|
||||
|
||||
' Get iGPU name
|
||||
For Each gpu In gpus
|
||||
If Not IsNull(gpu.Name) Then
|
||||
Echo gpu.Name
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
' Clean up
|
||||
Set gpus = Nothing
|
||||
Set wmi = Nothing
|
||||
56
bginfo/install_bginfo.ps1
Normal file
56
bginfo/install_bginfo.ps1
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# Create .bginfo directory in user's home folder
|
||||
$bginfoDir = "$env:USERPROFILE\.bginfo"
|
||||
New-Item -ItemType Directory -Force -Path $bginfoDir
|
||||
|
||||
# Download BGInfo
|
||||
$bginfoUrl = "https://download.sysinternals.com/files/BGInfo.zip"
|
||||
$bginfoZip = "$env:TEMP\BGInfo.zip"
|
||||
Invoke-WebRequest -Uri $bginfoUrl -OutFile $bginfoZip
|
||||
|
||||
# Extract BGInfo
|
||||
Expand-Archive -Path $bginfoZip -DestinationPath "$env:TEMP\BGInfo" -Force
|
||||
|
||||
# Copy BGInfo files to .bginfo directory
|
||||
Copy-Item "$env:TEMP\BGInfo\*" -Destination $bginfoDir -Force
|
||||
|
||||
# Create VBS scripts directory
|
||||
$vbsDir = "$bginfoDir\scripts"
|
||||
New-Item -ItemType Directory -Force -Path $vbsDir
|
||||
|
||||
# Download VBS scripts from GitHub
|
||||
$vbsFiles = @(
|
||||
"cpuname.vbs",
|
||||
"ipaddr.vbs",
|
||||
"gpu.vbs",
|
||||
"igpu.vbs",
|
||||
"ram.vbs",
|
||||
"hdinfo.vbs",
|
||||
"networkspeed.vbs",
|
||||
"osversion.vbs",
|
||||
"sshstatus.vbs"
|
||||
)
|
||||
|
||||
$baseUrl = "https://raw.githubusercontent.com/robojerk/ConfigureWindowsSteamPC/main/bginfo/scripts"
|
||||
foreach ($file in $vbsFiles) {
|
||||
$url = "$baseUrl/$file"
|
||||
$output = "$vbsDir\$file"
|
||||
Invoke-WebRequest -Uri $url -OutFile $output
|
||||
}
|
||||
|
||||
# Download config.bgi from GitHub
|
||||
$configUrl = "https://raw.githubusercontent.com/robojerk/ConfigureWindowsSteamPC/main/bginfo/config.bgi"
|
||||
Invoke-WebRequest -Uri $configUrl -OutFile "$bginfoDir\config.bgi"
|
||||
|
||||
# Create scheduled task to run BGInfo at startup
|
||||
$action = New-ScheduledTaskAction -Execute "$bginfoDir\Bginfo.exe" -Argument "$bginfoDir\config.bgi /silent /timer:60"
|
||||
$trigger = New-ScheduledTaskTrigger -AtStartup
|
||||
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Highest
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
|
||||
Register-ScheduledTask -TaskName "BGInfo" -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force
|
||||
|
||||
# Cleanup
|
||||
Remove-Item $bginfoZip -Force
|
||||
Remove-Item "$env:TEMP\BGInfo" -Recurse -Force
|
||||
|
||||
Write-Host "BGInfo has been installed and configured successfully!"
|
||||
104
bginfo/ipaddr.vbs
Normal file
104
bginfo/ipaddr.vbs
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
'=============================================================================
|
||||
' IP Address Info Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: Gets IP address based on configuration:
|
||||
' - If MAC file exists: shows IP for that adapter with connection type
|
||||
' - If no MAC file: shows IP from first active adapter with connection type
|
||||
' Example: "192.168.1.100 (wired)" or "192.168.1.101 (wifi)"
|
||||
'=============================================================================
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
Set fso = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
' Try to read MAC address from file
|
||||
macAddress = ""
|
||||
If fso.FileExists("mac") Then
|
||||
Set file = fso.OpenTextFile("mac", 1, False)
|
||||
If Not file.AtEndOfStream Then
|
||||
macAddress = Trim(file.ReadLine())
|
||||
End If
|
||||
file.Close
|
||||
End If
|
||||
|
||||
' Build WMI query based on whether we have a MAC address
|
||||
If macAddress <> "" Then
|
||||
' Get IP and adapter info for specific MAC
|
||||
query = "SELECT IPAddress, AdapterType, NetConnectionID FROM Win32_NetworkAdapter WHERE MACAddress='" & macAddress & "' AND NetEnabled=True"
|
||||
Set adapters = wmi.ExecQuery(query)
|
||||
|
||||
' Get corresponding configuration for IP
|
||||
For Each adapter In adapters
|
||||
query = "SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE MACAddress='" & macAddress & "'"
|
||||
Set configs = wmi.ExecQuery(query)
|
||||
|
||||
For Each config In configs
|
||||
If Not IsNull(config.IPAddress) Then
|
||||
' Determine connection type
|
||||
connType = "(wired)" ' Default to wired
|
||||
If Not IsNull(adapter.AdapterType) Then
|
||||
' Debug connection info
|
||||
'Echo "Type: " & adapter.AdapterType & " | Name: " & adapter.NetConnectionID
|
||||
|
||||
' Check for wireless adapter
|
||||
If adapter.AdapterType = "Ethernet 802.3" Then
|
||||
connType = "(wired)"
|
||||
ElseIf adapter.AdapterType = "IEEE 802.11" Then
|
||||
connType = "(wifi)"
|
||||
End If
|
||||
End If
|
||||
|
||||
' Output IP with connection type
|
||||
For Each ip In config.IPAddress
|
||||
If InStr(ip, ":") = 0 Then
|
||||
Echo ip & " " & connType
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Else
|
||||
' Get IP from any active adapter
|
||||
query = "SELECT IPAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=True"
|
||||
Set configs = wmi.ExecQuery(query)
|
||||
|
||||
For Each config In configs
|
||||
If Not IsNull(config.IPAddress) Then
|
||||
' Get adapter info for connection type
|
||||
query = "SELECT AdapterType, NetConnectionID FROM Win32_NetworkAdapter WHERE NetEnabled=True AND MACAddress='" & config.MACAddress & "'"
|
||||
Set adapters = wmi.ExecQuery(query)
|
||||
|
||||
For Each adapter In adapters
|
||||
' Determine connection type
|
||||
connType = "(wired)" ' Default to wired
|
||||
If Not IsNull(adapter.AdapterType) Then
|
||||
' Debug connection info
|
||||
'Echo "Type: " & adapter.AdapterType & " | Name: " & adapter.NetConnectionID
|
||||
|
||||
' Check for wireless adapter
|
||||
If adapter.AdapterType = "Ethernet 802.3" Then
|
||||
connType = "(wired)"
|
||||
ElseIf adapter.AdapterType = "IEEE 802.11" Then
|
||||
connType = "(wifi)"
|
||||
End If
|
||||
End If
|
||||
|
||||
' Output IP with connection type
|
||||
For Each ip In config.IPAddress
|
||||
If InStr(ip, ":") = 0 Then
|
||||
Echo ip & " " & connType
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
' Clean up
|
||||
Set wmi = Nothing
|
||||
Set fso = Nothing
|
||||
1
bginfo/mac
Normal file
1
bginfo/mac
Normal file
|
|
@ -0,0 +1 @@
|
|||
D8:9E:F3:36:81:A3
|
||||
60
bginfo/networkspeed.vbs
Normal file
60
bginfo/networkspeed.vbs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
'=============================================================================
|
||||
' Network Speed Info Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: Shows network adapter speed(s):
|
||||
' - If MAC file exists: shows speed for that specific adapter
|
||||
' - If no MAC file or empty: shows speeds for all active adapters
|
||||
'=============================================================================
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI and FSO
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
Set fso = CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
' Try to read MAC address from file
|
||||
macAddress = ""
|
||||
If fso.FileExists("mac") Then
|
||||
Set file = fso.OpenTextFile("mac", 1, False)
|
||||
If Not file.AtEndOfStream Then
|
||||
macAddress = Trim(file.ReadLine())
|
||||
End If
|
||||
file.Close
|
||||
End If
|
||||
|
||||
' Build WMI query based on whether we have a MAC address
|
||||
If macAddress <> "" Then
|
||||
' Get speed for specific MAC
|
||||
query = "SELECT Speed FROM Win32_NetworkAdapter WHERE MACAddress='" & macAddress & "' AND NetEnabled=True"
|
||||
Else
|
||||
' Get speed from all active adapters
|
||||
query = "SELECT Speed FROM Win32_NetworkAdapter WHERE NetEnabled=True"
|
||||
End If
|
||||
|
||||
' Execute query
|
||||
Set adapters = wmi.ExecQuery(query)
|
||||
|
||||
' Format and output speeds
|
||||
For Each adapter In adapters
|
||||
If Not IsNull(adapter.Speed) Then
|
||||
speed = CLng(adapter.Speed)
|
||||
|
||||
' Convert to appropriate units
|
||||
If speed >= 1000000000 Then
|
||||
' Convert to Gb/s
|
||||
speedText = Round(speed/1000000000, 1) & " Gb/s"
|
||||
ElseIf speed >= 1000000 Then
|
||||
' Convert to Mb/s
|
||||
speedText = Round(speed/1000000, 0) & " Mb/s"
|
||||
Else
|
||||
' Show in Kb/s
|
||||
speedText = Round(speed/1000, 0) & " Kb/s"
|
||||
End If
|
||||
|
||||
Echo speedText
|
||||
End If
|
||||
Next
|
||||
|
||||
' Clean up
|
||||
Set wmi = Nothing
|
||||
Set fso = Nothing
|
||||
45
bginfo/osversion.vbs
Normal file
45
bginfo/osversion.vbs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
'=============================================================================
|
||||
' OS Version Info Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: This script gets Windows version details from registry and WMI
|
||||
' Example outputs: "Windows 11 Pro 24H2"
|
||||
'=============================================================================
|
||||
|
||||
' Configuration
|
||||
REMOVE_MICROSOFT = True ' Set to False to keep "Microsoft" in the name
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to registry and create shell
|
||||
Set shell = CreateObject("WScript.Shell")
|
||||
regPath = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
|
||||
|
||||
' Get OS Caption from WMIC
|
||||
Set wmicExec = shell.Exec("wmic os get Caption /value")
|
||||
osCaption = wmicExec.StdOut.ReadAll()
|
||||
|
||||
' Clean up the caption text
|
||||
osCaption = Replace(osCaption, "Caption=", "")
|
||||
osCaption = Replace(osCaption, vbCr, "")
|
||||
osCaption = Replace(osCaption, vbLf, "")
|
||||
osCaption = Replace(osCaption, vbTab, "")
|
||||
osCaption = Trim(osCaption)
|
||||
|
||||
' Remove "Microsoft" if configured
|
||||
If REMOVE_MICROSOFT Then
|
||||
osCaption = Replace(osCaption, "Microsoft ", "")
|
||||
End If
|
||||
|
||||
' Get Display Version from registry and clean it
|
||||
displayVersion = Trim(shell.RegRead(regPath & "DisplayVersion"))
|
||||
|
||||
' Output the formatted version (single space between parts)
|
||||
If displayVersion <> "" Then
|
||||
Echo osCaption & " " & displayVersion
|
||||
Else
|
||||
Echo osCaption
|
||||
End If
|
||||
|
||||
' Clean up
|
||||
Set shell = Nothing
|
||||
Set wmicExec = Nothing
|
||||
28
bginfo/ram.vbs
Normal file
28
bginfo/ram.vbs
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
'=============================================================================
|
||||
' Show RAM Info Script for BGInfo in GB
|
||||
'=============================================================================
|
||||
' Description: This script gets the total installed physical RAM and displays
|
||||
' it in gigabytes (GB)
|
||||
'=============================================================================
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
|
||||
' Get total physical memory in bytes
|
||||
Set computer = wmi.ExecQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")
|
||||
|
||||
' Convert to GB and display
|
||||
For Each system In computer
|
||||
If Not IsNull(system.TotalPhysicalMemory) Then
|
||||
' Convert bytes to GB and round to 2 decimal places
|
||||
ramGB = Round(system.TotalPhysicalMemory / 1024 / 1024 / 1024, 0)
|
||||
Echo ramGB & " GB"
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
' Clean up
|
||||
Set computer = Nothing
|
||||
Set wmi = Nothing
|
||||
31
bginfo/sshstatus.vbs
Normal file
31
bginfo/sshstatus.vbs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
'=============================================================================
|
||||
' SSH Status Script for BGInfo
|
||||
'=============================================================================
|
||||
' Description: Shows if SSH Server is installed and its running status
|
||||
' Example outputs: "Running" or "Stopped" or "Not Installed"
|
||||
'=============================================================================
|
||||
|
||||
On Error Resume Next
|
||||
|
||||
' Connect to WMI
|
||||
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
|
||||
|
||||
' Check for SSH Server service
|
||||
Set services = wmi.ExecQuery("SELECT State FROM Win32_Service WHERE Name='sshd'")
|
||||
|
||||
' Determine SSH status
|
||||
If services.Count > 0 Then
|
||||
For Each service In services
|
||||
If service.State = "Running" Then
|
||||
Echo "Running"
|
||||
Else
|
||||
Echo "Stopped"
|
||||
End If
|
||||
Exit For
|
||||
Next
|
||||
Else
|
||||
Echo "Not Installed"
|
||||
End If
|
||||
|
||||
' Clean up
|
||||
Set wmi = Nothing
|
||||
BIN
bginfo/steam_gear.jpg
Normal file
BIN
bginfo/steam_gear.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 381 KiB |
187
install.ps1
Normal file
187
install.ps1
Normal file
|
|
@ -0,0 +1,187 @@
|
|||
# This script will install the components to make a Living Room PC
|
||||
# Main focus is for gaming, primarily on Steam
|
||||
|
||||
# Requires running as administrator
|
||||
#Requires -RunAsAdministrator
|
||||
|
||||
### Remove Bloatware
|
||||
Write-Host "Starting debloating process..." -ForegroundColor Green
|
||||
|
||||
# Create Restore Point
|
||||
Write-Host "Creating Restore Point..." -ForegroundColor Yellow
|
||||
Enable-ComputerRestore -Drive "$env:SystemDrive"
|
||||
Checkpoint-Computer -Description "Before Debloating" -RestorePointType "MODIFY_SETTINGS"
|
||||
|
||||
# Remove OneDrive
|
||||
Write-Host "Removing OneDrive..." -ForegroundColor Yellow
|
||||
taskkill /f /im OneDrive.exe
|
||||
$onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe"
|
||||
if (Test-Path $onedrive) {
|
||||
Start-Process $onedrive "/uninstall" -NoNewWindow -Wait
|
||||
}
|
||||
Remove-Item -Path "$env:USERPROFILE\OneDrive" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "$env:LOCALAPPDATA\Microsoft\OneDrive" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "$env:PROGRAMDATA\Microsoft OneDrive" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "$env:SYSTEMDRIVE\OneDriveTemp" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
# Install PowerShell 7 and set as default
|
||||
Write-Host "Installing PowerShell 7..." -ForegroundColor Yellow
|
||||
winget install -e --id Microsoft.PowerShell --accept-source-agreements --accept-package-agreements
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "DontUsePowerShellOnWinX" -Value 0 -Type DWord
|
||||
|
||||
# Debloat Edge
|
||||
Write-Host "Debloating Edge..." -ForegroundColor Yellow
|
||||
$edgePath = "$env:PROGRAMFILES(x86)\Microsoft\Edge\Application\msedge.exe"
|
||||
if (Test-Path $edgePath) {
|
||||
Start-Process $edgePath "--uninstall --system-level --force-uninstall"
|
||||
}
|
||||
|
||||
# Delete Temp Files
|
||||
Write-Host "Cleaning temporary files..." -ForegroundColor Yellow
|
||||
Remove-Item -Path "$env:TEMP\*" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "C:\Windows\Temp\*" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
Remove-Item -Path "C:\Windows\Prefetch\*" -Force -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
# Disable Various Features
|
||||
Write-Host "Disabling unnecessary features..." -ForegroundColor Yellow
|
||||
# Activity History
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableActivityFeed" -Value 0
|
||||
# Consumer Features
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" -Name "DisableWindowsConsumerFeatures" -Value 1
|
||||
# Location Tracking
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Value "Deny"
|
||||
# Storage Sense
|
||||
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy" -Name "01" -Value 0
|
||||
# Telemetry
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -Value 0
|
||||
# WiFi Sense
|
||||
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\config" -Name "AutoConnectAllowedOEM" -Value 0
|
||||
|
||||
# Set Services to Manual
|
||||
$servicesToManual = @(
|
||||
"DiagTrack" # Connected User Experiences and Telemetry
|
||||
"dmwappushservice" # Device Management Wireless Application Protocol
|
||||
"HomeGroupListener" # HomeGroup Listener
|
||||
"HomeGroupProvider" # HomeGroup Provider
|
||||
"lfsvc" # Geolocation Service
|
||||
"MapsBroker" # Downloaded Maps Manager
|
||||
"NetTcpPortSharing" # Net.Tcp Port Sharing Service
|
||||
"RemoteRegistry" # Remote Registry
|
||||
"SharedAccess" # Internet Connection Sharing
|
||||
"TrkWks" # Distributed Link Tracking Client
|
||||
"WbioSrvc" # Windows Biometric Service
|
||||
"WMPNetworkSvc" # Windows Media Player Network Sharing Service
|
||||
)
|
||||
|
||||
foreach ($service in $servicesToManual) {
|
||||
Write-Host "Setting $service to manual..." -ForegroundColor Yellow
|
||||
Set-Service -Name $service -StartupType Manual -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# Performance Optimizations
|
||||
Write-Host "Applying performance optimizations..." -ForegroundColor Yellow
|
||||
# Set visual effects for performance
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects" -Name "VisualFXSetting" -Value 2
|
||||
|
||||
# Run Disk Cleanup
|
||||
Write-Host "Running Disk Cleanup..." -ForegroundColor Yellow
|
||||
cleanmgr /sagerun:1
|
||||
|
||||
### Steam
|
||||
# Install Steam using winget
|
||||
Write-Host "Installing Steam..." -ForegroundColor Green
|
||||
winget install -e --id Valve.Steam --accept-source-agreements --accept-package-agreements
|
||||
|
||||
### BGInfo
|
||||
# Script variables
|
||||
$bgInfoPath = "$env:USERPROFILE\.bginfo"
|
||||
|
||||
# Function to ensure a directory exists
|
||||
function EnsureDirectory {
|
||||
param([string]$path)
|
||||
if (-not (Test-Path $path)) {
|
||||
New-Item -ItemType Directory -Path $path -Force | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
# Install BGInfo using winget
|
||||
Write-Host "Installing BGInfo..." -ForegroundColor Green
|
||||
winget install -e --id Sysinternals.BGInfo --accept-source-agreements --accept-package-agreements
|
||||
|
||||
# Create .bginfo directory
|
||||
Write-Host "Setting up BGInfo..." -ForegroundColor Green
|
||||
EnsureDirectory $bgInfoPath
|
||||
|
||||
# Copy BGInfo scripts
|
||||
Write-Host "Copying BGInfo scripts..." -ForegroundColor Yellow
|
||||
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
Copy-Item "$scriptPath\bginfo\*" $bgInfoPath -Force
|
||||
|
||||
# Create scheduled task to run BGInfo at logon
|
||||
$bgInfoExe = "$env:ProgramFiles\sysinternals\bginfo.exe"
|
||||
$action = New-ScheduledTaskAction -Execute $bgInfoExe -Argument "$bgInfoPath\config.bgi /timer:0"
|
||||
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
||||
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
|
||||
Write-Host "Creating BGInfo startup task..." -ForegroundColor Yellow
|
||||
Register-ScheduledTask -TaskName "BGInfo" -Action $action -Trigger $trigger -Principal $principal -Settings $settings -Force
|
||||
|
||||
### Auto-Login Setup ###
|
||||
Write-Host "Configuring Auto-Login..." -ForegroundColor Green
|
||||
|
||||
# Create registry path for auto-login
|
||||
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
|
||||
# Set auto-login registry values
|
||||
Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -Type String
|
||||
Set-ItemProperty $RegPath "DefaultUsername" -Value $env:USERNAME -Type String
|
||||
# Note: In production you'd want to handle password more securely
|
||||
# Set-ItemProperty $RegPath "DefaultPassword" -Value "YourPassword" -Type String
|
||||
|
||||
### Steam Big Picture Auto-Start ###
|
||||
Write-Host "Setting up Steam Big Picture auto-start..." -ForegroundColor Green
|
||||
|
||||
$steamPath = "${env:ProgramFiles(x86)}\Steam\steam.exe"
|
||||
$startupFolder = "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup"
|
||||
|
||||
# Create shortcut for Steam Big Picture
|
||||
$WshShell = New-Object -comObject WScript.Shell
|
||||
$Shortcut = $WshShell.CreateShortcut("$startupFolder\Steam.lnk")
|
||||
$Shortcut.TargetPath = $steamPath
|
||||
$Shortcut.Arguments = "-bigpicture"
|
||||
$Shortcut.Save()
|
||||
|
||||
### HDMI-CEC Setup ###
|
||||
Write-Host "Setting up HDMI-CEC control..." -ForegroundColor Green
|
||||
|
||||
# Create CEC scripts directory
|
||||
$cecPath = "$env:USERPROFILE\.cec"
|
||||
EnsureDirectory $cecPath
|
||||
|
||||
# Create TV power on script
|
||||
@"
|
||||
# CEC TV Power On
|
||||
cec-client -s -d 1 "on 0"
|
||||
"@ | Out-File -FilePath "$cecPath\tv-on.ps1" -Encoding ASCII
|
||||
|
||||
# Create TV power off script
|
||||
@"
|
||||
# CEC TV Power Off
|
||||
cec-client -s -d 1 "standby 0"
|
||||
"@ | Out-File -FilePath "$cecPath\tv-off.ps1" -Encoding ASCII
|
||||
|
||||
# Create scheduled tasks for TV control
|
||||
$tvOnAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File `"$cecPath\tv-on.ps1`""
|
||||
$tvOffAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File `"$cecPath\tv-off.ps1`""
|
||||
|
||||
# Trigger on wake from sleep for TV on
|
||||
$tvOnTrigger = New-ScheduledTaskTrigger -AtStartup
|
||||
$tvOffTrigger = New-ScheduledTaskTrigger -AtLogOff
|
||||
|
||||
Write-Host "Creating TV control tasks..." -ForegroundColor Yellow
|
||||
Register-ScheduledTask -TaskName "TV Power On" -Action $tvOnAction -Trigger $tvOnTrigger -Principal $principal -Settings $settings -Force
|
||||
Register-ScheduledTask -TaskName "TV Power Off" -Action $tvOffAction -Trigger $tvOffTrigger -Principal $principal -Settings $settings -Force
|
||||
|
||||
# Update TODO list with completed items
|
||||
# TODO: Add remaining setup steps:
|
||||
# - Performance optimizations
|
||||
Binary file not shown.
|
|
@ -0,0 +1,75 @@
|
|||
Ever since I moved my gaming PC into the living room, I wanted to complete the experience by trying to make it behave as close to a gaming console as I possibly could.
|
||||
|
||||
That means, having my controller be able to wake it, have it launch into Steam's big picture mode, and having my AV-Receiver and TV turn on as well as switch to it.
|
||||
|
||||
Did I succeed? Yes, and better than I had anticipated.
|
||||
|
||||
Things shown 🛍️
|
||||
=============================
|
||||
AXEE Xbox Wireless Dongle: https://geni.us/WqSC
|
||||
Razer Wolverine V3 Pro: https://geni.us/ELVOp
|
||||
8Bitdo Ultimate 2.4G Wireless Controller: https://geni.us/n48sVm
|
||||
Philips Hue Smart Plug: https://geni.us/BjQDIG
|
||||
|
||||
Pulse-Eight HDMI CEC Adapter: https://www.pulse-eight.com/p/104/usb-hdmi-cec-adapter
|
||||
Pulse-Eight CEC Library: https://github.com/Pulse-Eight/libcec/releases
|
||||
CEC Codes: https://www.cec-o-matic.com/
|
||||
|
||||
Bazzite: https://bazzite.gg/
|
||||
Playnite Launcher: https://playnite.link/
|
||||
|
||||
Tutorials 📖
|
||||
=============================
|
||||
Enable Auto Login on Windows: https://learn.microsoft.com/en-us/troubleshoot/windows-server/user-profiles-and-logon/turn-on-automatic-logon
|
||||
|
||||
Boot Straight into Steam without Windows Explorer: https://www.reddit.com/r/Steam/comments/198vqqe/tutorial_how_to_boot_windows_directly_to_steam/
|
||||
|
||||
Disable GameBar in Windows 11: https://recorder.easeus.com/screen-recording-resource/disable-xbox-game-bar.html#:~:text=On%20the%20left%20Settings%20panel,it%20will%20not%20pop%20up.
|
||||
|
||||
Batch Script Tutorial for HDMI Adapter: https://support.pulse-eight.com/support/solutions/articles/30000027391-turn-on-off-tv-using-usb-cec-adapter-windows-batch-script-
|
||||
|
||||
Scheduling Windows task after wake: https://superuser.com/questions/1662847/how-to-schedule-a-windows-task-on-wake
|
||||
|
||||
Looking for something else? Check out these affiliate links! 🤝
|
||||
=============================
|
||||
https://nuphy.com/?sca_ref=1371668.WxZWP3zbS6 (code: cheese to get 10% off)
|
||||
https://www.amazon.com/?tag=cheeseturbu03-20
|
||||
https://www.mikit.store/cheese (code: cheese to get 5% off)
|
||||
https://www.melgeek.com/?ref=xwi2pndv (code: cheese to get 8% off)
|
||||
|
||||
Chapters 📋
|
||||
=============================
|
||||
00:00 Prologue
|
||||
00:52 Intro
|
||||
01:00 Disclaimer
|
||||
02:19 How To Setup Wake With Controller
|
||||
06:16 How To Setup Auto Login On Windows
|
||||
09:36 How To Get HDMI CEC Working On PC
|
||||
14:56 Conclusion / Summary
|
||||
16:36 Thank You
|
||||
|
||||
Like the music? 🎵
|
||||
=============================
|
||||
Sign up for Epidemic Sound using my referral link and get a 30-day free trial: https://www.epidemicsound.com/referral/v4a954
|
||||
|
||||
Gear used 🎬
|
||||
=============================
|
||||
Camera: https://geni.us/UzQAwW
|
||||
Lens: https://geni.us/HpBXvq
|
||||
Microphone: https://geni.us/Y6IkFI
|
||||
Audio Interface: https://geni.us/R7lcA
|
||||
Light: https://geni.us/13xEU
|
||||
Complete Gear List: https://kit.co/CheeseTurbulence/youtube-production
|
||||
|
||||
Outside of YouTube 🖼️
|
||||
=============================
|
||||
Instagram: https://www.instagram.com/cheeseturbulence
|
||||
BlueSky: https://bsky.app/profile/cheeseturbulence.bsky.social
|
||||
|
||||
Support ❤️
|
||||
=============================
|
||||
If you want to (you absolutely don't have to) you can support the channel via Ko-Fi: https://ko-fi.com/cheeseturbulence
|
||||
|
||||
About the links 🔗
|
||||
=============================
|
||||
Some of the links in the description can be affiliate links, you won't be paying extra but I get a little commission when you make a purchase.
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"title": "How I Turned My PC Into A Gaming Console",
|
||||
"video_id": "xpki1IcjinU",
|
||||
"url": "https://youtu.be/xpki1IcjinU?si=GbyGOj6mM51C243L",
|
||||
"download_date": "2025-03-10 16:05:19"
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
This guide will walk you through how to use game controller as mouse on PC. Follow along with the steps to setting up your PC game controller to act as a mouse.
|
||||
|
||||
How to download AntiMicro video:
|
||||
https://www.youtube.com/watch?si=_JB2JHQQI_AnIq6n&v=XsaDJYcW-GA&feature=youtu.be
|
||||
|
||||
Thanks for watching!
|
||||
|
||||
#AnswerLab
|
||||
|
||||
SUBSCRIBE TO THIS CHANNEL
|
||||
https://www.youtube.com/@TheAnswerLab/?sub_confirmation=1
|
||||
|
|
@ -0,0 +1,280 @@
|
|||
WEBVTT
|
||||
Kind: captions
|
||||
Language: en
|
||||
|
||||
00:00:00.399 --> 00:00:03.030 align:start position:0%
|
||||
|
||||
hi<00:00:00.960><c> welcome</c><00:00:01.439><c> back</c><00:00:01.599><c> to</c><00:00:01.839><c> another</c><00:00:02.200><c> quick</c><00:00:02.560><c> guide</c>
|
||||
|
||||
00:00:03.030 --> 00:00:03.040 align:start position:0%
|
||||
hi welcome back to another quick guide
|
||||
|
||||
|
||||
00:00:03.040 --> 00:00:04.550 align:start position:0%
|
||||
hi welcome back to another quick guide
|
||||
today<00:00:03.399><c> I'll</c><00:00:03.679><c> teach</c>
|
||||
|
||||
00:00:04.550 --> 00:00:04.560 align:start position:0%
|
||||
today I'll teach
|
||||
|
||||
|
||||
00:00:04.560 --> 00:00:08.190 align:start position:0%
|
||||
today I'll teach
|
||||
you<00:00:05.560><c> how</c><00:00:05.720><c> to</c><00:00:05.920><c> use</c><00:00:06.319><c> game</c><00:00:06.600><c> controller</c><00:00:07.560><c> as</c><00:00:07.839><c> Mouse</c>
|
||||
|
||||
00:00:08.190 --> 00:00:08.200 align:start position:0%
|
||||
you how to use game controller as Mouse
|
||||
|
||||
|
||||
00:00:08.200 --> 00:00:11.310 align:start position:0%
|
||||
you how to use game controller as Mouse
|
||||
and<00:00:08.760><c> PC</c><00:00:09.760><c> and</c><00:00:09.920><c> it's</c><00:00:10.160><c> literally</c><00:00:10.599><c> an</c><00:00:10.800><c> easy</c>
|
||||
|
||||
00:00:11.310 --> 00:00:11.320 align:start position:0%
|
||||
and PC and it's literally an easy
|
||||
|
||||
|
||||
00:00:11.320 --> 00:00:13.749 align:start position:0%
|
||||
and PC and it's literally an easy
|
||||
process<00:00:12.000><c> so</c><00:00:12.280><c> make</c><00:00:12.440><c> sure</c><00:00:12.639><c> to</c><00:00:12.920><c> watch</c><00:00:13.240><c> until</c><00:00:13.599><c> the</c>
|
||||
|
||||
00:00:13.749 --> 00:00:13.759 align:start position:0%
|
||||
process so make sure to watch until the
|
||||
|
||||
|
||||
00:00:13.759 --> 00:00:16.590 align:start position:0%
|
||||
process so make sure to watch until the
|
||||
end<00:00:13.920><c> of</c><00:00:14.040><c> the</c><00:00:14.280><c> video</c><00:00:14.960><c> to</c><00:00:15.160><c> know</c><00:00:15.360><c> how</c><00:00:15.519><c> it's</c>
|
||||
|
||||
00:00:16.590 --> 00:00:16.600 align:start position:0%
|
||||
end of the video to know how it's
|
||||
|
||||
|
||||
00:00:16.600 --> 00:00:20.070 align:start position:0%
|
||||
end of the video to know how it's
|
||||
done<00:00:17.600><c> to</c><00:00:17.880><c> use</c><00:00:18.119><c> a</c><00:00:18.320><c> game</c><00:00:18.600><c> controller</c><00:00:19.400><c> as</c><00:00:19.640><c> a</c><00:00:19.800><c> mouse</c>
|
||||
|
||||
00:00:20.070 --> 00:00:20.080 align:start position:0%
|
||||
done to use a game controller as a mouse
|
||||
|
||||
|
||||
00:00:20.080 --> 00:00:24.429 align:start position:0%
|
||||
done to use a game controller as a mouse
|
||||
on<00:00:20.279><c> Windows</c><00:00:20.920><c> PC</c><00:00:21.920><c> follow</c><00:00:22.359><c> these</c><00:00:23.080><c> steps</c><00:00:24.080><c> connect</c>
|
||||
|
||||
00:00:24.429 --> 00:00:24.439 align:start position:0%
|
||||
on Windows PC follow these steps connect
|
||||
|
||||
|
||||
00:00:24.439 --> 00:00:27.630 align:start position:0%
|
||||
on Windows PC follow these steps connect
|
||||
your<00:00:24.640><c> game</c><00:00:24.880><c> controller</c><00:00:25.680><c> to</c><00:00:25.880><c> your</c><00:00:26.160><c> PC</c><00:00:27.119><c> using</c><00:00:27.439><c> a</c>
|
||||
|
||||
00:00:27.630 --> 00:00:27.640 align:start position:0%
|
||||
your game controller to your PC using a
|
||||
|
||||
|
||||
00:00:27.640 --> 00:00:31.710 align:start position:0%
|
||||
your game controller to your PC using a
|
||||
USB<00:00:28.119><c> cable</c><00:00:29.000><c> or</c><00:00:29.199><c> a</c><00:00:29.400><c> wireless</c><00:00:30.359><c> adopter</c><00:00:31.359><c> launch</c>
|
||||
|
||||
00:00:31.710 --> 00:00:31.720 align:start position:0%
|
||||
USB cable or a wireless adopter launch
|
||||
|
||||
|
||||
00:00:31.720 --> 00:00:35.229 align:start position:0%
|
||||
USB cable or a wireless adopter launch
|
||||
the<00:00:31.880><c> antimicro</c><00:00:32.840><c> application</c><00:00:33.840><c> on</c><00:00:34.040><c> your</c>
|
||||
|
||||
00:00:35.229 --> 00:00:35.239 align:start position:0%
|
||||
the antimicro application on your
|
||||
|
||||
|
||||
00:00:35.239 --> 00:00:39.670 align:start position:0%
|
||||
the antimicro application on your
|
||||
PC<00:00:36.239><c> in</c><00:00:36.520><c> anti</c><00:00:37.280><c> micro</c><00:00:38.280><c> click</c><00:00:38.559><c> on</c><00:00:38.760><c> all</c>
|
||||
|
||||
00:00:39.670 --> 00:00:39.680 align:start position:0%
|
||||
PC in anti micro click on all
|
||||
|
||||
|
||||
00:00:39.680 --> 00:00:42.350 align:start position:0%
|
||||
PC in anti micro click on all
|
||||
stick<00:00:40.680><c> now</c><00:00:41.360><c> you'll</c><00:00:41.600><c> see</c><00:00:41.800><c> a</c><00:00:41.960><c> grind</c>
|
||||
|
||||
00:00:42.350 --> 00:00:42.360 align:start position:0%
|
||||
stick now you'll see a grind
|
||||
|
||||
|
||||
00:00:42.360 --> 00:00:45.069 align:start position:0%
|
||||
stick now you'll see a grind
|
||||
representing<00:00:43.360><c> your</c><00:00:43.640><c> controllers</c><00:00:44.320><c> buttons</c>
|
||||
|
||||
00:00:45.069 --> 00:00:45.079 align:start position:0%
|
||||
representing your controllers buttons
|
||||
|
||||
|
||||
00:00:45.079 --> 00:00:46.150 align:start position:0%
|
||||
representing your controllers buttons
|
||||
and
|
||||
|
||||
00:00:46.150 --> 00:00:46.160 align:start position:0%
|
||||
and
|
||||
|
||||
|
||||
00:00:46.160 --> 00:00:50.750 align:start position:0%
|
||||
and
|
||||
axis<00:00:47.160><c> on</c><00:00:47.520><c> presets</c><00:00:48.520><c> drop-</c><00:00:48.920><c> down</c><00:00:49.399><c> menu</c><00:00:50.399><c> choose</c>
|
||||
|
||||
00:00:50.750 --> 00:00:50.760 align:start position:0%
|
||||
axis on presets drop- down menu choose
|
||||
|
||||
|
||||
00:00:50.760 --> 00:00:53.750 align:start position:0%
|
||||
axis on presets drop- down menu choose
|
||||
to<00:00:50.960><c> click</c><00:00:51.199><c> on</c><00:00:51.480><c> Mouse</c><00:00:52.280><c> normal</c><00:00:53.280><c> and</c><00:00:53.440><c> it</c><00:00:53.559><c> will</c>
|
||||
|
||||
00:00:53.750 --> 00:00:53.760 align:start position:0%
|
||||
to click on Mouse normal and it will
|
||||
|
||||
|
||||
00:00:53.760 --> 00:00:57.189 align:start position:0%
|
||||
to click on Mouse normal and it will
|
||||
become<00:00:54.440><c> a</c><00:00:54.719><c> hover</c>
|
||||
|
||||
00:00:57.189 --> 00:00:57.199 align:start position:0%
|
||||
become a hover
|
||||
|
||||
|
||||
00:00:57.199 --> 00:01:01.150 align:start position:0%
|
||||
become a hover
|
||||
Mouse<00:00:58.199><c> now</c><00:00:58.719><c> go</c><00:00:58.920><c> to</c><00:00:59.079><c> L</c><00:00:59.359><c> shoulder</c>
|
||||
|
||||
00:01:01.150 --> 00:01:01.160 align:start position:0%
|
||||
Mouse now go to L shoulder
|
||||
|
||||
|
||||
00:01:01.160 --> 00:01:02.509 align:start position:0%
|
||||
Mouse now go to L shoulder
|
||||
then<00:01:01.399><c> go</c><00:01:01.640><c> to</c>
|
||||
|
||||
00:01:02.509 --> 00:01:02.519 align:start position:0%
|
||||
then go to
|
||||
|
||||
|
||||
00:01:02.519 --> 00:01:06.510 align:start position:0%
|
||||
then go to
|
||||
Mouse<00:01:03.519><c> then</c><00:01:03.760><c> hit</c><00:01:03.920><c> on</c><00:01:04.159><c> left</c><00:01:04.479><c> click</c><00:01:05.280><c> button</c><00:01:06.280><c> and</c>
|
||||
|
||||
00:01:06.510 --> 00:01:06.520 align:start position:0%
|
||||
Mouse then hit on left click button and
|
||||
|
||||
|
||||
00:01:06.520 --> 00:01:09.230 align:start position:0%
|
||||
Mouse then hit on left click button and
|
||||
it<00:01:06.640><c> will</c><00:01:07.080><c> become</c><00:01:08.080><c> the</c><00:01:08.400><c> left</c>
|
||||
|
||||
00:01:09.230 --> 00:01:09.240 align:start position:0%
|
||||
it will become the left
|
||||
|
||||
|
||||
00:01:09.240 --> 00:01:13.789 align:start position:0%
|
||||
it will become the left
|
||||
click<00:01:10.240><c> then</c><00:01:10.520><c> close</c><00:01:11.240><c> it</c><00:01:12.240><c> go</c><00:01:12.400><c> to</c><00:01:12.600><c> our</c>
|
||||
|
||||
00:01:13.789 --> 00:01:13.799 align:start position:0%
|
||||
click then close it go to our
|
||||
|
||||
|
||||
00:01:13.799 --> 00:01:15.789 align:start position:0%
|
||||
click then close it go to our
|
||||
shoulder<00:01:14.799><c> go</c><00:01:15.000><c> to</c>
|
||||
|
||||
00:01:15.789 --> 00:01:15.799 align:start position:0%
|
||||
shoulder go to
|
||||
|
||||
|
||||
00:01:15.799 --> 00:01:18.870 align:start position:0%
|
||||
shoulder go to
|
||||
Mouse<00:01:16.799><c> then</c><00:01:17.000><c> choose</c><00:01:17.320><c> the</c><00:01:17.520><c> right</c><00:01:17.799><c> button</c><00:01:18.600><c> to</c>
|
||||
|
||||
00:01:18.870 --> 00:01:18.880 align:start position:0%
|
||||
Mouse then choose the right button to
|
||||
|
||||
|
||||
00:01:18.880 --> 00:01:21.230 align:start position:0%
|
||||
Mouse then choose the right button to
|
||||
make<00:01:19.200><c> this</c><00:01:19.600><c> a</c><00:01:19.880><c> right</c>
|
||||
|
||||
00:01:21.230 --> 00:01:21.240 align:start position:0%
|
||||
make this a right
|
||||
|
||||
|
||||
00:01:21.240 --> 00:01:23.670 align:start position:0%
|
||||
make this a right
|
||||
click<00:01:22.240><c> once</c><00:01:22.439><c> you</c><00:01:22.640><c> mount</c><00:01:23.000><c> the</c><00:01:23.200><c> controller</c>
|
||||
|
||||
00:01:23.670 --> 00:01:23.680 align:start position:0%
|
||||
click once you mount the controller
|
||||
|
||||
|
||||
00:01:23.680 --> 00:01:26.830 align:start position:0%
|
||||
click once you mount the controller
|
||||
buttons<00:01:24.400><c> do</c><00:01:24.720><c> mouse</c><00:01:25.079><c> inputs</c><00:01:26.079><c> un</c><00:01:26.320><c> adjust</c><00:01:26.640><c> the</c>
|
||||
|
||||
00:01:26.830 --> 00:01:26.840 align:start position:0%
|
||||
buttons do mouse inputs un adjust the
|
||||
|
||||
|
||||
00:01:26.840 --> 00:01:28.990 align:start position:0%
|
||||
buttons do mouse inputs un adjust the
|
||||
settings<00:01:27.280><c> as</c><00:01:27.479><c> needed</c><00:01:28.439><c> save</c><00:01:28.759><c> your</c>
|
||||
|
||||
00:01:28.990 --> 00:01:29.000 align:start position:0%
|
||||
settings as needed save your
|
||||
|
||||
|
||||
00:01:29.000 --> 00:01:31.789 align:start position:0%
|
||||
settings as needed save your
|
||||
configurations<00:01:30.159><c> in</c>
|
||||
|
||||
00:01:31.789 --> 00:01:31.799 align:start position:0%
|
||||
configurations in
|
||||
|
||||
|
||||
00:01:31.799 --> 00:01:34.749 align:start position:0%
|
||||
configurations in
|
||||
antimicro<00:01:32.799><c> by</c><00:01:33.000><c> following</c><00:01:33.520><c> these</c><00:01:33.759><c> steps</c><00:01:34.600><c> you</c>
|
||||
|
||||
00:01:34.749 --> 00:01:34.759 align:start position:0%
|
||||
antimicro by following these steps you
|
||||
|
||||
|
||||
00:01:34.759 --> 00:01:37.510 align:start position:0%
|
||||
antimicro by following these steps you
|
||||
can<00:01:35.079><c> easily</c><00:01:35.439><c> use</c><00:01:35.640><c> a</c><00:01:35.840><c> game</c><00:01:36.119><c> controller</c><00:01:37.119><c> as</c><00:01:37.320><c> a</c>
|
||||
|
||||
00:01:37.510 --> 00:01:37.520 align:start position:0%
|
||||
can easily use a game controller as a
|
||||
|
||||
|
||||
00:01:37.520 --> 00:01:42.230 align:start position:0%
|
||||
can easily use a game controller as a
|
||||
mouse<00:01:38.240><c> on</c><00:01:38.439><c> your</c><00:01:38.640><c> Windows</c><00:01:39.200><c> PC</c><00:01:40.200><c> using</c><00:01:40.960><c> anti</c>
|
||||
|
||||
00:01:42.230 --> 00:01:42.240 align:start position:0%
|
||||
mouse on your Windows PC using anti
|
||||
|
||||
|
||||
00:01:42.240 --> 00:01:45.310 align:start position:0%
|
||||
mouse on your Windows PC using anti
|
||||
micro<00:01:43.240><c> and</c><00:01:43.439><c> that's</c><00:01:43.640><c> all</c><00:01:43.840><c> for</c><00:01:44.040><c> now</c><00:01:44.280><c> folks</c><00:01:45.119><c> hope</c>
|
||||
|
||||
00:01:45.310 --> 00:01:45.320 align:start position:0%
|
||||
micro and that's all for now folks hope
|
||||
|
||||
|
||||
00:01:45.320 --> 00:01:49.719 align:start position:0%
|
||||
micro and that's all for now folks hope
|
||||
you<00:01:45.479><c> like</c><00:01:45.680><c> And</c><00:01:45.920><c> subscribe</c><00:01:46.920><c> thank</c><00:01:47.159><c> you</c>
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"title": "How To Use Game Controller As Mouse On PC (Setup Guide)",
|
||||
"video_id": "suwjpXqNeTs",
|
||||
"url": "https://www.youtube.com/watch?v=suwjpXqNeTs",
|
||||
"download_date": "2025-03-10 16:07:07"
|
||||
}
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
Here is how to control Windows 11 interface with Xbox one controller. Gopher360 download link- https://github.com/Tylemagne/Gopher360
|
||||
|
||||
____________________________________________________
|
||||
|
||||
ⓘ Disclaimer: This section contains affiliate links to our partner brands that we recommend as well. We may earn a commission if you purchase something. Thanks for your support.
|
||||
|
||||
🌐 Looking for a reliable VPN to surf the internet freely? Try NordVPN here: https://nordvpn.sjv.io/jW97dP
|
||||
|
||||
👩🏻💻Looking for in-home or online Tech Support in the USA? Check out HelloTech here: https://hellotech.tbthfv.net/x9WRoA
|
||||
|
||||
📧 Take control of your inbox, bulk delete emails, unsubscribe from newsletters, try Clean Email here: https://cleanemailr.pxf.io/kO4zVL
|
||||
|
||||
💻Run Windows on your Mac with Parallels; try for free here: parallels.sjv.io/3eX2yd
|
||||
|
||||
🎨Get Corel Draw, one of the most powerful legacy tools for creating logos, graphics and designs for print and web, here: https://corel.sjv.io/Gmq76L
|
||||
|
||||
🔴Looking to up your streaming game? Try Logitech's StreamLabs for free now here: https://streamlabs.pxf.io/OeY1GZ
|
||||
|
||||
🛡️Get multi-device security against online threats for your family or business here on BitDefender: https://bitdefender.f9tmep.net/vPDyQj
|
||||
|
||||
🛒 Shop Logitech products in the US, Canada and Mexico here: https://logitech.cfzu.net/5b6RW3
|
||||
|
||||
🛒 Shop Logitech G products in the US, Canada and Mexico here: https://logitech.cfzu.net/K0BJJn
|
||||
|
||||
🛒 Shop Razer products in the US here: https://razer.a9yw.net/do2JGK
|
||||
|
||||
🛒 Buy Lenovo laptops and PCs in the US here: https://lenovo.vzew.net/c/3503779/2373814/3808 | Use code OUTLET10OFF for an extra 10% off till January 1, 2025
|
||||
|
||||
🛒 Get 30% off on Duracell portable charging hubs in USA here: https://duracell.sjv.io/5gm7MD (use code 30Now)
|
||||
|
||||
🛒 Buy your Ledger wallet here: https://ledger.pxf.io/RG01Wy
|
||||
|
||||
🛒 Order your XP-Pen tablets here: https://xppen.pxf.io/e1nqQg
|
||||
|
||||
🛒 Get Corsair parts for your gaming rig here: https://go.corsair.com/zxzyRr
|
||||
|
||||
🛒 Buy Anker wireless chargers and portable chargers here: https://anker.pxf.io/19G1OB
|
||||
|
||||
🛡️Are you a concerned parent looking to protect your kids online? Check out ClevGuard: clevguard.pxf.io/R5aB0g
|
||||
|
||||
֎🇦🇮 Looking to start your own venture and looking for great help on a budget? Hire some AI helpers from Sintra AI here for as low as $15 a month: https://playosinc.pxf.io/raEG4D
|
||||
|
||||
🎨Get the best Lightroom Presets here: https://presetpro.sjv.io/kjDW2x
|
||||
|
||||
🎨Generate AI videos with text here at InVideo: https://invideo.sjv.io/VynnXj
|
||||
|
||||
🎨Looking for high-quality images, videos, editorial content, music, effects and more? Try Shutterstock here:
|
||||
|
||||
🎨Creating a website on Wordpress or Shopify? Find the best themes, templates and plugins at HasThemes here: https://hasthemes.sjv.io/m5dz9Z
|
||||
|
||||
🎨Create free mockups, logos, designs and more at Placeit by Envato: https://1.envato.market/dad9K3
|
||||
|
||||
🎨Create websites in minutes with Duda: https://duda.sjv.io/4PVnJ9
|
||||
|
||||
🌐 Looking for a blazing-fast website hosting solution? Try Scala: https://imp.scalahosting.com/N9GzoO
|
||||
|
||||
💻Looking for a PDF editor for your Mac, iPhone or iPad? Try PDF Expert for free here: https://readdle.8kpa2n.net/Bn5xXW
|
||||
|
||||
💡Looking to upskill? Learn quickly online at Skillshare: https://skillshare.eqcm.net/kjeokL
|
||||
|
||||
💡Get started with the 365 Data Science program for free here: https://365datascience.pxf.io/YgOQvB
|
||||
|
||||
💡Learn to code from home with CodeMonkey: https://codemonkey.sjv.io/4GaJgn
|
||||
|
||||
💡Learn English from A to Z online with Learn Laugh Speak: https://learn-laugh-speak.pxf.io/ZdZVdk
|
||||
|
||||
🚨Get new-gen smart security solutions at Deep Sentinel here: https://deep-sentinel-home-security.pxf.io/9LVAn3
|
||||
|
||||
🖥️Looking for AnyDesk/TeamViewer alternative to access your PC remotely? Try GoToMyPC: https://imp.i122462.net/xLJyz1
|
||||
|
||||
🪙Get your Blockchain and Crypto analysis here: https://tokenmetrics.sjv.io/19G1Z9
|
||||
|
||||
🚀Up your SEO game with Semrush: https://semrush.sjv.io/n17YzX
|
||||
|
||||
📱Get ESim plans for 200+ countries with Airalo: https://airalo.pxf.io/BXqDdW
|
||||
|
||||
֎🇦🇮 Automate meeting summaries and take notes using Otter.AI: https://otterai.sjv.io/c/3503779/1063514/13661?utm_term=ai_meeting_assistant_affiliate&utm_medium=tracking_link&utm_source=affiliate&utm_content=other
|
||||
|
||||
____________________________________________________
|
||||
|
||||
Check out our website https://candid.technology/ for more guides and tech explainers, reviews, lists, comparisons and more tech-related stuff.
|
||||
|
||||
If you like the video or if it helped you, consider supporting us here: https://candid.technology/support-candid-technology/
|
||||
____________________________________________________
|
||||
Follow our English YouTube Channel: https://youtube.com/c/CandidTechnology
|
||||
Hindi YouTube Channel: https://youtube.com/c/CandidTechnologyHindi
|
||||
|
||||
Facebook: https://www.facebook.com/candidtodaytech/
|
||||
Twitter: https://twitter.com/candidtodaytech/
|
||||
LinkedIn: https://www.linkedin.com/company/candid-today-tech/
|
||||
____________________________________________________
|
||||
©Candid Today Press Pvt. Ltd.
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"title": "How to control Windows 11 interface with Xbox one controller?",
|
||||
"video_id": "Z7xXG3OnZFI",
|
||||
"url": "https://www.youtube.com/watch?v=Z7xXG3OnZFI",
|
||||
"download_date": "2025-03-10 19:54:57"
|
||||
}
|
||||
30
yt-dlp-scraper/get_transcript.py
Normal file
30
yt-dlp-scraper/get_transcript.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import yt_dlp
|
||||
|
||||
def download_transcript(url):
|
||||
ydl_opts = {
|
||||
'skip_download': True, # Don't download the video
|
||||
'writesubtitles': True, # Write subtitles file
|
||||
'writeautomaticsub': True, # Write automatic subtitles file
|
||||
'subtitlesformat': 'txt', # Format as plain text
|
||||
'quiet': True, # Less output in console
|
||||
'no_warnings': True # Don't show warnings
|
||||
}
|
||||
|
||||
try:
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
# Extract video info first
|
||||
info = ydl.extract_info(url, download=False)
|
||||
video_title = info.get('title', 'video')
|
||||
print(f"Downloading transcript for: {video_title}")
|
||||
|
||||
# Download the transcript
|
||||
ydl.download([url])
|
||||
print("Transcript downloaded successfully")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error downloading transcript: {str(e)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Example usage
|
||||
video_url = "https://youtu.be/xpki1IcjinU?si=AACF69HJw39TqlD1"
|
||||
download_transcript(video_url)
|
||||
5
yt-dlp-scraper/get_transcript.sh
Normal file
5
yt-dlp-scraper/get_transcript.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
video_url="https://youtu.be/xpki1IcjinU?si=AACF69HJw39TqlD1"
|
||||
|
||||
# Download auto-generated subtitles and convert to txt
|
||||
yt-dlp --skip-download --write-auto-sub --sub-format txt "$video_url"
|
||||
75
yt-dlp-scraper/script.ps1
Normal file
75
yt-dlp-scraper/script.ps1
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
param(
|
||||
[Parameter(Mandatory=$true)]
|
||||
[string]$video_url
|
||||
)
|
||||
|
||||
# Function to sanitize strings for folder names
|
||||
function Get-SafeFolderName {
|
||||
param([string]$name)
|
||||
$invalid = [System.IO.Path]::GetInvalidFileNameChars()
|
||||
$regex = "[{0}]" -f [regex]::Escape(-join $invalid)
|
||||
return ($name -replace $regex, "_").Trim()
|
||||
}
|
||||
|
||||
# Function to check if URL is valid YouTube URL
|
||||
function Test-YouTubeUrl {
|
||||
param([string]$url)
|
||||
$pattern = '^(https?:\/\/)?(www\.)?(youtube\.com\/watch\?v=|youtu\.be\/)[a-zA-Z0-9_-]{11}.*$'
|
||||
return $url -match $pattern
|
||||
}
|
||||
|
||||
# Main script
|
||||
if (-not (Test-YouTubeUrl $video_url)) {
|
||||
Write-Error "Invalid YouTube URL"
|
||||
exit 1
|
||||
}
|
||||
|
||||
try {
|
||||
# Get video title for folder name
|
||||
Write-Host "Getting video information..." -ForegroundColor Green
|
||||
$video_info = yt-dlp --get-title --get-id $video_url
|
||||
$video_title = $video_info[0]
|
||||
$video_id = $video_info[1]
|
||||
|
||||
# Create safe folder name
|
||||
$folder_name = Get-SafeFolderName $video_title
|
||||
$folder_path = Join-Path $PSScriptRoot $folder_name
|
||||
|
||||
# Create folder
|
||||
Write-Host "Creating folder: $folder_name" -ForegroundColor Yellow
|
||||
New-Item -ItemType Directory -Path $folder_path -Force | Out-Null
|
||||
|
||||
# Change to video folder
|
||||
Push-Location $folder_path
|
||||
|
||||
# Download description
|
||||
Write-Host "Downloading video description..." -ForegroundColor Yellow
|
||||
yt-dlp --skip-download --write-description $video_url
|
||||
|
||||
# Download comments
|
||||
Write-Host "Downloading comments..." -ForegroundColor Yellow
|
||||
yt-dlp --skip-download --write-comments --extractor-args "youtube:max_comments=100;comment_sort=top" $video_url
|
||||
|
||||
# Download auto-generated subtitles
|
||||
Write-Host "Downloading transcript..." -ForegroundColor Yellow
|
||||
yt-dlp --skip-download --write-auto-sub --sub-format vtt $video_url
|
||||
|
||||
# Create info.json with metadata
|
||||
Write-Host "Saving video metadata..." -ForegroundColor Yellow
|
||||
$info = @{
|
||||
title = $video_title
|
||||
video_id = $video_id
|
||||
url = $video_url
|
||||
download_date = (Get-Date).ToString("yyyy-MM-dd HH:mm:ss")
|
||||
}
|
||||
$info | ConvertTo-Json | Out-File -FilePath "info.json"
|
||||
|
||||
# Return to original directory
|
||||
Pop-Location
|
||||
|
||||
Write-Host "Done! Data saved in: $folder_path" -ForegroundColor Green
|
||||
|
||||
} catch {
|
||||
Write-Error "An error occurred: $_"
|
||||
exit 1
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue