Commit graph

173 commits

Author SHA1 Message Date
CJ Pais
fdea7e13b2 fix build 2025-12-12 22:23:34 +07:00
Viren Mohindra
b31a41ad2f
fix: prevent model auto-switch from interrupting active transcription (#443)
* fix: prevent model auto-switch from interrupting active transcription

when a model download completes during an active recording/transcription,
the app now skips auto-switching to prevent data loss.

adds is_recording tauri command to check recording state before
auto-switching models on download or extraction completion.

fixes #418

* Update bindings.ts

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-12 22:04:22 +07:00
Viren Mohindra
5f7ffe162b
feat: add german, japanese, and chinese translations (#444)
* feat: add german, japanese, and chinese translations

adds complete translations for:
- german (de)
- japanese (ja)
- chinese simplified (zh)

builds on the internationalization foundation added in #437.
updates CONTRIBUTING_TRANSLATIONS.md to reflect supported languages.

* fix: escape Chinese quotation marks in zh translation

* cleanup

* remove extra keys for now

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-12 21:54:23 +07:00
CJ Pais
f87051f464
Add Internationalization Support (#437)
* basic i18n

* tweak

* translate app

* add linting to make sure we have translations

* run linter on pr

* format
2025-12-12 11:16:54 +07:00
CJ Pais
aaade62f9d
Add ctrl+shift+v as option on windows and linux (#430)
* ctrl+shift+v

* clean up some clipboard code

* format
2025-12-10 17:49:43 +07:00
Chirag Agggarwal
bfecade869
Apple intel integration (#391)
* feat: add Apple Intelligence post-processing provider

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* feat: guide apple intelligence output

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

* fix(build): add fallback stub for Apple Intelligence on older SDKs

- Checks if 'FoundationModels.framework' is present in the macOS SDK.
- If missing, compiles a stub Swift file that returns 'unavailable' errors instead of failing the build.
- Prevents build errors on older Xcode versions (or macOS versions < 26.0) where the macros are not supported.

* fix(ui): hide Apple Intelligence option when unavailable

- Checks for runtime availability of Apple Intelligence (via 'check_apple_intelligence_availability') in 'settings.rs'.
- Only adds the Apple Intelligence provider to the default settings if it is actually available on the device.
- Ensures the option does not appear in the UI for unsupported Macs (e.g., Intel or older macOS versions), even if the app was built with support enabled.

* move some files around as well as some ui text

* format

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Co-authored-by: CJ Pais <cj@cjpais.com>
2025-12-09 21:04:24 +07:00
Danny Smith
246feda45d
Add option to append trailing space after pasted text (#405) 2025-12-05 17:37:33 +07:00
CJ Pais
6c35a8d912
disable cancel on linux (#392) 2025-11-29 16:44:49 +07:00
CJ Pais
39adf1b455
Switch to disable update checking (#362)
* codex thinks it did it

* run format

* properly disable on startup

* text
2025-11-28 10:17:13 +07:00
CJ Pais
4fcf0447b3
notes regarding linux (#387)
* notes regarding linux

* fix overlay not being default false on linux

* note
2025-11-28 09:37:49 +07:00
Jackson
381b8a8bfb
Add a cancel hotkey and configuration (#224)
* From scratch

* Cleanup

* Small fixes

* simplify

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-28 09:00:47 +07:00
Ole Jakob Schjøth
c8389f34b2
feat: Add disabled option for pasting. (#364)
* feat: Add disabled option for pasting.

* update bindings

* -> none

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-27 17:38:41 +07:00
CJ Pais
9521ab9332
WIP: Add tauri-specta for generating TS bindings (#322)
* initial specta commands

* refactor to use the bindings in the ui

* merge fixes

* remove unused commands

* add clamshell to lib

* Remove Invoke from everything.

* fix settings not being loaded properly

* fix settings being overwritten due to deserialization failure + remove
provider kind

* fix model loading text bug
2025-11-27 17:07:22 +07:00
figwood
ec3b06d5b2
feat: add conversion between Simplified and Traditional Chinese. (#356)
* feat: add conversion between Simplified and Traditional Chinese. If the selected language is Simplified or Traditional Chinese, it will convert the text to the selected variant(Simplified or Traditional) after been recognized, depends on opencc, if it is not installed, the conversion will skip.

* Adopting ferrous-opencc makes cross-platform packaging easier.
2025-11-19 20:31:44 +07:00
Maicon Moreira
c2672638c9
Improve audio feedback timing using real sound duration and trimmed WAV files (#349)
* feat: add sound duration retrieval for audio feedback

* Trim trailing silence from pop_start.wav and pop_stop.wav

* refactor: simplify sound file and base directory retrieval

* feat: only delay mute if audio feedback is enabled

* change the logic

* simplify new logic

* simplify get_sound_path and get_sound_base_dir, reorder functions

* add implicit blocking to playTestSound

* modify to my pref style

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-19 10:10:23 +07:00
Jorge
97f3018be0
fix: update laptop detection logic to be more reliable (#348) 2025-11-18 20:43:35 +07:00
CJ Pais
18536aa81e
Add file based debug logging (#347)
* add basic logging to handy

* 100kb of logs

* add open button to the ui for logs

* use log everywhere

* some minor cleanup

* finish debug logging
2025-11-17 12:55:24 +07:00
CJ Pais
315c32eab4 format 2025-11-17 10:41:31 +07:00
Jorge
3b3ed5abc5
feat: add more options for deleting recordings automatically and added button to open the folder that holds the recordings (#330)
* feat: add more options for deleting recordings automatically and added button to open the folder that olds the recordings

- deleting automatically options: after certain time, never or preserving certain number of recordings
- new button "Open Recordings Folder" located on History page

* refactor: moved "Delete Recordings" selector to Debug settings

* refactor: simplify opening recordings folder logic by using tauri's opener plugin

* clean up ui and code a bit

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-17 10:41:05 +07:00
Jorge
45eec57226
feat: add fallback microphone for clamshell/desktop mode (#329)
* feat: add fallback microphone for clamshell/desktop mode

* refactor: moved "Closed Laptop Microphone" setting to Debug

* cleanup

* run format

* add check back

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-17 10:38:41 +07:00
CJ Pais
70ec82285a
format everything (#323) 2025-11-10 11:39:14 +08:00
Luis Eduardo
f7380fa69a
feat: LLM based post-processing (#222)
* Add LLM post-processing feature with settings management and UI integration

* Refactor LLM post-processing settings and prompt selection logic

* Rename CLAUDE.md to more standard AGENTS.md

* Replace Open Router with OpenAI Compatible endpoints for post-processing

* Fix post processing settings api styles

* refactor or something

* simplify

* cleanup a bit?

* remove useless code

* minor improvements

* fix laggy textarea

* Store post-processing results in db

* fix text color

* new default prompt

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-05 18:29:03 -08:00
helpful
09f16b1048
windows paste shift+ins instead of ctrl+v (#236)
* windows paste shift+ins instead of ctrl+v

Shift+Insert is older and more universal than Ctrl+V on windows. For example SSH terminal software often will not permit ctrl+v.

* add option for shift+ins on windows/linux

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-11-03 09:21:46 -08:00
CJ Pais
f6e315786c move paste method and clipboard handling to advanced 2025-11-03 08:34:39 -08:00
Jinhyeok Lee
d274a28dbf
fix: add missing defaults option to plugin-store load() call (#288)
The plugin-store 2.4.1 requires the 'defaults' property in StoreOptions.
Previously, only 'autoSave: false' was provided, causing a TypeScript error.
Now passing DEFAULT_SETTINGS as the defaults value.
2025-11-03 07:33:11 -08:00
Piyush Gupta
951283ca8a fix: tooltip overflow (#269)
* fix: tooltip overflow

* Adds more responsive Css

* StartHidden has tooltip bottom

* in debug setting too

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-30 08:06:44 -07:00
Bogdan
64ff385423
fix: disable Translate to English setting for the whisper turbo model (#259)
* feat: disable Translate to English switch for the whisper turbo

* add parakeet-tdt-0.6b-v2 to unsupportedTranslationModels

* disable language selector for parakeet v2

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-29 12:37:19 -07:00
CJ Pais
1fd08082e4 move app data dir to about instead of debug 2025-10-28 17:53:43 -07:00
Maicon Moreira
7c04ee85a7
feat: add “mute while recording” setting (#257)
* feat: mute while recording

* refactor: move MuteWhileRecording from AdvancedSettings to DebugSettings
2025-10-28 17:49:33 -07:00
CJ Pais
65c1e2dbcb
parakeet v2 support (#116)
* parakeet v2 support

* Update model.rs

* fix parakeet size

* new onboarding UI for parakeet v2 introduction

* tweak height
2025-10-28 16:32:26 -07:00
CJ Pais
ae406aebe2 fix build 2025-10-27 11:52:23 -07:00
Jackson
eb044d8810
Slight overlay UI fix for flickering (#231) 2025-10-23 10:35:31 -07:00
CJ Pais
a9a3e7bfd8
display download size + refactor (#221) 2025-10-17 16:57:51 -07:00
CJ Pais
db00ff240f
Add Setting to Copy to Clipboard (#220)
* update transcribe-rs

* add copy to clipboard feat
2025-10-17 16:25:35 -07:00
Jackson
93215dc097
A few optimizations on startup (#182)
* Use an optimal release profile... load managers & hotkeys first, add a
splash, simplify app handler

* removed splashscreen, hopefully app boots fast enough anyhow

* No need to load transcription model on start now that its loaded on
demand & cleanup

* Make an unloaded model status

* tiny modification to unloading

* update comment

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-17 16:05:43 -07:00
Jackson
a286fe5143
Add custom sound and control notif volume (#214)
* Add custom sound and control notif volume

* Modularize the picker and slider, consolidate the playback and loading

* Move custom sounds to advanced

* pairs of audio

* custom sound handling

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-16 09:08:27 -07:00
CJ Pais
d15fabf887 move always on mic to debug settings. really not for mainstream users. 2025-10-09 10:58:12 -07:00
Gr3mIin
aed3a75d54
feat(settings): add autostart toggle in advanced settings (#177)
* feat(settings): add autostart toggle in advanced settings

Enable users to configure autostart behavior through a new toggle in the advanced settings UI. The backend now checks user preferences on startup to enable or disable autostart accordingly, with the setting persisted and manageable via a new Tauri command. This provides better control over app initialization without affecting existing functionality.

* immediate toggle effect?

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-09 10:47:51 -07:00
CJ Pais
f165b40a60 add source code link in about 2025-10-08 17:23:38 -07:00
CJ Pais
25be30dd7d move paste method to debug 2025-10-08 16:53:05 -07:00
CJ Pais
1f0332941b better disabled states for parakeet 2025-10-08 16:52:50 -07:00
becker
d0e6a17c17
Add history limit setting (#150)
* Add history limit setting

Dearest Reviewer,

I have added a history limit setting. The limit change is applied instantly.
If the limit is 0 then no recordings are saved.

Becker

* remove extra save

save happens on exit

* move to debug menu

* use the text color

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-10-08 13:01:09 -07:00
CJ Pais
1432bac30f
add support for changing paste method (#187)
* add support for changing paste method

* rename/refactor of methods
2025-10-08 12:32:04 -07:00
Han Pham
9185b3db08
feat: delete a single audio entry (#119)
* feat: delete a single audio entry

* fix(HistorySetting): remove unnecessary loading state
2025-09-19 12:30:50 -07:00
CJ Pais
338d15d2c4
tweak onboarding (#112) 2025-09-09 18:59:09 -07:00
CJ Pais
45a473dc9f
Parakeet V3 (#111)
* wip: model manager support for parakeet

* working parakeet??git status

* Update LanguageSelector.tsx

* Use the published version of the crate.

* move word correction into audio toolkit
2025-09-09 18:33:57 -07:00
Dylan
b82b3b2f20
Added "Start Hidden" (#105)
* Added "Start Hidden"

* revert visible option in tauri conf

---------

Co-authored-by: CJ Pais <cj@cjpais.com>
2025-09-06 14:07:33 -07:00
CJ Pais
7638f6b827
basic working history (#104) 2025-09-05 16:25:38 -07:00
CJ Pais
d6684ccb21
UI v2 (#103)
* wip ui

* pretty much fully new settings page

* proper dark/light mode

* slight style tweak for sidebar

* add about
2025-09-05 12:56:55 -07:00
CJ Pais
ae5f640da5
Add VRAM Inactivity Timer (#101)
* init vram unload

* logging

* add immediate unloading

* thread fixes
2025-09-03 19:00:36 -07:00
CJ Pais
5296738bac tweak thresh 2025-08-19 18:54:00 -07:00
CJ Pais
d52df53343 tweak default to 0.15 2025-08-15 12:11:35 -07:00
CJ Pais
87f97ab121 Correct wording. 2025-08-15 12:09:16 -07:00
CJ Pais
04b006d5b8 new default correction threshold + debug menu 2025-08-15 11:55:15 -07:00
CJ Pais
6be48caf82 slightly tweak styling 2025-08-11 15:28:26 -07:00
CJ Pais
c2b3815f56 'custom words' everywhere instead of 'correct words' 2025-08-11 15:19:48 -07:00
CJ Pais
a252655b2f reset icon color 2025-08-11 15:09:39 -07:00
CJ Pais
bc9617beb2 Use proper cursor for input 2025-08-11 09:32:36 -07:00
Vlad Gerasimov
24e0319256 fix(settings): handle default device labels and empty device lists 2025-08-09 08:21:43 +04:00
Vlad Gerasimov
46d28a0616 fix(settings): remove hardcoded Default option and add placeholder text 2025-08-09 08:10:18 +04:00
Vlad Gerasimov
1f96da9381 style(ui): unify components with shared Input/Button 2025-08-09 08:08:49 +04:00
Vlad Gerasimov
6f16fdf2f4 refactor(settings): wrap components in React.memo and improve ResetIcon 2025-08-09 07:52:28 +04:00
Vlad Gerasimov
f219bd14b6 refactor(settings): wrap CorrectWords with SettingContainer 2025-08-09 07:33:55 +04:00
Vlad Gerasimov
6404ce7487 refactor(transcription): optimize word correction performance 2025-08-08 19:25:21 +04:00
Vlad Gerasimov
ca00ddeb53 fix(ui): reduce window height and tighten layout spacing 2025-08-08 17:51:57 +04:00
Vlad Gerasimov
003bf23402 feat(transcription): add word correction with phonetic matching 2025-08-08 17:50:31 +04:00
CJ Pais
b286a4118f tweak language slightly. 2025-08-07 17:03:25 -07:00
CJ Pais
c0fc1ba817 some cleanup 2025-08-07 16:53:07 -07:00
Vlad Gerasimov
091b392aa6 feat(overlay): replace show_overlay toggle with position selector 2025-08-06 07:52:09 +04:00
Vlad Gerasimov
53874110b1 style(overlay): update recording overlay design and positioning 2025-08-03 11:36:00 +04:00
Vlad Gerasimov
7357baf672 Merge branch 'main' into tweak-colors 2025-08-03 10:56:24 +04:00
CJ Pais
09547c39b1 use super on windows for now 2025-08-02 19:29:05 -07:00
CJ Pais
3bd65da75a toast stuff? 2025-08-02 19:26:30 -07:00
CJ Pais
32a630cc52 potentially fix cross-platform keybinding handling Naming at the very
least.
2025-08-02 19:03:56 -07:00
CJ Pais
98eb336ab0 disallow invalid bindings from frontend 2025-08-02 18:43:59 -07:00
CJ Pais
86a1205619 add partial/resumable download capability 2025-08-02 18:25:30 -07:00
Vlad Gerasimov
3862e23cef style(overlay): update recording overlay theme to pink palette 2025-08-02 18:26:31 +04:00
Vlad Gerasimov
5b19b8a479 style: window height, logo width, group title size 2025-08-02 10:31:32 +04:00
CJ Pais
1ce954d02f add a very simple debug mode toggle 2025-08-01 18:16:51 -07:00
CJ Pais
a97d861f41 Clean up the overlays CSS. 2025-08-01 16:03:04 -07:00
CJ Pais
cb1caf763c add cancel to overlay 2025-08-01 15:59:00 -07:00
CJ Pais
dd957a894d add setting to enable or disable showing the overlay 2025-08-01 14:29:02 -07:00
CJ Pais
ec2fefb9fe Audio visualizer generally working nicely. 2025-08-01 14:15:02 -07:00
CJ Pais
5ed86d7fcc Minor tweaks to HTML and CSS. 2025-08-01 14:15:02 -07:00
CJ Pais
51105dde15 more wip but roughly is there 2025-08-01 14:15:02 -07:00
CJ Pais
d5f23cdfa5 Try not to focus it first. It doesn't quite work though. 2025-08-01 14:15:02 -07:00
CJ Pais
8731881837 wip 2025-08-01 14:15:02 -07:00
CJ Pais
d52018aa79 minor tweaks 2025-07-28 12:26:26 -07:00
Václav Škorpil
b767eca6fb Add language select to settings 2025-07-28 19:52:37 +02:00
CJ Pais
21e96083df add ui toggle back 2025-07-11 18:19:26 -07:00
segudev
c3aa2d7c1b Add "Translate to English" setting: Introduced a new setting to enable automatic translation of speech to English. Updated relevant components, settings modules, and transcription logic to support this feature. Adjusted accessibility permission calls for consistency. 2025-07-11 18:19:15 -07:00
CJ Pais
d8927f1289 refactor settings into a hook. 2025-07-11 17:12:42 -07:00
CJ Pais
c23befd98a big refactor of settings + switch audio devices 2025-07-10 21:10:46 -07:00
CJ Pais
c99fe1d450 Fix the keycode bug. 2025-07-03 14:26:02 -07:00
CJ Pais
79d260c1c8 slight cleanup/refactor 2025-06-30 14:38:36 -07:00
CJ Pais
9036c05088 initial working version of multiple models + cleanup and onboarding 2025-06-30 14:27:21 -07:00
CJ Pais
528bfc24e1 Different start and stop sounds. 2025-06-27 12:54:34 -07:00
CJ Pais
ab79f77747 sample rec sound 2025-06-27 12:54:29 -07:00
CJ Pais
d2c73bda7a fix build 2025-06-27 12:37:06 -07:00
CJ Pais
80f2c72847 fix update? 2025-06-27 12:27:01 -07:00