v0.4.0 6203a22

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

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