* refactor(ui): convert settings dialog to tabbed layout
Convert the settings dialog from a long scrolling list to a tab-based UI
using Gtk.Notebook. This follows GNOME HIG best practices for settings
panels with 3-5 sections.
Changes:
- Add notebook CSS styling for modern tab appearance
- Create 4 tab content boxes (Recognition, Audio, Shortcuts, General)
- Replace ScrolledWindow with Gtk.Notebook
- Reorganize settings sections into appropriate tabs:
- Recognition: Engine, Model, Language, VAD, Silence, Test
- Audio: Device selection, Audio level test
- Shortcuts: Keyboard shortcuts
- General: Autostart, Start minimized
- Widen dialog to 700px to accommodate tab content
This eliminates vertical scrolling and provides a cleaner UX with
logical grouping of related settings.
* refactor(settings): split recognition tab into Speech Engine and Recognition tabs
- Reordered tabs by importance: Speech Engine, Recognition, Audio, Shortcuts, General
- Split the Recognition tab into two separate tabs:
- Speech Engine tab: Engine, Model Size, Language, Model Info
- Recognition tab: VAD Sensitivity, Silence Timeout, Test Recognition, Recognition Status
- This reduces vertical height of each tab and improves usability
* fix(ui): reduce settings dialog height to 50% of screen
Previously set to 75% which made the dialog unnecessarily tall.
* fix(ui): remove redundant close button from settings dialog
Settings auto-apply, so the bottom close button is unnecessary.
Users can close using the title bar X button.
* test(settings): update test for no-action-buttons pattern
The settings dialog now uses title bar close instead of a bottom
Close button, so update the test accordingly.