# 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 build id in the splash - only for nightly, integration, and milestone builds
org.eclipse.ui.workbench/SHOW_BUILDID_ON_STARTUP=false

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

# lightweight auto-refresh on access by default
org.eclipse.core.resources/refresh.lightweight.enabled=true

# enable line number ruler in all textual editors by default
org.eclipse.ui.editors/lineNumberRuler=true

org.eclipse.ui.ide/unassociatedEditorStrategy=org.eclipse.epp.internal.mpc.ui.askMarketPlace

# enable UI responsiveness monitoring by default
org.eclipse.ui.monitoring/monitoring_enabled=true

# log an error if UI is frozen for 1 second or longer
org.eclipse.ui.monitoring/long_event_error_threshold=1000

# Intro-related preferences (since 3.2)

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

# Root page links to show in the Universal Welcome
org.eclipse.ui.intro.universal/INTRO_ROOT_PAGES = overview,tutorials,samples,whatsnew
# Use quadrant root page with quicklinks
org.eclipse.ui.intro/INTRO_START_PAGE = qroot
org.eclipse.ui.intro/INTRO_HOME_PAGE = qroot

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

# Order help books in table of contents
org.eclipse.help/HELP_DATA = helpData.xml

# enable doc filtering by capability
org.eclipse.help.base/showDisabledActivityTopics=on

# check for updates once a week
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=421779
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=498116
org.eclipse.equinox.p2.ui.sdk.scheduler/enabled=true
org.eclipse.equinox.p2.ui.sdk.scheduler/schedule=on-fuzzy-schedule
org.eclipse.equinox.p2.ui.sdk.scheduler/fuzzy_recurrence=Once a week

# disable the Oomph preference recorder - bug 470654, bug 470430
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=470654
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=470430
org.eclipse.oomph.setup.ui/enable.preference.recorder=false
