| Files | Last commit | Last update |
|---|---|---|
FolderDock:自由拼装文件夹组合的 Windows 文件管理器(Rust + egui) 需求是「像 Zen 管理书签那样自由组装文件夹组合、快速搜索、并保留系统原生右键」。 仓库此前是空的,这里从零实现,并落下一套可复用的 GUI 取证工具。 三条主线: 1) 组 = 一组文件夹的组合(不是单个目录)。组可以为空,再用「+ 文件夹」把任意多个文件夹 拼进去;每格是一个文件夹面板,可并排、调宽、换序、独立导航。组级动作只针对「这一组 文件夹」(复制组合 / 复制文件夹列表 / 清空 / 删除),不提供任何单文件夹语义的入口。 2) 右键不用自绘替代品,直接弹 Windows shell 的 IContextMenu:文件/多选一套、文件夹背景 一套;子类化主窗口转发 IContextMenu2/3,让「发送到」「打开方式」这类动态子菜单真的能 展开(实测拿到 40 项文件菜单)。菜单期间拦 WM_PAINT,避免重入 eframe 的帧循环。 3) 搜索是先建索引再打字:后台按根增量遍历(尊重 .gitignore、跳过隐藏项、每根上限、根集合 LRU),查询时 nucleo 模糊 + 通配/扩展名/路径/排除语法。45k 条索引下单次查询 6–7ms。 图标优先用 shell 提取(SHGetFileInfoW → IImageList → DIB → 预乘 RGBA,按扩展名缓存), 取不到时回落到内置 SVG 路径数据的矢量图标。 顺带修掉几处只有实机跑才会暴露的问题:面板目录列举每帧重发请求导致列表永远停在「读取中」、 拖拽排序的落点写成了自己那一格(排序实际是死的)、行距与 ScrollArea 推算不一致、 中央区域不上色导致浅色主题下露黑缝、搜索 * 命中全部时 46ms→7ms(部分选择替代全排序)。 验证方式全部是实机取证(截图 + 像素测量 + 真实键鼠注入 + 日志时间线), 工具与结论在 .verify/(win.ps1 自带 selftest 12/12 PASS)。 | 25 days ago | |
FolderDock:自由拼装文件夹组合的 Windows 文件管理器(Rust + egui) 需求是「像 Zen 管理书签那样自由组装文件夹组合、快速搜索、并保留系统原生右键」。 仓库此前是空的,这里从零实现,并落下一套可复用的 GUI 取证工具。 三条主线: 1) 组 = 一组文件夹的组合(不是单个目录)。组可以为空,再用「+ 文件夹」把任意多个文件夹 拼进去;每格是一个文件夹面板,可并排、调宽、换序、独立导航。组级动作只针对「这一组 文件夹」(复制组合 / 复制文件夹列表 / 清空 / 删除),不提供任何单文件夹语义的入口。 2) 右键不用自绘替代品,直接弹 Windows shell 的 IContextMenu:文件/多选一套、文件夹背景 一套;子类化主窗口转发 IContextMenu2/3,让「发送到」「打开方式」这类动态子菜单真的能 展开(实测拿到 40 项文件菜单)。菜单期间拦 WM_PAINT,避免重入 eframe 的帧循环。 3) 搜索是先建索引再打字:后台按根增量遍历(尊重 .gitignore、跳过隐藏项、每根上限、根集合 LRU),查询时 nucleo 模糊 + 通配/扩展名/路径/排除语法。45k 条索引下单次查询 6–7ms。 图标优先用 shell 提取(SHGetFileInfoW → IImageList → DIB → 预乘 RGBA,按扩展名缓存), 取不到时回落到内置 SVG 路径数据的矢量图标。 顺带修掉几处只有实机跑才会暴露的问题:面板目录列举每帧重发请求导致列表永远停在「读取中」、 拖拽排序的落点写成了自己那一格(排序实际是死的)、行距与 ScrollArea 推算不一致、 中央区域不上色导致浅色主题下露黑缝、搜索 * 命中全部时 46ms→7ms(部分选择替代全排序)。 验证方式全部是实机取证(截图 + 像素测量 + 真实键鼠注入 + 日志时间线), 工具与结论在 .verify/(win.ps1 自带 selftest 12/12 PASS)。 | 25 days ago | |
FolderDock:自由拼装文件夹组合的 Windows 文件管理器(Rust + egui) 需求是「像 Zen 管理书签那样自由组装文件夹组合、快速搜索、并保留系统原生右键」。 仓库此前是空的,这里从零实现,并落下一套可复用的 GUI 取证工具。 三条主线: 1) 组 = 一组文件夹的组合(不是单个目录)。组可以为空,再用「+ 文件夹」把任意多个文件夹 拼进去;每格是一个文件夹面板,可并排、调宽、换序、独立导航。组级动作只针对「这一组 文件夹」(复制组合 / 复制文件夹列表 / 清空 / 删除),不提供任何单文件夹语义的入口。 2) 右键不用自绘替代品,直接弹 Windows shell 的 IContextMenu:文件/多选一套、文件夹背景 一套;子类化主窗口转发 IContextMenu2/3,让「发送到」「打开方式」这类动态子菜单真的能 展开(实测拿到 40 项文件菜单)。菜单期间拦 WM_PAINT,避免重入 eframe 的帧循环。 3) 搜索是先建索引再打字:后台按根增量遍历(尊重 .gitignore、跳过隐藏项、每根上限、根集合 LRU),查询时 nucleo 模糊 + 通配/扩展名/路径/排除语法。45k 条索引下单次查询 6–7ms。 图标优先用 shell 提取(SHGetFileInfoW → IImageList → DIB → 预乘 RGBA,按扩展名缓存), 取不到时回落到内置 SVG 路径数据的矢量图标。 顺带修掉几处只有实机跑才会暴露的问题:面板目录列举每帧重发请求导致列表永远停在「读取中」、 拖拽排序的落点写成了自己那一格(排序实际是死的)、行距与 ScrollArea 推算不一致、 中央区域不上色导致浅色主题下露黑缝、搜索 * 命中全部时 46ms→7ms(部分选择替代全排序)。 验证方式全部是实机取证(截图 + 像素测量 + 真实键鼠注入 + 日志时间线), 工具与结论在 .verify/(win.ps1 自带 selftest 12/12 PASS)。 | 25 days ago |