Problem
Currently, SumatraPDF has a two-tier settings approach:
- Basic Options dialog (
Settings > Options...): Exposes only ~8 settings (default layout, zoom, show TOC, tabs, etc.)
- 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.go → Settings.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:
- Go to
Settings > Advanced Options
- Manually edit the text file with correct key=value syntax
- Restart SumatraPDF or hope the change is picked up live
- Refer to sumatrapdfreader.org/settings for documentation
This works, but is far less user-friendly than a proper settings UI.
Problem
Currently, SumatraPDF has a two-tier settings approach:
Settings > Options...): Exposes only ~8 settings (default layout, zoom, show TOC, tabs, etc.)Settings > Advanced Options...): Simply opensSumatraPDF-settings.txtin a text editorThis 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
GlobalPrefssettings through proper GUI controls — grouped into logical categories.Suggested categories/tabs:
CmdFind = Ctrl+F)UI approach ideas:
PROPSHEETHEADER/ tab control) — native Win32, matches SumatraPDF styleFor each setting:
Why Now?
GlobalPrefsinSettings.hhas 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.do/settings_gen_code.go→Settings.h), so it may be feasible to also auto-generate or assist with the GUI metadata (labels, types, ranges, descriptions).Current Workaround
Users must:
Settings > Advanced OptionsThis works, but is far less user-friendly than a proper settings UI.