使用指南
zzzgydi opened this issue · 4 comments
由于没有提供啥文档,暂时用issue介绍其中一些功能。
Clash Core的使用
本项目依赖于 Dreamacro/clash 提供的clash core二进制。本项目只是对clash的部分配置提供方便易用的GUI操作,仅此而已。如果你发现某些clash config在本项目中存在问题,欢迎在issue里指出。
注意:当前版本对于clash的providers
的支持还只是能看不能用的状态,如果目前你有这个需求,可以考虑社区里其他更全面更完备的项目。
如果你希望使用非Premium版本的clash core,可以在应用的安装目录里直接替换clash.exe
即可(不同系统扩展名有差异)。需要注意的是,应用更新时可能会替换该程序,需要注意一下。
Profiles Enhanced Mode 增强模式(^0.0.21)
目前支持4种类型的配置文件,分别是Remote、Local、Script、Merge。其中,Remote和Local类型为 主配置文件,Script和Merge类型为 增强配置文件,用于修改主配置文件的。点New
可以创建这些配置文件(如下图),对于Remote类型的,也可以直接输入url import即可。 (备注:该模式主要参考了CFW的实现)
Remote 远程配置
目前仅支持clash格式的配置链接,即响应体数据是符合clash配置格式的(utf8编码)。如果响应头中存在Subscription-Userinfo
字段,则其对应的流量信息会展示出来。远程配置可以点击右上角的更新按键自动更新。
Local 本地配置
新建本地配置之后,右键 - File
即可打开对应的本地配置文件(默认会用VScode打开,如果找不到执行程序则用open
打开)。在编写完本地配置之后右键 - select
即可刷新该配置。
Merge 合并处理
该配置类型用于对主配置进行字段增加的操作,文件格式是yaml。该idea源于 CFW 配置预处理中的简便方法。目前仅支持6种操作类型。启用方法:右键 - enable
,在修改了文件之后,右键 - Refresh
触发刷新配置。
- prepend-rules:类型和
clash rules
配置一致,内容合并到rules 前 - append-rules:类型和
clash rules
配置一致,内容合并到rules 后 - prepend-proxies:类型和
clash proxies
配置一致,内容合并到proxies 前 - append-proxies:类型和
clash proxies
配置一致,内容合并到proxies 后 - prepend-proxy-groups:类型和
clash proxy-groups
配置一致,内容合并到proxy-groups 前 - append-proxy-groups:类型和
clash proxy-groups
配置一致,内容合并到proxy-groups 后
^0.0.26
新增
- use:用于标记增强模式可以额外使用profile里的哪些字段,默认只会使用profile里的
rules
,proxies
,proxy-groups
,proxy-providers
,rule-providers
。类型为string[]
,可选值为tun
,dns
,hosts
,script
,profile
,payload
,interface-name
,routing-mark
- 其他clash的字段:5个默认使用的字段以及
use
可选值里提及的字段,直接设置这些字段将直接覆盖profile对应字段的内容。如果不是5个默认的字段,则需要在use
里声明。
Script 脚本处理
该配置类型提供编写JS脚本修改配置的能力,JS运行时为browserjs而非nodejs。该idea源于 CFW 配置预处理中的Mixin方法。启用方法:右键 - enable
,在修改了文件之后,右键 - Refresh
触发刷新配置。
脚本中需要声明一个main函数,函数签名为main(params: object): object;
,也支持异步函数async main(params: object): object;
。函数入参为序列化为js object的clash配置,务必返回处理后的js object。
如果脚本中存在异常未处理,处理程序将跳过该脚本所做的操作,并且对应的profile项将变红和报错提示。
实现原理是利用Webview2里的JS引擎执行用户脚本,所以不能执行任何系统api的操作,即nodejs那些是不支持的。仅采用new Function
和严格模式执行用户脚本。
脚本安全性的考虑:应该不存在脚本突破Webview2的沙盒产生威胁。可能存在脚本通过tauri注入的对象操作系统api产生威胁。由于tauri官方有安全方面的审计,所以如果本项目存在这些安全问题,可能是因为 tauri 相关feature没用到但是没关闭,或者是我也不懂的东西请指教。总而言之,不要随便运行别人的脚本。
Profiles 的处理流程
首先选择一个主配置文件,如果没有就是默认的空配置。其次如果存在Script和Merge这些增强配置,且已经enable启用了,则会按顺序进行链式处理。即前一个处理的结果作为下一个处理的输入。
程序会先用主配置进行clash启动,增强配置的更新是一个异步的过程,所以一定会存在更新延迟。
其他
todo
很好用的软件!
建议把文档放到 Wiki 中
ok啦
如何替换主配置某些东西,比如proxy-group下某个组