Skip to content

Advanced Features

sun_y edited this page Jun 13, 2026 · 2 revisions

Advanced Features (核心特色与硬核机制)


🔁 当前节点一键轮换与即时单点测速 (FEAT-006)

在微缩监控或日常使用时,用户无需打开庞大的节点列表即可直接轮换节点,并可直接在主界面顶部状态栏触发当前节点的延迟测试:

  1. 当前节点一键轮换

    • 触发机制:鼠标悬停在顶部的「当前活跃出口节点状态显示条」的节点名称上,鼠标指针会变为 pointer(手型),并显示气泡提示:「点击轮换下一个节点」
    • 逻辑流程
      • 提取条件:点击时,程序自动从 localStorage'proxy-head-state' 字段中读取当前的节点过滤文本(filterText)、排序规则(sortType)及正则匹配等条件。
      • 子集排序:调用过滤排序函数对所有可用节点进行实时计算,筛选出当前 UI 表格中展示的候选节点子集。
      • 循环轮换:如果在子集中,则向后轮换(首尾相接);如果不在子集中,则直接切换到第一个节点。
      • 物理更新:切换后立即调用底层 IPC 更新内核并刷新界面。
  2. 即时单点测速

    • 触发机制:点击状态栏中节点名称右侧的延迟数值标签(如 25mstimeout 等 Chip 标签,光标呈现为手型 pointer)。
    • 逻辑流程:点击后延迟标签会立即变为 “测试中...”,并异步调用底层检测命令对该节点进行延迟刷新测速(Provider 节点自动调用 healthcheck,普通节点检测 delay),测试完成后立即更新界面延迟数值,让用户无需打开设置面板即可一键确认当前节点的通畅度。

⚡ Allow LAN 与配置热更新

  • 操作说明:在设置面板的“Allow LAN”开关开启时,主程序会修改底层的代理核心配置文件。
  • 热更新机制:开关拨动后,系统不会重新启动或重载内核,而是直接将 allow-lan: true/false 的配置流实时热更(hot update)推入内核进程,极速生效,流量无感知中断。

🖱️ 右键分流 (右键控制 - 小白止步)

  • 特色功能:右键点击【路径控制】列表中的任意链接,可以在弹出的快捷菜单中快速选择:【直连 (Direct)】【代理 (Proxy)】【拒绝 (Reject)】
  • 优先级与生成:该操作会在用户的配置文件中自动生成具有最高优先级的手动分流规则,强行重写匹配该域名的路由走向。
  • 布局建议:由于需要显示完整的网络链路,使用该功能时建议将 Clash Mini 窗口最大化。

🌌 隐身模式与动态发光边框 (Stealth Mode & GlowBorder - FEAT-003)

  • 原生标题栏安全:Clash Mini 启动时默认显示 Windows 原生标题栏,且文字统一使用标准 ASCII 字符(如 Clash Mini Ver.1.1.6),彻底杜绝因特殊 unicode 字符在部分系统缺失导致的乱码。
  • 自动触发:当窗口处于最小宽度(270px)且用户连续 10秒 无任何鼠标/键盘操作时,隐身模式自动激活。
  • 原生窗框剥离:通过 Tauri 底层 API window.set_decorations(false) 物理剥离原生窗口框,WebView 自动向上填满空出的空间。
  • 窗口拖拽机制:在无窗框的隐身状态下,鼠标在非交互区域(非按钮、链接,无 data-no-drag="true" 属性区域)左键按下且移动大于 5 像素时,程序会自动调用 Tauri 层的 startDragging() 实现平滑窗口拖拽。
  • 发光边框物理模型(GlowBorder)
    • 边框外置 4px 宽度,紧贴窗口边界,不占用内容区。
    • 双极压缩气体运动模型:边框上的两个极色点(琥珀金 #FFC400 与电光蓝 #0084FF)在封闭的边框管道内以独立速度循环运动。两者靠近时因“互斥力”而减速,远离时自由加速,并带有随机转向扰动。
    • 流量与发光联动:气色循环速度跟随实时流量动态调整(高速时快至 2s/圈,无流量时慢至 10s/圈)。亮度由“呼吸层”(60%,随流量波动)与“心跳层”(40%,固定 0.9s 周期)双层叠加,即使无流量时仍有若隐若现的微光。发光强度由主面板滑块一(Vibrancy/Glow)线性控制。
  • 快速唤醒:单击非避让区域(放开鼠标且未进行拖拽)或将窗口向右拉宽(innerWidth > 290px)时,会自动触发 window.set_decorations(true) 瞬间恢复 Windows 原生标题栏,GlowBorder 淡出。

🧲 窗口边缘磁吸与零 CPU 抖动 (FEAT-004)

  • 磁吸阈值:当用户在桌面拖动无边框(Stealth)窗口靠近屏幕边界(左、右、顶、底)距离小于 18 像素时(已自动换算系统 DPI 缩放),窗口将以 150ms 冷却时间自动无缝贴合吸附至当前显示器工作区边缘。
  • 零抖动预缓存:拖动窗口触发 mousedown 时,程序会在内存中预先缓存(Pre-cache)当前显示器的物理分辨率及窗口大小。在后续 Moved 高频触发事件中,计算直接利用内存缓存进行边界碰撞检测,彻底消除了每次调用 Tauri IPC 获取屏幕分辨率带来的多进程通信损耗,保证拖动期间 CPU 零抖动与零卡顿。

🧹 孤儿进程物理隔离与强杀 (BUG-056)

  • Sidecar 物理命名隔离:为了与官方 Clash Verge 彻底共存,Clash Mini 重新编译并物理重命名了 Sidecar 内核,二进制文件名及系统运行进程名统一从 verge-mihomo / verge-mihomo-alpha 变更为 mini-mihomo / mini-mihomo-alpha
  • 异步强杀强力清洁:在主程序触发 clean_async 异步退出事件时,Clash Mini 会使用 sysinfo 库扫描全机运行进程,强制杀灭(kill)所有名称包含 mini-mihomo 的残留内核子进程,释放端口与系统锁,保障退出后无任何孤儿进程。
  • 无冲突共存:由于前缀进行了物理隔离,此强杀机制绝不会误伤官方的 verge-mihomo 内核,两个客户端可在一台 Windows 电脑上同时独立运行、各自代理、绝不打扰。