X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;ds=sidebyside;f=nerdfont%2Finstall.ps1;h=398dafde4d5df20126de31737a044105d3b195fc;hb=de7eb27ee75d8c3ad8b1a0491b58d1fbbfe088b2;hp=35ecc2c169e2ffdcc3928a96960a417bfa163c64;hpb=ee34ace0ded7395ba1d84a64364673a1f3f6a048;p=webi-installers%2F.git diff --git a/nerdfont/install.ps1 b/nerdfont/install.ps1 index 35ecc2c..398dafd 100644 --- a/nerdfont/install.ps1 +++ b/nerdfont/install.ps1 @@ -3,24 +3,34 @@ $my_nerdfont_otf = "Droid Sans Mono for Powerline Nerd Font Complete Windows Compatible.otf" $my_fontdir = "$Env:UserProfile\AppData\Local\Microsoft\Windows\Fonts" -New-Item -Path "$my_fontdir" -ItemType Directory -Force +New-Item -Path "$my_fontdir" -ItemType Directory -Force | out-null IF (!(Test-Path -Path "$my_fontdir\$my_nerdfont_otf")) { - & curl.exe -fsSLo "$my_nerdfont_otf" 'https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete%20Windows%20Compatible.otf' & move "$my_nerdfont_otf" "$my_fontdir" } -# See https://superuser.com/a/1306464/73857 pushd "$my_fontdir" -Add-Type -Name Session -Namespace "" -Member @" -[DllImport("gdi32.dll")] -public static extern int AddFontResource(string filePath); -"@ -$null = foreach($font in Get-ChildItem -Recurse -Include *.ttf, *.otf) { - [Session]::AddFontResource($font.FullName) -} +$regFontPath = "\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" +$fontRegistryPath = "HKCU:$regFontPath" +$fontFiles = Get-ChildItem -Recurse -Include *.ttf, *.otf +foreach($font in $fontFiles) { + # See https://github.com/PPOSHGROUP/PPoShTools/blob/master/PPoShTools/Public/FileSystem/Add-Font.ps1#L80 + Add-Type -AssemblyName System.Drawing + $objFontCollection = New-Object System.Drawing.Text.PrivateFontCollection + $objFontCollection.AddFontFile($font.FullName) + $FontName = $objFontCollection.Families.Name -echo "Installed $my_nerdfont_otf to $my_fontdir" + $regTest = Get-ItemProperty -Path $fontRegistryPath -Name "*$FontName*" -ErrorAction SilentlyContinue + if (-not ($regTest)) { + New-ItemProperty -Name $FontName -Path $fontRegistryPath -PropertyType string -Value $font.Name + Write-Output "Registered font {$($font.Name)} in Current User registry as {$FontName}" + } + echo "Installed $my_nerdfont_otf to $my_fontdir" + # because adding to the registry alone doesn't actually take + & start $font.FullName + echo "" + echo "IMPORTANT: Click 'Install' to complete installation" +}