Logo   Home Table of Contents    News  Dev Blogs  Gallery  Timeline  Legend  Tags 
Join us on... 
Banner

Current: Month Day, Year

9.3.5 MakeHuman2 Configuration File

MakeHuman2 uses JSON-based configuration files to store application settings and preferences. There are two types of configuration files:
  1. makehuman2_default.conf: The default system configuration shipped with MakeHuman2
  2. makehuman2.conf: The user's personal configuration file
These files control application behavior, UI preferences, data locations, API settings, and keyboard shortcuts.

File Locations and loading order

System Default Configuration

The default configuration is included with the application:

<SystemDir>/data/makehuman2_default.conf This file provides the baseline settings when no user configuration exists. User Configuration

The user configuration file is stored in platform-specific locations:

macOS~/Library/Application Support/MakeHuman2/makehuman2.conf
Linux~/.config/makehuman2/makehuman2.conf
Windows%APPDATA%\makehuman2\makehuman2.conf

Configuration Loading Process

When MakeHuman2 starts, it loads configuration settings in this priority order: If the configuration is incomplete or this is the first run, MakeHuman2 will automatically create a user configuration file with all necessary settings.

File Format

Both configuration files use JSON format: { "basename": null, "noSampleBuffers": false, "redirect_messages": false, "remember_session": false, "theme": "makehuman.qss", "units": "metric", "apihost": "127.0.0.1", "apiport": 12345 }

Configuration Options

basename

string or null

Default: null

Specifies which base mesh to load at startup (e.g., hm08, mh2bot)
- If null, the application shows the base mesh selection screen
- If set to a valid base name, that mesh loads automatically
"basename": "hm08"
noSampleBuffers

Boolean

Default: false

Controls OpenGL multisampling (method to display multiple transparent layers)
false - Enable multisampling for smoother rendering (recommended)
true - Disable multisampling (may improve performance on older hardware)
"noSampleBuffers": false
redirect_messages

Boolean

Default: false

Controls whether application messages and errors are logged to a file.
false - Messages only appear in the console
true - Messages are written to the log file specified in path_error
Related Setting: Requires path_error to be set (automatically added to user config).
"redirect_messages": false
remember_session

Boolean

Default: false

Controls whether MakeHuman2 saves and restores the working session. false - Start fresh each time
true - Restore the last loaded character and settings on startup
"remember_session": true
theme

String

Default: makehuman.qss

Specifies the Qt stylesheet file used for the application UI.
- Theme files are located in data/themes/ and can be added also in user data
- Must be a valid .qss file
"theme": "makehuman.qss"
units

String

Default: "metric"

Sets the measurement system used throughout the application.
"metric"- Centimeters, meters, kilograms
"imperial"- Inches, feet, pounds
"units": "imperial"
apihost

String

Default: "127.0.0.1"

The IP address the MakeHuman2 API server listens on, this allows external applications (like Blender) to communicate with MakeHuman2.
"127.0.0.1" - normally used, when blender is on same box.
"apihost": "127.0.0.1"
apiport

Integer

Default: 12345

The TCP port number the MakeHuman2 API server listens on.
If this port is already in use, you may need to change it to another available port.
"apiport": 12345
path_home

String

Default: none

Absolute path to the user data folder where MakeHuman2 stores custom content.
Not in default config. Used as UserDataDir in documentation.
This path will contain all user and downloaded content, such as clothes etc.
"path_home": "/Users/foo/makehuman2"
path_error

String

Default: none

Absolute path to the folder where error logs are stored.
Not in default config. It is only used when redirect_messages is true
"path_error": "/Users/foo/makehuman2/log"
keys

Object (key-value pairs)

Default: none

Defines custom keyboard shortcuts for camera navigation and other viewport controls. Each key represents an action, and its value is the keyboard shortcut (or array of shortcuts) assigned to that action.
Not in default config. Format:
- Single shortcut: String value (e.g., "Num+9")
- Multiple shortcuts: Array of strings (e.g., ["Num+9", "Alt+T"])
"keys": { "Top": "Num+9", "Front": "Num+2", "Zoom-In": ["Num++", "Ctrl+="], "Pan-Left": "Shift+Left", "Toggle Perspective": "Num+0" }

Keyboard Actions

ActionDefault ShortcutDescription
TopNum+9View from top
BottomNum+7View from bottom
LeftNum+4View from left
RightNum+6View from right
FrontNum+2View from front
BackNum+8View from back
Zoom-InNum++Zoom camera in
Zoom-OutNum+-Zoom camera out
Pan-LeftShift+LeftPan camera left
Pan-RightShift+RightPan camera right
Pan-UpShift+UpPan camera up
Pan-DownShift+DownPan camera down
Rotate-LeftCtrl+LeftRotate camera left
Rotate-RightCtrl+RightRotate camera right
Rotate-UpCtrl+UpRotate camera up
Rotate-DownCtrl+DownRotate camera down
Stop AnimationEscStop animation playback
Toggle PerspectiveNum+0Toggle perspective/orthographic

Key Notation

Qt key sequence format is used:

Platform-Specific Modifiers:

On macOS, you can use Command (⌘) and Option (⌥) keys:

You can mix and match modifiers based on your preference. For example: "keys": { "Zoom-In": ["Num++", "Ctrl+=", "Meta+="], "Zoom-Out": ["Num+-", "Ctrl+-", "Meta+-"], "Pan-Left": ["Shift+Left", "Alt+Left"] } This allows Ctrl+= Cmd+= (Meta), and Num++ to all zoom in.

Customization

You can customize shortcuts in two ways:

Through the Preferences Window

Manual Editing

Notes:

macOS-Friendly Example:

For macOS users who prefer Command and Option keys:

"keys": { "Top": ["Num+9", "Meta+T"], "Front": ["Num+2", "Meta+F"], "Zoom-In": ["Num++", "Meta+=", "Ctrl+="], "Zoom-Out": ["Num+-", "Meta+-", "Ctrl+-"], "Pan-Left": ["Shift+Left", "Alt+Left"], "Pan-Right": ["Shift+Right", "Alt+Right"], "Rotate-Left": ["Ctrl+Left", "Meta+Left"], "Rotate-Right": ["Ctrl+Right", "Meta+Right"], "Toggle Perspective": ["Num+0", "Meta+P"]

This configuration uses:

Environment Variable Override

The environment variable MH_HOME_LOCATION can override the "path_home" (UserDataDir) setting:

macOS/Linux:

export MH_HOME_LOCATION="/path/to/custom/location" python makehuman.py Windows: set MH_HOME_LOCATION=C:\path\to\custom\location python makehuman.py This is useful for: