Files
fuckcapslock/install.ps1

46 lines
1.6 KiB
PowerShell

# FuckCapsLock Installer
# Run as Administrator: right-click -> Run with PowerShell (Run as Administrator)
$ErrorActionPreference = "Stop"
$DestDir = "$env:ProgramFiles\FuckCapsLock"
$ExeName = "fuckcapslock.exe"
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
$RegName = "FuckCapsLock"
# Source exe: assume script is in the repo root, exe is in out/
$ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
$SourceExe = Join-Path $ScriptDir "out" $ExeName
if (-not (Test-Path $SourceExe)) {
Write-Error "Could not find $SourceExe — make sure this script is run from the repo root."
exit 1
}
# Require admin
$IsAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $IsAdmin) {
Write-Error "This script must be run as Administrator."
exit 1
}
# Create destination directory
if (-not (Test-Path $DestDir)) {
New-Item -ItemType Directory -Path $DestDir -Force | Out-Null
}
# Copy exe
Copy-Item -Path $SourceExe -Destination (Join-Path $DestDir $ExeName) -Force
Write-Host "Copied $ExeName to $DestDir"
# Set registry auto-start (HKLM = all users, starts before user logon)
$ExePath = Join-Path $DestDir $ExeName
Set-ItemProperty -Path $RegPath -Name $RegName -Value $ExePath
Write-Host "Registry auto-start set: $RegPath\$RegName = $ExePath"
# Launch
Start-Process -FilePath $ExePath
Write-Host "FuckCapsLock launched."
Write-Host ""
Write-Host "Done. Caps Lock is now permanently disabled until you right-click"
Write-Host "the tray icon and select Exit."