v0.6.0 5c50dd3

settings.go RawHistoryFolder

1package webkit
2
3// Config holds initialization settings for the WebKit-based browser components.
4// This will map to WebKit2GTK and GTK settings in the real implementation.
5type Config struct {
6	// InitialURL is the first URL to load when creating a WebView.
7	InitialURL string
8
9	// UserAgent allows overriding the default user agent string.
10	UserAgent string
11
12	// EnableDeveloperExtras enables devtools/inspector.
13	EnableDeveloperExtras bool
14
15	// ZoomDefault sets an initial zoom factor (1.0 = 100%).
16	ZoomDefault float64
17
18	// DataDir is the base directory for persistent website data (cookies, localStorage, etc.).
19	DataDir string
20	// CacheDir is the base directory for cache data.
21	CacheDir string
22
23	// Fonts apply to pages that don't specify fonts (browser defaults).
24	DefaultSansFont      string
25	DefaultSerifFont     string
26	DefaultMonospaceFont string
27	DefaultFontSize      int // CSS px (~points)
28
29	// Rendering controls GPU/CPU selection and debug options
30	Rendering RenderingConfig
31
32	// VideoAcceleration controls video hardware acceleration settings
33	VideoAcceleration VideoAccelerationConfig
34
35	// Memory controls memory optimization settings
36	Memory MemoryConfig
37
38	// CodecPreferences for media playback
39	CodecPreferences CodecPreferencesConfig
40}
41
42// CodecPreferencesConfig holds codec preferences for WebKit media playback
43type CodecPreferencesConfig struct {
44	PreferredCodecs           []string
45	BlockedCodecs             []string
46	ForceAV1                  bool
47	CustomUserAgent           string
48	DisableTwitchCodecControl bool
49}
50
51// RenderingConfig controls hardware acceleration preferences.
52// Mode accepts: "auto" (default), "gpu", or "cpu".
53// DebugGPU enables compositing indicators if supported.
54type RenderingConfig struct {
55	Mode     string
56	DebugGPU bool
57}
58
59// VideoAccelerationConfig controls video hardware acceleration settings.
60type VideoAccelerationConfig struct {
61	EnableVAAPI      bool
62	AutoDetectGPU    bool
63	VAAPIDriverName  string
64	EnableAllDrivers bool
65	LegacyVAAPI      bool
66}
67
68// CacheModel represents WebKit cache model options for memory optimization.
69type CacheModel string
70
71const (
72	CacheModelDocumentViewer    CacheModel = "document_viewer"     // Minimal caching, lowest memory
73	CacheModelWebBrowser        CacheModel = "web_browser"         // Default, balanced caching
74	CacheModelPrimaryWebBrowser CacheModel = "primary_web_browser" // Maximum caching, highest memory
75)
76
77// MemoryConfig controls memory optimization settings.
78type MemoryConfig struct {
79	// MemoryLimitMB sets the maximum memory limit per WebView in MB (0 = unlimited)
80	MemoryLimitMB int
81
82	// ConservativeThreshold triggers early memory cleanup (0.0-1.0, default 0.33)
83	ConservativeThreshold float64
84
85	// StrictThreshold triggers aggressive memory cleanup (0.0-1.0, default 0.5)
86	StrictThreshold float64
87
88	// KillThreshold kills processes at this memory usage (0.0-1.0, 0 = disabled)
89	KillThreshold float64
90
91	// PollIntervalSeconds sets how often to check memory usage (default 2.0)
92	PollIntervalSeconds float64
93
94	// CacheModel determines caching strategy (default: web_browser)
95	CacheModel CacheModel
96
97	// EnablePageCache enables back/forward page caching (default: true)
98	EnablePageCache bool
99
100	// EnableOfflineAppCache enables offline application caching (default: true)
101	EnableOfflineAppCache bool
102
103	// ProcessRecycleThreshold recycles WebView after N page loads (0 = disabled)
104	ProcessRecycleThreshold int
105
106	// EnableGCInterval enables periodic JS garbage collection in seconds (0 = disabled)
107	EnableGCInterval int
108
109	// EnableMemoryMonitoring logs memory usage and pressure events
110	EnableMemoryMonitoring bool
111}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close