Skip to content

Implement an Advanced configuration editor for NVDA #6788

@derekriemer

Description

@derekriemer

I was thinking the other day about how to access settings that aren't accessible from the GUI in a slightly safer way. I came up with a scheme similar to the mozilla about:config editor.
http://www.instantbird.com/

  • call the advancedConfig function in the python console of NVDA.

A dialog appears. There's a search field, a list of config keys and their values.
Keys are placed in the dialog by concatenating every item in the key with a ".". For example, "general.language", "virtualBuffers.passThroughAudioIndication", "speech.speechPlayerInEspeak.rateBoost", "schemaVersion"

  • When the list appears, either find the configuration value you'd like, or press shift+tab to filter.
  • If you are in the search box, type anything. Space separated words are searched separately, and items that match all given tokens are considered. Case is ignored.
  • Example search: "braille cursor blink" shows
    Key Value
    braille.cursorBlinkRate 500
    braille.cursorBlink True
    
    "braille blink cursor" yields the same results.
    "debugLog" shows all items with debugLog somewhere in the key.
    "debugLog." shows all items with a section called debugLog.
    .log shows only items that are below some section with log in them.
  • search isn't currently powerful enough to search only in the last node of the dotted key.
  • search can't currently ask for only items that match the first node of the dotted key.

Actions available from the list:

  • When enter is pressed on a key in the list, a dialog appears with either a checkbox, or edit field to edit said config value.
    • If okay is pressed in this dialog, the config and UI are updated.
    • if cancel is pressed, Well, it should be obvious, nothing happens.
  • if delete is pressed on a key in the list, that key is deleted if the user says yes.
  • Currently, okay/cancel do nothing at all in the main dialog.

Thoughts on other things to implement or concerns before I create a pull request?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions