# 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
# modeling.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.sirius.ui.tools.perspective.modeling

# 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

# 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

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

# Use quadrant root page with quicklinks
org.eclipse.ui.intro/INTRO_START_PAGE = qroot
org.eclipse.ui.intro/INTRO_HOME_PAGE = qroot

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

#Ensure m2e indexing is off by default
org.eclipse.m2e.core/eclipse.m2.updateIndexes=false

# 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
