[issue20580] IDLE should support platform-specific default config defaults

Terry J. Reedy report at bugs.python.org
Sat Aug 26 16:32:18 EDT 2017


Terry J. Reedy added the comment:

A. In 3.6+, the [Keys] section of config-main.def reads

[Keys]
default= 1
name=
name2=
# name2 set in user config-main.cfg for keys added after 2016 July 1

The name is no longer 'IDLE Classic Windows'.  Instead, if default is left true, the actual default is selected in config.py with

    @staticmethod
    def default_keys():
        if sys.platform[:3] == 'win':
            return 'IDLE Classic Windows'
        elif sys.platform == 'darwin':
            return 'IDLE Classic OSX'
        else:
            return 'IDLE Modern Unix'

This change accompanied the addition of the Modern Unix keyset.

If the makefile for 3.6+ still has the sed command to replace 'Windows' with 'OSX', you can remove it.


B1. #27099 is moving all built-in user-configurable key defs in config-extensions.def to individual keysets in config-keys.def.  These are:

force-open-completions = <Control-Key-space>
expand-word = <Alt-Key-slash>
force-open-calltip = <Control-Key-backslash>
format-paragraph = <Alt-Key-q>
flash-paren = <Control-Key-0>
run-module = <Key-F5>
check-module = <Alt-Key-x>
zoom-height = <Alt-Key-2>

According to my reading of
https://hg.python.org/cpython/rev/13826ff147e4
the makefile changes each 'Alt-Key-' to  'Command-Key-', with an additional change for zoom-height.  We can instead put the correct keys in the Mac and OSX keysets.

B2. Serhiy: Are any of the above 'wrong' for Unix/Linux?  Or should any alternatives be added?

B3. Custom keysets will initially be missing the new defs.  IdleConf currently replaces missing values with the windows values (hard-coded into the file).  I think it should instead get replacements from the OS-specific default -- and perhaps check for conflicts.  Then it should, if possible, write-back the complete keyset.


C. There are various proposals to add new customizable key definitions for existing and new features.  The issues in B, customizing default keysets and augmenting custom keysets, will come up repeatedly.  When I decide to add a new key definition, I could nosy you two, Ned and Serhiy, or add a note to this issue.

----------
dependencies: +IDLE: turn builting extensions into regular modules

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue20580>
_______________________________________


More information about the Python-bugs-list mailing list