diff --git a/Makefile b/Makefile index 65908f9..663ee32 100644 --- a/Makefile +++ b/Makefile @@ -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" diff --git a/backlog/tasks/task-13 - Fix-macos-native-window-bounds-for-overlay-binding.md b/backlog/tasks/task-13 - Fix-macos-native-window-bounds-for-overlay-binding.md index d3414b6..f3f700b 100644 --- a/backlog/tasks/task-13 - Fix-macos-native-window-bounds-for-overlay-binding.md +++ b/backlog/tasks/task-13 - Fix-macos-native-window-bounds-for-overlay-binding.md @@ -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. diff --git a/backlog/tasks/task-18 - Add-remote-mac-mini-build-script.md b/backlog/tasks/task-18 - Add-remote-mac-mini-build-script.md new file mode 100644 index 0000000..549f4be --- /dev/null +++ b/backlog/tasks/task-18 - Add-remote-mac-mini-build-script.md @@ -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 + + +Add a script that offloads macOS package builds to a remote Mac mini over SSH, then syncs release artifacts back to the local workspace. + + +## Acceptance Criteria + +- [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. + + +## Implementation Notes + + +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/` + diff --git a/src/renderer/positioning.ts b/src/renderer/positioning.ts index 3751e81..3f9d8b1 100644 --- a/src/renderer/positioning.ts +++ b/src/renderer/positioning.ts @@ -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" : "", );