Re: [ANNOUNCE] Kconfiglib menuconfig implementation

From: Randy Dunlap
Date: Tue May 01 2018 - 14:52:18 EST


On 05/01/2018 11:13 AM, Randy Dunlap wrote:
> On 05/01/2018 10:56 AM, Randy Dunlap wrote:
>> On 04/30/2018 05:57 PM, Ulf Magnusson wrote:
>>> Hello,
>>>
>>> Kconfiglib (https://github.com/ulfalizer/Kconfiglib) now has a
>>> terminal menuconfig implementation, implemented in plain curses
>>> (which is in the Python standard library).
>>>
>>> The interface should feel familiar to people used to mconf. It has
>>> some features that mconf lacks:
>>>
>>> - Seamless resizing
>>>
>>> - Unicode support
>>>
>>> - Runs on Windows (via 'pip install windows-curses', which uses
>>> PDCurses)
>>>
>>> - Improved information displays:
>>>
>>> * All expressions are split into readable chunks
>>>
>>> * Menus and comments have information displays
>>>
>>> - Relatively easy-to-read and easy-to-tweak code.
>>>
>>> Kconfiglib automatically invalidates symbols as needed, and
>>> values can never get stale, which helps.
>>>
>>> Some upcoming features are mouse support and a search feature that
>>> can jump directly to the definition of a symbol. The jump-to feature
>>> will use a "show-all" mode in case the symbol isn't visible.
>>>
>>> See the Kconfiglib GitHub page for screenshots. The menuconfig
>>> implementation is at
>>> https://github.com/ulfalizer/Kconfiglib/blob/master/menuconfig.py.
>>> The docstring at the top has some more information.
>>
>> Hi,
>>
>> I'm probably missing some python additive (I hope it's that easy), but
>> menuconfig.py is not liking the "degree" symbol in drivers/net/can/peak_canfd/Kconfig:
>>
>> config CAN_PEAK_PCIEFD
>> depends on PCI
>> tristate "PEAK-System PCAN-PCIe FD cards"
>> ---help---
>> This driver adds support for the PEAK-System PCI Express FD
>> CAN-FD cards family.
>> These 1x or 2x CAN-FD channels cards offer CAN 2.0 a/b as well as
>> CAN-FD access to the CAN bus. Besides the nominal bitrate of up to
>> 1 Mbit/s, the data bytes of CAN-FD frames can be transmitted with
>> up to 12 Mbit/s. A galvanic isolation of the CAN ports protects the
>> electronics of the card and the respective computer against
>> disturbances of up to 500 Volts. The PCAN-PCI Express FD can be
>> operated with ambient temperatures in a range of -40 to +85 ÂC.
>>
>>
>> kconfiglib.KconfigSyntaxError:
>> Malformed ascii in drivers/net/can/peak_canfd/Kconfig
>> Context: b't temperatures in a range of -40 to +85 \xc2\xb0C.\n'
>> Problematic data: b'\xc2'
>> Reason: ordinal not in range(128)
>
> BTW, after modifying 4 other instances of this "error," I have it running.
> Now looking/testing. :)

Hi Ulf,

Here are a few comments for you FWIW.

menuconfig.py uses the terminal window space better than menuconfig:
fewer margins, less Help text so more usable lines.

ESC/q is nicer than in ESC+ESC in menuconfig.

What is the lower colored line for? I don't see it being used.

On Quit, don't need to prompt for Save when the file is already saved
or has not been modified.

When menuconfig displays the Kconfig menu tree and it is over term-width
characters, it truncates on the left so that the user can see all of
the current menu name. menuconfig.py truncates on the right so that
the current menu name may be partially lost or totally lost.

To enable=y a tristate symbol, cannot enter Y, must do Space Space to cycle
from N to M to Y.

No / symbol search. I use that a lot, but I don't claim to be a
typical user.


Thanks.
--
~Randy