🎉Docs-wutils
Docs-wutils
install
go install github.com/Weidows/wutils/cmd/wutils@master |
默认配置 | default config: https://github.com/Weidows/wutils/tree/master/config
如果是 scoop / release 安装, 配置会在压缩包内
Cmd
一些命令行程序, 基本都是我自己需要用的, 没找到符合需求的就简单写一个, 针对 服务 (service)
wutils
- [x] 运行时配置热更新
╰─ 👉wutils |
parallel
wutils 部分子程序设计为根据 配置文件 持续运行的
所以单独出来一个配置项控制子程序后台一起运行
ol-Opacity_Listener
后台持续运行并控制窗口透明化的程序, 如图:
只在 windows 平台使用和测试过, 其他平台可能会有 bug
可用于类比的软件是 BLend, 那个软件太老了, 总是出一些 bug, 所以自己写了一个
特点-feature
- [x] 现在大多数能搜到的工具比较手动, 每个新开的窗口都要再手动设置一次, wutils 只需要改一次配置, 开多少窗口都能立即起效
- [x] 参数可调, 同一程序的透明度统一控制, 不同程序的透明度分开控制
- [x] 配置化, 免得每次启动调来调去 (config/app.yml)
匹配规则是按标题来的, 所以按着上面改就行, 挺直观的
title 是 regex 字符串
^是从开头匹配,$是结尾比如我的 Edge 浏览器, 通过
wutils ol list命令找到它的标题是这么长Weidows/wutils: Some demos and utils in learning \u0026 developing golang. 和另外 154 个页面 - 个人 - Microsoft Edge我想让 wutils 匹配以 “Weidows” 开头, 以 “- Microsoft Edge” 结尾的窗口, 那应该填
^Weidows.*- Microsoft Edge$opacity 是透明度,
(0,255]一般设置在 200~240 这个范围比较舒服
教程-tutorial
diff
自然, 可以通过 Git 和一些类似的工具实现 ‘行-差异’ 的做法, 但是它们并不能输出, 作为差集
test case at here
./wutils diff |
zip
crack
简而易懂, 破解压缩包
- 自动在
~/.config/wutils/password-dict.txt创建默认密码字典 - 使用协程高速处理
>=1000 test/s~50%CPU usagenMB ~ nGBRAM usage
- supporting
- .zip
- .7z
- .rar
- .tar.gz
- .tar.bz2
- 分卷文件 (.zip, .z01, .z02 …)
- 分卷 7z 文件 (.7z.001, .7z.002 …)
media
场景: 手机拍出来的图片/视频会同一堆在 DCIM/Camera 里, 有点太多了难以分组
此程序作用为归类图片/视频, 默认参数对 12h时间内 & 方圆1km 归为一组, 减少手动分组的麻烦
只接收一个参数, 图片文件夹的路径, 会在其内部生成 output, 并把分组后的文件复制进去 (注意大小)
wutils media group F:/Pictures/@Collections/DCIM/Camera |
subdir-extracter
主要功能为解散一级目录
- [x] 支持递归文件夹
- [x] 重复文件进行 hash 校验 (前缀重命名法不会有误删, 删除的是完全一致的文件)
- [ ] 提取为 Lib 到 utils 可供调用
usage
subdir-extracter 0 ./1 |
params:
- mode
autoCheck = “0”
overwrite = “1”
skip = “2” - path
input the root-dir-path where you need to extracter subdirs
example
如下为解散前后, 测试文件在 cmd/subdir-extracter/1
D:\DESKTOP\1 |
D:\DESKTOP\1 |
适用场景很单一: 比如一大批图包/数据集, 嵌套了很多层让人不舒服 (n > 10 时手动挪出来就很头疼了)
也没有对应工具可以用, 所以就写了这个
gmm
Golang package Mirror Manager
- [x] 结果排序
- [x] 协程加速
buffer
Buffer filesystem - 基于 Dokan 的 IO 缓冲虚拟文件系统
用于减少 HDD IOPS,对小文件随机读写场景特别有效。
功能特性
- 基于 Dokan (Windows FUSE) 的透明缓冲
- 写缓冲(write-behind):减少写操作次数
- 读缓冲(LRU + read-ahead):热点数据缓存和预取
- 可配置的缓冲策略:monitoring, defrag, download, migration, balanced
- 支持配置文件管理和热更新
用法
# 挂载缓冲盘 X:,指向 D:/data |
选项
-s, --source(必需): 源路径,需要缓冲的目录--memory-limit: 内存限制,单位字节(默认: 67108864,64MB)--flush-interval: 刷新间隔,单位秒(默认: 10)--strategy: 缓冲策略monitoring: 监控模式,低延迟defrag: 碎片整理模式,大批量写download: 下载模式,顺序写migration: 迁移模式,批量读写balanced: 平衡模式(默认)
--enable-read-cache: 启用读缓存(默认: false)--enable-write-buffer: 启用写缓冲(默认: true)
配置文件
在 ~/.config/wutils/app.yml 中配置:
cmd: |
注意事项
- 需要安装 Dokan 驱动(https://github.com/dokan-dev/dokany)
- 仅支持 Windows 平台
- 建议配合 SSD 使用以获得最佳性能
Pkg
一般是 New 出来用的包, 针对 对象 (object)
zip
用于破解压缩文件的包, 上面 cmd 中有调用
Utils
工具类函数, 多为应对 code 时常用却又棘手的情况, 针对 类型 (type)
比较偏向 go 的注释即文档做法, utils 里有各种工具库, 可以先装一下, 开发时说不定起手就用到了
现存函数大大大概率不会删/改名, base 大致搭好了, 会有 deprecated / break change
借物表
暂无.
新架构 (v0.2+)
项目结构
项目已从单一 CLI 重构为 CLI + GUI 双接口架构:
wutils/ |
开发
# CLI (终端) |
GUI 功能
GUI 以系统托盘形式运行 (Windows), 包含 9 个页面:
| 页面 | 功能 | 状态 |
|---|---|---|
| Dashboard | 服务总览, 一键启停 | ✅ |
| DSG | 磁盘睡眠守护控制 | ✅ |
| OL | 窗口透明度监听 | ✅ |
| Buffer | IO 缓冲文件系统 | ✅ |
| ZipCrack | 压缩包密码破解 | ✅ |
| Diff | 文件行差集对比 | ✅ |
| Media | 媒体文件聚类分组 | ✅ |
| GMM | Go 模块代理管理 | ✅ |
| Config | YAML 配置编辑 | ✅ |
托盘菜单: Show/Hide, Start All/Stop All, Dashboard, Quit. 点击关闭按钮隐藏到托盘而非退出。









