> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/rtr46/meikipop/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> Complete reference for all meikipop configuration options available in config.ini and the Settings dialog

Meikipop stores all settings in `config.ini` in the application directory. You can edit this file directly or use the Settings dialog (right-click tray icon → Settings).

## Configuration file structure

The `config.ini` file is organized into two main sections:

```ini theme={null}
[Settings]
# Core functionality settings

[Theme]
# Appearance and display settings
```

## Settings section

These options control meikipop's core functionality and behavior.

### hotkey

<ParamField path="hotkey" type="string" default="shift">
  The keyboard shortcut that triggers dictionary lookups.

  **Available options:**

  * `shift`
  * `ctrl`
  * `alt`
  * `ctrl+shift`
  * `ctrl+alt`
  * `shift+alt`
  * `ctrl+shift+alt`

  <Note>
    Changes take effect after saving settings. No restart required.
  </Note>
</ParamField>

### scan\_region

<ParamField path="scan_region" type="string" default="region">
  Determines whether meikipop scans a selected region or the entire screen.

  **Options:**

  * `region`: Scan only a user-selected area (more efficient)
  * `fullscreen`: Scan the entire screen

  See the [region selection guide](/user-guide/region-selection) for details.
</ParamField>

### max\_lookup\_length

<ParamField path="max_lookup_length" type="integer" default="25">
  Maximum number of characters to process when looking up words.

  **Range:** 5-100

  Higher values allow matching longer phrases but may impact performance slightly.

  <Tip>
    The default value of 25 works well for most use cases, including compound words and common phrases.
  </Tip>
</ParamField>

### ocr\_provider

<ParamField path="ocr_provider" type="string" default="Google Lens (remote)">
  The OCR engine used to extract Japanese text from screenshots.

  **Built-in options:**

  * `Google Lens (remote)`: Cloud-based, highly accurate (default)
  * `owocr`: Local OCR server (requires separate installation)
  * `MeikiOCR`: Alternative OCR backend
  * `ScreenAI`: Experimental provider
  * `Dummy`: Testing provider (returns mock data)

  <Info>
    You can develop custom OCR providers. See the [Custom OCR Provider guide](/development/creating-custom-provider).
  </Info>
</ParamField>

### glens\_low\_bandwidth

<ParamField path="glens_low_bandwidth" type="boolean" default="false">
  Compresses screenshots before sending them to Google Lens.

  **When to enable:**

  * Slow internet connection
  * High latency to Google servers
  * Mobile/metered connections

  **Trade-offs:**

  * ✅ Significantly faster OCR on slow connections
  * ✅ Reduced bandwidth usage
  * ⚠️ Slightly reduced OCR accuracy
  * ⚠️ Increased CPU usage for compression

  <Note>
    Only available when OCR provider is set to "Google Lens (remote)".
  </Note>
</ParamField>

### auto\_scan\_mode

<ParamField path="auto_scan_mode" type="boolean" default="false">
  Continuously scans the screen region to provide instant lookups without pressing the hotkey.

  See the [auto scan mode guide](/user-guide/auto-scan-mode) for detailed information.

  <Warning>
    Auto scan mode increases system load and may impact performance on slower machines.
  </Warning>
</ParamField>

### auto\_scan\_mode\_lookups\_without\_hotkey

<ParamField path="auto_scan_mode_lookups_without_hotkey" type="boolean" default="true">
  Shows the popup automatically in auto scan mode without requiring the hotkey to be pressed.

  **When disabled:**

  * Screen is continuously scanned and cached
  * Popup only appears when you press the hotkey
  * Provides faster lookups than manual mode with similar UX

  <Tip>
    Disable this if you want the performance benefits of auto scan but prefer the traditional press-to-show behavior.
  </Tip>
</ParamField>

### auto\_scan\_interval\_seconds

<ParamField path="auto_scan_interval_seconds" type="float" default="0.0">
  Minimum time (in seconds) between automatic scans.

  **Range:** 0.0-60.0

  Acts as a cooldown to reduce system load:

  * `0.0`: Scan as frequently as possible (highest load, lowest latency)
  * `0.5`: Scan every half second (balanced)
  * `2.0`: Scan every 2 seconds (lower load, higher latency)

  <Tip>
    Increase this value if auto scan mode causes performance issues.
  </Tip>
</ParamField>

### auto\_scan\_on\_mouse\_move

<ParamField path="auto_scan_on_mouse_move" type="boolean" default="false">
  Only triggers automatic scans when the mouse cursor moves.

  **Benefits:**

  * Reduces unnecessary scans when cursor is stationary
  * Lowers system load
  * Extends battery life on laptops

  **Drawback:**

  * Slight delay when you first move the mouse after it's been still

  <Note>
    Only takes effect when auto\_scan\_mode is enabled.
  </Note>
</ParamField>

### magpie\_compatibility

<ParamField path="magpie_compatibility" type="boolean" default="false">
  Applies coordinate transformations for compatibility with Magpie game scaler.

  **Platform:** Windows only

  Enable this if you use Magpie to upscale games and notice the popup appearing in the wrong location.

  <Info>
    Magpie is a Windows tool that applies real-time upscaling to game windows.
  </Info>
</ParamField>

## Theme section

These options control the visual appearance of the dictionary popup.

### theme\_name

<ParamField path="theme_name" type="string" default="Nazeka">
  The name of the active color theme preset.

  **Built-in themes:**

  * `Nazeka`: Dark gray with cyan and green highlights (default)
  * `Celestial Indigo`: Deep purple with gold accents
  * `Neutral Slate`: Medium gray with muted green
  * `Academic`: Light background with dark text (high contrast)
  * `Custom`: User-defined colors

  See [themes and appearance](/user-guide/themes-and-appearance) for visual examples.
</ParamField>

### Color settings

<ParamField path="color_background" type="hex color" default="#2E2E2E">
  Background color of the popup window.
</ParamField>

<ParamField path="color_foreground" type="hex color" default="#F0F0F0">
  Default text color for definitions and body text.
</ParamField>

<ParamField path="color_highlight_word" type="hex color" default="#88D8FF">
  Color for the main word (kanji/kana form).
</ParamField>

<ParamField path="color_highlight_reading" type="hex color" default="#90EE90">
  Color for the reading/furigana text.
</ParamField>

### background\_opacity

<ParamField path="background_opacity" type="integer" default="245">
  Opacity of the popup background.

  **Range:** 50-255

  * `255`: Fully opaque
  * `200`: Slightly transparent
  * `50`: Very transparent

  <Tip>
    Slight transparency (230-245) can make the popup feel lighter while maintaining readability.
  </Tip>
</ParamField>

### Typography settings

<ParamField path="font_family" type="string" default="">
  Font family for popup text. Empty string uses the system default.

  Can be any font installed on your system. Japanese fonts recommended for best results:

  * Windows: `Yu Gothic`, `Meiryo`, `MS Gothic`
  * macOS: `Hiragino Sans`, `Hiragino Kaku Gothic Pro`
  * Linux: `Noto Sans CJK`, `IPAGothic`
</ParamField>

<ParamField path="font_size_header" type="integer" default="18">
  Font size in pixels for the word and reading (header).

  **Range:** 8-72
</ParamField>

<ParamField path="font_size_definitions" type="integer" default="14">
  Font size in pixels for definitions and body text.

  **Range:** 8-72
</ParamField>

### Display behavior

<ParamField path="popup_position_mode" type="string" default="flip_vertically">
  Controls how the popup is positioned relative to the cursor.

  **Options:**

  * `flip_vertically`: Flip above cursor if no space below (recommended)
  * `flip_horizontally`: Flip to left of cursor if no space right
  * `flip_both`: Flip both vertically and horizontally as needed
  * `visual_novel_mode`: Smart positioning optimized for reading text in thirds

  <Info>
    Visual Novel Mode uses a sophisticated algorithm to position the popup in the least obtrusive location based on cursor position in screen thirds.
  </Info>
</ParamField>

<ParamField path="compact_mode" type="boolean" default="true">
  Displays multiple definitions on a single line separated by semicolons.

  **When enabled:**

  ```
  食べる [たべる] to eat; to live on; to make a living
  ```

  **When disabled:**

  ```
  食べる [たべる]
  (1) to eat
  (2) to live on
  (3) to make a living
  ```
</ParamField>

### Content visibility toggles

<ParamField path="show_all_glosses" type="boolean" default="false">
  Shows all definition glosses for each sense instead of just the first.

  **Example with multiple glosses per sense:**

  * Enabled: `to eat, to consume, to devour`
  * Disabled: `to eat`
</ParamField>

<ParamField path="show_deconjugation" type="boolean" default="false">
  Displays the deconjugation process for inflected verbs and adjectives.

  **Example:**

  ```
  食べた [たべた] (食べる ← past tense)
  ```
</ParamField>

<ParamField path="show_pos" type="boolean" default="false">
  Shows part-of-speech tags in definitions.

  **Example:**

  ```
  (1) (v1, vt) to eat; (2) (exp) to make a living
  ```
</ParamField>

<ParamField path="show_tags" type="boolean" default="false">
  Displays dictionary tags (frequency, level, type) in the header.

  **Example:**

  ```
  食べる [たべる] [common, jlpt-n5, v1, vt]
  ```
</ParamField>

<ParamField path="show_kanji" type="boolean" default="true">
  Includes kanji entries in lookup results.

  When disabled, only vocabulary entries are shown.
</ParamField>

<ParamField path="show_examples" type="boolean" default="false">
  Shows example words containing the kanji (only applies to kanji entries).

  **Example:**

  ```
  食 [ショク, ジキ, く.う]
  食, eat, food
  食事 [しょくじ] meal; 食べ物 [たべもの] food
  ```

  <Note>
    Only visible when show\_kanji is enabled.
  </Note>
</ParamField>

<ParamField path="show_components" type="boolean" default="false">
  Displays radical components that make up the kanji.

  **Example:**

  ```
  食 [ショク, ジキ]
  食, eat, food
  人 person, 良 good
  ```

  <Note>
    Only visible when show\_kanji is enabled.
  </Note>
</ParamField>

## Accessing the Settings dialog

<Steps>
  <Step title="Open the settings">
    Right-click the meikipop icon in your system tray and select **Settings**.
  </Step>

  <Step title="Navigate the tabs">
    The Settings dialog is organized into three tabs:

    * **General**: Core settings, auto scan, popup behavior
    * **Popup Content**: What information to display
    * **Popup Appearance**: Colors, fonts, theme presets
  </Step>

  <Step title="Make your changes">
    Adjust settings as desired. Most controls include tooltips with additional information.
  </Step>

  <Step title="Save your changes">
    Click **Save** to apply changes immediately. Settings are written to `config.ini`.
  </Step>
</Steps>

<Tip>
  Changes take effect immediately without restarting meikipop. You can test different settings and see results in real-time.
</Tip>

## Configuration tips

<AccordionGroup>
  <Accordion title="Optimizing for speed">
    * Enable auto scan mode
    * Enable Google Lens compression on slow connections
    * Disable show\_kanji if you only need vocabulary
    * Use compact mode
    * Reduce max\_lookup\_length to 15-20
  </Accordion>

  <Accordion title="Maximizing information">
    * Enable show\_all\_glosses
    * Enable show\_deconjugation
    * Enable show\_pos and show\_tags
    * Enable show\_examples and show\_components for kanji
    * Disable compact mode
  </Accordion>

  <Accordion title="Reducing system load">
    * Disable auto scan mode
    * Use region mode instead of fullscreen
    * If using auto scan: increase auto\_scan\_interval\_seconds
    * If using auto scan: enable auto\_scan\_on\_mouse\_move
  </Accordion>

  <Accordion title="Best readability">
    * Choose a high-contrast theme (Academic)
    * Increase font sizes (header: 20+, definitions: 16+)
    * Use a clear Japanese font
    * Set background\_opacity to 245-255
    * Enable compact\_mode for concise information
  </Accordion>
</AccordionGroup>

## Manual config.ini editing

You can edit `config.ini` directly with any text editor:

```ini theme={null}
[Settings]
hotkey = shift
scan_region = region
max_lookup_length = 25
glens_low_bandwidth = false
ocr_provider = Google Lens (remote)
auto_scan_mode = false
auto_scan_mode_lookups_without_hotkey = true
auto_scan_interval_seconds = 0.0
auto_scan_on_mouse_move = false
magpie_compatibility = false

[Theme]
theme_name = Nazeka
font_family = 
font_size_definitions = 14
font_size_header = 18
compact_mode = true
show_all_glosses = false
show_deconjugation = false
show_pos = false
show_tags = false
show_kanji = true
show_examples = false
show_components = false
color_background = #2E2E2E
color_foreground = #F0F0F0
color_highlight_word = #88D8FF
color_highlight_reading = #90EE90
background_opacity = 245
popup_position_mode = flip_vertically
```

<Warning>
  Manual edits require restarting meikipop to take effect. Invalid values may cause the application to use defaults.
</Warning>
