# IDLE reads several config files to determine user preferences.  This
# file is the default config file for general idle settings.
#
# When IDLE starts, it will look in
# the following two sets of files, in order:
#
#     default configuration
#     ---------------------
#     config-main.def         the default general config file
#     config-extensions.def   the default extension config file
#     config-highlight.def    the default highlighting config file
#     config-keys.def         the default keybinding config file
#
#     user configuration
#     -------------------
#     ~/.idlerc/config-main.cfg            the user general config file
#     ~/.idlerc/config-extensions.cfg      the user extension config file
#     ~/.idlerc/config-highlight.cfg       the user highlighting config file
#     ~/.idlerc/config-keys.cfg            the user keybinding config file
#
# On Windows2000 and Windows XP the .idlerc directory is at 
#	Documents and Settings\<username>\.idlerc	
#
# On Windows98 it is at c:\.idlerc
#
# Any options the user saves through the config dialog will be saved to
# the relevant user config file. Reverting any general setting to the
# default causes that entry to be wiped from the user file and re-read
# from the default file. User highlighting themes or keybinding sets are
# retained unless specifically deleted within the config dialog. Choosing
# one of the default themes or keysets just applies the relevant settings
# from the default file.
#
# Additional help sources are listed in the [HelpFiles] section and must be
# viewable by a web browser (or the Windows Help viewer in the case of .chm
# files). These sources will be listed on the Help menu.  The pattern is
# <sequence_number = menu item;/path/to/help/source>
# You can't use a semi-colon in a menu item or path.  The path will be platform
# specific because of path separators, drive specs etc.
#
# It is best to use the Configuration GUI to set up additional help sources!
# Example:
#1 = My Extra Help Source;/usr/share/doc/foo/index.html
#2 = Another Help Source;/path/to/another.pdf

[General]
editor-on-startup= 0
autosave= 0
print-command-posix=lpr %s
print-command-win=start /min notepad /p %s
delete-exitfunc= 1

[EditorWindow]
width= 80
height= 40
font= courier
font-size= 10
font-bold= 0
encoding= none

[Indent]
use-spaces= 1
num-spaces= 4

[Theme]
default= 1
name= IDLE Classic

[Keys]
default= 1
name= IDLE Classic Windows

[HelpFiles]
