Skip to main content
This guide walks you through setting up a development environment for meikipop on Windows, Linux, and macOS.

Prerequisites

Before you begin, make sure you have the following installed:

Clone the repository

Get the latest source code from GitHub:
Alternatively, download the source archive:
Using a virtual environment keeps your dependencies isolated:
You should see (venv) in your terminal prompt when the environment is active.

Install dependencies

Install all required Python packages from requirements.txt:

Understanding the dependencies

Here are the key dependencies (from requirements.txt):
Platform-specific dependencies are automatically installed only on the relevant operating system.

Build the dictionary

Meikipop requires a preprocessed dictionary file for fast lookups. You have two options:

Option 1: Download prebuilt dictionary (faster)

Download jmdict_enhanced.pkl from the latest release:

Option 2: Build from source (requires lxml)

Build the dictionary yourself:

Verify your setup

Ensure everything is configured correctly:

Development workflow

Running from source

Always run meikipop as a module:
Do not run python src/main.py directly. This breaks relative imports within the application.

Configuration file

Settings are stored in config.ini in the project root:
Changes via the GUI are saved automatically. You can also edit this file directly.

Logging

Meikipop outputs debug information to the console. To see more detailed logs, modify src/utils/logger.py.

Code style

The codebase generally follows PEP 8. Key conventions:
  • Snake_case for functions and variables
  • PascalCase for classes
  • Module-level constants in UPPER_CASE
  • Descriptive variable names (e.g., hit_scan_result not hsr)

Troubleshooting

You’re running the script incorrectly. Always use:
Not:
Dependencies aren’t installed. Run:
The jmdict_enhanced.pkl file is missing from the data/ directory. See Build the dictionary section.
You’re either:
  • Not running X11 (check with echo $XDG_SESSION_TYPE)
  • Missing the DISPLAY environment variable
  • Running without a graphical session
Meikipop requires a graphical X11 session to function.
Make sure you’ve granted Input Monitoring permissions to your terminal app in System Preferences → Security & Privacy → Privacy → Input Monitoring.You may need to restart the terminal after granting permissions.
On Windows, the keyboard library sometimes requires administrator privileges. Try running your terminal as administrator.

Next steps

Now that your environment is set up, you can:
Join the discussion on GitHub Issues if you need help or want to propose changes to meikipop.