mirror of
https://github.com/2dust/v2rayN.git
synced 2025-11-29 03:02:53 +00:00
Update AppBuilderExtension.cs
This commit is contained in:
parent
dadf29c925
commit
80720c74c6
1 changed files with 12 additions and 60 deletions
|
|
@ -1,68 +1,20 @@
|
||||||
using System;
|
public static AppBuilder WithFontByDefault(this AppBuilder appBuilder)
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.IO;
|
|
||||||
using Avalonia;
|
|
||||||
using Avalonia.Media;
|
|
||||||
|
|
||||||
namespace v2rayN.Desktop.Common;
|
|
||||||
|
|
||||||
public static class AppBuilderExtension
|
|
||||||
{
|
{
|
||||||
public static AppBuilder WithFontByDefault(this AppBuilder appBuilder)
|
var fallbacks = new List<FontFallback>();
|
||||||
{
|
|
||||||
var notoSansSc = new FontFamily(Path.Combine(Global.AvaAssets, "Fonts#Noto Sans SC"));
|
|
||||||
|
|
||||||
var fallbacks = new List<FontFallback>
|
var notoSansSc = new FontFamily(Path.Combine(Global.AvaAssets, "Fonts#Noto Sans SC"));
|
||||||
{
|
fallbacks.Add(new FontFallback { FontFamily = notoSansSc });
|
||||||
new() { FontFamily = notoSansSc }
|
|
||||||
};
|
|
||||||
|
|
||||||
if (OperatingSystem.IsLinux())
|
if (OperatingSystem.IsLinux())
|
||||||
{
|
|
||||||
var emojiFamily = DetectLinuxEmojiFamily();
|
|
||||||
if (!string.IsNullOrWhiteSpace(emojiFamily))
|
|
||||||
{
|
{
|
||||||
fallbacks.Add(new FontFallback
|
fallbacks.Add(new FontFallback
|
||||||
{
|
{
|
||||||
FontFamily = new FontFamily(emojiFamily)
|
FontFamily = new FontFamily("Noto Color Emoji")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return appBuilder.With(new FontManagerOptions
|
return appBuilder.With(new FontManagerOptions
|
||||||
{
|
{
|
||||||
FontFallbacks = fallbacks.ToArray()
|
FontFallbacks = fallbacks.ToArray()
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
private static string? DetectLinuxEmojiFamily()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var psi = new ProcessStartInfo
|
|
||||||
{
|
|
||||||
FileName = "/bin/bash",
|
|
||||||
ArgumentList =
|
|
||||||
{
|
|
||||||
"-c",
|
|
||||||
"fc-match -f \"%{family[0]}\\n\" \"emoji\" | head -n 1"
|
|
||||||
},
|
|
||||||
RedirectStandardOutput = true,
|
|
||||||
RedirectStandardError = false,
|
|
||||||
UseShellExecute = false
|
|
||||||
};
|
|
||||||
|
|
||||||
using var p = Process.Start(psi);
|
|
||||||
if (p == null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
var output = p.StandardOutput.ReadToEnd().Trim();
|
|
||||||
return string.IsNullOrWhiteSpace(output) ? null : output;
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue