This commit is contained in:
@@ -51,7 +51,7 @@ The core workflow:
|
||||
active window, and region capture (the app hides itself during the shot),
|
||||
plus continuous capture sessions that grab a step on every click where the
|
||||
OS allows it, or on a 3/5/10 s auto-interval everywhere else (the REC bar
|
||||
shows the live count with Shoot/Auto/Pause/Finish controls). Delay, global
|
||||
shows the live count with Auto/Pause/Finish controls). Delay, global
|
||||
hotkeys, click markers, clipboard paste, and PNG/JPEG/GIF import included.
|
||||
The full keyboard shortcut list lives under **More ▾ → Keyboard
|
||||
shortcuts** in the editor.
|
||||
|
||||
@@ -494,7 +494,6 @@ function setupIpc() {
|
||||
else if (action === 'resume') capture.togglePause(false);
|
||||
else if (action === 'finish') capture.finishSession();
|
||||
else if (action === 'interval') capture.setInterval(intervalSec);
|
||||
else if (action === 'shoot') await capture.sessionCapture('manual');
|
||||
const state = capture.state();
|
||||
sendToRenderer('capture:state', state);
|
||||
return state;
|
||||
|
||||
+1
-14
@@ -269,12 +269,6 @@ class StepForgeApp {
|
||||
: s.intervalSec > 0 ? `every ${s.intervalSec}s`
|
||||
: 'hotkey only';
|
||||
|
||||
const shootBtn = el('button', {
|
||||
type: 'button',
|
||||
title: 'Capture a step now (the app hides itself for the shot)',
|
||||
onClick: () => send({ action: 'shoot' }),
|
||||
}, 'Shoot');
|
||||
|
||||
// Cycle interval auto-capture: off -> 3s -> 5s -> 10s -> off.
|
||||
const nextInterval = { 0: 3, 3: 5, 5: 10, 10: 0 }[s.intervalSec ?? 0] ?? 3;
|
||||
const autoBtn = el('button', {
|
||||
@@ -302,7 +296,6 @@ class StepForgeApp {
|
||||
|
||||
this.captureStatus.append(
|
||||
el('span', { title: `Capture session — ${trigger}` }, `REC ${s.count || 0} · ${trigger}`),
|
||||
shootBtn,
|
||||
autoBtn,
|
||||
pauseBtn,
|
||||
finishBtn,
|
||||
@@ -768,8 +761,7 @@ class StepForgeApp {
|
||||
await this.refreshLibrary();
|
||||
}
|
||||
|
||||
async createGuide({ armCapture = undefined } = {}) {
|
||||
const shouldArmCapture = armCapture ?? this.state.view === 'library';
|
||||
async createGuide() {
|
||||
const title = await dialogs.promptText({
|
||||
title: 'New Guide',
|
||||
label: 'Title',
|
||||
@@ -780,11 +772,6 @@ class StepForgeApp {
|
||||
const guide = await api.library.create({ title: title.trim() || 'Untitled guide' });
|
||||
await this.refreshLibrary();
|
||||
await this.openGuide(guide.guideId);
|
||||
if (!shouldArmCapture) return;
|
||||
await this.armCaptureSession(guide.guideId, {
|
||||
actionLabel: 'Start recording',
|
||||
headline: 'StepForge will hide after you start recording.',
|
||||
});
|
||||
}
|
||||
|
||||
async createFolder() {
|
||||
|
||||
+3
-3
@@ -102,8 +102,8 @@ Initial release.
|
||||
the platform supports it (xinput on X11, PowerShell on Windows), with
|
||||
interval auto-capture (3/5/10 s) as the always-works fallback when
|
||||
click detection or global hotkeys are unavailable (e.g. WSLg/Wayland).
|
||||
The REC bar shows the live count and trigger, with Shoot / Auto /
|
||||
Pause / Finish controls.
|
||||
The REC bar shows the live count and trigger, with Auto / Pause /
|
||||
Finish controls.
|
||||
- Recording sessions tuck the window away once and control everything
|
||||
from a red tray icon (capture now / pause / open / finish) instead of
|
||||
hiding the window for every shot — the app stays reachable
|
||||
@@ -161,7 +161,7 @@ Initial release.
|
||||
session now starts paused and the window only tucks away once the user
|
||||
presses "Start recording" in the capture bar, so the app doesn't vanish
|
||||
out from under you.
|
||||
- The capture status bar (REC count / Shoot / Auto / Pause / Finish) is
|
||||
- The capture status bar (REC count / Auto / Pause / Finish) is
|
||||
now shown only in the editor view; it no longer appears over the
|
||||
library when a session is still running in the background.
|
||||
- Click-triggered captures now grab the cursor position at the instant of
|
||||
|
||||
Reference in New Issue
Block a user