stt: omit model field when empty (fixes Riva 400); settings: always-visible scrollbar (v2.0.3)

- stt._transcribe_remote: no longer falls back to "whisper-1" when
  engine.model is empty — omits the field entirely so Riva/NIM uses its
  default model instead of rejecting the request with HTTP 400
- gtksettings._page: switch vertical scroll policy to ALWAYS and disable
  overlay scrolling so the scrollbar is permanently visible, making
  it obvious when a tab has more content below the visible area

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mARTin-B78 2026-06-09 17:00:58 +02:00
parent 101bb1e796
commit 0ff0f604c2
3 changed files with 6 additions and 3 deletions

View File

@ -6,4 +6,4 @@ counterpart to the macOS Blitztext menu bar app: it runs natively on the host
(not in a container) so it can type into any application via xdotool. (not in a container) so it can type into any application via xdotool.
""" """
__version__ = "2.0.2" __version__ = "2.0.3"

View File

@ -505,7 +505,8 @@ def _page(nb: Gtk.Notebook, title: str) -> Gtk.Box:
outer = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) outer = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
nb.append_page(outer, Gtk.Label(label=title)) nb.append_page(outer, Gtk.Label(label=title))
sw = Gtk.ScrolledWindow() sw = Gtk.ScrolledWindow()
sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) sw.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.ALWAYS)
sw.set_overlay_scrolling(False) # always-visible scrollbar, not the overlay kind
outer.pack_start(sw, True, True, 0) outer.pack_start(sw, True, True, 0)
inner = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2) inner = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2)
for m in ("top", "bottom", "start", "end"): for m in ("top", "bottom", "start", "end"):

View File

@ -138,7 +138,9 @@ def _transcribe_remote(engine: STTEngine, audio_path: Path, *, language: str, pr
base = engine.url.rstrip("/") base = engine.url.rstrip("/")
endpoint = base + "/audio/transcriptions" endpoint = base + "/audio/transcriptions"
fields = {"model": engine.model or "whisper-1", "response_format": "json"} fields: dict[str, str] = {"response_format": "json"}
if engine.model:
fields["model"] = engine.model
if language: if language:
fields["language"] = language fields["language"] = language
if prompt: if prompt: