v0.5.0 f906adb

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
39// RenderingConfig controls hardware acceleration preferences.
40// Mode accepts: "auto" (default), "gpu", or "cpu".
41// DebugGPU enables compositing indicators if supported.
42type RenderingConfig struct {
43	Mode     string
44	DebugGPU bool
45}
46
47// VideoAccelerationConfig controls video hardware acceleration settings.
48type VideoAccelerationConfig struct {
49	EnableVAAPI      bool
50	AutoDetectGPU    bool
51	VAAPIDriverName  string
52	EnableAllDrivers bool
53	LegacyVAAPI      bool
54}
55
56// CacheModel represents WebKit cache model options for memory optimization.
57type CacheModel string
58
59const (
60	CacheModelDocumentViewer    CacheModel = "document_viewer"     // Minimal caching, lowest memory
61	CacheModelWebBrowser        CacheModel = "web_browser"         // Default, balanced caching
62	CacheModelPrimaryWebBrowser CacheModel = "primary_web_browser" // Maximum caching, highest memory
63)
64
65// MemoryConfig controls memory optimization settings.
66type MemoryConfig struct {
67	// MemoryLimitMB sets the maximum memory limit per WebView in MB (0 = unlimited)
68	MemoryLimitMB int
69
70	// ConservativeThreshold triggers early memory cleanup (0.0-1.0, default 0.33)
71	ConservativeThreshold float64
72
73	// StrictThreshold triggers aggressive memory cleanup (0.0-1.0, default 0.5)
74	StrictThreshold float64
75
76	// KillThreshold kills processes at this memory usage (0.0-1.0, 0 = disabled)
77	KillThreshold float64
78
79	// PollIntervalSeconds sets how often to check memory usage (default 2.0)
80	PollIntervalSeconds float64
81
82	// CacheModel determines caching strategy (default: web_browser)
83	CacheModel CacheModel
84
85	// EnablePageCache enables back/forward page caching (default: true)
86	EnablePageCache bool
87
88	// EnableOfflineAppCache enables offline application caching (default: true)
89	EnableOfflineAppCache bool
90
91	// ProcessRecycleThreshold recycles WebView after N page loads (0 = disabled)
92	ProcessRecycleThreshold int
93
94	// EnableGCInterval enables periodic JS garbage collection in seconds (0 = disabled)
95	EnableGCInterval int
96
97	// EnableMemoryMonitoring logs memory usage and pressure events
98	EnableMemoryMonitoring bool
99}

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