Add dev Make targets and tune macOS invisible subtitle spacing

This commit is contained in:
2026-02-11 23:47:24 -08:00
parent 79616abde9
commit b8d9873f14
4 changed files with 68 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
.PHONY: help deps build install build-linux build-macos build-macos-unsigned install-linux install-macos install-plugin uninstall uninstall-linux uninstall-macos print-dirs pretty ensure-pnpm generate-config generate-example-config docs-dev docs docs-preview
.PHONY: help deps build install build-linux build-macos build-macos-unsigned install-linux install-macos install-plugin uninstall uninstall-linux uninstall-macos print-dirs pretty ensure-pnpm generate-config generate-example-config docs-dev docs docs-preview dev-start dev-start-macos dev-toggle dev-stop
APP_NAME := subminer
THEME_FILE := subminer.rasi
@@ -48,6 +48,10 @@ help:
" build-linux Build Linux AppImage" \
" build-macos Build macOS DMG/ZIP (signed if configured)" \
" build-macos-unsigned Build macOS DMG/ZIP without signing/notarization" \
" dev-start Build and launch local Electron app" \
" dev-start-macos Build and launch local Electron app with macOS tracker backend" \
" dev-toggle Toggle overlay in a running local Electron app" \
" dev-stop Stop a running local Electron app" \
" docs-dev Run VitePress docs dev server" \
" docs Build VitePress static docs" \
" docs-preview Preview built VitePress docs" \
@@ -143,6 +147,20 @@ docs: ensure-pnpm
docs-preview: ensure-pnpm
@pnpm run docs:preview
dev-start: ensure-pnpm
@pnpm run build
@pnpm exec electron . --start
dev-start-macos: ensure-pnpm
@pnpm run build
@pnpm exec electron . --start --backend macos
dev-toggle: ensure-pnpm
@pnpm exec electron . --toggle
dev-stop: ensure-pnpm
@pnpm exec electron . --stop
install-linux:
@printf '%s\n' "[INFO] Installing Linux wrapper/theme artifacts"

View File

@@ -5,7 +5,7 @@ status: Done
assignee:
- codex
created_date: '2026-02-11 15:45'
updated_date: '2026-02-11 16:28'
updated_date: '2026-02-11 16:36'
labels:
- bug
- macos
@@ -41,4 +41,5 @@ Follow-up in progress after packaged app runtime showed fullscreen fallback beha
- Added throttled tracker logging for helper execution failures to expose runtime errors without log spam.
- Updated Electron builder `extraResources` to ship `dist/scripts/get-mpv-window-macos` outside asar at `resources/scripts/get-mpv-window-macos`.
- Added macOS-only invisible subtitle vertical nudge (`+5px`) in renderer layout to align interactive subtitles with mpv glyph baseline after bounds fix.
- Increased macOS-only invisible subtitle line-height for multi-line text to improve separation as line count grows.
<!-- SECTION:NOTES:END -->

View File

@@ -0,0 +1,41 @@
---
id: TASK-18
title: Add remote mac mini build script
status: Done
assignee:
- codex
created_date: '2026-02-11 16:48'
updated_date: '2026-02-11 16:48'
labels:
- build
- macos
- devex
dependencies: []
references:
- scripts/build-external.sh
priority: medium
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Add a script that offloads macOS package builds to a remote Mac mini over SSH, then syncs release artifacts back to the local workspace.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Script supports remote host and path configuration.
- [x] #2 Script supports signed and unsigned macOS build modes.
- [x] #3 Script syncs project sources to remote and copies release artifacts back locally.
<!-- AC:END -->
## Implementation Notes
<!-- SECTION:NOTES:BEGIN -->
Added `scripts/build-external.sh` with:
- Defaults for host alias (`mac-mini`) and remote path (`~/build/SubMiner`)
- Argument flags: `--host`, `--remote-path`, `--signed`, `--unsigned`, `--skip-sync`, `--sync-only`
- Rsync-based upload excluding heavyweight build artifacts and local dependencies
- Remote build execution (`pnpm run build:mac` or `pnpm run build:mac:unsigned`)
- Artifact sync back into local `release/`
<!-- SECTION:NOTES:END -->

View File

@@ -2,6 +2,9 @@ import type { MpvSubtitleRenderMetrics, SubtitlePosition } from "../types";
import type { ModalStateReader, RendererContext } from "./context";
const INVISIBLE_MACOS_VERTICAL_NUDGE_PX = 5;
const INVISIBLE_MACOS_LINE_HEIGHT_SINGLE = "0.92";
const INVISIBLE_MACOS_LINE_HEIGHT_MULTI = "1.2";
const INVISIBLE_MACOS_LINE_HEIGHT_MULTI_DENSE = "1.3";
function clampYPercent(yPercent: number): number {
return Math.max(2, Math.min(80, yPercent));
@@ -297,10 +300,10 @@ export function createPositioningController(
"line-height",
ctx.platform.isMacOSPlatform
? lineCount >= 3
? "1.18"
? INVISIBLE_MACOS_LINE_HEIGHT_MULTI_DENSE
: multiline
? "1.08"
: "0.86"
? INVISIBLE_MACOS_LINE_HEIGHT_MULTI
: INVISIBLE_MACOS_LINE_HEIGHT_SINGLE
: "normal",
ctx.platform.isMacOSPlatform ? "important" : "",
);