# Force Ghidra's Java home instead of trying to figure it out automatically.
# If the provided path does not point to a supported Java home that Ghidra
# supports, this property is ignored.
# NOTE: Ghidra requires a JDK to launch.
JAVA_HOME_OVERRIDE=

# Required Ghidra class loader
VMARGS=-Djava.system.class.loader=ghidra.GhidraClassLoader

# Set default encoding to UTF8
VMARGS=-Dfile.encoding=UTF8

# Set locale (only en_US is supported)
VMARGS=-Duser.country=US
VMARGS=-Duser.language=en
VMARGS=-Duser.variant=

# The following options affect rendering on different platforms.  It may be necessary to play
# with these settings to get Ghidra to display and perform optimally on HiDPI monitors or in VM's.
VMARGS=-Dsun.java2d.opengl=false
VMARGS_LINUX=-Dsun.java2d.pmoffscreen=false
VMARGS_LINUX=-Dsun.java2d.xrender=true
VMARGS_LINUX=-Dsun.java2d.uiScale=1
VMARGS_LINUX=-Dawt.useSystemAAFontSettings=on
VMARGS_WINDOWS=-Dsun.java2d.d3d=false

# Set acceptable HTTPS protocols
VMARGS=-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2

# Force PKI authentication of all HTTPS and Ghidra Server connections (i.e., 
# server authentication)
VMARGS=-Dghidra.cacerts=

# The following property will limit the number of processor cores that Ghidra
# will use for thread pools. If not specified, it will use the default number 
# of processors returned from Runtime.getRuntime().getAvailableProcessors(). 
# Otherwise, it will use the min of the value returned from Runtime and the 
# value specified by the following property.
VMARGS=-Dcpu.core.limit=

# The following property is a way to exactly specify the number of processor 
# cores that Ghidra will use for thread pools.  Note: this will supersede the 
# above 'cpu.core.limit' value if it is set.
VMARGS=-Dcpu.core.override=

# Default font size for many java swing elements.
VMARGS=-Dfont.size.override=

# Set Jython console encoding (prevents a console error)
VMARGS=-Dpython.console.encoding=UTF-8

# Eclipse on macOS can have file locking issues if the user home directory is networked.  Therefore,
# we will disable file locking by default for macOS. Comment the following line out if Eclipse file 
# locking is needed and known to work.
VMARGS_MACOS=-Declipse.filelock.disable=true

# Where the menu bar is displayed on macOS
VMARGS_MACOS=-Dapple.laf.useScreenMenuBar=false

# Prevent log4j from using the Jansi DLL on Windows.
VMARGS_WINDOWS=-Dlog4j.skipJansi=true

# Persistent cache directory used by the application.  This directory will be used to store 
# persistent application caches for all users.  The default location for Mac/Linux is the same as 
# specified by java.io.tmpdir property. The default location for Windows corresponds to the 
# application local settings directory for the user (e.g., %LOCALAPPDATA%). If you wish to use a
# directory with more storage or avoid system cleanups, it may be desirable to override the default 
# location.
#VMARGS=-Dapplication.cachedir=

# Temporary directory used by the application.  This directory will be used for all temporary files 
# and may also be used for the persistent user cache directory <java.io.tmpdir>/<username>-Ghidra. 
# The specified directory must exist and have appropriate read/write/execute permissions
#VMARGS=-Djava.io.tmpdir=

# Disable alternating row colors in tables
#VMARGS=-Ddisable.alternating.row.colors=true

# The ContinuesInterceptor allows the import process to proceed if parsing corrupted headers
# generates uncaught exceptions.  Disabling it can be helpful when trying to debug what went
# wrong because the ContinuesIntercepter affects the usefulness of the stack trace.
#VMARGS=-DContinuesInterceptor.disabled=true
