一个智能且方便的符号链接创建工具,支持regex,以及一些基于符号链接实现的程序(Desks系列)
For Windows (at present)
项目为一个workspace,包含多个crate,每个crate内都有各自的README.md
如果你处于Windows的开发者模式,则不需要sudo或者管理员权限
Do not need sudo or administrator if Developer Mode enabled.
Only for Windows 11.
包含两个命令行工具与一个托盘程序。
该系列基于fastLink,需要一些权限来创建符号链接,建议打开Windows 开发者模式,或者每次执行都给予管理员权限。
在Windows平台下修改Desktop库目标文件夹, 使用符号链接指向已有的文件夹, 动态修改桌面内容。
Warning
声明:
注意,不保证安全无bug,如果遇到问题,请积极提交issue。
不支持多用户,初始化后请勿手动修改桌面库的位置、名称等,这些操作都有可能让你丢失你的桌面库。
如果有任何修改桌面库的需求,请使用desks reset -k来重置,修改之后再初始化,以防发生棘手的情况。
默认情况,就是你的桌面,就是C:\Users\%username%\Desktop这个文件夹,就是这个:
下载desks.exe与desks-tray.exe,然后参考desks-tray usage
- 保持桌面图标布局
- 手动保存、恢复桌面布局
- 动态适应分辨率
- 多显示器
- 自定义图标
- 桌面文件/文件夹众多,想要工作、休闲分离
- 有一些文件/文件夹想放桌面,但是平时又不想让其他人看见
- 换一个桌面,即刻切换你跟电脑的状态与心情
项目核心,包含LinkTask以及相关结构体定义,mklink以及相关函数定义,日志系统。
先构建LinkTaskArgs(使用builder或from(Args)),经过LinkTaskPre预处理,得到LinkTask,
对LinkTask实例使用mklinks等方法可以创建、检查、删除符号链接。
包含两个二进制: fastlink与fastlink-slim
用于在命令行创建符号链接,具体用法可以参考示例或--help
fastlink-slim不包含re支持与save_log
两个二进制都可以使用可选参数-c检查路径,--rm删除已存在的符号链接
desks系列(desks, desku, desks-tray)的核心,主要定义了一些处理方法以及一个共享的状态数据文件。
desks-core的一些封装,包含两个二进制desks与desku,均为命令行工具。
desks 目前是desks系列的核心程序,包含初始化、设置桌面、添加常用路径、重置等,但不包括桌面布局管理等功能。
desku 只能通过以设置的常用路径来设置桌面,等效desks u some_name(就是为了省2个字)(更推荐使用desks-tray)
desks系列的托盘程序,主要用于日常方便切换桌面,同时包含桌面布局保存、恢复功能。
实现保存、恢复桌面图标布局以及相关功能。
读取当前布局信息暂时使用python实现,再打包到exe嵌入到rust程序(也导致最终exe增长约8mb),欢迎大佬贡献代码或提出rust解决方案。
由于GitHub Action Workflow中自动打包python得到的二进制有点问题,仓库直接上传了本地打包的exe
代码内有一些todo,以及当前迫切需要解决的完全使用rust实现desktop-layout模块。
编译等目录可以参考项目的workflow配置文件,被注释部分为打包python二进制
如果发生了一些预期之外的问题,提个issue,记得贴上带--debug参数时的日志。
If something not expected happened, open an issue and paste the log with --debug argument.
如果是desks系列程序(desks, desku, desks-tray),还需要使用desks state, 并使用fastlink -c $initial_path$与fastlink -c $initial_path_temp$
(手动替换$initial_path$与$initial_path_temp$),将返回信息一并提交到issue内
注:若无法使用desks state, 请使用全局搜索工具如everything搜索路径fastlink\desktop_setter\state.json获取程序状态,
对于desks-tray, 日志在fastlink\desktop_setter\log中保存。
