Skip to content

Feature Request: Replace Advanced Options text file editing with a structured GUI settings panel #5714

Description

@fanghuaqi

Problem

Currently, SumatraPDF has a two-tier settings approach:

  1. Basic Options dialog (Settings > Options...): Exposes only ~8 settings (default layout, zoom, show TOC, tabs, etc.)
  2. Advanced Options (Settings > Advanced Options...): Simply opens SumatraPDF-settings.txt in a text editor

This means the vast majority of settings — colors, margins, shortcuts, scroll behavior, printing defaults, keyboard mappings, and the growing AI integration options (Claude Code, Grok, Codex) — are only accessible by manually editing a plain-text configuration file.

For new or non-technical users, this is a significant usability barrier. The text format is unfamiliar, error-prone (no validation, easy to introduce typos), and discovering available options requires reading external documentation.

Proposed Solution

Replace or enhance the "Advanced Options" action with a structured Advanced Settings panel (a tabbed dialog or similar) that exposes all GlobalPrefs settings through proper GUI controls — grouped into logical categories.

Suggested categories/tabs:

Tab Settings
View FixedPageUI colors (text/background/selection), WindowMargin, PageSpacing, SmoothScroll, DisableAntiAlias
UI ShowToolbar, ShowMenubar, FullPathInTitle, TabWidth, UseTabs, ScrollbarInSinglePage
Document DefaultDisplayMode, DefaultZoom, RememberStatePerDocument, ShowToc, ShowFavorites, HomePageSortByFrequentlyRead
Shortcuts Keyboard shortcut mapping editor (currently only editable as raw text like CmdFind = Ctrl+F)
Printing PrinterDefaults (collate, scale, color)
Fullscreen/Presentation Fullscreen.showToolbar, Fullscreen.backgroundColor, etc.
Advanced InverseSearchCmdLine, EnableTeXEnhancements, SearchUIFloating, language-related settings
AI Integration ClaudeCode, GrokBuild, CodexBuild settings (bgColor, models, alwaysApprove, etc.)

UI approach ideas:

  • Option A: A multi-tab property sheet dialog (Windows PROPSHEETHEADER / tab control) — native Win32, matches SumatraPDF style
  • Option B: A searchable list/tree on the left with detail pane on the right (similar to VS Code settings)
  • Option C: An embedded HTML/WebView settings page rendered in the about/home page area

For each setting:

  • Show the setting name, current value, default value, and a brief description
  • Use appropriate controls: checkboxes for bools, color pickers for color values, combo boxes for enums, text fields for strings, sliders for numeric ranges
  • Validate input before saving
  • Provide a "Reset to Defaults" button per-section or globally

Why Now?

  • GlobalPrefs in Settings.h has grown significantly with AI integration features (Claude, Grok, Codex), theme system, floating find window, etc. The gap between the basic Options dialog and the full settings surface area keeps widening.
  • The settings structure is already auto-generated (do/settings_gen_code.goSettings.h), so it may be feasible to also auto-generate or assist with the GUI metadata (labels, types, ranges, descriptions).
  • Making settings discoverable in-app would reduce support burden and improve the experience for all users.

Current Workaround

Users must:

  1. Go to Settings > Advanced Options
  2. Manually edit the text file with correct key=value syntax
  3. Restart SumatraPDF or hope the change is picked up live
  4. Refer to sumatrapdfreader.org/settings for documentation

This works, but is far less user-friendly than a proper settings UI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions