Originally created by: kristofferR
Redesign the Carrier settings window to use the tabbed GUI from IPTVChecker — a macOS-style tab bar on top with stacked icon + label tabs, where each tab groups related settings into sections. Right now Carrier's settings is a single flat scrolling list, which is fine at ~11 options but is already getting unwieldy and doesn't scale as more settings are added.
dist/settings.html renders one undifferentiated list: a Theme dropdown followed by 10 checkbox rows (Always on Top, Show System Tray, Start to Tray, Start on System Startup, Hide on Close, Unread Badge, Compact Mode, Menu Bar Only, Spell check, Multi Instance), plus a footer (version, status, "Reset to defaults", "Check for updates"). It's plain vanilla HTML/CSS/JS talking to Tauri via invoke — no framework, no grouping.
IPTVChecker's settings window uses a horizontal tab strip pinned to the top, each tab a stacked icon over label button (lucide icons), with the active tab highlighted. Selecting a tab swaps the body, which shows grouped <section> blocks of related controls. It lives in its own native window. See src/components/SettingsPanel.tsx in that repo for the reference implementation (tabs: General / Scanning / Screenshots / Network / Advanced).
Adopt the same layout in Carrier's settings window:
settings.html.get_settings / set_settings / reset_settings / check_for_updates commands; this is purely the settings frontend.
Ticket changed by: kristofferR
Originally posted by: kristofferR
Done — implemented in [#10] (merged to
main). The Settings window is now a tabbed GUI with the tabs along the top (General · Tray & Startup · Notifications · Advanced).Related
Tickets:
#10