Initial commit

This commit is contained in:
robojerk 2025-05-09 11:59:07 -07:00
commit 9c1e897bdc
36 changed files with 6638 additions and 0 deletions

2
.gitattributes vendored Normal file
View file

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

21
LICENSE Normal file
View 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
View 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
View 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
View 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
View 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

Binary file not shown.

16
bginfo/cpuname.vbs Normal file
View 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
View 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
View 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
View 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
View 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
View 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
View file

@ -0,0 +1 @@
D8:9E:F3:36:81:A3

60
bginfo/networkspeed.vbs Normal file
View 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
View 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
View 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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 KiB

187
install.ps1 Normal file
View 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

View file

@ -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.

View file

@ -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"
}

View file

@ -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

View file

@ -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>

View file

@ -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"
}

View file

@ -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.

View file

@ -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"
}

View 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)

View 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
View 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
}