Releases: zl190/hijack
Releases · zl190/hijack
Release list
Hijack 1.1.4
Hijack 1.1.4
- The menu tells you when the shortcut cannot work. When macOS turns off the key listener, or Secure Input is on (a password field), the menu bar icon shows a slash and the first menu line names the cause and the step.
hijack statusandhijack doctornow report the same state. Before, they said "active" after the listener had died. - A stuck talk key gets released. If Hijack quits while it holds the talk key, the next start releases it. If the system turns the key listener off during a hold, Hijack releases the key when the listener comes back, and after sleep or unlock. The menu shows "Hijack is still holding …" with a Release action while a session is stuck.
- "Try it" stops saying things that are not true. It no longer says "Listening…" when the voice tool's microphone stays off, and it no longer says "back to …" before the switch back is confirmed.
- No talk key to the wrong input source. When the switch to the voice input method does not land within one second, Hijack ends the dictation instead of sending the key to whatever is active. Before, Fn alone could open the macOS dictation panel.
- Chained dictations switch back again. Pressing the shortcut while the previous text is still arriving kept the voice input method active at the end. Fixed.
- Settings apply when the file changes. Hijack watches the config file and the voice tool's settings with FSEvents instead of a one-second poll. Idle CPU went from 130 ms to 10 ms per minute.
hijack stats. Success rate, failure causes, p50/p95 latencies and incidents, from the one-line-per-dictation log.- Engine behind seams, fault-injection tests. Key posting, input sources, the event tap, probes, the clock and the log sink are protocols with fake implementations. 83 tests (from 17): the failure modes in
docs/fmea.mdeach have a test that reproduces them. Reviews indocs/review-4/, decisions indocs/adr/.
Hijack 1.1.3
Hijack 1.1.3
- Lighter while you dictate. Hijack looked up the voice tool's processes every 50 ms while waiting for the text; it now does it once per dictation. Measured with Instruments: Hijack's CPU use went from 16 to about 5 ms per second, with no main-thread hangs.
- One state machine decides what a key press does. Holding, tapping, hands-free, "any key stops" and the voice tool's own key now go through one tested table instead of scattered flags. Same behavior, now covered by tests.
- Timing marks for Instruments. Each dictation shows up under Points of Interest with its phases (starting, listening, waiting for text), so you can see where the time goes.
Hijack 1.1.2
Hijack 1.1.2
- Steadier key handling. Hijack's key listener no longer reads settings files, queries other apps or writes the log while a key is in flight. Slow work there could make macOS pause the listener, and the voice tool could then miss its talk key.
- Recovers after the listener is paused. If macOS pauses it, Hijack checks the shortcut's real state when it resumes, so a missed release can't leave the talk key held or ⌥ stuck down.
- A clearer log. One line per dictation (
hijack log), saying whether the talk key went out, whether the voice tool started listening, and whether its window appeared. The step-by-step detail is inhijack log --live. The log file stays under 1 MB.
Hijack 1.1.1
Hijack 1.1.1
- Reopens itself after an update. When an installer replaces Hijack (Homebrew, the curl script, or a source build), it starts again on its own. Homebrew can't do this itself: its install sandbox doesn't allow launching apps.
- It's a small launchd job that runs only when Hijack's app file changes, then exits. Quitting Hijack never restarts it.
- macOS shows it once as a background item under Login Items & Extensions.
- Updating from 1.1.0, open Hijack once more by hand; the updates after that reopen it automatically.
Hijack 1.1.0
Hijack 1.1.0
- Any voice tool: WeType, Doubao, Sogou and Handy work out of the box. Hijack reads each tool's own voice key when it can, and you can override it.
- Hands-free mode: tap to start, tap again (or press any key) to stop. Hold-to-talk still works.
- Settings window: Dictation, Sources, General and Advanced tabs, with a key recorder that knows left and right modifiers. The menu keeps the everyday choices.
- Config file:
~/.config/hijack/config.jsonis the source of truth; ⌘, opens it. A file that doesn't parse is never overwritten. - Command line:
hijack status,doctor,sources,get,setandlog, with--jsonfor scripts and agents. - New icon: a layered macOS 26 icon with light, dark, clear and tinted appearances.
- Chinese and English interface. Fixes for long dictations losing text and for missed or doubled key presses.