// Copyright (c) 2026 Storm Dragon // Authors: Storm Dragon, Angus Kola // SPDX-License-Identifier: GPL-3.0-or-later package preferences import ( "git.stormux.org/storm/cthulhu/internal/braille" "git.stormux.org/storm/cthulhu/internal/config" "git.stormux.org/storm/cthulhu/internal/input" "git.stormux.org/storm/cthulhu/internal/speech" ) // uiSession lives for one helper window. Only the locked GTK thread in Run // accesses these fields; pipe readers deliver immutable responses by channel. type uiSession struct { progressBar config.ProgressBarSettings catalog speech.Catalog contractionTables []braille.TableOption soundThemes []string echoModules []string echoFamilies []*config.VoiceFamily activeEchoModule string speechModules []string speechLanguages []string speechFamilies []*config.VoiceFamily activeSpeechSystem int softwareModule string hardwareModule string activeSpeechModule string activeSpeechLanguage string voiceDrafts [4]config.Voice activeVoiceType int bindingDraft []input.BindingOverride bindingRows []input.BindingRow bindingLayout int }