Skip to content

Repository files navigation

Codex 屏显 for Linx68

一个常驻 macOS 菜单栏的小工具:可以将本机 Codex 用量卡片或自定义图片推送到 Linx68 键盘的图像 API。

Codex 屏显设置界面

功能

  • 显示 Codex 本周剩余用量、可用重置次数和自动重置时间。
  • 可切换到“自定义图片”模式,一次选择多张图片后按顺序或随机方式定时轮播,同时暂停 Codex 用量读取。
  • 图片自动输出为 142 × 428,可选择铺满画面的“填充裁剪”或保留完整内容的“完整显示”。
  • 切回“Codex 用量”模式时会立即读取并推送一次,随后恢复定时更新。
  • 输出固定为 142 × 428 的 JPEG;Codex 卡片顶部默认保留 56px 给键盘天气、Wi-Fi 与电量状态栏,自定义图片默认全屏显示。
  • 自定义图像 API 地址、推送间隔、JPEG 质量和两种模式各自的顶部布局;秒数和像素值既可直接输入,也可用上下箭头微调。
  • 支持立即测试、后台定时推送和登录时自动启动。
  • 菜单栏与设置页均可点击“检查更新”,发现新版本后可直接下载并安装。
  • 原生 SwiftUI 菜单栏 App,不需要额外服务器。

Linx68 键盘屏幕卡片

v0.3 系列更新

  • 支持一次添加多张自定义图片,并按设定秒数顺序或随机轮播;随机模式不会连续显示同一张图片。
  • 增加“填充裁剪”和“完整显示”两种图片适配方式,上传任意常见分辨率的图片后自动输出为 142 × 428
  • Codex 卡片与自定义图片使用独立的顶部布局设置:Codex 默认预留 56px 状态栏安全区,自定义图片默认 0px 全屏显示。
  • 多图切换间隔、Codex 顶部安全区和图片顶部留白均可直接输入数值,同时保留上下箭头用于微调;超出有效范围的输入会自动修正。
  • 优化更新后的启动体验:新版本首次启动以及再次打开后台应用时,都会主动显示设置窗口。

系统要求

  • macOS 14 或更高版本,支持 Apple 芯片和 Intel Mac。
  • 已登录的 Codex App 或 Codex CLI。
  • Mac 与键盘位于同一局域网,键盘固件已开启图像 API。

安装

  1. Releases 下载最新的 CodexLinxDisplay-*.dmg
  2. 打开 DMG,将 CodexLinxDisplay.app 拖入“应用程序”。
  3. 启动 App;首次推送时允许 macOS 的“本地网络”权限。

当前预览版尚未经 Apple 公证。如果 macOS 阻止首次启动,请在尝试打开 App 后前往“系统设置 → 隐私与安全性”,点击“仍要打开”。详见 Apple 官方说明

App 不显示在 Dock 中,启动后请在菜单栏找到竖屏图标。 安装新版本后的首次启动会自动显示设置窗口;如果 App 已在后台运行,再次从“应用程序”中打开也会显示设置窗口。

使用

  1. 打开“设置”,填写键盘图像接口。Linx68 的默认示例为:

    http://192.168.31.71/image/upload
    
  2. 在“显示内容”中选择模式:

    • Codex 用量:立即读取并推送一次,之后按设定间隔自动更新。顶部安全区可在 44–80px 之间直接输入,默认值为 56px
    • 自定义图片:点击“选择图片…”可一次选择多张,切换间隔可在 1–3600 秒之间直接输入,并可选择顺序或随机轮播。图片默认全屏推送,也可在 0–80px 之间单独设置顶部留白;此时 Codex 自动刷新暂停。

    图片不需要预先调整为设备分辨率。照片建议使用“填充裁剪”,截图、海报和带文字图片建议使用“完整显示”;分辨率过小的原图可以显示,但放大后可能变模糊。

  3. 点击“立即推送当前内容”可手动重新发送。设备应收到一张 Content-Type: image/jpeg 的 POST 请求。

  4. 需要常驻时可打开“登录时自动启动”。

接口地址会因设备网络而变化,请以键盘当前显示或固件页面为准。

软件更新

App 使用 Sparkle 检查 GitHub Releases。点击菜单栏或设置页中的“检查更新”;有新版本时,Sparkle 会展示更新说明并完成下载、验证和安装。

隐私

Codex 用量在本机读取并渲染。App 不上传 Codex 凭据;它只会把生成后的 JPEG 或用户选中的图片发送到配置的图像 API,并访问 GitHub Release 更新源。选中的图片会在 App 的 Application Support 目录各保存一份本地副本,用于重启后继续轮播。

本地构建

需要 Xcode 16+ 与 XcodeGen

brew install xcodegen
xcodegen generate
xcodebuild \
  -project CodexLinxDisplay.xcodeproj \
  -scheme CodexLinxDisplay \
  -configuration Debug \
  -derivedDataPath .build \
  test

生成本地 DMG、更新 ZIP 与 Sparkle 清单:

./scripts/build-release.sh
./scripts/generate-appcast.sh

维护者发布

推送形如 v0.2.0 的 tag 会触发 .github/workflows/release.yml,完成通用架构构建、Developer ID 签名、Apple 公证、Sparkle 签名与 GitHub Release 上传。正式发布前需在仓库配置以下 Actions Secrets:

同时将 Actions 变量 ENABLE_SIGNED_RELEASES 设为 true。未配置时,标签只用于手动发布预览版,不会运行正式签名工作流。

  • BUILD_CERTIFICATE_BASE64
  • P12_PASSWORD
  • KEYCHAIN_PASSWORD
  • DEVELOPER_ID_APPLICATION
  • APPLE_ID
  • APPLE_TEAM_ID
  • APPLE_APP_SPECIFIC_PASSWORD
  • SPARKLE_PRIVATE_KEY

Sparkle 私钥已按账户 com.olivia.CodexLinxDisplay 保存在创建者的 macOS 钥匙串中,可用依赖包内的 generate_keys --account com.olivia.CodexLinxDisplay -x <文件> 导出后写入 GitHub Secret。私钥文件不要提交到仓库。

发布前同步修改 project.yml 中的 CFBundleShortVersionStringCFBundleVersion,更新 CHANGELOG.md,然后创建对应 tag。

说明

这是面向 Linx68 图像 API 的非官方工具,与 OpenAI 或键盘厂商无隶属关系。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages