File size: 4,798 Bytes
15ccd87
 
 
 
 
 
725264a
15ccd87
a33486a
 
 
725264a
a33486a
 
15ccd87
a33486a
15ccd87
a33486a
15ccd87
a33486a
15ccd87
a33486a
 
 
15ccd87
a33486a
15ccd87
a33486a
15ccd87
a33486a
15ccd87
a33486a
 
 
 
 
 
 
 
15ccd87
a33486a
15ccd87
 
 
a33486a
15ccd87
 
 
 
 
725264a
 
 
a33486a
15ccd87
725264a
 
 
 
 
 
 
a33486a
15ccd87
399a0cb
 
 
a33486a
725264a
 
399a0cb
15ccd87
a33486a
15ccd87
399a0cb
 
725264a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a33486a
15ccd87
a33486a
15ccd87
a33486a
 
 
 
15ccd87
a33486a
15ccd87
a33486a
 
 
 
 
 
15ccd87
a33486a
15ccd87
a33486a
15ccd87
 
 
 
 
 
 
 
 
 
 
 
a33486a
399a0cb
a33486a
15ccd87
a33486a
15ccd87
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
---
title: Settings Reference
---

# Settings Reference

Koharu's Settings screen currently exposes six main areas:

- `Appearance`
- `Engines`
- `API Keys`
- `Keybinds`
- `Runtime`
- `About`

This page documents the current settings surface as implemented in the app.

## Appearance

The `Appearance` tab currently includes:

- theme: `Light`, `Dark`, or `System`
- UI language from the bundled translation list
- `Rendering Font`, which is used when Koharu renders translated text onto the page

Theme, language, and rendering-font changes apply immediately in the frontend.

## Engines

The `Engines` tab selects the backend used for each pipeline stage:

- `Detector`
- `Bubble Detector`
- `Font Detector`
- `Segmenter`
- `OCR`
- `Translator`
- `Inpainter`
- `Renderer`

These values are stored in the shared app config and save immediately when changed.

## API Keys

The `API Keys` tab currently covers these built-in providers:

- `OpenAI`
- `Gemini`
- `Claude`
- `DeepSeek`
- `DeepL`
- `Google Cloud Translation`
- `Caiyun`
- `OpenAI Compatible`

Each provider appears as an accordion with a status dot:

- green — ready (key saved and discovery succeeded)
- amber — missing required configuration (API key or, for `OpenAI Compatible`, a base URL)
- red — discovery failed against the configured endpoint
- grey — no configuration yet

Current behavior:

- provider API keys are not written to `config.toml`
- on macOS and Windows, provider API keys are stored through the system keyring
- on Linux, provider API keys are stored in Koharu's local filesystem credential store under the app data directory with owner-only file permissions
- provider base URLs are stored in the app config
- `OpenAI Compatible` requires a custom `Base URL`; models are discovered dynamically by calling `GET /v1/models` against that URL
- machine-translation providers (`DeepL`, `Google Cloud Translation`, `Caiyun`) only need an API key; `Caiyun` supports a limited set of target languages
- clearing a key removes it from credential storage

The API response intentionally redacts saved keys rather than returning the raw secret.

The Linux filesystem credential store relies on local filesystem permissions rather than OS-level encryption.

## Keybinds

The `Keybinds` tab lets you rebind tool-switch and brush-size shortcuts plus the undo and redo bindings.

Current behavior:

- defaults are `V`/`M`/`B`/`E`/`R` for the Select / Block / Brush / Eraser / Repair Brush tools
- defaults are `[` and `]` for the brush size step
- defaults are `Ctrl + Z` and `Ctrl + Shift + Z` (`Cmd + Z` and `Cmd + Shift + Z` on macOS) for undo and redo
- the canvas zoom (`Ctrl` + wheel), pan (`Ctrl` + drag), select-all (`Ctrl + A`), and the legacy `Ctrl + Y` redo fallback are not rebindable
- conflicts are highlighted in the editor; you can reset to defaults from the same screen

Keybind preferences are stored in the frontend preferences layer, not in `config.toml`.

For the full default list, see [Keyboard Shortcuts](keyboard-shortcuts.md).

## Runtime

The `Runtime` tab groups restart-required settings that affect the shared local runtime:

- `Data Path`
- `HTTP Connect Timeout`
- `HTTP Read Timeout`
- `HTTP Max Retries`

Current behavior:

- `Data Path` controls where Koharu stores runtime packages, downloaded models, page manifests, and image blobs
- `HTTP Connect Timeout` sets how long Koharu waits while establishing HTTP connections
- `HTTP Read Timeout` sets how long Koharu waits while reading HTTP responses
- `HTTP Max Retries` controls automatic retries for transient HTTP failures
- these HTTP values are used by the shared runtime HTTP client for downloads and provider-backed requests
- applying changes saves the config and restarts the desktop app because the runtime client is built at startup

## About

The `About` tab currently shows:

- the current app version
- whether a newer GitHub release exists
- the author link
- the repository link

In packaged app mode, the version check compares the local app version against the latest GitHub release for `mayocream/koharu`.

## Persistence model

The current settings behavior is split across storage layers:

- `config.toml` stores shared app config such as `data`, `http`, `pipeline`, and provider `baseUrl`
- provider API keys are stored separately from `config.toml` through the platform credential store described above
- theme, language, and rendering-font preferences are stored in the frontend preferences layer

That means clearing frontend preferences is not the same as clearing saved provider API keys or shared runtime config.

## Related pages

- [Use OpenAI-Compatible APIs](../how-to/use-openai-compatible-api.md)
- [Models and Providers](../explanation/models-and-providers.md)
- [HTTP API Reference](http-api.md)