作品方向:方向三 · DTK 创新原生应用
使用 Skill:dtk-development
源码仓库:https://github.com/tonglingcn/ipp-usb-assistant
开源协议:GPL-3.0
运行环境:deepin 25(amd64 / arm64 / riscv64 / loong64)
作品类型:独立桌面应用,拥有自身窗口,通过 .desktop 文件启动
一、作品简介 在 deepin 25 上接一台「免驱动」打印机 / 扫描仪(即支持 IPP-USB、AirScan 的现代一体机),很多用户会遇到一个尴尬局面:设备连上了,但要么找不到、要么添加后双面打反、要么扫描死活发现不了。
这类设备本质上不需要厂商 PPD 驱动——系统里的 ipp-usb、avahi-daemon、cups 加上 sane-airscan 已经能把它跑起来。真正缺的,是一个把这套零散命令行排查工具,变成可视化专业操作界面的工具。
IPP-USB 免驱助手 就是为此而生:它把「IPP-USB 免驱」从 driverless / lpadmin / scanimage 的命令行组合,变成开箱即用的图形化面板。
💡 痛点调研:deepin 论坛里「打印机 / 扫描仪不能用」相关求助常年居高不下,其中一大类是「设备本身支持免驱,但用户不知道怎么免驱添加」。
二、功能特性 ✅ 环境能力检测
实时检测 ipp-usb / avahi-daemon / cups 三大服务状态 检测已连接 USB 外设中是否含打印 / 成像类设备 侧边栏给出「就绪 / 部分就绪 / 不可用」结论,未就绪时附修复指引 ✅ 打印管理
driverless 发现免驱打印机(ipp:// URI),合并 CUPS 已配置队列 一键 lpadmin -p <队列> -v -m driverless -E 建立免驱队列(免厂商 PPD) 驱动微调(重点):针对免驱生成的 PPD 做关键修正 默认页面大小(*DefaultPageSize) 双面长边翻页实机修正 一键打印测试页 ✅ 扫描管理
基于 SANE + sane-airscan (eSCL) 发现 USB 扫描仪并扫描 可调分辨率(75/150/300/600 DPI)与色彩模式(彩色 / 灰度 / 黑白) 扫描结果内嵌预览,一键打开原图
✅ 高级设置(两个独立过滤维度)
ipp-usb 整机放行:按设备名把整台设备移出 ipp-usb 接管 扫描通道排除:仅摘掉 eSCL 扫描,保留免驱打印,立即生效 三、截图 发布时请在此处插入 3–5 张图(建议:① 首页环境检测 ② 打印管理-添加队列 ③ 驱动微调对话框 ④ 扫描管理 ⑤ 高级设置)。
扫描管理 若是能成功执行预览并扫描 推荐使用靓仔扫描
四、安装方式
方式一:Release deb 包(推荐)
在 https://github.com/tonglingcn/ipp-usb-assistant/releases 下载对应架构的 .deb,双击安装
https://github.com/tonglingcn/buildpackage-deepin/actions
已覆盖 amd64 / arm64 / riscv64 / loong64 四架构并通过 lintian。
方式二:源码构建
sudo apt install build-essential cmake qt6-base-dev qt6-tools-dev dtk6core-dev dtk6gui-dev dtk6widget-dev libcups2-dev libsane-dev pkg-config
cd examples/ipp-usb-assistant bash build.sh # 自动完成 cmake + 编译,生成 ./build/ipp-usb-assistant ./build/ipp-usb-assistant 五、使用说明 打开应用,首页自动检测免驱环境,绿色即「就绪」。 进入「打印」页 → 点「发现设备」→ 选 ipp:// 设备 → 「添加打印机」。 如需修正双面方向,进入「驱动微调」开关长边翻页,改完自动重启队列。 进入「扫描」页,等 mDNS 回环发现(约 15–20 秒),选设备、设参数、扫描。 六、开发过程说明(AI + deepin Skills) 本作品全程在 AI 编程助手CodeBuddy-hy3(free) +Opencode -Ox(free)+deepin Skills协助下开发,
核心依据是官方 dtk-development Skill 提供的 DTK6 / Qt6 规范,避免了大量试错。
真大佬
666
好工具!
绝世好文,信创必读!
点赞大佬,这是最实用的刚需应用。
Featured Collection
Popular Events
IPP-USB 免驱助手 (IPP-USB Driverless Assistant)
作品方向:方向三 · DTK 创新原生应用
使用 Skill:dtk-development
源码仓库:https://github.com/tonglingcn/ipp-usb-assistant
开源协议:GPL-3.0
运行环境:deepin 25(amd64 / arm64 / riscv64 / loong64)
作品类型:独立桌面应用,拥有自身窗口,通过 .desktop 文件启动
一、作品简介
在 deepin 25 上接一台「免驱动」打印机 / 扫描仪(即支持 IPP-USB、AirScan 的现代一体机),很多用户会遇到一个尴尬局面:设备连上了,但要么找不到、要么添加后双面打反、要么扫描死活发现不了。
这类设备本质上不需要厂商 PPD 驱动——系统里的 ipp-usb、avahi-daemon、cups 加上 sane-airscan 已经能把它跑起来。真正缺的,是一个把这套零散命令行排查工具,变成可视化专业操作界面的工具。
IPP-USB 免驱助手 就是为此而生:它把「IPP-USB 免驱」从 driverless / lpadmin / scanimage 的命令行组合,变成开箱即用的图形化面板。
💡 痛点调研:deepin 论坛里「打印机 / 扫描仪不能用」相关求助常年居高不下,其中一大类是「设备本身支持免驱,但用户不知道怎么免驱添加」。
二、功能特性
✅ 环境能力检测
实时检测 ipp-usb / avahi-daemon / cups 三大服务状态
检测已连接 USB 外设中是否含打印 / 成像类设备
侧边栏给出「就绪 / 部分就绪 / 不可用」结论,未就绪时附修复指引
✅ 打印管理
driverless 发现免驱打印机(ipp:// URI),合并 CUPS 已配置队列
一键 lpadmin -p <队列> -v -m driverless -E 建立免驱队列(免厂商 PPD)
驱动微调(重点):针对免驱生成的 PPD 做关键修正
默认页面大小(*DefaultPageSize)
双面长边翻页实机修正
一键打印测试页
✅ 扫描管理
基于 SANE + sane-airscan (eSCL) 发现 USB 扫描仪并扫描
可调分辨率(75/150/300/600 DPI)与色彩模式(彩色 / 灰度 / 黑白)
扫描结果内嵌预览,一键打开原图
✅ 高级设置(两个独立过滤维度)
ipp-usb 整机放行:按设备名把整台设备移出 ipp-usb 接管
扫描通道排除:仅摘掉 eSCL 扫描,保留免驱打印,立即生效
三、截图
发布时请在此处插入 3–5 张图(建议:① 首页环境检测 ② 打印管理-添加队列 ③ 驱动微调对话框 ④ 扫描管理 ⑤ 高级设置)。
支持在线安装(同时提供离线下载网盘地址)
扫描管理 若是能成功执行预览并扫描 推荐使用靓仔扫描
提前预告:靓仔扫描下个月会迭代新版本(增加进纸方向判断)
四、安装方式
方式一:Release deb 包(推荐)
在 https://github.com/tonglingcn/ipp-usb-assistant/releases 下载对应架构的 .deb,双击安装
https://github.com/tonglingcn/buildpackage-deepin/actions
已覆盖 amd64 / arm64 / riscv64 / loong64 四架构并通过 lintian。
方式二:源码构建
依赖(deepin 25)
sudo apt install build-essential cmake
qt6-base-dev qt6-tools-dev dtk6core-dev dtk6gui-dev dtk6widget-dev
libcups2-dev libsane-dev pkg-config
cd examples/ipp-usb-assistant
bash build.sh # 自动完成 cmake + 编译,生成 ./build/ipp-usb-assistant
./build/ipp-usb-assistant
五、使用说明
打开应用,首页自动检测免驱环境,绿色即「就绪」。
进入「打印」页 → 点「发现设备」→ 选 ipp:// 设备 → 「添加打印机」。
如需修正双面方向,进入「驱动微调」开关长边翻页,改完自动重启队列。
进入「扫描」页,等 mDNS 回环发现(约 15–20 秒),选设备、设参数、扫描。
六、开发过程说明(AI + deepin Skills)
本作品全程在 AI 编程助手CodeBuddy-hy3(free) +Opencode -Ox(free)+deepin Skills协助下开发,
核心依据是官方 dtk-development Skill 提供的 DTK6 / Qt6 规范,避免了大量试错。