Compare commits

...

4 Commits

Author SHA1 Message Date
huzibaca
97717c648e
fix: windows arm64 vsruntime is not installed 2024-11-16 03:12:11 +08:00
huzibaca
ec6705eaf4
Merge branch 'fix-tray-menu-flash-on-windows' into fix-migrate-tauri2-errors
* fix-tray-menu-flash-on-windows:
  chore: update
2024-11-16 02:54:24 +08:00
Chenx Dust
1e11eff811
feat: support mptcp and smux display (#1995)
Corresponding pull request in mihomo: https://github.com/MetaCubeX/mihomo/pull/1646
2024-11-16 01:35:22 +08:00
huzibaca
13fb8c5d7d
chore: update 2024-11-15 17:19:14 +08:00
6 changed files with 35 additions and 22 deletions

View File

@ -697,33 +697,26 @@ Var VC_REDIST_URL
Var VC_REDIST_EXE Var VC_REDIST_EXE
Section CheckAndInstallVSRuntime Section CheckAndInstallVSRuntime
; Set default values for x86 ${If} ${IsNativeARM64}
StrCpy $VC_REDIST_URL "https://aka.ms/vs/17/release/vc_redist.x86.exe" StrCpy $VC_REDIST_URL "https://aka.ms/vs/17/release/vc_redist.arm64.exe"
StrCpy $VC_REDIST_EXE "vc_redist.x86.exe" StrCpy $VC_REDIST_EXE "vc_redist.arm64.exe"
IfFileExists "$SYSDIR\msvcp140.dll" Done
${If} ${RunningX64} ${ElseIf} ${RunningX64}
; Update values for x64
StrCpy $VC_REDIST_URL "https://aka.ms/vs/17/release/vc_redist.x64.exe" StrCpy $VC_REDIST_URL "https://aka.ms/vs/17/release/vc_redist.x64.exe"
StrCpy $VC_REDIST_EXE "vc_redist.x64.exe" StrCpy $VC_REDIST_EXE "vc_redist.x64.exe"
${EndIf}
${If} ${RunningX64}
IfFileExists "$WINDIR\SysWOW64\msvcp140.dll" Done IfFileExists "$WINDIR\SysWOW64\msvcp140.dll" Done
${Else}
StrCpy $VC_REDIST_URL "https://aka.ms/vs/17/release/vc_redist.x86.exe"
StrCpy $VC_REDIST_EXE "vc_redist.x86.exe"
IfFileExists "$SYSDIR\msvcp140.dll" Done
${EndIf} ${EndIf}
IfFileExists "$SYSDIR\msvcp140.dll" Done ; 下载并安装VC运行库
; 如果文件不存在,进行安装
; 下载文件
nsisdl::download "$VC_REDIST_URL" "$TEMP\$VC_REDIST_EXE" nsisdl::download "$VC_REDIST_URL" "$TEMP\$VC_REDIST_EXE"
Pop $0 ; 获取下载结果 Pop $0
StrCmp $0 "success" +2 ${If} $0 == "success"
; 下载失败时,直接跳转到结束
Goto Done
; 安装运行库
nsExec::Exec '"$TEMP\$VC_REDIST_EXE" /quiet /norestart' nsExec::Exec '"$TEMP\$VC_REDIST_EXE" /quiet /norestart'
${EndIf}
Done: Done:
SectionEnd SectionEnd

View File

@ -23,7 +23,8 @@
"app": { "app": {
"trayIcon": { "trayIcon": {
"iconPath": "icons/tray-icon.ico", "iconPath": "icons/tray-icon.ico",
"iconAsTemplate": true "iconAsTemplate": true,
"menuOnLeftClick": false
}, },
"windows": [] "windows": []
} }

View File

@ -160,6 +160,16 @@ export const ProxyItemMini = (props: Props) => {
TFO TFO
</TypeBox> </TypeBox>
)} )}
{proxy.mptcp && (
<TypeBox color="text.secondary" component="span">
MPTCP
</TypeBox>
)}
{proxy.smux && (
<TypeBox color="text.secondary" component="span">
SMUX
</TypeBox>
)}
</Box> </Box>
)} )}
</Box> </Box>

View File

@ -127,6 +127,8 @@ export const ProxyItem = (props: Props) => {
{showType && proxy.udp && <TypeBox>UDP</TypeBox>} {showType && proxy.udp && <TypeBox>UDP</TypeBox>}
{showType && proxy.xudp && <TypeBox>XUDP</TypeBox>} {showType && proxy.xudp && <TypeBox>XUDP</TypeBox>}
{showType && proxy.tfo && <TypeBox>TFO</TypeBox>} {showType && proxy.tfo && <TypeBox>TFO</TypeBox>}
{showType && proxy.mptcp && <TypeBox>MPTCP</TypeBox>}
{showType && proxy.smux && <TypeBox>SMUX</TypeBox>}
</> </>
} }
/> />

View File

@ -122,6 +122,8 @@ export const getProxies = async () => {
udp: false, udp: false,
xudp: false, xudp: false,
tfo: false, tfo: false,
mptcp: false,
smux: false,
history: [], history: [],
}; };
}; };

View File

@ -56,6 +56,8 @@ interface IProxyItem {
udp: boolean; udp: boolean;
xudp: boolean; xudp: boolean;
tfo: boolean; tfo: boolean;
mptcp: boolean;
smux: boolean;
history: { history: {
time: string; time: string;
delay: number; delay: number;
@ -468,6 +470,7 @@ interface IProxyVlessConfig extends IProxyBaseConfig {
fingerprint?: string; fingerprint?: string;
servername?: string; servername?: string;
"client-fingerprint"?: ClientFingerprint; "client-fingerprint"?: ClientFingerprint;
smux?: boolean;
} }
// vmess // vmess
interface IProxyVmessConfig extends IProxyBaseConfig { interface IProxyVmessConfig extends IProxyBaseConfig {
@ -496,6 +499,7 @@ interface IProxyVmessConfig extends IProxyBaseConfig {
"global-padding"?: boolean; "global-padding"?: boolean;
"authenticated-length"?: boolean; "authenticated-length"?: boolean;
"client-fingerprint"?: ClientFingerprint; "client-fingerprint"?: ClientFingerprint;
smux?: boolean;
} }
interface WireGuardPeerOptions { interface WireGuardPeerOptions {
server?: string; server?: string;
@ -604,6 +608,7 @@ interface IProxyShadowsocksConfig extends IProxyBaseConfig {
"udp-over-tcp"?: boolean; "udp-over-tcp"?: boolean;
"udp-over-tcp-version"?: number; "udp-over-tcp-version"?: number;
"client-fingerprint"?: ClientFingerprint; "client-fingerprint"?: ClientFingerprint;
smux?: boolean;
} }
// shadowsocksR // shadowsocksR
interface IProxyshadowsocksRConfig extends IProxyBaseConfig { interface IProxyshadowsocksRConfig extends IProxyBaseConfig {