mirror of
https://github.com/Baipyrus/dotfiles.git
synced 2024-12-26 03:11:45 +00:00
installing nerd-fonts by copying and registry
This commit is contained in:
parent
56d0f1e209
commit
10d520c12a
@ -186,9 +186,59 @@ function InstallNerdFont
|
|||||||
|
|
||||||
foreach ($font in $fontFiles)
|
foreach ($font in $fontFiles)
|
||||||
{
|
{
|
||||||
# TODO:
|
InstallFont $font
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Reference: https://www.alkanesolutions.co.uk/2021/12/06/installing-fonts-with-powershell/
|
||||||
|
function InstallFont
|
||||||
|
{
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[System.IO.FileInfo]$file
|
||||||
|
)
|
||||||
|
|
||||||
|
# Prerequisites / Constants
|
||||||
|
Add-Type -AssemblyName PresentationCore
|
||||||
|
$destination = "$env:LOCALAPPDATA\Microsoft\Windows\Fonts\"
|
||||||
|
$regKey = "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts"
|
||||||
|
|
||||||
|
# Get Glyph
|
||||||
|
$glyph = New-Object -TypeName Windows.Media.GlyphTypeface -ArgumentList $file.FullName
|
||||||
|
|
||||||
|
$family = $glyph.Win32FamilyNames['en-us']
|
||||||
|
if ($null -eq $family)
|
||||||
|
{ $family = $glyph.Win32FamilyNames.Values | Select-Object -First 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$face = $glyph.Win32FaceNames['en-us']
|
||||||
|
if ($null -eq $face)
|
||||||
|
{ $face = $glyph.Win32FaceNames.Values | Select-Object -First 1
|
||||||
|
}
|
||||||
|
|
||||||
|
$name = ("$family $face").Trim()
|
||||||
|
switch ($file.Extension)
|
||||||
|
{
|
||||||
|
".ttf"
|
||||||
|
{ $name = "$name (TrueType)"
|
||||||
|
}
|
||||||
|
".otf"
|
||||||
|
{ $name = "$name (OpenType)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$destFileName = Join-Path -Path $destination -ChildPath $file.Name
|
||||||
|
Write-Host "Installing font: $file with font name '$name'"
|
||||||
|
If (-not (Test-Path $destFileName))
|
||||||
|
{ Copy-Item -Path $file.FullName -Destination $destFileName -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Registering font: $file with font name '$name'"
|
||||||
|
$keyValue = Get-ItemProperty -Name $name -Path $regKey -ErrorAction SilentlyContinue
|
||||||
|
If (-not $keyValue)
|
||||||
|
{
|
||||||
|
New-ItemProperty -Name $name -Path $regKey `
|
||||||
|
-PropertyType string -Value $file.Name `
|
||||||
|
-Force -ErrorAction SilentlyContinue | Out-Null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user