🔄 卡若AI 同步 2026-02-23 18:42 | 更新:总索引与入口、卡木、运营中枢参考资料、运营中枢工作台、运营中枢 | 排除 >20MB: 9 个
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -86,6 +86,7 @@ _大文件外置/财务管理_data/chat.snapshot_收集.db
|
||||
# === 自动排除结束 ===
|
||||
|
||||
# === 自动排除:超过20MB的文件(脚本自动管理,勿手动修改)===
|
||||
.venv/lib/python3.14/site-packages/playwright/driver/node
|
||||
01_卡资(金)/金仓_存储备份/大文件外置/消息中枢_dist/windows控制包.zip
|
||||
01_卡资(金)/金仓_存储备份/大文件外置/视频切片_models/ggml-small.bin
|
||||
01_卡资(金)/金仓_存储备份/大文件外置/财务管理_data/chat.snapshot_data.db
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
---
|
||||
name: PPT制作
|
||||
description: 用 python-pptx 创建、编辑、分析演示文稿。含美观设计规范、v0式生成流程、GitHub 项目参考。触发词:做PPT、制作PPT、生成演示文稿、编辑PPT、修改PPT、汇报PPT、绘本PPT。
|
||||
description: 用 python-pptx 或 v0/React 毛玻璃风格生成大气美观 PPT。支持:规格→v0/React 出稿→截图→导出 PPT;苹果毛玻璃风格、组件完善。触发词:做PPT、制作PPT、复盘PPT、毛玻璃PPT。
|
||||
group: 木
|
||||
triggers: PPT、做PPT、制作PPT、演示文稿、汇报PPT、绘本PPT
|
||||
triggers: PPT、做PPT、制作PPT、演示文稿、汇报PPT、绘本PPT、复盘PPT、毛玻璃PPT
|
||||
owner: 木果
|
||||
version: "2.0"
|
||||
version: "3.0"
|
||||
updated: "2026-02-23"
|
||||
---
|
||||
|
||||
# PPT制作
|
||||
|
||||
> **归属**:木果(项目模板)
|
||||
> **能力来源**:python-pptx(3.1k★)、agentskills pptx(594★),融合 v0 式「规格→生成→套规范→验收」流程。
|
||||
> **能力来源**:python-pptx、agentskills pptx、**v0/React 苹果毛玻璃风格**(先出好看页面 → 截图 → 导出 PPT)。
|
||||
|
||||
---
|
||||
|
||||
## 能做什么(Capabilities)
|
||||
|
||||
- 创建新 PPT(标题页、内容页、绘本风、汇报风)
|
||||
- **方式一(推荐)**:v0/React 毛玻璃风格 → 生成 HTML 页面 → 截图 → 组装 PPT(大气美观、组件完善)
|
||||
- **方式二**:直接用 python-pptx 创建(标题页、内容页、绘本风、汇报风)
|
||||
- 添加图片(带边框、带说明)、表格、图表
|
||||
- 编辑已有 PPT(修改文字、布局、备注)
|
||||
- 按美观规范套用:配色、留白、图片边框
|
||||
- 按美观规范:苹果毛玻璃、配色、留白
|
||||
- 输出到:`/Users/karuo/Documents/卡若Ai的文件夹/报告/` 或用户指定目录
|
||||
|
||||
---
|
||||
@@ -33,19 +33,34 @@ updated: "2026-02-23"
|
||||
|
||||
---
|
||||
|
||||
## 执行流程(v0 式:规格 → 生成 → 套规范 → 验收)
|
||||
## 执行流程
|
||||
|
||||
借鉴卡若AI「全栈开发」与「Vercel与v0部署流水线」的生成逻辑:
|
||||
### 流程 A:v0/React 毛玻璃 → 截图 → 导出 PPT(大气美观,推荐)
|
||||
|
||||
| 步骤 | 动作 | 说明 |
|
||||
|:---|:---|:---|
|
||||
| 1 | **规格澄清** | 主题、受众、页数、风格(商用白底 / 绘本黄底)、参考 PPT |
|
||||
| 2 | **设计大纲** | 标题页 + 目录/正文页结构;每页关键内容、图片分配 |
|
||||
| 3 | **执行生成** | 用 python-pptx 生成 .pptx(见下方核心代码) |
|
||||
| 4 | **套美观规范** | 按《PPT美观设计规范》检查:背景色、字体、图片边框、每图配说明、留白 |
|
||||
| 5 | **验收** | 用《验收检查清单》自检;风格与参考一致(如有) |
|
||||
| 1 | **规格澄清** | 主题、页数、内容(如复盘格式) |
|
||||
| 2 | **v0 或 React 出稿** | 用 v0.dev 或手写 HTML/React,按《苹果毛玻璃风格与自适应规范》生成页面;每页一个 section,1280×720 |
|
||||
| 3 | **截图** | playwright 截取每页为 PNG(`脚本/毛玻璃截图转PPT.py`) |
|
||||
| 4 | **组装 PPT** | 用 python-pptx 将 PNG 按序插入幻灯片 |
|
||||
| 5 | **验收** | 毛玻璃风格、组件完善、无错位 |
|
||||
|
||||
**必读**:`参考资料/PPT美观设计规范.md`(配色 token、字体、图片边框、验收清单)
|
||||
**相关文件**:
|
||||
- `脚本/复盘PPT_毛玻璃.html`:复盘格式毛玻璃示例
|
||||
- `脚本/毛玻璃截图转PPT.py`:截图 + 组装
|
||||
- 毛玻璃规范:`开发文档/4、前端/苹果毛玻璃风格与自适应规范.md`
|
||||
|
||||
### 流程 B:直接 python-pptx 生成
|
||||
|
||||
| 步骤 | 动作 | 说明 |
|
||||
|:---|:---|:---|
|
||||
| 1 | **规格澄清** | 主题、受众、页数、风格(商用/绘本) |
|
||||
| 2 | **设计大纲** | 标题页 + 正文页结构 |
|
||||
| 3 | **执行生成** | 用 python-pptx 生成 .pptx |
|
||||
| 4 | **套美观规范** | 按《PPT美观设计规范》检查 |
|
||||
| 5 | **验收** | 用《验收检查清单》自检 |
|
||||
|
||||
**必读**:`参考资料/PPT美观设计规范.md`
|
||||
|
||||
---
|
||||
|
||||
@@ -118,8 +133,11 @@ background.fill.fore_color.rgb = RGBColor(255, 250, 230)
|
||||
|
||||
| 文件 | 说明 |
|
||||
|:---|:---|
|
||||
| `参考资料/PPT美观设计规范.md` | 配色、字体、图片、留白、验收清单(必读) |
|
||||
| `脚本/天恩乖乖绘本.py` | 绘本风 PPT 示例(黄底、边框、图片说明) |
|
||||
| `参考资料/PPT美观设计规范.md` | 配色、字体、图片、留白、验收清单 |
|
||||
| `脚本/复盘PPT_毛玻璃.html` | 复盘格式毛玻璃 HTML 模板(苹果风格) |
|
||||
| `脚本/毛玻璃截图转PPT.py` | playwright 截图 + python-pptx 组装 |
|
||||
| `脚本/天恩乖乖绘本.py` | 绘本风 PPT 示例(黄底、边框) |
|
||||
| 毛玻璃规范 | 开发文档 `4、前端/苹果毛玻璃风格与自适应规范.md` |
|
||||
| 输出目录 | `/Users/karuo/Documents/卡若Ai的文件夹/报告/` |
|
||||
|
||||
---
|
||||
@@ -138,4 +156,5 @@ background.fill.fore_color.rgb = RGBColor(255, 250, 230)
|
||||
## 依赖
|
||||
|
||||
- Python 3.9+
|
||||
- `python-pptx`:`pip install python-pptx`(建议在 venv 中安装)
|
||||
- `python-pptx`:`pip install python-pptx`
|
||||
- **毛玻璃截图流程**:`playwright`(`pip install playwright && playwright install chromium`)
|
||||
|
||||
85
03_卡木(木)/木果_项目模板/PPT制作/脚本/复盘PPT_毛玻璃.html
Normal file
85
03_卡木(木)/木果_项目模板/PPT制作/脚本/复盘PPT_毛玻璃.html
Normal file
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=1280, height=720">
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<script>
|
||||
tailwind.config = {
|
||||
theme: { extend: {
|
||||
backdropBlur: { glass: '12px', 'glass-lg': '24px' }
|
||||
}}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.glass-card {
|
||||
background: rgba(255,255,255,0.7);
|
||||
backdrop-filter: blur(24px);
|
||||
-webkit-backdrop-filter: blur(24px);
|
||||
border: 1px solid rgba(255,255,255,0.3);
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 2px 12px rgba(0,0,0,0.06);
|
||||
}
|
||||
.slide { width: 1280px; height: 720px; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="bg-[#F2F2F7] font-sans antialiased">
|
||||
<!-- 1. 封面 -->
|
||||
<div class="slide flex items-center justify-center p-12" id="slide-1">
|
||||
<div class="glass-card px-16 py-12 text-center">
|
||||
<h1 class="text-5xl font-bold text-[#1A1A2E] mb-4">卡若复盘</h1>
|
||||
<p class="text-2xl text-[#4A5568]">2026-02-23</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 2. 目标 -->
|
||||
<div class="slide flex flex-col p-12" id="slide-2">
|
||||
<h2 class="text-3xl font-bold text-[#2E86AB] mb-6">🎯 目标·结果·达成率</h2>
|
||||
<div class="glass-card p-8 flex-1">
|
||||
<ul class="space-y-4 text-xl text-[#333]">
|
||||
<li>1. PPT制作 Skill 创建与美观规范更新:目标完成,达成率 100%</li>
|
||||
<li>2. 天恩和乖乖绘本 PPT:生成并优化(黄底、边框、图片说明),达成率 100%</li>
|
||||
<li>3. 7 张图片生成「我的狗狗乖乖」PPT + 第一页修改,达成率 100%</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 3. 过程 -->
|
||||
<div class="slide flex flex-col p-12" id="slide-3">
|
||||
<h2 class="text-3xl font-bold text-[#2E86AB] mb-6">📌 过程</h2>
|
||||
<div class="glass-card p-8 flex-1">
|
||||
<ol class="space-y-3 text-lg text-[#333] list-decimal list-inside">
|
||||
<li>创建 PPT制作 Skill,归属木果;融合 agentskills pptx、python-pptx,注册 SKILL_REGISTRY。</li>
|
||||
<li>新增《PPT美观设计规范》,借鉴 v0 式流程;打包基因胶囊。</li>
|
||||
<li>编写天恩乖乖绘本脚本,生成黄底、图片边框、每图配说明的 PPT。</li>
|
||||
<li>7 张参考图生成「我的狗狗乖乖」PPT;修改第一页(二年四班思浩吉、单圆女孩)。</li>
|
||||
<li>按 v0/React 毛玻璃风格生成复盘 PPT。</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 4. 反思 -->
|
||||
<div class="slide flex flex-col p-12" id="slide-4">
|
||||
<h2 class="text-3xl font-bold text-[#2E86AB] mb-6">💡 反思</h2>
|
||||
<div class="glass-card p-8 flex-1">
|
||||
<ul class="space-y-4 text-lg text-[#333]">
|
||||
<li>1. 做得好的:PPT Skill 与美观规范可复用;v0 式流程迁移到 PPT 工作流有效。</li>
|
||||
<li>2. 可改进:第一页图片修改依赖 Pillow 裁剪,若有原素材可更精准。</li>
|
||||
<li>3. 绘本风 + 毛玻璃风已验证,可沉淀为模板。</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 5. 总结+下一步 -->
|
||||
<div class="slide flex flex-col p-12" id="slide-5">
|
||||
<h2 class="text-3xl font-bold text-[#2E86AB] mb-4">📝 总结</h2>
|
||||
<div class="glass-card p-6 mb-6">
|
||||
<p class="text-lg text-[#333]">PPT 制作能力已纳入卡若AI,绘本风与复盘风模板可复用;规格→生成→套规范→验收 流程闭环。</p>
|
||||
</div>
|
||||
<h2 class="text-2xl font-bold text-[#2E86AB] mb-4">▶ 下一步执行</h2>
|
||||
<div class="glass-card p-6 flex-1">
|
||||
<ul class="space-y-2 text-lg text-[#333]">
|
||||
<li>1. 后续绘本/汇报类 PPT 可直接调用 PPT制作 Skill。</li>
|
||||
<li>2. 复盘 PPT 模板可固化为脚本,支持 v0/React 毛玻璃 → 截图 → 导出 PPT。</li>
|
||||
<li>3. 未完成:无。</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
79
03_卡木(木)/木果_项目模板/PPT制作/脚本/毛玻璃截图转PPT.py
Normal file
79
03_卡木(木)/木果_项目模板/PPT制作/脚本/毛玻璃截图转PPT.py
Normal file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
毛玻璃风格 HTML → 截图 → 组装 PPT
|
||||
依赖:playwright(pip install playwright && playwright install chromium)
|
||||
"""
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# 尝试 playwright,若无则退回「仅组装」模式
|
||||
try:
|
||||
from playwright.sync_api import sync_playwright
|
||||
HAS_PLAYWRIGHT = True
|
||||
except ImportError:
|
||||
HAS_PLAYWRIGHT = False
|
||||
|
||||
from pptx import Presentation
|
||||
from pptx.util import Inches
|
||||
|
||||
BASE = Path(__file__).resolve().parent
|
||||
HTML = BASE / "复盘PPT_毛玻璃.html"
|
||||
OUT_SLIDES = BASE.parent.parent.parent.parent.parent / "卡若Ai的文件夹" / "报告" / "复盘_毛玻璃_slides"
|
||||
OUT_PPT = Path("/Users/karuo/Documents/卡若Ai的文件夹/报告/复盘_2026-02-23_毛玻璃.pptx")
|
||||
|
||||
|
||||
def screenshot_slides():
|
||||
"""用 playwright 截取每页"""
|
||||
if not HAS_PLAYWRIGHT:
|
||||
print("⚠️ playwright 未安装,跳过截图。运行: pip install playwright && playwright install chromium")
|
||||
return []
|
||||
OUT_SLIDES.mkdir(parents=True, exist_ok=True)
|
||||
imgs = []
|
||||
with sync_playwright() as p:
|
||||
browser = p.chromium.launch()
|
||||
page = browser.new_page(viewport={"width": 1280, "height": 720})
|
||||
page.goto(f"file://{HTML}")
|
||||
for i in range(1, 6):
|
||||
sel = f"#slide-{i}"
|
||||
el = page.locator(sel)
|
||||
if el.count() > 0:
|
||||
path = OUT_SLIDES / f"slide_{i:02d}.png"
|
||||
el.screenshot(path=path)
|
||||
imgs.append(str(path))
|
||||
browser.close()
|
||||
return imgs
|
||||
|
||||
|
||||
def build_ppt(imgs):
|
||||
"""将图片组装成 PPT"""
|
||||
prs = Presentation()
|
||||
prs.slide_width = Inches(13.333)
|
||||
prs.slide_height = Inches(7.5)
|
||||
layout = prs.slide_layouts[6]
|
||||
for p in imgs:
|
||||
if Path(p).exists():
|
||||
s = prs.slides.add_slide(layout)
|
||||
s.shapes.add_picture(p, Inches(0), Inches(0), width=prs.slide_width)
|
||||
OUT_PPT.parent.mkdir(parents=True, exist_ok=True)
|
||||
prs.save(OUT_PPT)
|
||||
return OUT_PPT
|
||||
|
||||
|
||||
def main():
|
||||
if HAS_PLAYWRIGHT:
|
||||
imgs = screenshot_slides()
|
||||
else:
|
||||
imgs = list(OUT_SLIDES.glob("slide_*.png"))
|
||||
imgs = sorted([str(p) for p in imgs])
|
||||
if not imgs:
|
||||
print("❌ 无截图可用。请先手动打开 HTML 截图,或安装 playwright。")
|
||||
print(" HTML 路径:", HTML)
|
||||
sys.exit(1)
|
||||
build_ppt(imgs)
|
||||
print("✅ PPT 已生成:", OUT_PPT)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
83
运营中枢/参考资料/iPad2当Mac触控副屏_操作指南.md
Normal file
83
运营中枢/参考资料/iPad2当Mac触控副屏_操作指南.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# iPad 2 当 Mac 触控副屏 — 操作指南
|
||||
|
||||
> 适用于:iPad 2(iOS 9.3.5)+ MacBook,通过 USB 连接。
|
||||
> 脚本路径:`运营中枢/脚本/iPad2_副屏安装.sh`
|
||||
|
||||
---
|
||||
|
||||
## 一、已完成的安装
|
||||
|
||||
| 项目 | 状态 |
|
||||
|------|------|
|
||||
| Duet Mac 端 | ✅ 已安装到 `/Applications/Duet.app` |
|
||||
| 安装脚本 | ✅ `运营中枢/脚本/iPad2_副屏安装.sh` |
|
||||
| ideviceinstaller | ✅ 已安装,可命令行安装 IPA 到 iPad |
|
||||
|
||||
---
|
||||
|
||||
## 二、连接要求(iPad 2 特需)
|
||||
|
||||
iPad 2 使用 **30 针接口**,MacBook 使用 **Type-C**,需:
|
||||
|
||||
- **30 针转 USB-A 数据线** + **USB-A 转 Type-C 转接器**;或
|
||||
- **30 针转 USB-C 数据线**(若可用)
|
||||
|
||||
必须是**可传数据**的线,不能是仅充电线。
|
||||
|
||||
---
|
||||
|
||||
## 三、命令行安装流程
|
||||
|
||||
### 1. 连接 iPad 并信任电脑
|
||||
|
||||
1. 用数据线把 iPad 2 连到 Mac
|
||||
2. 解锁 iPad
|
||||
3. 若出现「要信任此电脑吗?」→ 点 **信任**
|
||||
|
||||
### 2. 运行安装脚本
|
||||
|
||||
```bash
|
||||
cd /Users/karuo/Documents/个人/卡若AI
|
||||
bash 运营中枢/脚本/iPad2_副屏安装.sh
|
||||
```
|
||||
|
||||
脚本会:检测 iPad → 确认 Duet Mac 已安装 → 尝试安装 IPA(若有)→ 启动 Duet。
|
||||
|
||||
### 3. 在 iPad 2 上安装 Duet Display
|
||||
|
||||
当前 Duet 在 App Store 要求 **iPadOS 12+**,iPad 2 无法直接安装最新版。
|
||||
|
||||
**可行方式:**
|
||||
|
||||
| 方式 | 说明 |
|
||||
|------|------|
|
||||
| **已购项目** | 若曾购买 Duet,在 iPad 2 上打开 App Store → 已购项目 → 搜索 Duet Display → 安装最后兼容版本 |
|
||||
| **ipatool 下载旧版** | 运行 `bash 运营中枢/脚本/iPad2_下载Duet旧版IPA.sh`,按提示用 ipatool 下载兼容 iOS 9 的旧版,再用 `ideviceinstaller -i xxx.ipa` 安装 |
|
||||
|
||||
### 4. 授予 Duet 权限
|
||||
|
||||
- **系统设置** → **隐私与安全性** → **辅助功能** → 勾选 **Duet**
|
||||
- 若提示 **屏幕录制**,同样勾选 Duet
|
||||
|
||||
---
|
||||
|
||||
## 四、使用步骤
|
||||
|
||||
1. 打开 Duet Mac 端(菜单栏出现 Duet 图标)
|
||||
2. 在 iPad 2 上打开 Duet Display
|
||||
3. 使用 USB 连接,Duet 会自动识别 iPad 为副屏
|
||||
4. 在 **系统设置 → 显示器** 中调整排列和扩展方式
|
||||
|
||||
---
|
||||
|
||||
## 五、常见问题
|
||||
|
||||
| 情况 | 处理 |
|
||||
|------|------|
|
||||
| 未检测到 iPad | 检查线缆可传数据、是否点过「信任」、重新插拔 |
|
||||
| iPad 2 无法安装 Duet | 需用已购项目或 ipatool 下载旧版 IPA 后命令行安装 |
|
||||
| Duet 无反应 | 确认 Mac 端已授予「辅助功能」「屏幕录制」权限 |
|
||||
|
||||
---
|
||||
|
||||
*文档生成:卡若AI · 运营中枢 | 配合 `iPad2_副屏安装.sh` 使用*
|
||||
@@ -107,3 +107,4 @@
|
||||
| 2026-02-23 14:51:49 | 🔄 卡若AI 同步 2026-02-23 14:51 | 更新:卡木、总索引与入口、运营中枢工作台 | 排除 >20MB: 8 个 |
|
||||
| 2026-02-23 14:56:38 | 🔄 卡若AI 同步 2026-02-23 14:56 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 |
|
||||
| 2026-02-23 15:05:27 | 🔄 卡若AI 同步 2026-02-23 15:05 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 |
|
||||
| 2026-02-23 15:14:09 | 🔄 卡若AI 同步 2026-02-23 15:14 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 |
|
||||
|
||||
@@ -110,3 +110,4 @@
|
||||
| 2026-02-23 14:51:49 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 14:51 | 更新:卡木、总索引与入口、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-02-23 14:56:38 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 14:56 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-02-23 15:05:27 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 15:05 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
| 2026-02-23 15:14:09 | 成功 | 成功 | 🔄 卡若AI 同步 2026-02-23 15:14 | 更新:卡木、运营中枢工作台 | 排除 >20MB: 8 个 | [仓库](http://open.quwanzhi.com:3000/fnvtk/karuo-ai) [百科](http://open.quwanzhi.com:3000/fnvtk/karuo-ai/wiki) |
|
||||
|
||||
32
运营中枢/脚本/iPad2_下载Duet旧版IPA.sh
Executable file
32
运营中枢/脚本/iPad2_下载Duet旧版IPA.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
# 通过 ipatool 下载兼容 iPad 2(iOS 9)的 Duet Display 旧版 IPA
|
||||
# 使用前需先执行:ipatool auth login
|
||||
|
||||
set -e
|
||||
OUTPUT_DIR="/Users/karuo/Documents/卡若Ai的文件夹"
|
||||
IPA_DIR="$OUTPUT_DIR/ipa_cache"
|
||||
mkdir -p "$IPA_DIR"
|
||||
|
||||
echo "=========================================="
|
||||
echo " 下载 Duet Display 旧版 IPA(兼容 iPad 2 / iOS 9)"
|
||||
echo "=========================================="
|
||||
|
||||
# 检查 ipatool 是否已登录
|
||||
if ! ipatool auth info 2>/dev/null; then
|
||||
echo "请先登录 Apple ID:"
|
||||
echo " ipatool auth login"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 列出 Duet 可用版本,找到兼容 iOS 9 的
|
||||
echo ""
|
||||
echo "正在获取 Duet Display 版本列表..."
|
||||
ipatool list-versions -b com.kairos.duet 2>&1 | head -30
|
||||
|
||||
echo ""
|
||||
echo "请从上述列表中选择 external-version-id(兼容 iOS 9 的版本约 2.x)"
|
||||
echo "然后执行:"
|
||||
echo " ipatool download -b com.kairos.duet --external-version-id <版本ID>"
|
||||
echo " ideviceinstaller -i ~/Downloads/*.ipa"
|
||||
echo ""
|
||||
echo "IPA 将下载到当前目录或 ~/Downloads"
|
||||
107
运营中枢/脚本/iPad2_副屏安装.sh
Executable file
107
运营中枢/脚本/iPad2_副屏安装.sh
Executable file
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
# iPad 2 作为 Mac 触控副屏 - 一键安装脚本
|
||||
# 用途:检测 iPad 连接、安装 Duet 相关组件、配置副屏
|
||||
|
||||
set -e
|
||||
DUET_MAC_URL="https://updates.duetdisplay.com/AppleSilicon"
|
||||
OUTPUT_DIR="/Users/karuo/Documents/卡若Ai的文件夹"
|
||||
IPA_DIR="$OUTPUT_DIR/ipa_cache"
|
||||
mkdir -p "$IPA_DIR"
|
||||
|
||||
echo "=========================================="
|
||||
echo " iPad 2 → Mac 触控副屏 安装脚本"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 1. 检测 iPad 连接
|
||||
echo "[1/4] 检测 iPad 连接..."
|
||||
echo " 请确保:① iPad 已用 USB 连接 Mac ② iPad 已解锁 ③ 在 iPad 上点「信任此电脑」"
|
||||
echo ""
|
||||
|
||||
IPAD_CONNECTED=0
|
||||
for i in {1..15}; do
|
||||
if idevice_id -l 2>/dev/null | grep -q .; then
|
||||
echo " ✅ 已检测到 iOS 设备"
|
||||
ideviceinfo 2>/dev/null | grep -E "ProductName|ProductType|ProductVersion" || true
|
||||
IPAD_CONNECTED=1
|
||||
break
|
||||
fi
|
||||
printf " 等待设备... (%d/15)\r" $i
|
||||
sleep 2
|
||||
done
|
||||
echo ""
|
||||
|
||||
if [ $IPAD_CONNECTED -eq 0 ]; then
|
||||
echo " ⚠ 未检测到 iPad,将继续安装 Mac 端;iPad 连接后可重新运行本脚本安装 iOS 端"
|
||||
fi
|
||||
|
||||
# 2. 下载 Duet Mac 端
|
||||
echo ""
|
||||
echo "[2/4] 下载 Duet Mac 端..."
|
||||
|
||||
if [ ! -d "/Applications/Duet.app" ]; then
|
||||
echo " 正在下载 Duet..."
|
||||
if [ -f /tmp/DuetMac.dmg ]; then
|
||||
echo " 使用已下载的 Duet..."
|
||||
elif curl -sL -o /tmp/DuetMac.dmg "$DUET_MAC_URL" 2>/dev/null; then
|
||||
:
|
||||
fi
|
||||
if [ -f /tmp/DuetMac.dmg ]; then
|
||||
hdiutil attach /tmp/DuetMac.dmg -nobrowse -quiet
|
||||
cp -R /Volumes/Duet*/duet.app /Applications/Duet.app 2>/dev/null || cp -R /Volumes/Duet*/*.app /Applications/ 2>/dev/null
|
||||
hdiutil detach /Volumes/Duet* 2>/dev/null || true
|
||||
echo " ✅ Duet Mac 端已安装到 /Applications"
|
||||
else
|
||||
echo " ⚠ 自动下载失败,请手动下载:"
|
||||
echo " https://www.duetdisplay.com/zh/onboarding/download-apps"
|
||||
open "https://www.duetdisplay.com/zh/onboarding/download-apps" 2>/dev/null || true
|
||||
fi
|
||||
else
|
||||
echo " ✅ Duet 已存在于 /Applications"
|
||||
fi
|
||||
|
||||
# 3. 尝试安装 IPA 到 iPad(需提供 IPA 路径)
|
||||
echo ""
|
||||
echo "[3/4] 安装副屏 App 到 iPad..."
|
||||
|
||||
IPA_PATH=""
|
||||
for f in "$IPA_DIR"/Duet*.ipa "$IPA_DIR"/*duet*.ipa ~/Downloads/Duet*.ipa; do
|
||||
[ -f "$f" ] && IPA_PATH="$f" && break
|
||||
done
|
||||
|
||||
if [ $IPAD_CONNECTED -eq 0 ]; then
|
||||
echo " 跳过(iPad 未连接)"
|
||||
elif [ -n "$IPA_PATH" ]; then
|
||||
echo " 找到 IPA: $IPA_PATH"
|
||||
if ideviceinstaller -i "$IPA_PATH" 2>/dev/null; then
|
||||
echo " ✅ App 已安装到 iPad"
|
||||
else
|
||||
echo " ⚠ 安装失败(可能需 Apple ID 或签名)"
|
||||
fi
|
||||
else
|
||||
echo " ⚠ 未找到 Duet IPA 文件"
|
||||
echo " iPad 2 需兼容 iOS 9 的旧版 Duet。请:"
|
||||
echo " 1. 在 iPad 2 上打开 App Store → 搜索「Duet Display」"
|
||||
echo " 2. 若曾购买过,可在「已购项目」中安装最后兼容版本"
|
||||
echo " 3. 或使用 ipatool 下载旧版:"
|
||||
echo " ipatool auth login"
|
||||
echo " ipatool download -b com.kairos.duet --external-version-id <旧版ID>"
|
||||
fi
|
||||
|
||||
# 4. 启动 Duet 并提示
|
||||
echo ""
|
||||
echo "[4/4] 启动 Duet Mac 端..."
|
||||
if [ -d "/Applications/Duet.app" ]; then
|
||||
open -a Duet 2>/dev/null || open "/Applications/Duet.app" 2>/dev/null
|
||||
echo " ✅ Duet 已启动"
|
||||
else
|
||||
echo " 请先安装 Duet 后再运行"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 完成。下一步:"
|
||||
echo " 1. 在 Mac 上允许 Duet 的「辅助功能」「屏幕录制」权限"
|
||||
echo " 2. 在 iPad 2 上打开 Duet Display 应用"
|
||||
echo " 3. 用 USB 连接后,Duet 会自动识别并作为副屏"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user