# plugin_customization.ini 
# sets default values for plug-in-specific preferences
# keys are qualified by plug-in id
# e.g., com.example.acmeplugin/myproperty=myvalue
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# "%key" are externalized strings defined in plugin_customization.properties
# This file does not need to be translated.

# controls the perspective that the workbench opens initially
org.eclipse.ui/defaultPerspectiveId=org.eclipse.jubula.client.ui.rcp.perspective.SpecificationPerspective

# new-style tabs by default
org.eclipse.ui/SHOW_TRADITIONAL_STYLE_TABS=false

# put the perspective switcher on the top left
org.eclipse.ui/DOCK_PERSPECTIVE_BAR=topRight

# show progress on startup
org.eclipse.ui/SHOW_PROGRESS_ON_STARTUP=true 

# show heap status by default
org.eclipse.ui/SHOW_MEMORY_MONITOR=true

# show text on perspective bar
org.eclipse.ui/SHOW_TEXT_ON_PERSPECTIVE_BAR=false

# parameters for the welcome screen
org.eclipse.ui.intro.universal/INTRO_ROOT_PAGES=overview,firststeps,tutorials,samples,whatsnew,migrate,webresources
org.eclipse.ui.intro/INTRO_THEME=org.eclipse.ui.intro.universal.circles

# default Key Binding scheme
org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.jubula.client.ui.rcp.defaultKeyScheme

# Atlassian JIRA Mylyn connector monitor preference
com.atlassian.connector.eclipse.monitor.ui/com.atlassian.connector.eclipse.monitor.usage.first.time=false
