Configuration Reference

workspace.external_links controls URLs opened from another application. Non-windowed modes target the last-focused window in the current Dumber profile and engine; if that destination is unavailable, Dumber falls back to opening a new window. placement applies only to split.

Key Type Default Valid Values
database.path string ~/.local/share/dumber/dumber.db
history.max_entries int 10000 > 0
history.retention_period_days int 365 > 0
history.cleanup_interval_days int 1 > 0
default_search_engine string https://duckduckgo.com/?q=%s URL with %s
search_shortcuts.<name>.url string URL with %s
search_shortcuts.<name>.description string
dmenu.max_history_days int 30 >= 0
dmenu.show_visit_count bool true
dmenu.show_last_visited bool true
dmenu.history_prefix string ๐Ÿ•’
dmenu.shortcut_prefix string ๐Ÿ”
dmenu.url_prefix string ๐ŸŒ
dmenu.date_format string 2006-01-02 15:04 Go time format
dmenu.sort_by_visit_count bool true
omnibox.initial_behavior string recent recent, most_visited, none
omnibox.most_visited_days int 30 >= 0
omnibox.auto_open_on_new_pane bool false
logging.level string info trace, debug, info, warn, error, fatal
logging.format string text text, json, console
logging.max_age int 7 >= 0
logging.max_files int 100 >= 0 (0 disables count cleanup)
logging.log_dir string ~/.local/state/dumber/logs any path
logging.enable_file_log bool true
logging.capture_console bool false
logging.capture_gtk_logs bool false
appearance.sans_font string Fira Sans
appearance.serif_font string Fira Sans
appearance.monospace_font string Fira Code
appearance.gtk_font string Adwaita Sans
appearance.default_font_size int 16
appearance.color_scheme string default prefer-dark, prefer-light, default
appearance.external_theme.enabled bool false
appearance.external_theme.provider string noctalia noctalia
appearance.external_theme.format string colors-json colors-json, dumber-json
appearance.external_theme.path string $XDG_CONFIG_HOME/noctalia/colors.json path to Noctalia colors.json or a dumber-json theme file; when empty and format = "dumber-json", dumber uses the built-in dumber-json template path
appearance.light_palette.background string #fafafa
appearance.light_palette.surface string #f4f4f5
appearance.light_palette.surface_variant string #e4e4e7
appearance.light_palette.text string #18181b
appearance.light_palette.muted string #71717a
appearance.light_palette.accent string #22c55e
appearance.light_palette.border string #d4d4d8
appearance.dark_palette.background string #0a0a0b
appearance.dark_palette.surface string #18181b
appearance.dark_palette.surface_variant string #27272a
appearance.dark_palette.text string #fafafa
appearance.dark_palette.muted string #a1a1aa
appearance.dark_palette.accent string #4ade80
appearance.dark_palette.border string #3f3f46
debug.enable_devtools bool true
engine.cef.log_file string `` CEF runtime log path
engine.cef.log_severity int32 0 0, 1, 2, 3, 4, 99
engine.cef.trace_handlers bool false
engine.cef.enable_audio_handler bool true experimental
engine.type string cef cef, webkit (CEF default; WebKitGTK fallback)
engine.cookie_policy string always always, no_third_party, never
engine.webkit.itp_enabled bool true WebKit fallback only
engine.cef.render_stack string vulkan vulkan, egl
engine.cef.adaptive_windowless_frame_rate bool true
engine.cef.windowless_frame_rate int32 0 >= 0
engine.cef.windowless_frame_rate_max int32 240 >= 0
engine.cef.input.scroll_wheel_multiplier float 1.0 > 0
engine.cef.input.scroll_precise_multiplier float 2.5 > 0
engine.cef.input.scroll_horizontal_multiplier float 1.0 > 0
engine.cef.input.scroll_vertical_multiplier float 1.0 > 0
engine.cef.input.scroll_max_delta int32 0 >= 0
engine.cef.input.touchpad_navigation_enabled bool true
engine.cef.input.touchpad_navigation_min_delta float 320.0 > 0
engine.cef.input.touchpad_navigation_max_vertical_ratio float 0.5 > 0
engine.webkit.gsk_renderer string auto auto, opengl, vulkan, cairo (WebKit fallback only)
engine.webkit.disable_dmabuf_renderer bool false WebKit fallback only
engine.webkit.force_compositing_mode bool false WebKit fallback only
engine.webkit.disable_compositing_mode bool false WebKit fallback only
engine.webkit.disable_mipmaps bool false WebKit fallback only
engine.webkit.prefer_gl bool false WebKit fallback only
engine.webkit.draw_compositing_indicators bool false WebKit fallback only
engine.webkit.show_fps bool false WebKit fallback only
engine.webkit.sample_memory bool false WebKit fallback only
engine.webkit.debug_frames bool false WebKit fallback only
engine.webkit.force_vsync bool false WebKit fallback GStreamer only
engine.webkit.gl_rendering_mode string auto auto, gles2, gl3, none (WebKit fallback only)
engine.webkit.gstreamer_debug_level int 0 0-5 (WebKit fallback only)
default_ui_scale float 1.0 > 0
default_webpage_zoom float 1.2 > 0
sidebar_width int 320 0 or 280-380
workspace.new_pane_url string about:blank
workspace.switch_to_tab_on_move bool true
workspace.tab_bar_position string bottom top, bottom
workspace.hide_tab_bar_when_single_tab bool true
workspace.pane_mode.activation_shortcut string ctrl+p
workspace.pane_mode.timeout_ms int 3000
workspace.pane_mode.actions.<action> []string see defaults pane mode key mappings
workspace.tab_mode.activation_shortcut string ctrl+t
workspace.tab_mode.timeout_ms int 3000
workspace.tab_mode.actions.<action> []string see defaults tab mode key mappings
workspace.vim_mode.activation_shortcut string ctrl+y
workspace.vim_mode.timeout_ms int 0 >= 0
workspace.vim_mode.sequence_timeout_ms int 500 >= 0; timeout for ambiguous multi-key Vim sequences
workspace.vim_mode.preload_accessibility bool false Pre-enable browser accessibility when a WebView is shown
workspace.vim_mode.actions.<action> object see defaults vim mode action object with keys ([]string) and desc (string)
workspace.resize_mode.activation_shortcut string ctrl+n
workspace.resize_mode.timeout_ms int 3000
workspace.resize_mode.actions.<action> []string see defaults resize mode key mappings
workspace.resize_mode.step_percent float 5.0
workspace.resize_mode.min_pane_percent float 10.0
workspace.shortcuts.actions map see defaults global shortcut action mappings
workspace.shortcuts.actions.toggle_floating_pane.keys []string alt+f key strings
workspace.shortcuts.actions.toggle_floating_pane.desc string Toggle floating pane
workspace.floating_pane.width_pct float 0.82 (0,1]
workspace.floating_pane.height_pct float 0.72 (0,1]
workspace.floating_pane.profiles.<name>.keys []string at least one key
workspace.floating_pane.profiles.<name>.url string required URL
workspace.floating_pane.profiles.<name>.desc string
workspace.external_links.behavior string windowed windowed, tabbed, split, stacked
workspace.external_links.placement string right right, left, top, bottom (used only with split)
workspace.browsing_contexts.behavior string split split, stacked, tabbed, windowed
workspace.browsing_contexts.placement string right right, left, top, bottom
workspace.browsing_contexts.open_in_new_pane bool true
workspace.browsing_contexts.follow_pane_context bool true
workspace.browsing_contexts.blank_target_behavior string stacked split, stacked, tabbed
workspace.browsing_contexts.enable_smart_detection bool true
workspace.browsing_contexts.oauth_auto_close bool true
workspace.styling.border_width int 1
workspace.styling.border_color string @theme_selected_bg_color
workspace.styling.mode_border_width int 4
workspace.styling.pane_mode_color string #4A90E2
workspace.styling.tab_mode_color string #FFA500
workspace.styling.session_mode_color string #9B59B6
workspace.styling.resize_mode_color string #00D4AA
workspace.styling.mode_indicator_toaster_enabled bool true
workspace.styling.transition_duration int 120
session.auto_restore bool false
session.snapshot_interval_ms int 5000
session.max_exited_sessions int 50
session.max_exited_session_age_days int 7
session.session_mode.activation_shortcut string ctrl+o
session.session_mode.timeout_ms int 3000
session.session_mode.actions.<action> []string see defaults session mode key mappings
media.hardware_decoding string auto auto, force, disable
media.prefer_av1 bool false
media.show_diagnostics bool false
engine.cef.cef_dir string `` CEF runtime directory
engine.webkit.prefix string `` WebKitGTK fallback runtime prefix
clipboard.auto_copy_on_selection bool true
content_filtering.enabled bool true
content_filtering.auto_update bool true
update.enable_on_startup bool true
update.auto_download bool false
update.notify_on_new_settings bool true
engine.profile string default default, lite, balanced, max, custom
engine.webkit.skia_cpu_painting_threads int 0 >= 0 (WebKit fallback custom profile only)
engine.webkit.skia_gpu_painting_threads int -1 >= -1 (WebKit fallback custom profile only)
engine.webkit.skia_enable_cpu_rendering bool false WebKit fallback custom profile only
engine.webkit.web_process_memory_limit_mb int 0 >= 0 (WebKit fallback custom profile only)
engine.webkit.web_process_memory_poll_interval_sec float 0 >= 0 (WebKit fallback custom profile only)
engine.webkit.web_process_memory_conservative_threshold float 0 0-1 (WebKit fallback custom profile only)
engine.webkit.web_process_memory_strict_threshold float 0 0-1 (WebKit fallback custom profile only)
engine.webkit.network_process_memory_limit_mb int 0 >= 0 (WebKit fallback custom profile only)
engine.webkit.network_process_memory_poll_interval_sec float 0 >= 0 (WebKit fallback custom profile only)
engine.webkit.network_process_memory_conservative_threshold float 0 0-1 (WebKit fallback custom profile only)
engine.webkit.network_process_memory_strict_threshold float 0 0-1 (WebKit fallback custom profile only)
engine.pool_prewarm_count int 4 >= 0
engine.zoom_cache_size int 256 >= 0
downloads.path string ``

Touchpad vertical scroll speed is controlled by engine.cef.input.scroll_precise_multiplier and the additional axis-specific engine.cef.input.scroll_vertical_multiplier. engine.cef.input.touchpad_navigation_max_vertical_ratio only filters horizontal back/forward swipe recognition; it does not tune vertical scroll speed.

engine.cef.input.touchpad_navigation_min_delta is measured in raw GTK touchpad surface units. The default 320.0 matches WebKit-style commit distance to reduce accidental back/forward navigation and can be overridden in config.toml.

CEF is the default engine. WebKitGTK is a fallback selected with engine.type = "webkit"; engine.webkit.* keys are WebKit-specific.

Legacy key migration:

Legacy key Current key
privacy.cookie_policy engine.cookie_policy
privacy.itp_enabled engine.webkit.itp_enabled
rendering.disable_dmabuf_renderer engine.webkit.disable_dmabuf_renderer
rendering.force_compositing_mode engine.webkit.force_compositing_mode
rendering.disable_compositing_mode engine.webkit.disable_compositing_mode
rendering.gsk_renderer engine.webkit.gsk_renderer
rendering.disable_mipmaps engine.webkit.disable_mipmaps
rendering.prefer_gl engine.webkit.prefer_gl
rendering.draw_compositing_indicators engine.webkit.draw_compositing_indicators
rendering.show_fps engine.webkit.show_fps
rendering.sample_memory engine.webkit.sample_memory
rendering.debug_frames engine.webkit.debug_frames
media.force_vsync engine.webkit.force_vsync
media.gl_rendering_mode engine.webkit.gl_rendering_mode
media.gstreamer_debug_level engine.webkit.gstreamer_debug_level
runtime.prefix engine.webkit.prefix
performance.* engine.profile, engine.pool_prewarm_count, engine.zoom_cache_size, or matching engine.webkit.* custom tuning keys
rendering.mode Dropped; no current setting