FontSync 是一个跨平台字体同步工具,支持 HTTP/WebSocket 同步与 GUI 模式。程序默认启动 GUI,并可最小化到系统托盘运行。
- 扫描与同步本地字体目录
- HTTP 服务端/客户端同步
- WebSocket 实时通知
- GUI 界面,支持最小化到托盘
cargo build --releasecargo run默认无参数时会打开 GUI(可最小化到托盘)。
cargo run -- --no-gui serve --host 127.0.0.1 --port 8080 --font-dir ./fonts# 启动服务端
cargo run -- serve --host 127.0.0.1 --port 8080 --font-dir ./fonts
# 监控模式
cargo run -- monitor --server-url ws://localhost:8080
# 一次性同步
cargo run -- sync --server-url http://localhost:8080 --local-dir ./local_fontscargo test- 自动化测试:Windows / Linux
- 自动打包发布:推送
v*标签时生成 release,并上传二进制- Linux 发布为
x86_64-unknown-linux-musl静态二进制,并附带fontsync.service模板
- Linux 发布为
- Linux 托盘图标使用系统主题图标
preferences-desktop-font。 - Windows 托盘图标使用系统默认应用图标(
IDI_APPLICATION)。 - 如需自定义,可在
src/gui.rs中修改。
发布的 Linux 压缩包内包含 fontsync.service 模板,可用于启动服务端。
# 解压
tar -xzf fontsync-linux-x86_64-musl.tar.gz
# 安装二进制
sudo install -m 0755 fontsync /usr/local/bin/fontsync
# 创建运行用户与数据目录
sudo useradd --system --no-create-home --shell /usr/sbin/nologin fontsync
sudo mkdir -p /var/lib/fontsync/fonts
sudo chown -R fontsync:fontsync /var/lib/fontsync
# 安装并启用服务
sudo install -m 0644 fontsync.service /etc/systemd/system/fontsync.service
sudo systemctl daemon-reload
sudo systemctl enable --now fontsync.service
# 查看状态与日志
systemctl status fontsync.service
journalctl -u fontsync.service -f如需更改端口/目录,请编辑 fontsync.service 中的 ExecStart 参数。