# 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.

# Property "org.eclipse.ui/defaultPerspectiveId" controls the 
# perspective that the workbench opens initially
org.eclipse.ui/defaultPerspectiveId=org.eclipse.jdt.ui.JavaPerspective

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

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

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

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

# use the window set by default
org.eclipse.ui/USE_WINDOW_WORKING_SET_BY_DEFAULT=true

# Intro-related preferences (since 3.2)

# Welcome theme to use
org.eclipse.ui.intro/INTRO_THEME = org.eclipse.ui.intro.universal.circles

# Root page links to show in the Universal Welcome
org.eclipse.ui.intro.universal/INTRO_ROOT_PAGES = overview,tutorials,samples,whatsnew

# Initial page layout of the Universal Welcome
org.eclipse.ui.intro.universal/INTRO_DATA = product:introData.xml