155 lines
3.9 KiB
Markdown
155 lines
3.9 KiB
Markdown
|
|
# Phase 1.1 - Tauri 项目初始化报告
|
|||
|
|
|
|||
|
|
## 执行时间
|
|||
|
|
2026-02-12
|
|||
|
|
|
|||
|
|
## 已完成任务
|
|||
|
|
|
|||
|
|
### ✅ 1. 环境准备
|
|||
|
|
- [x] 安装 Rust 工具链 (1.93.0)
|
|||
|
|
- [x] 安装 Cargo (1.93.0)
|
|||
|
|
- [x] 安装 Tauri CLI (2.10.0)
|
|||
|
|
|
|||
|
|
### ✅ 2. 项目初始化
|
|||
|
|
- [x] 创建 Tauri 项目结构
|
|||
|
|
- [x] 配置应用标识符: `com.cutthenthink.app`
|
|||
|
|
- [x] 配置应用名称: `CutThenThink Lite`
|
|||
|
|
- [x] 设置窗口标题: `CutThenThink Lite`
|
|||
|
|
- [x] 配置权限白名单(使用最小权限策略)
|
|||
|
|
|
|||
|
|
### ✅ 3. 配置文件更新
|
|||
|
|
- [x] 更新 `tauri.conf.json`:
|
|||
|
|
- 设置正确的应用标识符
|
|||
|
|
- 配置窗口大小 (800x600)
|
|||
|
|
- 启用窗口调整大小
|
|||
|
|
- 配置构建路径
|
|||
|
|
|
|||
|
|
- [x] 更新 `Cargo.toml`:
|
|||
|
|
- 项目名称: `cut-think-lite`
|
|||
|
|
- 添加项目描述
|
|||
|
|
- 配置元数据
|
|||
|
|
|
|||
|
|
### ✅ 4. 权限配置
|
|||
|
|
- [x] 使用最小权限策略
|
|||
|
|
- [x] 配置 `core:default` 权限(基础权限)
|
|||
|
|
- [x] 权限文件: `src-tauri/capabilities/default.json`
|
|||
|
|
|
|||
|
|
### ✅ 5. 测试文件
|
|||
|
|
- [x] 创建基础 HTML 测试页面 (`dist/index.html`)
|
|||
|
|
- [x] 添加渐变背景样式
|
|||
|
|
- [x] 包含 IPC 通信测试代码
|
|||
|
|
|
|||
|
|
## 待完成任务
|
|||
|
|
|
|||
|
|
### ⏳ 6. 系统依赖安装
|
|||
|
|
需要安装以下系统包(需要 sudo 权限):
|
|||
|
|
```bash
|
|||
|
|
sudo ./install-deps.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或手动安装:
|
|||
|
|
```bash
|
|||
|
|
sudo apt-get update
|
|||
|
|
sudo apt-get install -y pkg-config libgtk-3-dev libwebkit2gtk-4.1-dev librsvg2-dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### ⏳ 7. 编译测试
|
|||
|
|
安装系统依赖后,运行:
|
|||
|
|
```bash
|
|||
|
|
cargo build --manifest-path src-tauri/Cargo.toml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### ⏳ 8. 运行测试
|
|||
|
|
```bash
|
|||
|
|
cargo tauri dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
cutThink_lite/
|
|||
|
|
├── dist/ # 前端构建产物目录
|
|||
|
|
│ └── index.html # 测试页面
|
|||
|
|
├── src-tauri/ # Tauri 后端代码
|
|||
|
|
│ ├── capabilities/ # 权限配置
|
|||
|
|
│ │ └── default.json
|
|||
|
|
│ ├── icons/ # 应用图标
|
|||
|
|
│ ├── src/ # Rust 源代码
|
|||
|
|
│ │ ├── lib.rs # 主入口
|
|||
|
|
│ │ └── main.rs # 启动文件
|
|||
|
|
│ ├── Cargo.toml # Rust 依赖配置
|
|||
|
|
│ ├── tauri.conf.json # Tauri 配置
|
|||
|
|
│ └── build.rs # 构建脚本
|
|||
|
|
├── docs/ # 文档目录
|
|||
|
|
├── install-deps.sh # 依赖安装脚本
|
|||
|
|
├── lightweight-redesign.md
|
|||
|
|
└── preview-ui.html
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置详情
|
|||
|
|
|
|||
|
|
### tauri.conf.json
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"productName": "CutThenThink",
|
|||
|
|
"version": "0.1.0",
|
|||
|
|
"identifier": "com.cutthenthink.app",
|
|||
|
|
"app": {
|
|||
|
|
"windows": [{
|
|||
|
|
"title": "CutThenThink Lite",
|
|||
|
|
"width": 800,
|
|||
|
|
"height": 600,
|
|||
|
|
"resizable": true,
|
|||
|
|
"fullscreen": false
|
|||
|
|
}]
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Cargo.toml
|
|||
|
|
```toml
|
|||
|
|
[package]
|
|||
|
|
name = "cut-think-lite"
|
|||
|
|
version = "0.1.0"
|
|||
|
|
description = "CutThenThink Lite - AI-powered Clipboard Manager"
|
|||
|
|
|
|||
|
|
[dependencies]
|
|||
|
|
serde_json = "1.0"
|
|||
|
|
serde = { version = "1.0", features = ["derive"] }
|
|||
|
|
log = "0.4"
|
|||
|
|
tauri = { version = "2.10.0" }
|
|||
|
|
tauri-plugin-log = "2"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 验证标准检查清单
|
|||
|
|
|
|||
|
|
- [x] 项目结构完整
|
|||
|
|
- [x] 配置文件正确设置
|
|||
|
|
- [x] 应用标识符为 `com.cutthenthink.app`
|
|||
|
|
- [x] 权限配置使用最小权限策略
|
|||
|
|
- [ ] cargo build 成功编译(待系统依赖安装)
|
|||
|
|
- [ ] 应用可启动并显示窗口(待系统依赖安装)
|
|||
|
|
- [ ] IPC 通信测试通过(待实际运行)
|
|||
|
|
|
|||
|
|
## 下一步行动
|
|||
|
|
|
|||
|
|
1. **安装系统依赖**(需要 sudo 权限)
|
|||
|
|
2. **编译项目**
|
|||
|
|
3. **运行开发服务器测试**
|
|||
|
|
4. **进入 Phase 1.2 - 核心剪贴板功能开发**
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
- Tauri 2.x 需要 GTK3 和 WebKit2GTK 开发库
|
|||
|
|
- 在 Linux 系统上需要 pkg-config 来查找系统库
|
|||
|
|
- 当前环境已安装 Rust 和 Tauri CLI,但缺少系统开发库
|
|||
|
|
- 所有配置文件已正确设置,等待系统依赖安装即可开始开发
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **前端**: HTML + CSS + JavaScript(后续可能使用框架)
|
|||
|
|
- **后端**: Rust (Tauri 2.10.0)
|
|||
|
|
- **构建工具**: Cargo
|
|||
|
|
- **窗口系统**: GTK3
|
|||
|
|
- **WebView**: WebKit2GTK
|