detached c319341

docs(config): add downloads section to schema provider

commit
c31934160f22a266ae2ec2d30cf10a13c30b8ee0
author
brice · · 2026-01-07 09:57 UTC
parent
d3634b3
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
2 files · +18 -0
M internal/cli/styles/config_schema.go +2 -0
@@ -47,9 +47,11 @@ func (r *ConfigSchemaRenderer) Render(keys []entity.ConfigKeyInfo) string {
4747 "Session",
4848 "Omnibox",
4949 "Content Filtering",
50+ "Clipboard",
5051 "Rendering",
5152 "Media",
5253 "Update",
54+ "Downloads",
5355 "Debug",
5456 "Performance",
5557 "Runtime",
@@ -47,9 +47,11 @@ func (r *ConfigSchemaRenderer) Render(keys []entity.ConfigKeyInfo) string {
47 "Session",47 "Session",
48 "Omnibox",48 "Omnibox",
49 "Content Filtering",49 "Content Filtering",
50+ "Clipboard",
50 "Rendering",51 "Rendering",
51 "Media",52 "Media",
52 "Update",53 "Update",
54+ "Downloads",
53 "Debug",55 "Debug",
54 "Performance",56 "Performance",
55 "Runtime",57 "Runtime",
M internal/infrastructure/config/schema_provider.go +16 -0
@@ -25,6 +25,7 @@ const (
2525 SectionRuntime = "Runtime"
2626 SectionDatabase = "Database"
2727 SectionSearch = "Search"
28+ SectionDownloads = "Downloads"
2829 )
2930
3031 // SchemaProvider implements port.ConfigSchemaProvider.
@@ -92,6 +93,9 @@ func (p *SchemaProvider) GetSchema() []entity.ConfigKeyInfo {
9293 // Database section
9394 keys = append(keys, p.getDatabaseKeys()...)
9495
96+ // Downloads section
97+ keys = append(keys, p.getDownloadsKeys(defaults)...)
98+
9599 return keys
96100 }
97101
@@ -1040,3 +1044,15 @@ func (*SchemaProvider) getDatabaseKeys() []entity.ConfigKeyInfo {
10401044 },
10411045 }
10421046 }
1047+
1048+func (*SchemaProvider) getDownloadsKeys(_ *Config) []entity.ConfigKeyInfo {
1049+ return []entity.ConfigKeyInfo{
1050+ {
1051+ Key: "downloads.path",
1052+ Type: "string",
1053+ Default: "(empty = $XDG_DOWNLOAD_DIR or ~/Downloads)",
1054+ Description: "Directory where downloads are saved",
1055+ Section: SectionDownloads,
1056+ },
1057+ }
1058+}
@@ -25,6 +25,7 @@ const (
25 SectionRuntime = "Runtime"25 SectionRuntime = "Runtime"
26 SectionDatabase = "Database"26 SectionDatabase = "Database"
27 SectionSearch = "Search"27 SectionSearch = "Search"
28+ SectionDownloads = "Downloads"
28 )29 )
29 30
30 // SchemaProvider implements port.ConfigSchemaProvider.31 // SchemaProvider implements port.ConfigSchemaProvider.
@@ -92,6 +93,9 @@ func (p *SchemaProvider) GetSchema() []entity.ConfigKeyInfo {
92 // Database section93 // Database section
93 keys = append(keys, p.getDatabaseKeys()...)94 keys = append(keys, p.getDatabaseKeys()...)
94 95
96+ // Downloads section
97+ keys = append(keys, p.getDownloadsKeys(defaults)...)
98+
95 return keys99 return keys
96 }100 }
97 101
@@ -1040,3 +1044,15 @@ func (*SchemaProvider) getDatabaseKeys() []entity.ConfigKeyInfo {
1040 },1044 },
1041 }1045 }
1042 }1046 }
1047+
1048+func (*SchemaProvider) getDownloadsKeys(_ *Config) []entity.ConfigKeyInfo {
1049+ return []entity.ConfigKeyInfo{
1050+ {
1051+ Key: "downloads.path",
1052+ Type: "string",
1053+ Default: "(empty = $XDG_DOWNLOAD_DIR or ~/Downloads)",
1054+ Description: "Directory where downloads are saved",
1055+ Section: SectionDownloads,
1056+ },
1057+ }
1058+}

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