{ "com.freedomscientific.jaws": { "name": "JAWS", "contexts": { "OS": [ { "id": "win32" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/screenReaderTTS/enabled" ], "settingsHandlers": { "configuration1": { "type": "gpii.settingsHandlers.INISettingsHandler", "liveness": "manualRestart", "options": { // TODO: Create a base grade for JAWS and version-specific variations. Make JAWS 2019 the default. Restart version-detection discussions and "capability" discussions. "filename": "${{environment}.APPDATA}\\Freedom Scientific\\JAWS\\2019\\Settings\\enu\\DEFAULT.JCF" }, "supportedSettings": { "Braille.AllDotsBrailleCursor": { "schema": { "title": "All Dots Braille Cursor", "description": "Whether to display the braille cursor as all dots raised instead of showing it using only dots seven and eight.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Braille.AttributeRotationDelay": { "schema": { "title": "Attribute Rotation Delay", "description": "When in Attribute Mode and characters have multiple attributes, determines how long each attribute should be shown for. This value is in Milliseconds.", "type": "integer", "default": 1000 } }, "Braille.AutoPanMode": { "schema": { "title": "Auto Pan Mode", "description": "The \"Auto Pan\" algorithm to use.", "enum": [ 0, 1, 2, 3, 4, 5, 6, 255 ], "enumLabels": [ "off", "move display minimally to include whole word containing cursor", "match user pan", "move display to show whole word at cursor nearest the middle of the display area", "maximize text after cursor", "maximize text before cursor", "autopan to default structured segment", "Smart Autopan, autopan using the best algorithm for the current situation" ], "default": 255 } }, "Braille.BrailleAutoDetectBluetooth": { "schema": { "title": "Autodetect Bluetooth Braille Display", "description": "Whether to automatically detect bluetooth displays.", "enum": [0,1], "enumLabels": ["off", "on"], "default": 0 } }, "Braille.BrailleAutoRouteToCursor": { "schema": { "title": "Braille Auto Route To Cursor", "description": "Whether to automatically route the Braille display to the active cursor whenever the active cursor moves or a key on the keyboard is pressed.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.BrailleCursorBlinkRate": { "schema": { "title": "Braille Cursor Blink Rate", "description": "Speed, in milliseconds, at which the cursor on the braille display should blink.", "type": "integer", "default": 500 } }, "Braille.BrailleKeyInterruptSpeech": { "schema": { "title": "Braille Key Interrupt Speech", "description": "Whether to Interrupt speech if a keystroke in the Braille display is pressed.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.BrailleMessages": { "schema": { "title": "Enable Flash Messages", "description": "Whether or not to show Flash Messages on a braille display.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.BrailleMode": { "schema": { "title": "Braille Mode", "description": "Use this option to control the format of the information sent to the braille display. When Line mode is selected, JAWS sends the line of text at the current cursor position to the braille display. When Structured mode is selected, JAWS sends information to the display that is relevant to the current cursor position. The information sent includes things such as control type, dialog name, or number of items in a list. When Speech Output mode is selected, JAWS sends the same text to the display that it sends to the synthesizer. The default setting for this option is Structured.", "type": "number", "default": 1, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "line", "structured", "speech output", "attribute indicators" ] } }, "Braille.BrailleMoveActiveCursor": { "schema": { "title": "Braille Move Active Cursor", "description": "Whether to move the active cursor when the Braille cursor moves.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, // Enable this if requested, we have no reasonable way of presenting a UI at the moment. // "Braille.BrailleShowMarking": { // "schema": { // "title": "Braille Marking", // "description": "Show Marking may be any combination of the following ored together brlMarkNothing= 0, brlMarkText = 1, brlMarkBold = 2, brlMarkItalic = 4, brlMarkUnderline = 8, brlMarkStrikeout = 16, brlMarkGraphic = 32, brlMarkHighlight = 64, brlMarkColor= 128, // see brlOptColorsToMark string option brlMarkExtended=256, // things like spelling and grammatical errors in MSWord etc, script defined marking brlMarkDoubleStrikeout=512, brlMarkSuperscript=1024, brlMarkSubscript=2048, brlMarkShadow=4096, brlMarkOutline=8192, brlMarkEmboss=16384, brlMarkEngrave=32768, Note when Extended marking is on, JAWS calls the PointNeedsMarking function passing in the coordinates of each cell to determine whether text at that location requires marking. This is useful when the attribute you want to mark is not actually known to JAWS such as the red and green zigzags in MSWord indicating spelling or grammatical errors.", // "type": "integer", // "minimum": 0, // "maximum": 65536, // "default": 64 // } // }, "Braille.BrailleSleepMode": { "schema": { "title": "Enable Braille Sleep Mode", "description": "Whether to turn off the braille driver, typically used to disable braille for a specific application.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Braille.BrailleVerbosity": { "schema": { "title": "Braille Verbosity", "description": "Sets braille verbosity for Flash messages.", "enum": [ 0, 1, 2 ], "enumLabels": [ "beginner", "intermediate", "advanced" ] } }, "Braille.ContractedBrailleInput": { "schema": { "title": "Contracted Braille Input", "description": "Enable contracted braille to be entered on the braille display's keyboard.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Braille.EightDotBraille": { "schema": { "title": "Braille Dots", "description": "The number of braille dots (six or eight) to use.", "enum": [ 0, 1 ], "enumLabels": [ "6 dot braille", "8 dot braille" ], "default": 1 } }, "Braille.FilterControlCharacters": { "schema": { "title": "Filter Control Characters", "description": "Whether or not to filter certain control characters (currently newlines, linefeeds and tabs).", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.GeneralizeBullets": { "schema": { "title": "Generalize Bullets", "description": "Whether to treat all bullets the same.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Braille.Grade2SuppressCapitalSigns": { "schema": { "title": "Grade2 Suppress Capital Signs", "description": "When Grade 2 is on, whether or not to show capital indicators.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Braille.MessagePrefixes": { "schema": { "title": "Enable Flash Message Prefixes", "description": "If a display has no Status Cells, whether or not to prepend the Message Prefix to the Flash Message.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.MessageStatusText": { "schema": { "title": "Message Status Text", "description": "The text to show in the status area of the display when a Flash message is being shown if the display has no status cells, the text will be prepended to the Flash message.", "type": "string", "default": "msg" } }, "Braille.MessageTime": { "schema": { "title": "Flash Message Timeout", "description": "When a Flash message is sent to the display via a script, how long in milliseconds should it be shown if not specified by the script.", "type": "integer", "default": 5000 } }, "Braille.ReversePanningButtons": { "schema": { "title": "Reverse Panning Buttons", "description": "Whether or not panning buttons are reversed.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Braille.StructuredModeReverseOrder": { "schema": { "title": "Reverse Order of Structured Data", "description": "Whether to reverse the order of the structured data to show the focused control's info first, followed by its grouping information, and then the dialog box information. By default, items are read in the opposite order.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.UseHowManyStatusCells": { "schema": { "title": "Use How Many Status Cells", "description": "How many cells to use for status information if the display defines none of its own.", "type": "integer", "default": 4 } }, "Braille.UseScreenModelForBrailleInRichEdits": { "schema": { "title": "Use Screen Model for Braille in Rich Edits", "description": "Whether to use the screen model when providing field prompts and text in Braille with rich edits.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Braille.WordWrap": { "schema": { "title": "Enable Word Wrap", "description": "Whether or not to allow words to be split in order to maximize the use of the braille display. Ignored if panning is set to fixed increment.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "FSCasts.EnableNotifications": { "schema": { "title": "FSCast Notifications", "description": "Whether to have JAWS display a dialog when new podcasts from Freedom Scientific are available.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.Abbreviations": { "schema": { "title": "Abbreviations", "description": "Whether to expand abbreviations. If this is enabled, abbreviations with a title attribute will have their title read instead of the on screen text.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "HTML.AccessKeys": { "schema": { "title": "Speak Access Keys Within Web Page", "description": "Whether to announce HTML element access keys when reading a web page.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.Acronyms": { "schema": { "title": "Acronyms", "description": "If this is enabled, acronyms with a title attribute will have their title read instead of the on screen text.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "HTML.BlockQuoteIndication": { "schema": { "title": "Block Quote Indication", "description": "Whether to indicate HTML block quotations.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.EmbeddedActiveXSupport": { "schema": { "title": "Embedded ActiveX Support", "description": "Whether or not to support embedded ActiveX controls such as Macromedia Flash Movies. If enabled, only objects defined in JActiveX.ini are affected by this setting.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.ExpandAbbreviations": { "schema": { "title": "Expand Abbreviations", "description": "Whether or not to expand abbreviations (using the abbr tag).", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "HTML.ExpandAcronyms": { "schema": { "title": "Expand Acronyms", "description": "Whether or not to expand acronyms (using the acronym tag).", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "HTML.FilterConsecutiveDuplicateLinks": { "schema": { "title": "Filter Consecutive Duplicate Links", "description": "Whether to skip (not announce) consecutive duplicate links.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "HTML.FormFieldPromptOptions": { "schema": { "title": "Form Field Prompt Options", "description": "Which attributes to prefer when describing form fields.", "enum": [ 0, 1, 2, 3, 4, 5 ], "enumLabels": [ "favor label tag", "favor title attribute", "favor alt attribute", "favor longest", "use both label and title if different", "use both label and alt if different" ], "default": 0 } }, "HTML.FormsModeAutoOff": { "schema": { "title": "Forms Mode Auto Off", "description": "Whether or not Forms Mode should be automatically turned off when the current page is updated.", "enum": [ 0, 1 ], "enumLabels": [ "Leave Forms Mode on", "Turn Forms Mode off automatically" ], "default": 1 } }, "HTML.GraphicalLinkLastResort": { "schema": { "title": "Graphical Link Last Resort", "description": "What to announce when a graphical link contains no title or alt text for its enclosing image and the enclosing anchor has no title.", "enum": [ 0, 1], "enumLabels": ["Read the image's src", "Read the image's enclosing anchor's href."], "default": 0 } }, "HTML.IdentifyLinkType": { "schema": { "title": "Identify Link Type", "description": "Whether to distinguish the various types of links e.g. \"FTP link\", \"mailto link\" versus simply announcing \"link\" for all types of links.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.IdentifySamePageLinks": { "schema": { "title": "Identify Same Page Links", "description": "Whether to identify links that point to other places on the current page by saying \"same page link\".", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.IgnoreInlineFrames": { "schema": { "title": "Ignore Inline Frames", "description": "Whether to ignore inline frames, such as those used for advertising.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "HTML.IncludeGraphics": { "schema": { "title": "Include Graphics", "description": "Whether/when to include graphics in web pages.", "enum": [ 0, 1, 2 ], "enumLabels": [ "never include graphics", "include graphics that have labels, i.e. alt=attributes", "include all graphics" ], "default": 1 } }, "HTML.IndicateColSpan": { "schema": { "title": "Indicate ColSpan for Braille", "description": "Whether to announce column spans when reading table data in web pages.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.IndicateElementAttributes": { "schema": { "title": "Indicate Element Attributes", "description": "Whether to announce any HTML attributes defined in the \"HTML Attributes Behavior\" map of the current scheme.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.ListIndication": { "schema": { "title": "List Indication", "description": "Whether to announce lists with the item count and nesting level.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.MaxLineLength": { "schema": { "title": "Max Line Length", "description": "The maximum number of characters which can appear on a line of a paragraph.", "type": "integer", "default": 150 } }, "HTML.PageRefreshFilter": { "schema": { "title": "Page Refresh Filter", "description": "How often, in milliseconds, to allow all refreshes. Set to 0 to allow all refreshes without any delay.", "type": "integer", "default": 0 } }, "HTML.SayAllOnDocumentLoad": { "schema": { "title": "Read Web Pages Automatically When Loaded", "description": "Whether to automatically read web pages when they're first loaded.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.ScreenFollowsVCursor": { "schema": { "title": "Screen Follows Virtual Cursor", "description": "Whether the screen should automatically scroll to display the line on which the Virtual Cursor is positioned.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.SkipPastRepeatedText": { "schema": { "title": "Skip Past Repeated Text", "description": "Whether to position the Virtual Cursor on the first line which is different than the previous page whenever a new page is displayed.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.SmartNavigation": { "schema": { "title": "Smart Navigation", "description": "Whether to enable \"smart navigation\" when reading web pages.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "HTML.TableDetection": { "schema": { "title": "Table Detection", "description": "Whether to announce all tables, or only data tables.", "enum": [0, 1], "enumLabels": ["Indicate all tables", "Only indicate data tables"], "default": 1 } }, "HTML.TblMaxCellTextLength": { "schema": { "title": "Table Maximum Cell Text Length", "description": "A cell is considered a valid data cell if it contains upto this number of characters.", "type": "integer", "default": 250 } }, "HTML.TblMinCellTextLength": { "schema": { "title": "Table Minimum Cell Text Length", "description": "A cell is considered a valid data cell if it contains at least this number of characters.", "type": "integer", "default": 1 } }, "HTML.TblMinTextColumns": { "schema": { "title": "Table Minimum Text Columns", "description": "This option specifies the minimum number of columns which must contain text in order for the table to be considered a data table.", "type": "integer", "default": 2 } }, "HTML.TblMinTextRows": { "schema": { "title": "Table Minimum Text Rows", "description": "This option specifies the minimum number of rows which must contain text in order for the table to be considered a data table.", "type": "integer", "default": 2 } }, "HTML.TblMinValidDataRows": { "schema": { "title": "Table Minimum Valid Data Rows", "description": "Next options used for configuring how data tables are detected This option specifies the minimum number of valid data rows that a table must contain in order for it to be considered a data table.", "type": "integer", "default": 2 } }, "HTML.TblValidRowThreshold": { "schema": { "title": "Table Valid Row Threshold", "description": "This option specifies the minimum number of cells that a row must contain in order for it to be considered a valid data row.", "type": "integer", "default": 2 } }, "HTML.TextBlockLength": { "schema": { "title": "Text Block Length", "description": "The number of consecutive characters that must appear in a web page for JAWS to treat this as a block of text.", "type": "integer", "default": 25 } }, "HTML.UseLegacyIESupport": { "schema": { "title": "Use Legacy IE Support", "description": "Whether or not to use legacy IE support instead of the default FS Dom Server support.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "HTML.WrapNavigation": { "schema": { "title": "Wrap Navigation", "description": "Whether or not to allow navigation keystrokes such as tab and shift tab to wrap to the top or bottom of the document.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.AllCapsIndicator": { "schema": { "title": "AllCapsIndicator", "description": "The text to read before text that appears in all capital letters.", "type": "string", "default": "all cap" } }, "Options.AllowMouseEchoWhenMuted": { "schema": { "title": "Allow Mouse Echo", "description": "Whether to echo mouse movement when otherwise muted.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.AllowSpeechOnDemandWhenMuted": { "schema": { "title": "Allow Reading Commands", "description": "Whether to allow speech on demand when otherwise muted.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.AllowTypingEchoWhenMuted": { "schema": { "title": "Allow Typing Echo", "description": "Whether to echo typed keys when otherwise muted.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.AllowWebAppReservedKeystrokes": { "schema": { "title": "Allow Webapp-reserved Keystrokes", "description": "When both JAWS and a website such as Facebook support a key shortcut, whether to handle the key in JAWS (the default) or pass the key to the web app.", "enum": [0, 1], "enumLabels": ["off", "on"], "default": 1 } }, "Options.AnnounceMultilineEdit": { "schema": { "title": "Announce Multiline Edit Controls", "description": "Whether to announce multi-line edit controls.", "enum": [0, 1], "enumLabels": ["off", "on"], "default": 0 } }, // This does not seem safe to update, as we have no idea which displays are available on a given machine. // "Options.BrailleDisplay": { // "schema": { // "title": "Braille Display", // "description": "The braille display to use.", // "type": "string", // "default": "Braille1" // } // }, "Options.CapIndicator": { "schema": { "title": "Cap Indicator", "description": "The text to read before a capital letter.", "type": "string", "default": "cap" } }, "Options.CaretBlinkRate": { "schema": { "title": "Caret Blink Rate", "description": "How fast the caret blinks, in milliseconds.", "type": "integer", "default": 53, "minimum": 1 } }, "Options.CaretDetect": { "schema": { "title": "Caret Detect", "description": "How many cursor blinks are used to locate the caret.", "type": "integer", "default": 1, "minimum": 1 } }, "Options.CaretDetectTimeOut": { "schema": { "title": "Caret Detect Timeout", "description": "The number of milliseconds before JAWS for Windows will give up looking for the caret.", "type": "integer", "default": 250, "minimum": 0 } }, "OSM.CaretTimeOut": { "schema": { "title": "Caret Time Out", "description": "The time in milliseconds to wait before redrawing the caret.", "type": "integer", "default": 1000 } }, "Options.Case": { "schema": { "title": "Case", "description": "Whether to indicate the case of spoken text with a change of inflection.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.confirmWhenExitingJAWS": { "schema": { "title": "Confirm when Exiting JAWS", "description": "Whether or not to present a confirmation menu when exiting JAWS.", "enum": [0, 1], "enumLabels": ["off", "on"], "default": 1 } }, "Options.CustomPageSummary": { "schema": { "title": "Custom Page Summary", "description": "What to do when a virtual document loads for which a custom page summary has been defined.", "type": "number", "default": 0, "enum": [ 0, 1, 2 ], "enumLabels": [ "do nothing (\"Say All\" will be started as normal)", "The summary will be spoken and focus left on the page at the place defined by the page", "the summary will be presented in the virtual viewer for the user to immediately read" ] } }, "Options.DetectKeyboardInputLanguage": { "schema": { "title": "Detect Keyboard Languages", "description": "Whether to detect the language used by the keyboard.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.Dictionary": { "schema": { "title": "Dictionary", "description": "Whether words, phrases, abbreviations, or symbols should be processed through a global or application specific dictionary to determine proper pronunciation. This is enabled by default.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, // There's not even anything in the JAWS documentation for this. Disabled for now. // "Options.DosScreenReader": { // "schema": { // "title": "Dos Screen Reader", // "description": "", // "type": "", // "default": 0, // "enum": [], // "enumLabels": [] // } // }, "Options.EnableEdge": { "schema": { "title": "Enable Edge", "description": "Whether JAWS should provide popular JAWS browser features in Edge such as Virtual Cursor, Navigation Quick Keys, List of Objects, and many more.", "enum": [0, 1], "enumLabels": ["off", "on"], "default": 1 } }, "Options.Filter": { "schema": { "title": "Filter", "description": "Determines how repeated characters are handled.", "type": "number", "default": 0, "enum": [ 0, 1, 2, 3, 4, 5 ], "enumLabels": [ "Say First 3 Repeated Characters", "Say First 4 Repeated Characters", "Say First 5 Repeated Characters", "Say First 6 Repeated Characters", "Say All Repeated Characters", "Count Repeated Characters" ] } }, "Options.GeneralizeDialect": { "schema": { "title": "Generalize Dialect", "description": "Whether to switch languages when encountering content with the same underlying base language.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.Indentation": { "schema": { "title": "Indentation", "description": "Whether or not to announce indentation.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.IndicateAttributesInDialogsAndMenus": { "schema": { "title": "Indicate Attributes on Dialogs and Menus", "description": "Whether to announce attributes in dialogs and menus if the scheme allows for it.", "type": "number", "default": 0, // TODO: All of these 0,1 examples are a firm use case for an application-specific transform mechanism so that our JSON payloads can use true/false. "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.IndicateCaps": { "schema": { "title": "Indicate Caps", "description": "When to indicate the presence of capital letters.", "type": "number", "default": 0, "enum": [ 0, 1, 2, 3 ], // TODO: Once this is moved into the LSR, these will all be message keys. "enumLabels": [ "Off", "indicate caps when spelling or when navigating by character", "also indicate caps when reading by words", "also indicate caps when reading by lines" ] } }, "Options.IndicateMistypedWord": { "schema": { "title": "Indicate Mistyped Words", "description": "Whether to indicate a mistyped word.", "enum": [0, 1], "enumLabels": ["off", "on"], "default": 1 } }, "Options.IndicateNewlinesAndParagraphs": { "schema": { "title": "Indicate Newlines and Paragraphs", "description": "Whether/how to indicate the presence of new lines and paragraphs.", "type": "number", "default": 0, "enum": [ 0, 1, 2, 3, 4 ], "enumLabels": [ "off", "indicate when typing and the editor or wordprocessor wraps to a new line", "indicate when arrowing left/right or using left/right with modifiers", "indicate when typing and also when arrowing. the method of indication is controlled by the Speech and Sounds scheme in use", "indicate when reading text containing newline characters bitwise or the values together to indicate in multiple contexts eg a value of" ] } }, "Options.IndicateSelected": { "schema": { "title": "List Item", "description": "Use this list to determine how JAWS describes list box items. Select \"Say None\" to silence reading of list box descriptions. When you select \"Say Selected\", JAWS only tells you when list box items are selected. When you select the \"Say Not Selected\" item, JAWS only tells you when list box items are not selected. This is the default setting. If you select \"Say Both\", JAWS tells you when list box items are selected, and when they are not selected.", "default": 2, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "None", "Selected", "Not Selected", "Both" ] } }, "Options.InitialNumlockState": { "schema": { "title": "Initial State of NumLock Key", "description": "The initial state of the NumLock key.", "type": "number", "enum": [ 0, 1, 2 ], "enumLabels": [ "off at startup", "on at startup", "leave unmodified" ], "default": 0 } }, // TODO: Doesn't seem to work. "Options.InsertKeyMode": { "schema": { "title": "Insert Key Mode", "description": "The operating mode of the insert key.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "JAWS", "Sticky" ] } }, // TODO: VERIFY WITH EXTREME PREJUDICE "Options.JAWSInsertKey": { "schema": { "title": "JAWS Insert Key", "description": "Whether/which insert keys can be used as a JAWS Insert.", "type": "number", "default": 3, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "none", "Numpad Insert", "Extended Insert", "both Numpad and Extended" ] } }, "Options.JAWSPunctuationEnabled": { "schema": { "title": "JAWS Punctuation Enabled", "description": "Which punctuation marks to speak.", "type": "number", "default": 2, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "None", "Some", "Most", "All" ] } }, // No documentation, disabled for now. // "Options.KeyboardType": { // "schema": { // "title": "Keyboard Type", // "description": "Can be one of the types defined in the default.jkm settings file.", // "type": "string", // "default": "Laptop" // } // }, "Options.KeyRepeat": { "schema": { "title": "Key Repeat", "description": "Whether or not to allow repeated keys. Repeated keys are allowed by default.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.LanguageDetection": { "schema": { "title": "Language Detection", "description": "Whether to enable automatic Language detection.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.LeftShiftSkipBack": { "schema": { "title": "Left Shift Skip Back", "description": "How the shift keys should behave in \"Say All\" mode.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "during SayAll, right shift will skip back and left shift will skip forward", "during SayAll, left shift will skip back and right shift will skip forward" ] } }, // TODO: Verify default "Options.LessSpeechMode": { "schema": { "title": "Less Speech Options", "description": "How to behave when in \"less speech mode\".", "enum": [ 0, 1 ], "enumLabels": [ "Speech On Demand", "Mute Speech" ] } }, "Options.LinePauses": { "schema": { "title": "Line Pauses", "description": "Whether to pause at end of a line.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, // Can't find any documentation about this. // "Options.ListBoxCheckBoxes": { // "schema": { // "title": "List Box Check Boxes", // "description": "0 off, 1 non-ownerdrawn listboxes, 2 also check listboxes with LBS_OWNERDRAWVARIABLE or LBS_OWNERDRAWFIXED window style.", // "type": "number", // "default": 0, // "enum": [ // 0, // 1, // 2 // ], // "enumLabels": [ // "off", // "non-ownerdrawn listboxes", // "also check listboxes with LBS_OWNERDRAWVARIABLE or LBS_OWNERDRAWFIXED window style." // ] // } // }, "Options.LowerOtherAppsVolumeWhileJAWSIsRunning": { "schema": { "title": "Lower Audio Volume of Programs while JAWS Speaks", "description": "Whether to lower the volume of programs other than JAWS when speaking.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.MigrationWizardDisplayed": { "schema": { "title": "Migration Wizard Displayed", "description": "Whether or not to display the migration wizard on startup.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.MixedCase": { "schema": { "title": "Mixed Case", "description": "Whether to announce words with embedded capital letters (such as \"MixedCase\") as separate words.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.MouseEchoSpeaksControlTypeAndState": { "schema": { "title": "Speak Control Type and State of Item", "description": "Whether to speak the type of control and state of item when mousing over a control.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.MouseEchoSpeaksHelpAndDescription": { "schema": { "title": "Speak Description of Item", "description": "Whether to speak the description of an item on mouseover.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.MouseMovementStopsSpeech": { "schema": { "title": "Mouse Echo Interrupt", "description": "Whether to stop speaking when the mouse is moved.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.MouseSpeechDelay": { "schema": { "title": "Mouse Echo Delay", "description": "How long to delay announcing content under the mouse, in milliseconds. Defaults to 0 (no delay).", "type": "integer", "default": 0 } }, "Options.MouseSpeechEchoUnit": { "schema": { "title": "Mouse Echo Unit", "description": "The unit of text to announce when the mouse pauses over text in a control. Defaults to reading the whole line.", "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "character", "word", "line", "paragraph" ], "default": 2 } }, "Options.MouseSpeechEnabled": { "schema": { "title": "Enable Mouse Echo", "description": "Whether or not to enable the mouse echo, i.e. reading content under the mouse pointer.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.Numbers": { "schema": { "title": "Numbers", "description": "How to announce numbers.", "type": "number", "default": 0, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "off (handled by synth)", "digits", "pairs", "full numbers" ] } }, "Options.OnScreenKeyboard": { "schema": { "title": "Allow On Screen Keyboards", "description": "Whether to allow on screen keyboards.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.PhoneticCharAfterPause": { "schema": { "title": "Announce Phonetic Character after Pause", "description": "Whether pausing on character will cause JAWS to speak it phonetically while navigating text by character.", "enum": [0, 5, 10, 15], "enumLabels": [ "Do not announce phonetically.", "Announce after a half second pause.", "Announce after a one second pause.", "Announce after a one and a half second pause." ], "default": 15 } }, "Options.ProcessToolTipEvent": { "schema": { "title": "Process Tooltip Event", "description": "Whether or not to process tooltip events.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "on", "off" ] } }, "Options.ProgressBarUpdateInterval": { "schema": { "title": "Progress Bar Update Interval", "description": "How often to announce progress bar updates, in milliseconds. Set to 0 to disable update announcements.", "type": "integer", "default": 5000, "minimum": 0 } }, "Options.QuickKeyNavigationMode": { "schema": { "title": "Quick Key Navigation Mode", "description": "Navigation Quick Keys let you move through Web pages with easy to remember commands, such as T for table, F for form field, N for non link text, and V for visited link. These commands are only available when the Virtual Cursor is active. Use these radio buttons to set Navigation Quick Keys off, on, or on only during Say All reading. The default is on.", "type": "number", "default": 1, "enum": [ 0, 1, 2 ], "enumLabels": [ "off", "on", "only on during \"Say All\"" ] } }, "Options.ReadingInterrupt": { "schema": { "title": "Reading Interrupt", "description": "Whether to interrupt speech when a key that is bound to a macro is pressed.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.Repetitions": { "schema": { "title": "Repetitions", "description": "Whether or not to indicate repeated characters.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SayAllIgnoreShiftKeys": { "schema": { "title": "\"Say All\" Ignores Shift Keys", "description": "Allows sticky keys to be used, i.e.: ignores shift keys during SayAll. User can use left/right arrow to do same functions.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "on", "off" ] } }, "Options.SayAllIndicateCaps": { // The same as http://registry.gpii.net/common/announceCapitals. We should just reuse it and override with custom values "schema": { "title": "\"Say All\" Announces Capitals", "description": "In \"Say All\" mode, announce an initial capital letter or capitalized word.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "on", "off" ] } }, "Options.SayAllMode": { "schema": { "title": "\"Say All\" Mode", "description": "Sets the amount of text which \"Say All\" sends to the synthesizer as a single unit.", "type": "number", "default": 0, "enum": [ 0, 1, 2 ], "enumLabels": [ "line", "sentence", "paragraph" ] } }, // Requires creating a schema or knowing the name of the default. Leave out for now. // "Options.SayAllScheme": { // "schema": { // "title": "\"Say All\" Scheme", // "description": "Which user-defined \"Say All\" scheme to use.", // "type": "string" // } // }, "Options.SayBlankLineCount": { "schema": { "title": "Say Blank Line Count", "description": "In \"Say All\" mode, whether to announce the number of blank lines.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SayCursorShapeChange": { "schema": { "title": "Say Cursor Shape Change", "description": "Whether to announce a change in the shape of the cursor.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SayDollars": { "schema": { "title": "Say Dollars", "description": "Whether to announce currency symbols.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SayNumericDates": { "schema": { "title": "Say Numeric Dates", "description": "How to announce numeric dates. With no translation, dates are read as numbers. With some translation, dd-mm-yy values are read as text. With extended translation, both dd-mm-yy and dd-mm values are read as text.", "type": "number", "default": 0, "enum": [ 0, 1, 2 ], "enumLabels": [ "no translation", "some translation", "extended translation" ] } }, "Options.SaySelectedFirst": { "schema": { "title": "Say Selected First", "description": "Whether to announce the selected text first.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SayStateFirst": { "schema": { "title": "Say State First", "description": "Whether to announce the window state before title/text.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SayWindowTypeFirst": { "schema": { "title": "Say Window Type First", "description": "Whether to announce the type of window before announcing the window title/text.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, // TODO: Improve this. Figure out if there are other valid options. "Options.Scheme": { "schema": { "title": "Scheme", "description": "Whether or not to intercept CreateDIBSection Note that this value is only read once per JAWS session at startup thus changing this value while JAWS is running has no effect.", "type": "string", "default": "Classic" } }, "Options.ScreenEcho": { "schema": { "title": "Screen Echo", "description": "Use the radio buttons in this group to determine how much text is read when information on the screen changes. This includes highlighted text, all text as it appears, or no speech echo as text appears or changes on screen. The default setting is Echo Highlighted Text. Changing the Screen Echo setting may affect the reading of menus and other items. For this reason, it is recommended that you only make Screen Echo changes in application-specific settings files.", "type": "number", "default": 1, "enum": [ 0, 1, 2 ], "enumLabels": [ "off", "highlight", "all" ] } }, "Options.SimultaneousSynthAndWave": { "schema": { "title": "Simultaneous Synth and Wave", "description": "Whether to enable smoother playing of WAV files when using the DEC Talk Access 32 software synthesizer. This option is only available in Default.jcf. Changes to this setting take effect the next time you start JAWS. Disabled by default.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SingleDigitThreshold": { "schema": { "title": "Single Digit Threshold", "description": "The number of digits a number must contain before it is read as single digits (like a phone number). Defaults to five.", "type": "integer", "default": 5 } }, "Options.SkimReadingIndication": { "schema": { "title": "Skim Reading Indication", "description": "Whether or not to indicate (via a beep) when skimming over text units for which the regular expression returns FALSE.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "beep every 20 units skimmed over" ] } }, "Options.SkipILM": { "schema": { "title": "Skip ILM", "description": "Whether to show the licensing manager on startup when running in 40-minute evaluation mode.", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "display the license manager on startup", "do not display the license manager on startup" ] } }, // This is not meaningful unless it's coupled with an application for context. Disabled for now. // "Options.SleepMode": { // "schema": { // "title": "SleepMode", // "description": "Whether to put JAWS to sleep. In the context of a specific application, this preference can be set to disable JAWS within that application.", // "type": "number", // "default": 0, // "enum": [ // 0, // 1 // ], // "enumLabels": [ // "off", // "on" // ] // } // }, "Options.SmartWordReading": { "schema": { "title": "Smart Word Reading", "description": "Whether or not to enable \"smart reading\" when using the \"Say Word\" command.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.SpeakANSIChars": { "schema": { "title": "Speak ANSI Chars", "description": "Whether or not to announce ANSI characters.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.SpeakCharacterValueAsMultibyteSequence": { "schema": { "title": "Speak Character Value As Sequence of Multibyte Values", "description": "Whether to read unicode characters as a series of multi-byte values.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.SpeakCharacterValueInHex": { "schema": { "title": "Speak Character Value In Hex", "description": "Whether to announce the hex value of a character when numpad 5 is pressed three times quickly.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.SpeakNumbersSepByDashesAsDigits": { "schema": { "title": "Numbers Containing Dashes as Digits", "description": "Whether to read numbers that contain dashes (such as phone numbers) as a series of digits.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.SpeechHistory": { "schema": { "title": "Enable Speech History", "description": "Whether to read through the 50-item speech history when \"insert+spacebar\" and then \"h\" are pressed.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.SpeechMode": { "schema": { "title": "Speech Mode", "description": "The \"speech mode\" to use, either \"full\" or \"less\".", "enum": [ 0, 1 ], "enumLabels": [ "full speech", "less speech" ], "default": 0 } }, "Options.SpellAlphanumericData": { "schema": { "title": "Spell Alphanumeric Data", "description": "How to read alphanumeric data.", "enum": [ 0, 1, 2 ], "enumLabels": [ "read as appears", "spell", "spell phonetically" ], "default": 0 } }, "Options.SpellPhonetic": { "schema": { "title": "Spell Phonetic", "description": "How to announce word spellings.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "spell normal", "spell phonetic" ] } }, // TODO: Verify. Look at the INI file and suggest defaults? "Options.Synthesizer": { "schema": { "title": "Synthesizer", "description": "The synthesizer to use/ Available synthesizers are listed in JfW.INI", "type": "string", "enum": ["Synth1"], "enumLabels": ["Default speech synthesizer"], "default": "Synth1" } }, "Options.SynthesizerResetFrequency": { "schema": { "title": "Synthesizer Reset Frequency", "description": "How often to reset communication with the synthesizer, in milliseconds.", "type": "integer", "default": 2000, "minimum": 0 } }, "Options.TetherJawsToPC": { "schema": { "title": "Tether Jaws to PC", "description": "Whether or not to tether the JAWS cursor to the PC cursor. If this is set to 'on', whenever the Pc cursor moves, the Jaws cursor will follow it. If this is set to 'off', the JAWS cursor is indifferent to PC cursor movements (this is the default).", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.TextAnalyser": { "schema": { "title": "Text Analyzer", "description": "The type of alert to use when announcing formatting errors.", "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "turn off", "indicate with sound", "speak count", "describe inconsistencies" ], "default": 0 } }, // TODO: Discuss whether / how to handle "bit fields" like these. // "Options.TextAnalyserSymbolFlags": { // "schema": { // } // "title": "Indicate Mismatched Symbols", // "description": "Which mismatched symbols (such as mismatched opening and closing parentheses) to indicate when editing. Defaults to announcing all supported mismatching symbols." // }, // "Options.TextAnalyserTypeFlags": { // "schema": { // } // "title": "Inconsistencies to Check", // "description": "Which types of inconsistencies to check. Defaults to \"all\"." // }, "Options.TouchKeyboardChildPanelNotification": { "schema": { "title": "Touch Alternative Character Panel Popup Notification", "description": "How to announce the appearance of a panel of alternate keys in the touch keyboard.", "enum": [ 0, 1 ], "enumLabels": [ "by both message and sound", "by sound only" ], "default": 0 } }, "Options.TouchKeyboardNotification": { "schema": { "title": "Touch Keyboard Notification", "description": "Whether/how to notify when the touch keyboard appears/disappears.", "enum": [ 0, 1, 2 ], "enumLabels": [ "by message", "by sound", "by both message and sound" ], "default": 2 } }, "Options.TouchTypingEcho": { "schema": { "title": "Touch Typing Echo", "description": "Whether/how to echo text entered using the touch keyboard.", "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "none", "characters", "words", "both characters and words" ], "default": 3 } }, "Options.TouchTypingMode": { "schema": { "title": "Touch Typing Mode", "description": "Which keyboard mode to use for the touch keyboard.", "enum": [ 0, 1 ], "enumLabels": [ "standard", "touch typing" ], "default": 1 } }, // Can't find information in the help file or default settings. Disabled for now. // "Options.TreeViewCheckBoxes": { // "schema": { // "title": "Tree View Check Boxes", // "description": "", // "type": "number", // "default": 1, // "enum": [ // 0, // 1 // ], // "enumLabels": [ // "off", // "on" // ] // } // }, "Options.TypingEcho": { "schema": { "title": "Typing echo", "description": "How to announce typed words and/or characters.", "type": "number", "default": 1, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "don't announce characters or words", "announce characters", "announce words", "announce characters and words" ] } }, "Options.TypingInterrupt": { "schema": { "title": "Typing Interrupt", "description": "Whether to stop speaking when the user types.", "type": "number", "default": 1, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "Options.UseExtendedKeys": { "schema": { "title": "Use Extended Keys", "description": "Whether to distinguish between extended and number pad keys.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "Treat Extended and Numpad keys the same", "Differentiate between Extended and Numpad keys" ] } }, "Options.UseVirtualInfoInFormsMode": { "schema": { "title": "Use Virtual Info in Forms Mode", "description": "Whether to use information from the virtual HTML area for prompts in Forms mode. Warning: this will not always result in accurate information, particularly on pages where there are errors in the HTML coding which result in forms mode and virtual mode being out of synchronization.", "type": "number", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, // No documentation or onscreen option. Disabled for now. // "Options.UseWindowsKeyboardHook": { // "schema": { // "title": "Use Windows Keyboard Hook", // "description": "", // "type": "number", // "default": 0, // "enum": [ // 0, // 1 // ], // "enumLabels": [ // "off", // "on" // ] // } // }, "Options.Verbosity": { "schema": { "title": "Verbosity", "description": "How verbose announcements should be.", "type": "number", "default": 0, "enum": [ 0, 1, 2 ], "enumLabels": [ "most speech", "intermediate", "least speech" ] } }, "Options.VirtualDocumentLinkActivationMethod": { "schema": { "title": "Virtual Document Link Activation Method", "description": "How to activate a link when the enter key is pressed. Either simulates a mouse click or passes along the enter keypress.", "enum": [0,1], "enumLabels": ["Enter simulates mouse click.", "Enter sends enter key."], "default": 0 } }, "Options.VIRTUALMSAAREFRESH": { "schema": { "title": "Virtual MSAA Refresh", "description": "How often (in milliseconds) should an embedded ActiveX control cause the Virtual HTML area to be updated when receiving rapid ValueChange events from MSAA. Set to -1 to disable refreshes.", "type": "integer", "default": 0, "minimum": -1 } }, "Options.VirtualRibbonSupport": { "schema": { "title": "Virtual Ribbon Support", "description": "Whether to use the Virtual PC cursor to read HTML documents. When using the Virtual PC cursor, Web pages and other HTML documents are read as if they were formatted into single columns, with each link or form field on a line of its own. This mode allows you to navigate or select text in a Web page as if you were in a standard text document, while also giving you the ability to fill out forms or activate links.", "enum": [0, 1], "enumLabels": ["off", "on"], "default": 1 } }, // TODO: DEFAULT "Options.VTcolor": { "schema": { "title": "Visual Tracking Color", "description": "The colour to use when highlighting items selected using the touch cursor.", "type": "integer" } }, // TODO: DEFAULT "Options.VTspacing": { "schema": { "title": "Visual Tracking Spacing", "description": "The amount of spacing between the highlight box and the highlighted item.", "type": "integer" } }, "Options.VTstyle": { "schema": { "title": "Visual Tracking Style", "description": "The style of highlighting to use.", "enum": [ 0, 1, 2 ], "enumLabels": [ "box", "block", "underline" ], "default": 0 } }, // TODO: DEFAULT "Options.VTthickness": { "schema": { "title": "Visual Tracking Thickness", "description": "How thick to make the \"box\" and \"underline\" highlighting styles.", "type": "integer" } }, // TODO: DEFAULT "Options.VTtransparency": { "schema": { "title": "Visual Tracking Transparency", "description": "How transparent to make the visual highlighting of selected items.", "type": "integer" } }, "Options.VTUseTouchCursor": { "schema": { "title": "Highlight Touch Cursor", "description": "Whether or not to highlight selected items when using the touch cursor or touch gestures.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.VTUseVirtualPCCursor": { "schema": { "title": "Use Virtual PC Cursor", "description": "Whether to use the virtual PC cursor when reading HTML documents.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.VTUseVirtualRibbon": { "schema": { "title": "Use Virtual Ribbon Menu", "description": "Whether to turn on the virtual ribbon menu.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "OSM.GraphicsMode": { "schema": { "title": "Graphics Mode", "description": "How to handle graphic CRC values.", "enum": [ 0, 1 ], "enumLabels": [ "Store graphic CRC values when the graphics are being drawn to the screen.", "Compute them from the screen image at the time they are requested to be spoken." ], "default": 0 } }, "OSM.IgnoreSetSysModal": { "schema": { "title": "Ignore Set Sys Modal", "description": "Whether to disallow Windows calling the SetSysModalWindow function. In most cases this is desirable, because System Modal Windows cannot be spoken.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "OSM.IncludeGraphics": { "schema": { "title": "Include Graphics", "description": "Which graphics to announce.", "enum": [ 0, 1, 2 ], "enumLabels": ["Ignore all graphics", "Announce labeled graphics only", "Announce all graphics"], "default": 1 } }, "OSM.IncludeLines": { "schema": { "title": "Include Lines", "description": "Whether to include line segments in the Off Screen Model. This is required for Excel and other programs which draw a focus rectangle.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "OSM.MouseClickFudgeX": { "schema": { "title": "Mouse Click Fudge X", "description": "number of pixels to the right of the current JAWS cursor at which a mouse click should be simulated", "type": "integer", "default": 1 } }, "OSM.MouseClickFudgeY": { "schema": { "title": "Mouse Click Fudge Y", "description": "number of pixels below the current JAWS cursor at which a mouse click should be simulated", "type": "integer", "default": -2 } }, "OSM.PixelsPerBlankLine": { "schema": { "title": "Pixels Per Blank Line", "description": "how many pixels (high) per blank line", "type": "integer", "default": 13 } }, "OSM.PixelsPerSpace": { "schema": { "title": "Pixels Per Space", "description": "When simulating spaces in blank portions of a line, the number of pixels used to represent each space.", "type": "integer", "default": 8 } }, "OSM.PixelsPerTab": { "schema": { "title": "Pixels Per Tab", "description": "The number of pixels per tab, used to estimate the number of tab spaces contained within the blank portion of a line.", "type": "integer", "default": 10 } }, "OSM.SpeakSysModalMessageBox": { "schema": { "title": "Speak Sys Modal Message Box", "description": "Whether to announce System Modal Message Boxes.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "OSM.TableDetection": { "schema": { "title": "Table Presentation Information", "description": "Which tables to read as tables (data tables, or all tables).", "enum": [ 0, 1 ], "enumLabels": [ "data tables only", "all tables" ], "default": 0 } }, "OSM.TextOutDelay": { "schema": { "title": "Text Out Delay", "description": "The number of milliseconds to wait before announcing newly written text. Setting this to a non-zero value may cause terminal programs to respond in a less choppy fashion.", "type": "integer", "default": 0 } }, "OSM.TrackCommandBars": { "schema": { "title": "Track Command Bars", "description": "Whether to track the menu bar in Office applications.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "OSM.TrackFocusRect": { "schema": { "title": "Track Focus Rectangle", "description": "Set to one causes MAGic to track the focus rectangle in standard controls that utilize focus rectangles.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "OSM.TrimBrailleGraphicLabels": { "schema": { "title": "Trim Braille Graphic Labels", "description": "Whether to trim the size of a braille graphic. Useful to preserve the virtical positioning of braille text.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "OSM.UnderlineProximity": { "schema": { "title": "Underline Proximity", "description": "How far away in pixels can an underline be before being considered an actual underline.", "type": "integer", "default": 0 } }, // TODO: Document default. "Touch.FlickVelocityMin": { "schema": { "title": "Flick Velocity", "description": "The minimum finger velocity to treat as a \"flick\".", "type": "integer" } }, // TODO: Document default. "Touch.TapEventDurationMax": { "schema": { "title": "Explore Delay", "description": "The delay between touching a touch screen and displaying the explore menu, in milliseconds.", "type": "integer" } }, // TODO: Document default. "Touch.TapInterEventDurationMax": { "schema": { "title": "Double Tap Speed", "description": "The threshold for treating two taps as a double-tap, expressed in milliseconds between taps.", "type": "integer" } }, // TODO: Document default. "Touch.TapTranslationMax": { "schema": { "title": "Tap Radius", "description": "The size of the finger contact spot on the touch screen.", "type": "integer" } }, // I don't think this is something that the user should change since we always store the voice settings into our own profile name "GPII" "Voice Profiles.ActiveVoiceProfileName": { "schema": { "title": "Active Voice Profile Name", "description": "The active voice profile.", "type": "string", "default": "GPII" } } }, "capabilitiesTransformations": { "Voice Profiles\\.ActiveVoiceProfileName": { "literalValue": "GPII" }, "Options\\.SayAllIndicateCaps": { "transform": { "type": "valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/announceCapitals", "match": [ { "inputValue": true, "outputValue": 1 }, { "inputValue": false, "outputValue": 0 } ], "noMatch": { "outputValue": 0 } } }, "Options\\.TypingEcho": { // (1=keyEcho, 2=wordEcho, 3=key&wordEcho) "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/keyEcho", "rightPath": "http://registry\\.gpii\\.net/common/wordEcho", "operator": "&&" } }, "true": 3, "false": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/keyEcho", "true": 1, "false": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/wordEcho", "true": 2 } } } } } }, "Options\\.SayAllMode": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/readingUnit", "match": { "line": 0, "sentence": 1, "paragraph": 2 } } }, "Braille\\.BrailleMode": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/brailleMode", "match": { "line": 0, "structured": 1, "speechHistory": 2 } } }, "Options\\.SayAllIgnoreShiftKeys": { "transform": { "type": "valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/stickyKeys", "match": [ { "inputValue": true, "outputValue": 1 }, { "inputValue": false, "outputValue": 0 } ], "noMatch": { "outputValue": 0 } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/announceCapitals": { "transform": { "type": "valueMapper", "defaultInputPath": "Options\\.SayAllIndicateCaps", "match": [ { "inputValue": 0, "outputValue": false }, { "inputValue": 1, "outputValue": true } ], "noMatch": { "outputValue": false } } }, "http://registry\\.gpii\\.net/common/keyEcho": { "transform": { "type": "valueMapper", "defaultInputPath": "Options\\.TypingEcho", // (1=keyEcho, 2=wordEcho, 3=key&wordEcho) "match": [ { "inputValue": 1, "outputValue": true }, { "inputValue": 3, "outputValue": true } ], "noMatch": { "outputValue": false } } }, "http://registry\\.gpii\\.net/common/wordEcho": { "transform": { "type": "valueMapper", "defaultInputPath": "Options\\.TypingEcho", // (1=keyEcho, 2=wordEcho, 3=key&wordEcho) "match": [ { "inputValue": 2, "outputValue": true }, { "inputValue": 3, "outputValue": true } ], "noMatch": { "outputValue": false } } }, "http://registry\\.gpii\\.net/common/readingUnit": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "Options\\.SayAllMode", "match": [ { "inputValue": 0, "outputValue": "line" }, { "inputValue": 1, "outputValue": "sentence" }, { "inputValue": 2, "outputValue": "paragraph" } ] } }, "http://registry\\.gpii\\.net/common/brailleMode": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "Braille\\.BrailleMode", "match": [ { "inputValue": 0, "outputValue": "line" }, { "inputValue": 1, "outputValue": "structured" }, { "inputValue": 2, "outputValue": "speechHistory" } ] } } } }, "configuration2": { "type": "gpii.settingsHandlers.INISettingsHandler", "liveness": "manualRestart", "options": { // TODO: Create a base grade for JAWS and version-specific variations. Make JAWS 2019 the default. Restart version-detection discussions and "capability" discussions. "filename": "${{environment}.APPDATA}\\Freedom Scientific\\JAWS\\2019\\Settings\\VoiceProfiles\\GPII.VPF" }, "supportedSettings": { "ENU-Global.Pitch": { "schema": { "title": "Pitch", "description": "The pitch to use for all types of announcements.", "type": "integer", "minimum": 1, "maximum": 100, "default": 65 } }, "ENU-Global.Punctuation": { "schema": { "title": "Punctuation", "description": "How much punctuation to announce for all types of announcements.", "enum": [0, 1, 2, 3], "enumLabels": ["None", "Some", "Most", "All"], "default": 2 } }, "ENU-Global.Rate": { "schema": { "title": "Rate", "description": "Speech rate for all announcements (scale varies by voice).", "type": "integer" } }, "ENU-Global.SynthLangString": { "schema": { "title": "Synth Language", "description": "The language to use for all announcements.", "type": "string" } }, "ENU-Global.Volume": { "schema": { "title": "Global Volume", "description": "The volume for all announcements.", "type": "integer", "minimum": 10, "maximum": 100, "default": 100 } }, "ENU-JAWSCursor.Pitch": { "schema": { "title": "JAWS Cursor Pitch", "description": "The pitch to use for announcements related to the JAWS cursor.", "type": "integer", "minimum": 1, "maximum": 100, "default": 65 } }, "ENU-JAWSCursor.Punctuation": { "schema": { "title": "JAWS Cursor Punctuation", "description": "How much punctuation to announce for the JAWS cursor.", "enum": [0, 1, 2, 3], "enumLabels": ["None", "Some", "Most", "All"], "default": 2 } }, "ENU-JAWSCursor.Rate": { "schema": { "title": "JAWS Cursor Rate", "description": "Speech rate for announcements related to the JAWS cursor (scale varies by voice).", "type": "integer" } }, "ENU-JAWSCursor.SynthLangString": { "schema": { "title": "JAWS Cursor Language", "description": "The language to use for announcements related to the JAWS cursor.", "type": "string" } }, "ENU-JAWSCursor.Volume": { "schema": { "title": "JAWS Cursor Volume", "description": "The volume for announcements related to the JAWS cursor.", "type": "integer", "minimum": 10, "maximum": 100, "default": 100 } }, "ENU-Keyboard.Pitch": { "schema": { "title": "Keyboard Pitch", "description": "The pitch to use for announcements related to the keyboard.", "type": "integer", "minimum": 1, "maximum": 100, "default": 65 } }, "ENU-Keyboard.Punctuation": { "schema": { "title": "Keyboard Punctuation", "description": "How much punctuation to announce for announcements related to the keyboard.", "enum": [0,1,2,3], "enumLabels": ["None", "Some", "Most", "All"], "default": 2 } }, "ENU-Keyboard.Rate": { "schema": { "title": "Keyboard Rate", "description": "Speech rate for announcements related to the keyboard (scale varies by voice).", "type": "integer" } }, "ENU-Keyboard.SynthLangString": { "schema": { "title": "Keyboard Language", "description": "The language to use for announcements related to the keyboard.", "type": "string" } }, "ENU-Keyboard.Volume": { "schema": { "title": "Keyboard Volume", "description": "The volume for announcements related to the keyboard.", "type": "integer", "minimum": 10, "maximum": 100, "default": 100 } }, "ENU-MenuAndDialog.Pitch": { "schema": { "title": "Menu and Dialog Pitch", "description": "The pitch to use for announcements related to menus and dialogs.", "type": "integer", "minimum": 1, "maximum": 100, "default": 65 } }, "ENU-MenuAndDialog.Punctuation": { "schema": { "title": "Menu and Dialog Punctuation", "description": "How much punctuation to announce for menus and dialogs.", "enum": [0,1,2,3], "enumLabels": ["None", "Some", "Most", "All"], "default": 2 } }, "ENU-MenuAndDialog.Rate": { "schema": { "title": "Menu and Dialog Rate", "description": "Speech rate for announcements related to menus and dialogs (scale varies by voice).", "type": "integer" } }, "ENU-MenuAndDialog.SynthLangString": { "schema": { "title": "Menu and Dialog Language", "description": "The language to use for announcements related to menus and dialogs.", "type": "string" } }, "ENU-MenuAndDialog.Volume": { "schema": { "title": "Menu and Dialog Volume", "description": "The volume for announcements related to menus and dialogs.", "type": "integer", "minimum": 10, "maximum": 100, "default": 100 } }, "ENU-Message.Pitch": { "schema": { "title": "Message Pitch", "description": "The pitch to use for message announcements.", "type": "integer", "minimum": 1, "maximum": 100, "default": 65 } }, "ENU-Message.Punctuation": { "schema": { "title": "Message Punctuation", "description": "How much punctuation to announce for messages.", "enum": [0,1,2,3], "enumLabels": ["None", "Some", "Most", "All"], "default": 2 } }, "ENU-Message.Rate": { "schema": { "title": "Message Rate", "description": "Speech rate for message announcements.", "type": "integer" } }, "ENU-Message.SynthLangString": { "schema": { "title": "Message Language", "description": "The language to use for message announcements.", "type": "string" } }, "ENU-Message.Volume": { "schema": { "title": "Message Volume", "description": "The volume for message announcements.", "type": "integer", "minimum": 10, "maximum": 100, "default": 100 } }, "ENU-PCCursor.Pitch": { "schema": { "title": "PC Cursor Pitch", "description": "The pitch to use for announcements related to the PC cursor.", "type": "integer", "minimum": 1, "maximum": 100, "default": 65 } }, "ENU-PCCursor.Punctuation": { "schema": { "title": "PC Cursor Punctuation", "description": "How much punctuation to announce for the PC cursor.", "enum": [0,1,2,3], "enumLabels": ["None", "Some", "Most", "All"], "default": 2 } }, "ENU-PCCursor.Rate": { "schema": { "title": "PC Cursor Rate", "description": "Speech rate for announcements related to the PC cursor (scale varies by voice).", "type": "integer" } }, "ENU-PCCursor.SynthLangString": { "schema": { "title": "PC Cursor Language", "description": "The language to use for announcements related to the PC cursor.", "type": "string" } }, "ENU-PCCursor.Volume": { "schema": { "title": "PC Cursor Volume", "description": "The volume for announcements related to the PC cursor.", "type": "integer", "minimum": 10, "maximum": 100, "default": 100 } } }, "capabilitiesTransformations": { "ENU-Global\\.Rate": "http://registry\\.gpii\\.net/common/speechRate", "ENU-JAWSCursor\\.Rate": "http://registry\\.gpii\\.net/common/speechRate", "ENU-Keyboard\\.Rate": "http://registry\\.gpii\\.net/common/speechRate", "ENU-MenuAndDialog\\.Rate": "http://registry\\.gpii\\.net/common/speechRate", "ENU-Message\\.Rate": "http://registry\\.gpii\\.net/common/speechRate", "ENU-PCCursor\\.Rate": "http://registry\\.gpii\\.net/common/speechRate", "ENU-Global\\.Pitch": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 99, "offset": 1 } } } }, "ENU-JAWSCursor\\.Pitch": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 99, "offset": 1 } } } }, "ENU-Keyboard\\.Pitch": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 99, "offset": 1 } } } }, "ENU-MenuAndDialog\\.Pitch": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 99, "offset": 1 } } } }, "ENU-Message\\.Pitch": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 99, "offset": 1 } } } }, "ENU-PCCursor\\.Pitch": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 99, "offset": 1 } } } }, "ENU-Global\\.Volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "ENU-JAWSCursor\\.Volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "ENU-Keyboard\\.Volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "ENU-MenuAndDialog\\.Volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "ENU-Message\\.Volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "ENU-PCCursor\\.Volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "ENU-Global\\.Punctuation": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 1, "most": 2, "all": 3 } } }, "ENU-JAWSCursor\\.Punctuation": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 1, "most": 2, "all": 3 } } }, "ENU-Keyboard\\.Punctuation": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 1, "most": 2, "all": 3 } } }, "ENU-MenuAndDialog\\.Punctuation": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 1, "most": 2, "all": 3 } } }, "ENU-Message\\.Punctuation": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 1, "most": 2, "all": 3 } } }, "ENU-PCCursor\\.Punctuation": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 1, "most": 2, "all": 3 } } }, // TODO: This should be shared between all variations within this solution "ENU-Global\\.SynthLangString": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en-US": "American English", "en-GB": "British English", "fr": "French", "fr-CA": "French Canadian", "it": "Italian", "pt-BR": "Brazilian Portuguese", "de": "German", "es-US": "Latin American Spanish", "es-ES": "Castilian Spanish", "fi": "Finnish" } } }, // TODO: This should be shared between all variations within this solution "ENU-JAWSCursor\\.SynthLangString": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en-US": "American English", "en-GB": "British English", "fr": "French", "fr-CA": "French Canadian", "it": "Italian", "pt-BR": "Brazilian Portuguese", "de": "German", "es-US": "Latin American Spanish", "es-ES": "Castilian Spanish", "fi": "Finnish" } } }, // TODO: This should be shared between all variations within this solution "ENU-Keyboard\\.SynthLangString": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en-US": "American English", "en-GB": "British English", "fr": "French", "fr-CA": "French Canadian", "it": "Italian", "pt-BR": "Brazilian Portuguese", "de": "German", "es-US": "Latin American Spanish", "es-ES": "Castilian Spanish", "fi": "Finnish" } } }, // TODO: This should be shared between all variations within this solution "ENU-MenuAndDialog\\.SynthLangString": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en-US": "American English", "en-GB": "British English", "fr": "French", "fr-CA": "French Canadian", "it": "Italian", "pt-BR": "Brazilian Portuguese", "de": "German", "es-US": "Latin American Spanish", "es-ES": "Castilian Spanish", "fi": "Finnish" } } }, // TODO: This should be shared between all variations within this solution "ENU-Message\\.SynthLangString": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en-US": "American English", "en-GB": "British English", "fr": "French", "fr-CA": "French Canadian", "it": "Italian", "pt-BR": "Brazilian Portuguese", "de": "German", "es-US": "Latin American Spanish", "es-ES": "Castilian Spanish", "fi": "Finnish" } } }, // TODO: This should be shared between all variations within this solution "ENU-PCCursor\\.SynthLangString": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en-US": "American English", "en-GB": "British English", "fr": "French", "fr-CA": "French Canadian", "it": "Italian", "pt-BR": "Brazilian Portuguese", "de": "German", "es-US": "Latin American Spanish", "es-ES": "Castilian Spanish", "fi": "Finnish" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/speechRate": "ENU-Global\\.Rate", "http://registry\\.gpii\\.net/common/pitch": { "transform": { "type": "fluid.transforms.round", "scale": 1, "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "ENU-Global\\.Pitch", "factor": 0.010101, "offset": -0.010101 } } } }, "http://registry\\.gpii\\.net/common/volumeTTS": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "ENU-Global\\.Volume", "factor": 0.01 } }, "http://registry\\.gpii\\.net/common/punctuationVerbosity": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "ENU-Global\\.Punctuation", "match": [ { "inputValue": 0, "outputValue": "none" }, { "inputValue": 1, "outputValue": "some" }, { "inputValue": 2, "outputValue": "most" }, { "inputValue": 3, "outputValue": "all" } ] } }, // TODO: Review the "common" language settings WRT various solution language settings. "http://registry\\.gpii\\.net/common/auditoryOutLanguage": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "ENU-Global\\.SynthLangString", "match": { "American English": "en-US", "British English": "en-GB", "French": "fr", "French Canadian": "fr-CA", "Italian": "it", "Brazilian Portuguese": "pt-BR", "German": "de", "Latin American Spanish": "es-US", "Castilian Spanish": "es-ES", "Finnish": "fi" } } } } } }, "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "getState": [ { "type": "gpii.processReporter.find", "command": "jfw.exe" } ], "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\JAWS2019.exe\\}\"" } ], "setFalse": [ { "type": "gpii.windows.closeProcessByName", "filename": "jfw.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "fsSynth32.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "jhookldr.exe" }, // New for JAWS 2018 and higher. { "type": "gpii.windows.closeProcessByName", "filename": "ScannerHandler.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_LOCAL_MACHINE", "path": "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\JAWS2019.exe", "subPath": "", "dataType": "REG_SZ" } ] }, "com.freedomscientific.magic": { "name": "MAGic", "contexts": { "OS": [ { "id": "win32" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/magnification/enabled" ], "settingsHandlers": { "configuration1": { "type": "gpii.settingsHandlers.INISettingsHandler", "liveness": "manualRestart", "options": { "filename": "${{environment}.APPDATA}\\Freedom Scientific\\MAGIC\\14.0\\Settings\\enu\\DEFAULT.MCF" }, "supportedSettings": { "mag.caretbutton": { schema: { title: "Enable Mouse Scheme", description: "Whether to enable the mouse pointer scheme.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.colorbutton": { schema: { title: "Enable Color Scheme", description: "Whether to enable the color scheme.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.cursorbutton": { schema: { title: "Enable Cursor Scheme", description: "Whether to enable the text cursor scheme.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.detectKeyboardInputLanguage": { schema: { title: "Detect Keyboard Language", description: "Whether or not text echo should use the language of the keyboard itself rather than the language defined for the voice profile.", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.DisabledScreenSaver": { schema: { title: "Disable Screen Saver", description: "Whether or not to disable the screen saver while MAGic is running", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.dynlensbordercolor": { schema: { title: "Dynamic Lens Border Color", description: "The border color to use for the 'dynamic lens' view.", enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], enumLabels: [ "Black", "White", "Medium Gray", "Light Gray", "Dark Red", "Red", "Dark Yellow", "Yellow", "Dark Green", "Green", "Dark Cyan", "Cyan", "Dark Blue", "Blue", "Dark Magenta", "Magenta" ], default: 5 } }, "mag.dynlensborderwidth": { schema: { title: "Dynamic Lens Border Width", description: "The border width in the 'dynamic lens' view.", type: "integer", minimum: 2, maximum: 12, default: 8 } }, "mag.enablebilingual": { schema: { title: "Enable Bilingual Mode", description: "Whether or not to enable 'bilingual mode' in MAGic. If this setting is enabled, MAGic will change its language when a voice profile is selected that uses a different language.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.enablemagicfrmsystray": { schema: { title: "Enable MAGic from System Tray", description: "Whether or not to allow enabling and disabling of MAGic features from the system tray.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.Focus Enhancement Enabled": { schema: { title: "Focus Enhancement Enabled", description: "Whether or not to enable focus enhancement.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.IndicateCaps": { schema: { title: "Indicate Caps During", description: "When to indicate capital letters in echoing typed text.", enum: [0,1,2], enumLabels: [ "Say Character and Spelling", "Say Word,Character and Spelling", "Say Line, Word, Character and Spelling" ], default: 0 } }, "mag.IndicateCapsBy": { schema: { title: "Indicate Capitalization By", description: "How to indicate capital letters in echoing typed text.", enum: [0,1,2], enumLabels: [ "No Indication", "Pitch Increment", "Say 'Cap'" ], default: 1 } }, // Custom focus color settings left in as a placeholder but not implemented. To support them we'd // need to understand the color value better and create a picker for potentially millions of colors. //"mag.Focus Enhancement Color": {} // 10485760 =Dark Blue //"mag.Focus Enhancement Use Custom Color": {} // 1 = on "mag.lensbordercolor": { schema: { title: "Lens Border Color", description: "The border color to use for the 'lens' view.", enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], enumLabels: [ "Black", "White", "Medium Gray", "Light Gray", "Dark Red", "Red", "Dark Yellow", "Yellow", "Dark Green", "Green", "Dark Cyan", "Cyan", "Dark Blue", "Blue", "Dark Magenta", "Magenta" ], default: 5 } }, "mag.lensborderwidth": { schema: { title: "Lens Border Width", description: "The width of the border in the 'lens' view.", type: "integer", minimum: 2, maximum: 12, default: 8 } }, "mag.LowerOtherAppsVolumeWhileMagicIsRunning": { schema: { title: "Lower Other Apps' Volume", description: "Whether or not the volume of other apps should be lowered when MAGic is running.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.overlaybordercolor": { schema: { title: "Lens Border Color", description: "The border color to use for the 'lens' view.", enum: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], enumLabels: [ "Black", "White", "Medium Gray", "Light Gray", "Dark Red", "Red", "Dark Yellow", "Yellow", "Dark Green", "Green", "Dark Cyan", "Cyan", "Dark Blue", "Blue", "Dark Magenta", "Magenta" ], default: 5 } }, "mag.overlayborderwidth": { schema: { title: "Overlay Border Width", description: "The width of the frame border in the 'split' view.", type: "integer", minimum: 2, maximum: 12, default: 8 } }, "mag.promptmagictosave": { schema: { title: "Prompt to Save", description: "Whether or not MAGic should prompt to save settings changes on shutdown.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.promptoverwriteschemes": { schema: { title: "Prompt When Overwriting Scheme", description: "Whether or not to display a warning when attempting to save a color, cursor, or mouse scheme with the same name as an existing scheme.", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.size": { schema: { title: "Magnification Level", description: "How many times to magnify content when magnification is enabled.", type: "number", default: 1.10, oneOf: [ { minimum: 1, maximum: 1.9, multipleOf: 0.1}, { minimum: 2, maximum: 3.75, multipleOf: 0.25}, { minimum: 4, type: "integer"} ] } }, "mag.speechbutton": { schema: { title: "Enable Speech", description: "Whether or not to announce onscreen text using text-to-speech.", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.splitlocation": { schema: { title: "Split Location", description: "The location where the 'split' view should appear when it is turned on.", enum: [0,1,2,3], enumLabels: [ "Bottom", "Top", "Right", "Left" ], default: 0 } }, "mag.splitsize": { schema: { title: "Split Size", description: "The size of the magnified portion of the screen in the 'split' view.", enum: [0,1,3], enumLabels: ["Quarter", "Half", "Custom"], default: 1 } }, "mag.splitbordercolor": { schema: { title: "Split Border Color", description: "The color of the border between the magnified and unmagnified portions of the screen in the 'split' view.", enum: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ], enumLabels: [ "Black", "White", "Medium Gray", "Light Gray", "Dark Red", "Red", "Dark Yellow", "Yellow", "Dark Green", "Green", "Dark Cyan", "Cyan", "Dark Blue", "Blue", "Dark Magenta", "Magenta" ], default: 4 } }, "mag.splitframesize": { schema: { title: "Split Frame Size", description: "The width of the frame border in the 'split' view.", type: "integer", minimum: 2, maximum: 12, default: 8 } }, "mag.splitwindowheight": { schema: { title: "Split Window Height", description: "The height of the magnified portion of the 'split' view when a horizontal (top or bottom) position is selected. Expressed as a percentage of screen height.", type: "integer", minimum: 0, maximum: 100, default: 50 } }, "mag.splitwindowwidth": { schema: { title: "Split Window Width", description: "The width of the magnified portion of the 'split' view when a vertical (left or right) position is selected. Expressed as a percentage of screen width.", type: "integer", minimum: 0, maximum: 100, default: 50 } }, "mag.startmagicminimized": { schema: { title: "Start Minimized", description: "Whether or not to minimize MAGic on startup.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "mag.startmagnified": { schema: { title: "Start Magnified", description: "Whether or not to turn magnification on when MAGic starts.", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.TextViewerCharSpace": { schema: { title: "Text Viewer Character Spacing", description: "The character spacing used by the text viewer.", type: "integer", minimum: 0, maximum: 20, default: 0 } }, // There is no easy way to understand or set custom color values, use the indexed color scheme instead. //"mag.TextViewerFontBkgColor": {}, "mag.TextViewerFontBkgColorIndex": { schema: { title: "Text Viewer Font Background Color", description: "The background color to use behind the text in the text viewer.", // 15 is "Custom", but we have no way to set that, so we leave it out. enum: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14], enumLabels: [ "Light Blue", "Deep Sky Blue", "Blue", "Dark Blue", "Purple Blue", "Fuchsia", "Red", "Orange", "Yellow", "Lime Green", "Green", "Olive Drab", "Saddle Brown", "Burly Wood", "Black", "White" ], default: 14 // White } }, // There is no easy way to understand or set custom color values, use the indexed color scheme instead. //"mag.TextViewerFontColor": {}, "mag.TextViewerFontColorIndex": { schema: { title: "Text Viewer Font Color", description: "The font color to use in the text viewer.", // 15 is "Custom", but we have no way to set that, so we leave it out. enum: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14], enumLabels: [ "Light Blue", "Deep Sky Blue", "Blue", "Dark Blue", "Purple Blue", "Fuchsia", "Red", "Orange", "Yellow", "Lime Green", "Green", "Olive Drab", "Saddle Brown", "Burly Wood", "Black", "White" ], default: 13 // Black } }, "mag.TextViewerFontFaceName": { schema: { title: "Text Viewer Font", description: "The font to use when displaying text using the text viewer.", type: "string", default: "Arial" } }, "mag.TextViewerFontSize": { schema: { title: "Text Viewer Font Size", description: "The size of the font to use when displaying text using the text viewer.", type: "integer", default: 50 } }, "mag.TextViewerFontStyle": { schema: { title: "Text Viewer Font Style", description: "The font style to use with the text viewer.", enum: [0,1,2], enumLabels: ["Original", "Regular", "Bold"], default: 0 } }, "mag.TextViewerFontEffect": { schema: { title: "Text Viewer Font Effect", description: "The font effect to use in the text viewer.", enum: [0,1,2], enumLabels: ["Small Caps", "All Caps", "None"], default: 2 } }, "mag.TextViewerOn": { schema: { title: "Enable Text Viewer", description: "Whether or not to enable the text viewer.", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.TextViewerPosition": { schema: { title: "Text Viewer Position", description: "The position of text viewer content onscreen.", enum: [0,1], enumLabels: ["Bottom", "Top"], default: 0 } }, "mag.TextViewerSpotlightStyle": { schema: { title: "Text Viewer Spotlight Style", description: "The style of 'spotlight' to use with the text viewer.", enum: [0,1,2], enumLabels: ["Box", "Underline", "Block"], default: 0 } }, "mag.TextViewerSpotlightTransparency": { schema: { title: "Text Viewer Spotlight Transparency", description: "How transparent the text viewer 'spotlight' should be.", type: "integer", minimum: 0, maximum: 100, default: 0 } }, // There is no easy way to understand or set custom color values, use the indexed color scheme instead. //"mag.TextViewerSpotlightColor": {}, "mag.TextViewerSpotlightColorIndex": { schema: { title: "Text Viewer Spotlight Color", description: "The spotlight color to use in the text viewer.", // 15 is "Custom", but we have no way to set that, so we leave it out. enum: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14], enumLabels: [ "Light Blue", "Deep Sky Blue", "Blue", "Dark Blue", "Purple Blue", "Fuchsia", "Red", "Orange", "Yellow", "Lime Green", "Green", "Olive Drab", "Saddle Brown", "Burly Wood", "Black", "White" ], default: 6 // Red } }, // There is no easy way to understand or set custom color values, use the indexed color scheme instead. //"mag.TextViewerSpotlightWordColor": {}, "mag.TextViewerSpotlightWordColorIndex": { schema: { title: "Text Viewer Spotlight Text Color", description: "The spotlight text color to use in the text viewer.", // 15 is "Custom", but we have no way to set that, so we leave it out. enum: [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14], enumLabels: [ "Light Blue", "Deep Sky Blue", "Blue", "Dark Blue", "Purple Blue", "Fuchsia", "Red", "Orange", "Yellow", "Lime Green", "Green", "Olive Drab", "Saddle Brown", "Burly Wood", "Black", "White" ], default: 8 // Yellow } }, "mag.TextViewerSpotlightThickness": { schema: { title: "Text Viewer Spotlight Thickness", description: "The thickness (line width) used by the text viewer 'spotlight' when a relevant style (such as 'Box') is selected.", type: "integer", minimum: 0, maximum: 10, default: 0 } }, "mag.TextViewerTrackingMode": { schema: { title: "Text Viewer Tracking Mode", description: "The tracking mode to use with the text viewer.", enum: [0,1], enumLabels: ["Auto Advance", "Center"], default: 0 } }, "mag.TextViewerWordSpace": { schema: { title: "Text Viewer Word Spacing", description: "The word spacing used by the text viewer.", type: "integer", minimum: 0, maximum: 20, default: 0 } }, "mag.typingecho": { schema: { title: "Typing Echo Unit", description: "The 'unit' to announce when echoing typed text (words, characters, or both).", enum: [1,2,3], // In JAWS, zero is also an option, but the MAGic interface doesn't allow you to select that, so it's omitted here. enumLabels: [ "Characters", "Words", "Characters and Words" ], default: 1 } }, "mag.typeechobutton": { schema: { title: "Enable Typing Echo", description: "Whether or not to enable the typing echo when announcing content.", enum: [0,1], enumLabels: ["Off", "On"], default: 1 } }, "mag.viewtype": { schema: { title: "View Type", description: "How to display magnified content when magnification is active.", enum: [0, 1, 2, 3, 4, 5], enumLabels: [ "Full", "Split", "Overlay", "Lens", "Dynamic Lens", "Multi-Monitor" ], default: 0 } }, "Magnification": { "schema": { "title": "Magnification", "description": "Set up magnification level", "type": "integer", "default": 200, "minimum": 100, "maximum": 1600 } }, "MagnificationMode": { "schema": { "title": "Magnifier position", "description": "Position of the magnified area", "default": 2, "enum": [ 2, 3 ], "enumLabels": [ "Top Half", "Full Screen", "Lens" ] } }, "Options.SkipILM": { schema: { title: "Skip License Manager Dialog", description: "Whether or not to display the license manager on startup.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "scheme.ColorSchemeModified": { schema: { title: "Color Scheme Modified", description: "Whether or not the chosen color scheme has been modified from its defaults.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "scheme.Color_Scheme": { schema: { title: "Color Scheme", description: "The color scheme to use.", enum: [ "Invert Brightness+Color", "Autumn Colors+Color", "Double Invert+Color", "Grayscale+Color", "Grayscale (Inverted)+Color", "Green on Black+Color", "Invert Colors+Color", "Yellow on Black+Color" ], enumLabels: [ "Invert Brightness", "Autumn Colors", "Double Invert", "Grayscale", "Grayscale (Inverted)", "Green on Black", "Invert Colors", "Yellow on Black" ], default: "Invert Brightness+Color" } }, "scheme.CursorSchemeModified": { schema: { title: "Cursor Scheme Modified", description: "Whether or not the chosen cursor scheme has been modified from its defaults.", enum: [0,1], enumLabels: ["Off", "On"], default: 0 } }, "scheme.Cursor_Scheme": { schema: { title: "Cursor Scheme", description: "How to represent the text cursor.", enum: [ "Sky Blue Oval+Cursor", "Flat Orange Triangle+Cursor", "Light Blue Long Oval+Cursor", "Little Red Triangle+Cursor", "Purple Long Box+Cursor" ], enumLabels: [ "Sky Blue Oval", "Flat Orange Triangle", "Light Blue Long Oval", "Little Red Triangle", "Purple Long Box" ], default: "Sky Blue Oval+Cursor" } }, "scheme.MouseSchemeModified": { schema: { title: "Mouse Scheme Modified", description: "Whether or not the chosen mouse scheme has been modified from its defaults.", enum: [ 0, 1 ], enumLabels: ["Off", "On"], default: 0 } }, "scheme.Mouse_Scheme": { schema: { title: "Mouse Scheme", description: "How to represent the mouse pointer.", enum: [ "3D Blue with Oval+Mouse", "Big Green+Mouse", "Bold with Short Cross+Mouse", "Bold Yellow+Mouse", "Bold Yellow with Full Cross+Mouse", "MAGic Key Mouse Finder+Mouse", "Scope When Moving+Mouse" ], enumLabels: [ "3D Blue with Oval", "Big Green", "Bold with Short Cross", "Bold Yellow", "Bold Yellow with Full Cross", "MAGic Key Mouse Finder", "Scope When Moving" ], default: "3D Blue with Oval+Mouse" } } }, "capabilitiesTransformations": { "mag\\.size": "http://registry\\.gpii\\.net/common/magnification", "mag\\.TextViewerFontSize": "http://registry\\.gpii\\.net/common/fontSize", "mag\\.TextViewerFontFaceName": "http://registry\\.gpii\\.net/common/fontFaceFontName", "mag\\.startmagnified": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/magnification/enabled", "true": 1, "false": 0 } }, "scheme\\.Mouse_Scheme": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/showCrosshairs", "true": "Bold Yellow with Full Cross+Mouse", "false": "3D Blue with Oval" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/magnification": "mag\\.size", "http://registry\\.gpii\\.net/common/fontSize": "mag\\.TextViewerFontSize", "http://registry\\.gpii\\.net/common/fontFaceFontName": "mag\\.TextViewerFontFaceName", "http://registry\\.gpii\\.net/common/showCrosshairs": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "scheme\\.Mouse_Scheme", "match": [ { inputValue: "Bold with Short Cross+Mouse", outputValue: true }, { inputValue: "Bold Yellow with Full Cross+Mouse", outputValue: true }, { inputValue: "Scope When Moving+Mouse", outputValue: true } ], noMatch: { outputUndefinedValue: true } } } } }, // MAGic also supports a subset of JAWS settings using its built-in "JAWS lite". "configuration2": { "type": "gpii.settingsHandlers.INISettingsHandler", "liveness": "manualRestart", "options": { "filename": "${{environment}.APPDATA}\\Freedom Scientific\\MAGIC\\14.0\\Settings\\enu\\DEFAULT.JCF" }, "supportedSettings": { "Options.AllowMouseEchoWhenMuted": { "schema": { "title": "Allow Mouse Echo", "description": "Whether to echo mouse movement when otherwise muted.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.AllowSpeechOnDemandWhenMuted": { "schema": { "title": "Allow Reading Commands", "description": "Whether to allow speech on demand when otherwise muted.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.AllowTypingEchoWhenMuted": { "schema": { "title": "Allow Typing Echo", "description": "Whether to echo typed keys when otherwise muted.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.IndicateCaps": { "schema": { "title": "Indicate Caps", "description": "When to indicate the presence of capital letters.", "type": "number", "default": 0, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "Off", "indicate caps when spelling or when navigating by character", "also indicate caps when reading by words", "also indicate caps when reading by lines" ] } }, "Options.InitialNumlockState": { "schema": { "title": "Initial State of NumLock Key", "description": "The initial state of the NumLock key.", "type": "number", "enum": [ 0, 1, 2 ], "enumLabels": [ "off at startup", "on at startup", "leave unmodified" ], "default": 0 } }, "Options.MouseMovementStopsSpeech": { "schema": { "title": "Mouse Echo Interrupt", "description": "Whether to stop speaking when the mouse is moved.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "Options.MouseSpeechDelay": { "schema": { "title": "Mouse Echo Delay", "description": "How long to delay announcing content under the mouse, in milliseconds. Defaults to 0 (no delay).", "type": "integer", "default": 0 } }, "Options.MouseSpeechEchoUnit": { "schema": { "title": "Mouse Echo Unit", "description": "The unit of text to announce when the mouse pauses over text in a control. Defaults to reading the whole line.", "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "character", "word", "line", "paragraph" ], "default": 2 } }, "Options.MouseSpeechEnabled": { "schema": { "title": "Enable Mouse Echo", "description": "Whether or not to enable the mouse echo, i.e. reading content under the mouse pointer.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } }, "Options.TypingEcho": { "schema": { "title": "Typing echo", "description": "How to announce typed words and/or characters.", "type": "number", "default": 1, "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "don't announce characters or words", "announce characters", "announce words", "announce characters and words" ] } } }, "capabilitiesTransformations": { "Options\\.TypingEcho": { // (1=keyEcho, 2=wordEcho, 3=key&wordEcho) "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/keyEcho", "rightPath": "http://registry\\.gpii\\.net/common/wordEcho", "operator": "&&" } }, "true": 3, "false": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/keyEcho", "true": 1, "false": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/wordEcho", "true": 2 } } } } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/keyEcho": { "transform": { "type": "valueMapper", "defaultInputPath": "Options\\.TypingEcho", // (1=keyEcho, 2=wordEcho, 3=key&wordEcho) "match": [ { "inputValue": 1, "outputValue": true }, { "inputValue": 3, "outputValue": true } ], "noMatch": { outputUndefinedValue: true } } }, "http://registry\\.gpii\\.net/common/wordEcho": { "transform": { "type": "valueMapper", "defaultInputPath": "Options\\.TypingEcho", // (1=keyEcho, 2=wordEcho, 3=key&wordEcho) "match": [ { "inputValue": 2, "outputValue": true }, { "inputValue": 3, "outputValue": true } ], "noMatch": { outputUndefinedValue: true } } } } } }, "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "verifySettings": true, "retryOptions": { "rewriteEvery": 0, "numRetries": 20 }, "getState": [ { "type": "gpii.processReporter.find", "command": "Magic.exe" } ], "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\MAGic140.exe\\}\"" } ], "setFalse": [ // In MAGic 14.0, the following processes show up in the task manager under the app's grouping: // magutil.exe, C:\Program Files\Freedom Scientific\MAGic\14.0\MagUtil // jhookldr.exe, C:\Program Files\Freedom Scientific\MAGic\14.0\MagUtil\x86 // mag.exe, C:\Program Files\Freedom Scientific\MAGic\14.0 // MagHook32.exe, C:\Program Files\Freedom Scientific\MAGic\14.0\x86 // Magic.exe, C:\Program Files\Freedom Scientific\MAGic\14.0 // Unloader.exe, C:\Program Files\Freedom Scientific\MAGic\14.0 // // Also found outside the grouping are these stragglers: // fsSynth32.exe, C:\Program Files (x86)\Freedom Scientific\Shared\fsSynth\2.0 // fsATProxy.exe, C:\Program Files\Freedom Scientific\MAGic\14.0 // // { "type": "gpii.windows.closeProcessByName", "filename": "Unloader.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "Magic.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "MagHook32.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "fsATProxy.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "fsSynth32.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "mag.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "jhookldr.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "magutil.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_LOCAL_MACHINE", "path": "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\MAGic140.exe", "subPath": "", "dataType": "REG_SZ" } ] }, "com.microsoft.windows.brightness": { "name": "Windows brightness settings", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.wmiSettingsHandler", "liveness": "live", "options": { "Brightness": { "namespace": "root\\WMI", "get": { "query": "SELECT CurrentBrightness FROM WmiMonitorBrightness" }, "set": { "className": "WmiMonitorBrightnessMethods", "method": "WmiSetBrightness", "params": [0xFFFFFFFF, "$value"], "returnVal": ["uint", 0] }, "settingType": "uint" } }, "capabilitiesTransformations": { "Brightness": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/screenBrightness", "outputPath": "value" } } }, "supportedSettings": { "Brightness": { "schema": { "title": "Brightness", "description": "Set the screen brightness.", "type": "number", "default": 0, "minimum": 0, "maximum": 100 } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/screenBrightness": "Brightness.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.wmiSettingSupported", "namespace": "root\\WMI", "query": "SELECT CurrentBrightness FROM WmiMonitorBrightness" } ] }, "com.microsoft.windows.desktopBackground": { "name": "Windows desktop background personalization", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configureWallpaperStyle": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Desktop", "dataTypes": { "TileWallpaper": "REG_SZ", "WallpaperStyle": "REG_SZ" } }, "supportedSettings": { "TileWallpaper": { "schema": { "title": "Desktop wallpaper tiling", "description": "Sets the wallpaper to tiling style.", "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } }, "WallpaperStyle": { "schema": { "title": "Desktop wallpaper style", "description": "Sets the wallpaper style.", "enum": [ 0, 2, 6, 10, 22 ], "enumLabels": [ "None", "Stretch", "Fill", "Fit", "Span" ] } }, "Scaling": { "schema": { "title": "Desktop wallpaper scaling", "description": "Sets the wallpaper to scaling type.", "enum": [ "Fill", "Fit", "Stretch", "Tile", "Center", "Span" ], "enumLabels": [ "Fill", "Fit", "Stretch", "Tile", "Center", "Span" ] } } }, "capabilitiesTransformations": { "TileWallpaper": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackground.Scaling", "match": { "Fill": "0", "Fit": "0", "Stretch": "0", "Tile": "1", "Center": "0", "Span": "0" }, "noMatch": { "outputValue": "0" } } }, "WallpaperStyle": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackground.Scaling", "match": { "Fill": "6", "Fit": "10", "Stretch": "2", "Tile": "0", "Center": "0", "Span": "22" }, "noMatch": { "outputValue": "6" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackground.Scaling": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "WallpaperStyle", "match": { "6": "Fill", "10": "Fit", "2": "Stretch", "0": { "outputValue": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "TileWallpaper", "match": { "1": "Tile", "0": "Center" }, "noMatch": { "outputValue": "Tile" } } } }, "22": "Span" }, "noMatch": { "outputValue": "Fill" } } } } }, "configureImage": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETDESKWALLPAPER", "setAction": "SPI_SETDESKWALLPAPER", "uiParam": 260, "pvParam": { "type": "array", "valueType": "TCHAR", "length": 260 } }, "supportedSettings": { "ImageConfig": { "schema": { "title": "Desktop background wallpaper", "description": "The path to the image to be set as the new desktop wallpaper.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string"}, "value": { "type": "string", "default": "%SystemRoot%\\Web\\Wallpaper\\Windows\\img0.jpg" } } } } }, "capabilitiesTransformations": { "ImageConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackground.Image", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackground.Image": "ImageConfig.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.desktopBackgroundColor": { "name": "Windows desktop background personalization", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configureImage": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETDESKWALLPAPER", "setAction": "SPI_SETDESKWALLPAPER", "uiParam": 260, "pvParam": { "type": "array", "valueType": "TCHAR", "length": 260 } }, "supportedSettings": { "ImageConfig": { "schema": { "title": "Desktop background wallpaper", "description": "The path to the image to be set as the new desktop wallpaper.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "type": "string", "required": true, "default": "" } } } } }, "capabilitiesTransformations": { "ImageConfig": { "transform": { "type": "fluid.transforms.literalValue", "input": "", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackgroundColor.Image": "ImageConfig.value" } }, "configureSolidColor": { "type": "gpii.windows.nativeSettingsHandler", "liveness": "live", "options": { "functionName": "SolidColor" }, "supportedSettings": { "SolidColorConfig": { "schema": { "title": "Desktop background color", "description": "The color to be set as desktop background.", "type": "object", "additionalProperties": false, "properties": { "r": { "type": "integer", "minimum": 0, "maximum": 255, "default": 0, "required": true }, "g": { "type": "integer", "minimum": 0, "maximum": 255, "default": 0, "required": true }, "b": { "type": "integer", "minimum": 0, "maximum": 255, "default": 0, "required": true } } } } }, "capabilitiesTransformations": { "SolidColorConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackgroundColor.SolidColor", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.desktopBackgroundColor.SolidColor": "SolidColorConfig.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.mirrorScreen": { "name": "Windows Screen Mirroring", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.nativeSettingsHandler", "liveness": "live", "options": { "functionName": "ScreenMirror" }, "supportedSettings": { "ScreenMirrorConfig": { "schema": { "title": "Screen mirroring", "description": "Mirrors the primary screen into a secondary screen.", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "ScreenMirrorConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mirrorScreen.ScreenMirror", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mirrorScreen.ScreenMirror": "ScreenMirrorConfig.value" } } }, "configure": [ "settings.configure" ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.cursors": { "name": "Windows Cursors", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Cursors", "dataTypes": { "AppStarting": "REG_SZ", "Arrow": "REG_SZ", "Hand": "REG_SZ", "Help": "REG_SZ", "No": "REG_SZ", "NWPen": "REG_SZ", "SizeAll": "REG_SZ", "SizeNESW": "REG_SZ", "SizeNS": "REG_SZ", "SizeNWSE": "REG_SZ", "SizeWE": "REG_SZ", "UpArrow": "REG_SZ", "Wait": "REG_SZ" } }, "supportedSettings": { "AppStarting": { schema: { title: "Application Startup Cursor", description: "The animated cursor that displays while an application is starting up.", type: "string", default: "%SystemRoot%\\cursors\\aero_working.ani" } }, "Arrow": { schema: { title: "Arrow Cursor", description: "The 'arrow' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_arrow.cur" } }, "Hand": { schema: { title: "Hand Cursor", description: "The 'hand' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_link.cur" } }, "Help": { schema: { title: "Help Cursor", description: "The 'help' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_helpsel.cur" } }, "No": { schema: { title: "'No' Cursor", description: "The cursor icon used to indicate that the resource under the pointer cannot be clicked.", type: "string", default: "%SystemRoot%\\cursors\\aero_unavail.cur" } }, "NWPen": { schema: { title: "Pen Cursor", description: "The 'pen' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_pen.cur" } }, "SizeAll": { schema: { title: "'Resize All' Cursor", description: "The 'resize all' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_move.cur" } }, "SizeNESW": { schema: { title: "'Resize NESW' Cursor", description: "The 'resize NESW' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_nesw.cur" } }, "SizeNS": { schema: { title: "'Resize Height' Cursor", description: "The 'resize height' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_ns.cur" } }, "SizeNWSE": { schema: { title: "'Resize NWSE' Cursor", description: "The 'resize NWSE' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_nwse.cur" } }, "SizeWE": { schema: { title: "'Resize WE' Cursor", description: "The 'resize WE' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_ew.cur" } }, "UpArrow": { schema: { title: "'Up Arrow' Cursor", description: "The 'up arrow' cursor icon.", type: "string", default: "%SystemRoot%\\cursors\\aero_up.cur" } }, "Wait": { schema: { title: "'Wait' Cursor", description: "The cursor icon to display while the system is busy.", type: "string", default: "%SystemRoot%\\cursors\\aero_busy.ani" } } }, "capabilitiesTransformations": { "AppStarting": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\wait_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\wait_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\wait_m.cur", "Black": "%SystemRoot%\\cursors\\wait_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\wait_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\wait_im.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\wait_l.cur", "Black": "%SystemRoot%\\cursors\\wait_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\wait_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\wait_l.cur" } } } } ] } }, "Arrow": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\arrow_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\arrow_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\arrow_m.cur", "Black": "%SystemRoot%\\cursors\\arrow_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\arrow_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\arrow_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\arrow_l.cur", "Black": "%SystemRoot%\\cursors\\arrow_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\arrow_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\arrow_l.cur" } } } } ] } }, "Crosshair": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\cross_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\cross_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\cross_m.cur", "Black": "%SystemRoot%\\cursors\\cross_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\cross_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\cross_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\cross_l.cur", "Black": "%SystemRoot%\\cursors\\cross_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\cross_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\cross_l.cur" } } } } ] } }, "Hand": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "ReverseBlack": "%SystemRoot%\\cursors\\aero_link_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "ReverseBlack": "%SystemRoot%\\cursors\\aero_link_im.cur" }, "noMatch": { "outputValue": "" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "ReverseBlack": "%SystemRoot%\\cursors\\aero_link_il.cur" }, "noMatch": { "outputValue": "" } } } } ] } }, "Help": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\help_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\help_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\help_m.cur", "Black": "%SystemRoot%\\cursors\\help_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\help_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\help_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\help_l.cur", "Black": "%SystemRoot%\\cursors\\help_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\help_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\help_l.cur" } } } } ] } }, "IBeam": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\beam_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\beam_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\beam_m.cur", "Black": "%SystemRoot%\\cursors\\beam_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\beam_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\beam_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\beam_l.cur", "Black": "%SystemRoot%\\cursors\\beam_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\beam_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\beam_l.cur" } } } } ] } }, "No": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\no_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\no_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\no_m.cur", "Black": "%SystemRoot%\\cursors\\no_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\no_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\no_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\no_l.cur", "Black": "%SystemRoot%\\cursors\\no_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\no_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\no_l.cur" } } } } ] } }, "NWPen": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\pen_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\pen_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\pen_m.cur", "Black": "%SystemRoot%\\cursors\\pen_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\pen_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\pen_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\pen_l.cur", "Black": "%SystemRoot%\\cursors\\pen_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\pen_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\pen_l.cur" } } } } ] } }, "Scheme Source": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": 0, "Black": 2, "ReverseBlack": 2 }, "noMatch": { "outputValue": 0 } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": 0, "Black": 2, "ReverseBlack": 2 }, "noMatch": { "outputValue": 0 } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": 0, "Black": 2, "ReverseBlack": 2 }, "noMatch": { "outputValue": 0 } } } } ] } }, "SizeAll": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\move_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\move_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\move_m.cur", "Black": "%SystemRoot%\\cursors\\move_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\move_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\move_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\move_l.cur", "Black": "%SystemRoot%\\cursors\\move_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\move_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\move_l.cur" } } } } ] } }, "SizeNESW": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\size1_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size1_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size1_m.cur", "Black": "%SystemRoot%\\cursors\\size1_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size1_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size1_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size1_l.cur", "Black": "%SystemRoot%\\cursors\\size1_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size1_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size1_l.cur" } } } } ] } }, "SizeNS": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\size4_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size4_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size4_m.cur", "Black": "%SystemRoot%\\cursors\\size4_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size4_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size4_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size4_l.cur", "Black": "%SystemRoot%\\cursors\\size4_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size4_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size4_l.cur" } } } } ] } }, "SizeNWSE": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\size2_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size2_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size2_m.cur", "Black": "%SystemRoot%\\cursors\\size2_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size2_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size2_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size2_l.cur", "Black": "%SystemRoot%\\cursors\\size2_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size2_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size2_l.cur" } } } } ] } }, "SizeWE": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\size3_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size3_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size3_m.cur", "Black": "%SystemRoot%\\cursors\\size3_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size3_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size3_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\size3_l.cur", "Black": "%SystemRoot%\\cursors\\size3_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\size3_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\size3_l.cur" } } } } ] } }, "UpArrow": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\up_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\up_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\up_m.cur", "Black": "%SystemRoot%\\cursors\\up_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\up_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\up_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\up_l.cur", "Black": "%SystemRoot%\\cursors\\up_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\up_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\up_l.cur" } } } } ] } }, "Wait": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/cursorSize", "ranges": [ { "upperBound": 0.333, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "", "Black": "%SystemRoot%\\cursors\\busy_r.cur", "ReverseBlack": "%SystemRoot%\\cursors\\busy_i.cur" }, "noMatch": { "outputValue": "" } } } }, { "upperBound": 0.666, "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\busy_m.cur", "Black": "%SystemRoot%\\cursors\\busy_rm.cur", "ReverseBlack": "%SystemRoot%\\cursors\\busy_im.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\busy_m.cur" } } } }, { "output": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "White": "%SystemRoot%\\cursors\\busy_l.cur", "Black": "%SystemRoot%\\cursors\\busy_rl.cur", "ReverseBlack": "%SystemRoot%\\cursors\\busy_il.cur" }, "noMatch": { "outputValue": "%SystemRoot%\\cursors\\busy_l.cur" } } } } ] } } }, "inverseCapabilitiesTransformations": { "transform": [ { "type": "fluid.transforms.valueMapper", "defaultInputPath": "Arrow", "defaultOutputPath": "http://registry\\.gpii\\.net/common/cursorSize", "match": { "": 0.32, "%SystemRoot%\\cursors\\arrow_r.cur": 0.32, "%SystemRoot%\\cursors\\arrow_i.cur": 0.32, "%SystemRoot%\\cursors\\arrow_m.cur": 0.65, "%SystemRoot%\\cursors\\arrow_rm.cur": 0.65, "%SystemRoot%\\cursors\\arrow_im.cur": 0.65, "%SystemRoot%\\cursors\\arrow_l.cur": 1, "%SystemRoot%\\cursors\\arrow_rl.cur": 1, "%SystemRoot%\\cursors\\arrow_il.cur": 1 } }, { "type": "fluid.transforms.valueMapper", "defaultInputPath": "Arrow", "defaultOutputPath": "http://registry\\.gpii\\.net/common/cursorColor", "match": { "": "White", "%SystemRoot%\\cursors\\arrow_r.cur": "Black", "%SystemRoot%\\cursors\\arrow_i.cur": "ReverseBlack", "%SystemRoot%\\cursors\\arrow_m.cur": "White", "%SystemRoot%\\cursors\\arrow_rm.cur": "Black", "%SystemRoot%\\cursors\\arrow_im.cur": "ReverseBlack", "%SystemRoot%\\cursors\\arrow_l.cur": "White", "%SystemRoot%\\cursors\\arrow_rl.cur": "Black", "%SystemRoot%\\cursors\\arrow_il.cur": "ReverseBlack" } } ] } } }, "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "setTrue": [ { "type": "gpii.windows.spiSettingsHandler.updateCursors" } ], "getState": [ { "type": "gpii.processReporter.neverRunning" } ] } } }, "stop": [], "update": [ "settings.configure", "start" ], "restore": [ "settings.configure", { "type": "gpii.windows.spiSettingsHandler.updateCursors" } ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.filterKeys": { "name": "Windows FilterKeys", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETFILTERKEYS", "setAction": "SPI_SETFILTERKEYS", "uiParam": "struct_size", "pvParam": { "type": "struct", "name": "FILTERKEYS" } }, "supportedSettings": { "FilterKeysEnable": { "schema": { "title": "Filter keys", "description": "Enable/Disable filter keys", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "boolean", "default": false } } } }, "SlowKeysInterval": { "schema": { "title": "Slow keys interval", "description": "Slow keys interval time in milliseconds", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "integer", "default": 0 // 0 means no interval time } } } }, "BounceKeysInterval": { "schema": { "title": "Bounce keys interval", "description": "Bounce keys interval time in milliseconds", "type": "integer", "default": 0 } } }, "capabilitiesTransformations": { "FilterKeysEnable": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/debounce/enabled", "left": false, "rightPath": "http://registry\\.gpii\\.net/common/slowKeys/enabled", "right": false, "operator": "||", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.dwFlags.FKF_FILTERKEYSON" } } }, "SlowKeysInterval": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/slowKeys/enabled", "true": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/slowKeysInterval", "factor": 1000 } }, "false": 0, "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.iWaitMSec" } } }, "BounceKeysInterval": { "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/slowKeys/enabled", "left": false, "right": false, "operator": "===" } }, "true": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/common/debounce/enabled", "true": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/debounceInterval", "factor": 1000 } }, "false": 0, "outputPath": "value" } }, "false": 0, "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.iBounceMSec" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/slowKeys/enabled": { "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "SlowKeysInterval.value", "right": 0, "operator": ">" } }, "truePath": "FilterKeysEnable.value" } }, "http://registry\\.gpii\\.net/common/slowKeysInterval": { "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "SlowKeysInterval.value", "right": 0, "operator": ">" } }, "true": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "SlowKeysInterval.value", "factor": 0.001 } } } }, "http://registry\\.gpii\\.net/common/debounce/enabled": { "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "BounceKeysInterval.value", "right": 0, "operator": ">" } }, "truePath": "FilterKeysEnable.value" } }, "http://registry\\.gpii\\.net/common/debounceInterval": { "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "BounceKeysInterval.value", "right": 0, "operator": ">" } }, "true": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "BounceKeysInterval.value", "factor": 0.001 } } } } } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.highContrast": { "name": "Windows High Contrast", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure-spi": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETHIGHCONTRAST", "setAction": "SPI_SETHIGHCONTRAST", "uiParam": "struct_size", "pvParam": { "type": "struct", "name": "HIGHCONTRAST" } }, "supportedSettings": { "HighContrastOn": { "schema": { "title": "High Contrast", "description": "Whether to enable/disable High Contrast", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "boolean", "default": false } } } } }, "capabilities": [ "http://registry\\.gpii\\.net/common/highContrast/enabled", "http://registry\\.gpii\\.net/common/highContrastTheme" ], "capabilitiesTransformations": { "HighContrastOn": { // (highContrast.enabled || highContrastTheme) && (highContrastTheme != "regular-contrast") "transform": { "type": "fluid.transforms.binaryOp", "left": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/highContrast/enabled", "left": false, "operator": "||", "rightPath": "http://registry\\.gpii\\.net/common/highContrastTheme", "right": false } }, "operator": "&&", "right": { "transform": { "type": "fluid.transforms.binaryOp", "left": "", "leftPath": "http://registry\\.gpii\\.net/common/highContrastTheme", "operator": "!==", "right": "regular-contrast" } }, "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.dwFlags.HCF_HIGHCONTRASTON" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/highContrast/enabled": "HighContrastOn.value" } }, "configure-registry": { // This sets the high-contrast theme. "type": "gpii.windows.registrySettingsHandler", "liveness": "live", "options": { "hKey": "HKEY_CURRENT_USER", "path": "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes", "dataTypes": { "LastHighContrastTheme": "REG_SZ" } }, "supportedSettings": { "LastHighContrastTheme": { "schema": { "title": "High Contrast theme", "description": "High Contrast Theme", "type": "string", "default": "%SystemRoot%\\resources\\Ease of Access Themes\\hcwhite.theme", "enum": [ "%SystemRoot%\\resources\\Ease of Access Themes\\hcwhite.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\hcblack.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\hc1.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\blackOnYellow.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\hc2.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\blackOnBrown.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\grayOnDark.theme", "%SystemRoot%\\resources\\Ease of Access Themes\\grayOnWhite.theme" ], "enumLabels": [ "Black on White", "White on Black", "Yellow on Black", "Black on Yellow", "Lime on Black", "Black on Brown", "Grey on Dark", "Grey on White" ] } } }, "capabilities": [ "http://registry\\.gpii\\.net/common/highContrast/enabled", "http://registry\\.gpii\\.net/common/highContrastTheme" ], "capabilitiesTransformations": { "LastHighContrastTheme": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/highContrastTheme", "match": { "black-white": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\hcwhite.theme", "white-black": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\hcblack.theme", "yellow-black": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\hc1.theme", "black-yellow": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\blackOnYellow.theme", "lime-black": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\hc2.theme", "black-brown": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\blackOnBrown.theme", "grey-black": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\grayOnDark.theme", "grey-white": "${{environment}.SystemRoot}\\resources\\Ease of Access Themes\\grayOnWhite.theme" } } } } }, "configure-theme": { // This is used to specify the theme file that Windows will use when restoring high-contrast. The // file this setting points to is created by gpii, containing the currently unsaved theme settings. "type": "gpii.windows.registrySettingsHandler", "liveness": "live", "options": { "hKey": "HKEY_CURRENT_USER", "path": "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\HighContrast", "dataTypes": { "Pre-High Contrast Scheme": "REG_SZ" } }, "supportedSettings": { "Pre-High Contrast Scheme": { "schema": { "title": "Previous Scheme", "description": "The scheme that was used prior to selecting the high contrast theme.", "type": "string", "default": "C:\\Windows\\resources\\Themes\\aero.theme" } } }, "capabilities": [ "http://registry\\.gpii\\.net/common/highContrast/enabled", "http://registry\\.gpii\\.net/common/highContrastTheme" ], "capabilitiesTransformations": { "Pre-High Contrast Scheme": { "transform": { "type": "fluid.transforms.literalValue", "input": "${{environment}.LOCALAPPDATA}\\Microsoft\\Windows\\Themes\\Morphic.theme" } } } } }, "configure": [ // Remove current system wallpaper files. { "type": "gpii.windows.rm", "path": "${{environment}.APPDATA}\\Microsoft\\Windows\\Themes\\CachedFiles", "options": { "recursive": true, "silent": true } }, { "type": "gpii.windows.rm", "path": "${{environment}.APPDATA}\\Microsoft\\Windows\\Themes\\TranscodedWallpaper", "options": { "silent": true } }, // Set the "restore" theme. "settings.configure-theme", // Set the high-contrast theme. "settings.configure-registry", { // Save the current theme, and set the new high-contrast one. "type": "gpii.windows.spiSettingsHandler.setHighContrastTheme", "newTheme": "${{registry}HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\LastHighContrastTheme}", "currentTheme": "${{registry}HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\CurrentTheme}", "saveAs": "${{registry}HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\HighContrast\\Pre-High Contrast Scheme}" }, // Apply high-contrast. "settings.configure-spi", { // Make sure the colours are applied for custom themes. "type": "gpii.windows.spiSettingsHandler.applyCustomTheme", "themeFile": "${{registry}HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\HighContrast\\LastSet}" } ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.audioDescription": { "name": "Windows video audio description feature", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETAUDIODESCRIPTION", "setAction": "SPI_SETAUDIODESCRIPTION", "uiParam": "struct_size", "pvParam": { "type": "struct", "name": "AUDIODESCRIPTION" } }, "supportedSettings": { "AudioDescriptionOn": { "schema": { "title": "Video audio description", "description": "Hear descriptions of what's happening in videos", "default": 0, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ] } } }, "capabilitiesTransformations": { "AudioDescriptionOn": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.audioDescription.AudioDescriptionEnabled", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.Enabled" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.audioDescription.AudioDescriptionEnabled": "AudioDescriptionOn.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.notificationDuration": { "name": "Windows notification duration", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMESSAGEDURATION", "setAction": "SPI_SETMESSAGEDURATION", "uiParam": 0, "pvParam": { "type": "UINT" } }, "supportedSettings": { "Duration": { "schema": { "title": "Notification duration", "description": "Changes the time system notifications are displayed", "type": "number", "default": 5, "enum": [ 5, 7, 15, 30, 60, 300 ], "enumLabels": [ "5s", "7s", "15s", "30s", "60s", "300s" ] } } }, "capabilitiesTransformations": { "Duration": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.notificationDuration.NotificationDuration", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.notificationDuration.NotificationDuration": "Duration.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.language": { "name": "Windows Display Language", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure1": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Desktop\\MuiCached", "dataTypes": { "MachinePreferredUILanguages": "REG_SZ" } }, "capabilities": [ "http://registry\\.gpii\\.net/common/language" ], "capabilitiesTransformations": { "MachinePreferredUILanguages": [{ "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/language" } }] }, "supportedSettings": { "MachinePreferredUILanguages": { "schema": { "title": "The Machine Preferred UI Language", "description": "Machine Preferred UI language.", "type": "string" } } } }, "configure2": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Desktop", "dataTypes": { "PreferredUILanguages": "REG_SZ" } }, "capabilities": [ "http://registry\\.gpii\\.net/common/language" ], "capabilitiesTransformations": { "PreferredUILanguages": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/language" } } }, "supportedSettings": { "PreferredUILanguages": { "schema": { "title": "Preferred UI Language", "description": "Preffered UI language.", "type": "string" } } } }, "configure3": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\International\\User Profile", "dataTypes": { "Languages": "REG_MULTI_SZ" } }, "capabilities": [ "http://registry\\.gpii\\.net/common/language" ], "capabilitiesTransformations": { "Languages": [{ "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/language" } }] }, "supportedSettings": { "Languages": { "schema": { "title": "Language", "description": "Language.", "type": "string" } } } } }, "configure": [ "settings.configure1", "settings.configure2", "settings.configure3", { "type": "gpii.windows.updateLanguage", "currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}" } ], "restore": [ "settings.configure1", "settings.configure2", "settings.configure3", { "type": "gpii.windows.updateLanguage", "currentLanguage": "${{registry}.HKEY_CURRENT_USER\\Control Panel\\Desktop\\PreferredUILanguages}" } ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.toggleKeys": { "name": "Windows Toggle keys feature", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETTOGGLEKEYS", "setAction": "SPI_SETTOGGLEKEYS", "uiParam": "struct_size", "pvParam": { "type": "struct", "name": "TOGGLEKEYS" } }, "supportedSettings": { "ToggleKeysOn": { "schema": { "title": "ToggleKeys accesibility feature", "description": "Enable/Disable ToggleKeys feature", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "ToggleKeysOn": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/toggleKeys", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.dwFlags.TKF_TOGGLEKEYSON" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/toggleKeys": "ToggleKeysOn.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.underlineMenuShortcuts": { "name": "Underline menu shortcuts", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configureShortcuts": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETKEYBOARDCUES", "setAction": "SPI_SETKEYBOARDCUES", "uiParam": 0, "pvParam": { "type": "BOOL" } }, "supportedSettings": { "UnderlineMenuShortcutsOn": { "schema": { "title": "Enable/Disable underlaying menu shortcuts", "description": "Displays a underline showing which is the shortcut to active a menu item", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "UnderlineMenuShortcutsOn": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.underlineMenuShortcuts.Enabled", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.underlineMenuShortcuts.Enabled": "UnderlineMenuShortcutsOn.value" } }, "keyboardPreferred": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETKEYBOARDPREF", "setAction": "SPI_SETKEYBOARDPREF", "uiParam": 0, "pvParam": { "type": "BOOL" } }, "supportedSettings": { "KeyboardPreferenceOn": { "schema": { "title": "Keyboard as preferred input method", "description": "Set the keyboard as the preferred input method", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "KeyboardPreferenceOn": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.underlineMenuShortcuts.KeyboardPrefEnabled", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": { "get": "pvParam", "set": "uiParam" } } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.underlineMenuShortcuts.KeyboardPrefEnabled": "KeyboardPreferenceOn.value" } } }, "configure": [ "settings.configureShortcuts", "settings.keyboardPreferred" ], "restore": [ "settings.keyboardPreferred", "settings.configureShortcuts" ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.shortcutWarningMessage": { "name": "Warning messages for shortcuts", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Accessibility", "dataTypes": { "Warning Sounds": "REG_DWORD" } }, "supportedSettings": { "Warning Sounds": { "schema": { "title": "Shortcut warning messages", "description": "Enable/Disable warning messages when changing a setting with a shortcut", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "Warning Sounds": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.shortcutWarningMessage.Enabled", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.shortcutWarningMessage.Enabled": "Warning Sounds.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.shortcutWarningSound": { "name": "Warning sounds for shortcuts", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Accessibility", "dataTypes": { "Sound on Activation": "REG_DWORD" } }, "supportedSettings": { "Sound on Activation": { "schema": { "title": "Shortcut warning sounds", "description": "Enable/Disable warning sounds when changing a setting with a shortcut", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "Sound on Activation": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.shortcutWarningSound.Enabled", "false": 0, "true": 1 } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.shortcutWarningSound.Enabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "Sound on Activation", "right": 0, "operator": "!==" } } } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.magnifier": { "name": "Windows Built-in Screen Magnifier", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/magnification/enabled" ], "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\ScreenMagnifier", "dataTypes": { "Magnification": "REG_DWORD", "Invert": "REG_DWORD", "FollowFocus": "REG_DWORD", "FollowCaret": "REG_DWORD", "FollowMouse": "REG_DWORD", "FollowNarrator": "REG_DWORD", "MagnificationMode": "REG_DWORD", "FadeToMagIcon": "REG_DWORD", "ZoomIncrement": "REG_DWORD", "UseBitmapSmoothing": "REG_DWORD", "LensHeight": "REG_DWORD", "LensWidth": "REG_DWORD" } }, "supportedSettings": { "Invert": { "schema": { "title": "Invert Colours", "description": "Enable colour inversion for Magnifier", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "Magnification": { "schema": { "title": "Magnification", "description": "Set up magnification level", "type": "number", "default": 200, "minimum": 100, "maximum": 1600 } }, "FollowFocus": { "schema": { "title": "Magnifier follows focus", "description": "Magnifier follows the keyboard focus", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "FollowCaret": { "schema": { "title": "Magnifier follows caret", "description": "Magnifier follows the text insertion point", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "FollowMouse": { "schema": { "title": "Magnifier follows mouse", "description": "Magnifier follows the mouse pointer", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "FollowNarrator": { "schema": { "title": "Magnifier follows Narrator", "description": "Magnifier follows the Narrator cursor", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "MagnificationMode": { "schema": { "title": "Magnifier position", "description": "Position of the magnified area", "type": "number", "default": 2, "enum": [ 1, 2, 3 ], "enumLabels": [ "Docked", "FullScreen", "Lens" ] } }, "FadeToMagIcon": { "schema": { "title": "Collapse into magnifiying glass", "description": "Collapse Magnifier window into a floating transparent magnifying glass.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "ZoomIncrement": { "schema": { "title": "Zoom Increment", "description": "Change zoom increments.", "type": "number", "default": 100, "enum": [ 25, 50, 100, 150, 200, 400 ], "enumLabels": [ "25%", "50%", "100% (default)", "150%", "200%", "400%" ] } }, "UseBitmapSmoothing": { "schema": { "title": "Smooth edges of images and text", "description": "Enables/Disables smoothing for edges", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "LensHeight": { "schema": { "title": "Lens Height", "description": "Modifies the height of the magnifier lens.", "type": "integer", "minimum": 10, "maximum": 100, "default": 30 } }, "LensWidth": { "schema": { "title": "Lens Width", "description": "Modifies the width of the magnifier lens.", "type": "integer", "minimum": 10, "maximum": 100, "default": 30 } } }, "capabilitiesTransformations": { "Invert": { "transform": { "type": "gpii.transformer.booleanToNumber", "inputPath": "http://registry\\.gpii\\.net/common/invertColours" } }, "Magnification": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/magnification", "factor": 100 } } } }, "transform": [ { "type": "fluid.transforms.arrayToSetMembership", "inputPath": "http://registry\\.gpii\\.net/common/tracking", "outputPath": "", "presentValue": 1, "missingValue": 0, "options": { "focus": "FollowFocus", "caret": "FollowCaret", "mouse": "FollowMouse" } } ], "MagnificationMode": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/magnifierPosition", "match": { "FullScreen": 2, "Lens": 3, "LeftHalf": 1, "RightHalf": 1, "TopHalf": 1, "BottomHalf": 1, "Custom": 2 } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/invertColours": "Invert", "transform": [ { "type": "fluid.transforms.linearScale", "inputPath": "Magnification", "outputPath": "http://registry\\.gpii\\.net/common/magnification", "factor": 0.01 }, { "type": "fluid.transforms.setMembershipToArray", "inputPath": "", "outputPath": "http://registry\\.gpii\\.net/common/tracking", "presentValue": 1, "missingValue": 0, "options": { "FollowFocus": "focus", "FollowMouse": "mouse", "FollowCaret": "caret" } }, { "type": "fluid.transforms.valueMapper", "defaultInputPath": "MagnificationMode", "defaultOutputPath": "http://registry\\.gpii\\.net/common/magnifierPosition", "match": { "2": "FullScreen", "3": "Lens", "1": "TopHalf" } } ] } }, "configureSystemSettings": { "type": "gpii.windows.systemSettingsHandler", "liveness": "live", "options": { "Async": true, "CheckResult": true }, "supportedSettings": { "SystemSettings_Accessibility_Magnifier_IsAutoStartEnabled": { "schema": { "title": "Auto Start Magnifier", "description": "Start Magnifier after sign-in.", "type": "boolean", "default": false } }, "SystemSettings_Accessibility_Magnifier_IsAutoStartOnLogonDesktopEnabled": { "schema": { "title": "Auto Start Magnifier for everyone", "description": "Start Magnifier before sign-in.", "type": "boolean", "default": false } } }, "capabilitiesTransformations": { "SystemSettings_Accessibility_Magnifier_IsAutoStartEnabled": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.magnifier.EnableAutoStart", "outputPath": "value" } }, "SystemSettings_Accessibility_Magnifier_IsAutoStartOnLogonDesktopEnabled": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.magnifier.EnableSystemAutoStart", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.magnifier.EnableAutoStart": "SystemSettings_Accessibility_Magnifier_IsAutoStartEnabled.value", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.magnifier.EnableSystemAutoStart": "SystemSettings_Accessibility_Magnifier_IsAutoStartOnLogonDesktopEnabled.value" } } }, "update": [ "settings.configure", "settings.configureSystemSettings" ], "configure": [ "settings.configure", "settings.configureSystemSettings" ], "restore": [ "settings.configure", "settings.configureSystemSettings" ], "launchHandlers": { "launcher": { "type": "gpii.windows.enableRegisteredAT", "options": { "registryName": "magnifierpane", "getState": [ { "type": "gpii.processReporter.find", "command": "Magnify.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.mouseKeys": { "name": "Windows MouseKeys", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSEKEYS", "setAction": "SPI_SETMOUSEKEYS", "uiParam": "struct_size", "pvParam": { "type": "struct", "name": "MOUSEKEYS" } }, "supportedSettings": { "MouseKeysOn": { "schema": { "title": "Mouse keys", "description": "Enable/Disable mouse keys", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "boolean", "default": false } } } }, "MaxSpeed": { "schema": { "title": "Mouse keys speed", "description": "Speed of mouse keys", "type": "number", "multipleOf": 10 } }, "Acceleration": { "schema": { "title": "Mouse keys acceleration", "description": "Acceleration of mouse keys", "type": "number", "minimum": -1000, // TODO: Not clear how to describe this setting "maximum": 1000 } } }, "capabilitiesTransformations": { "MouseKeysOn": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/mouseEmulation/enabled", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.dwFlags.MKF_MOUSEKEYSON" } } }, "MaxSpeed": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/cursorSpeed", "factor": 350, "offset": 10 } }, "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.iMaxSpeed" } } }, "Acceleration": { "transform": { "type": "fluid.transforms.binaryOp", "left": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/initDelay", "factor": 1000, "outputPath": "value" } }, "right": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/cursorAcceleration", "factor": 1000, "offset": 1000, "outputPath": "value" } }, "operator": "+" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.iTimeToMaxSpeed" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/mouseEmulation/enabled": "MouseKeysOn.value", "http://registry\\.gpii\\.net/common/cursorSpeed": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "MaxSpeed.value", "factor": 0.00285714285714, "offset": -0.0285714285714 } } } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.mouseSettings": { "name": "Windows Mouse settings", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configureMousePrimaryButton": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSEBUTTONSWAP", "setAction": "SPI_SETMOUSEBUTTONSWAP", "uiParam": 0, "pvParam": { "type": "BOOL" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "SwapMouseButtonsConfig": { "schema": { "title": "Swap mouse primary button", "description": "Swap mouse left/right buttons", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [ 0, 1 ], "enumLabels": [ "off", "on" ], "default": 0 } } } } }, "capabilitiesTransformations": { "SwapMouseButtonsConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.SwapMouseButtons", "outputPath": "value" }, "path": { "literalValue": { "get": "pvParam", "set": "uiParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.SwapMouseButtons": "SwapMouseButtonsConfig.value" } }, "configureScrollWheelMode": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETWHEELSCROLLLINES", "setAction": "SPI_SETWHEELSCROLLLINES", "uiParam": 0, "pvParam": { "type": "UINT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "ScrollWheelModeConfig": { "schema": { "title": "Mouse scroll wheel mode", "description": "Changes the number of lines to scroll when moving the scrollwheel.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "default": 3, "oneOf": [ { "title": "Range of accepted regular values", "type": "integer", "minimum": 1, "maximum": 100 }, { "title": "Values with special meaning", "enum": [4294967295], "enumLabels": ["full-page"] } ] } } } } }, "capabilitiesTransformations": { "ScrollWheelModeConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.ScrollLines", "outputPath": "value" }, "path": { "literalValue": { "get": "pvParam", "set": "uiParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.ScrollLines": "ScrollWheelModeConfig.value" } }, "configureScrollInactiveWindow": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSEWHEELROUTING", "setAction": "SPI_SETMOUSEWHEELROUTING", "uiParam": 0, "pvParam": { "type": "UINT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "ScrollFocusRoutingConfig": { "schema": { "title": "Mouse scroll focus routing", "description": "Changes the way mouse scrolling is passed to applications.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["RoutingFocus", "RoutingHybrid"] } } } } }, "capabilitiesTransformations": { "ScrollFocusRoutingConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.ScrollRouting", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.ScrollRouting": "ScrollFocusRoutingConfig.value" } }, "configureMouseCursorShadow": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETCURSORSHADOW", "setAction": "SPI_SETCURSORSHADOW", "uiParam": 0, "pvParam": { "type": "BOOL" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "MouseCursorShadowEnable": { "schema": { "title": "Mouse cursor shadow", "description": "Enables or disables mouse cursor shadow.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "boolean", "default": false } } } } }, "capabilitiesTransformations": { "MouseCursorShadowEnable": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.EnableCursorShadow", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.EnableCursorShadow": "MouseCursorShadowEnable.value" } }, "configureHorizontalScrollChars": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETWHEELSCROLLCHARS", "setAction": "SPI_SETWHEELSCROLLCHARS", "uiParam": 0, "pvParam": { "type": "UINT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "ScrollCharsConfig": { "schema": { "title": "Mouse wheel horizontal scroll", "description": "Changes the number of chars that are scrolled horizontally.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "integer", "default": 3, "minimum": 1, "maximum": 100 } } } } }, "capabilitiesTransformations": { "ScrollCharsConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.ScrollChars", "outputPath": "value" }, "path": { "literalValue": { "get": "pvParam", "set": "uiParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.ScrollChars": "ScrollCharsConfig.value" } }, "configureActiveWindowTracking": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETACTIVEWINDOWTRACKING", "setAction": "SPI_SETACTIVEWINDOWTRACKING", "uiParam": 0, "pvParam": { "type": "BOOL" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "WindowsTrackingConfig": { "schema": { "title": "Mouse Windows tracking", "description": "Windows are focused when mouse is stopped over them.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } } } }, "capabilitiesTransformations": { "WindowsTrackingConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.WindowsTrackingEnabled", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.WindowsTrackingEnabled": "WindowsTrackingConfig.value" } }, "configureActiveWindowZOrder": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETACTIVEWNDTRKZORDER", "setAction": "SPI_SETACTIVEWNDTRKZORDER", "uiParam": 0, "pvParam": { "type": "BOOL" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "ActiveZOrder": { "schema": { "title": "Windows Tracking", "description": "Windows receive focus when mouse hovers over them.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } } } }, "capabilitiesTransformations": { "ActiveZOrder": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.WindowsTrackingEnabled", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.WindowsTrackingEnabled": "ActiveZOrder.value" } }, "configureWindowsArrangement": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETWINARRANGING", "setAction": "SPI_SETWINARRANGING", "uiParam": 0, "pvParam": { "type": "BOOL" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "WindowsArrangement": { "schema": { "title": "Configures Window arrangement", "description": "Enable/Disables the automatic Windows arrangment when dragging windows to border with mouse.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 1 } } } } }, "capabilitiesTransformations": { "WindowsArrangement": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.AutoWinArrangement", "outputPath": "value" }, "path": { "literalValue": { "get": "pvParam", "set": "uiParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.AutoWinArrangement": "WindowsArrangement.value" } }, "configureMouseDoubleClickTime": { "type": "gpii.windows.nativeSettingsHandler", "liveness": "live", "options": { "functionName": "DoubleClickTime" }, "supportedSettings": { "DoubleClickTimeConfig": { "schema": { "title": "Double click time", "description": "Changes the amount of time that can elapse between a first click and a second click for the OS to consider the mouse action a double-click.", "type": "integer", "default": 500, "minimum": 500, "maximum": 5000 } } }, "capabilitiesTransformations": { "DoubleClickTimeConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.DoubleClickTime", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.DoubleClickTime": "DoubleClickTimeConfig.value" } }, "configurePointerSpeed": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSESPEED", "setAction": "SPI_SETMOUSESPEED", "uiParam": 0, "pvParam": { "type": "UINT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "PointerSpeedConfig": { "schema": { "title": "Configures pointer speed", "description": "Selects a pointer speed.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "integer", "minimum": 1, "maximum": 20, "default": 10 } } } } }, "capabilitiesTransformations": { "PointerSpeedConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.PointerSpeed", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.PointerSpeed": "PointerSpeedConfig.value" } }, "configurePointerPrecision": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSE", "setAction": "SPI_SETMOUSE", "uiParam": 0, "pvParam": { "type": "array", "valueType": "INT", "length": 3 }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "EnhancePrecisionConfig": { "schema": { "title": "Enhance pointer precision", "description": "Enable/Disables enhanced pointer precision.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 1 } } } } }, "capabilitiesTransformations": { "EnhancePrecisionConfig": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.EnhancePrecision", "condition": true, "outputPath": "value", "true": [6, 10, 1], "false": [0, 0, 1] }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.EnhancePrecision": "EnhancePrecisionConfig.value" } }, "configureSnapToDefButton": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETSNAPTODEFBUTTON", "setAction": "SPI_SETSNAPTODEFBUTTON", "uiParam": 0, "pvParam": { "type": "UINT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "SnapToDefaultButtonConfig": { "schema": { "title": "Snap To", "description": "Automatically move pointer to the default button in a dialogue.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } } } }, "capabilitiesTransformations": { "SnapToDefaultButtonConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.SnapToDefaultButton", "outputPath": "value" }, "path": { "literalValue": { "get": "pvParam", "set": "uiParam" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.SnapToDefaultButton": "SnapToDefaultButtonConfig.value" } }, "configureHidePointer": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSEVANISH", "setAction": "SPI_SETMOUSEVANISH", "uiParam": 0, "pvParam": { "type": "INT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "HidePointerConfig": { "schema": { "title": "Hide pointer while typing", "description": "Enable/Disables hiding the pointer while typing.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 1 } } } } }, "capabilitiesTransformations": { "HidePointerConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.HidePointer", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.HidePointer": "HidePointerConfig.value" } }, "configureMouseSonar": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSESONAR", "setAction": "SPI_SETMOUSESONAR", "uiParam": 0, "pvParam": { "type": "UINT" }, "fWinIni": "SPIF_UPDATEINIFILE|SPIF_SENDCHANGE" }, "supportedSettings": { "MouseSonarConfig": { "schema": { "title": "Mouse sonar", "description": "Enable/Disable showing mouse location when pressing the CTRL key.", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } } } }, "capabilitiesTransformations": { "MouseSonarConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.MouseSonar", "outputPath": "value" }, "path": { "literalValue": "pvParam" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.MouseSonar": "MouseSonarConfig.value" } }, "configureDoubleClickWidth": { "type": "gpii.windows.nativeSettingsHandler", "liveness": "live", "options": { "functionName": "DoubleClickWidth" }, "supportedSettings": { "DoubleClickWidthConfig": { // This setting has no documented range, see https://issues.gpii.net/browse/GPII-3732 for explanation of current range. "schema": { "title": "Double-click rectangle width", "description": "Changes the width of the rectangle in which a second click should fall for OS to consider the mouse action a double-click.", "type": "integer", "default": 4, "minimum": 1, "maximum": 64, "multipleOf": 1 } } }, "capabilitiesTransformations": { "DoubleClickWidthConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.DoubleClickWidth", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.DoubleClickWidth": "DoubleClickWidthConfig.value" } }, "configureDoubleClickHeight": { "type": "gpii.windows.nativeSettingsHandler", "liveness": "live", "options": { "functionName": "DoubleClickHeight" }, "supportedSettings": { "DoubleClickHeightConfig": { // This setting has no documented range, see https://issues.gpii.net/browse/GPII-3732 for explanation of current range. "schema": { "title": "Double-click rectangle height", "description": "Changes the height of the rectangle in which a second click should fall for OS to consider the mouse action a double-click.", "type": "integer", "default": 4, "minimum": 1, "maximum": 64, "multipleOf": 1 } } }, "capabilitiesTransformations": { "DoubleClickHeightConfig": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.DoubleClickHeight", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.mouseSettings.DoubleClickHeight": "DoubleClickHeightConfig.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.mouseTrailing": { "name": "Windows Mouse Trailing", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETMOUSETRAILS", "setAction": "SPI_SETMOUSETRAILS", "uiParam": 0, "pvParam": { "type": "UINT" } }, "supportedSettings": { "MouseTrails": { "schema": { // Exactly the same schema as mouseTrailing common term "title": "Mouse trails", "description": "Amount of mouse trailing", // TODO: Discuss somehow simplifying the structure of SPI settings for easier UI input. "properties": { "path": { "type": "string", "required": true}, "value": { "required": true, "type": "integer", "minimum": 0, "maximum": 10 } } } } }, "capabilitiesTransformations": { "MouseTrails": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/mouseTrailing", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": { "get": "pvParam", "set": "uiParam" } } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/mouseTrailing": "MouseTrails.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.narrator": { "name": "Windows Built-in Narrator", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/screenReaderTTS/enabled" ], "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\Narrator", "dataTypes": { "SpeechSpeed": "REG_DWORD", "SpeechPitch": "REG_DWORD", "InteractionMouse": "REG_DWORD", "CoupleNarratorCursorKeyboard": "REG_DWORD", "FollowInsertion": "REG_DWORD", "EchoChars": "REG_DWORD", "EchoWords": "REG_DWORD", "IntonationPause": "REG_DWORD", "ReadHints": "REG_DWORD", "PlayAudioCues": "REG_DWORD", "NarratorCursorHighlight": "REG_DWORD", "FastKeyEntryEnabled": "REG_DWORD", "ReadingWithIntent": "REG_DWORD", "ErrorNotificationType": "REG_DWORD", "CoupleNarratorCursorMouse": "REG_DWORD", "LockNarratorKeys": "REG_DWORD" } }, "supportedSettings": { // CoupleNarratorCursorKeyboard, FollowInsertion, and InteractionMouse are mapped to one common term, maybe we should have individual schemas, maybe not. "CoupleNarratorCursorKeyboard": { "schema": { "title": "Couple Narrator Cursor Keyboard", "description": "Whether to couple the narrator cursor to the keyboard", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "CoupleNarratorCursorMouse": { "schema": { "title": "Narrator cursor follow the mouse", "description": "Have the narrator cursor follow the mouse.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "EchoChars": { "schema": { "title": "Echo Characters", "description": "Whether to echo characters typed.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "EchoWords": { "schema": { "title": "Echo Words", "description": "Whether to echo words typed.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "ErrorNotificationType": { "schema": { "title": "Speak narrator errors", "description": "Narrator announces errors such as 'no next landmark' or 'no next item.'", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "FastKeyEntryEnabled": { "schema": { "title": "Touch keyboard keys activated on finger lift", "description": "Make key insertion work on finger lift on touch keyboards", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, // CoupleNarratorCursorKeyboard, FollowInsertion, and InteractionMouse are mapped to one common term, maybe we should have individual schemas, maybe not. "FollowInsertion": { "schema": { "title": "Couple Narrator Cursor Keyboard", "description": "Whether to couple the narrator cursor to the keyboard.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, // CoupleNarratorCursorKeyboard, FollowInsertion, and InteractionMouse are mapped to one common term, maybe we should have individual schemas, maybe not. "InteractionMouse": { "schema": { "title": "Interaction Mouse", "description": "Whether to follow mouse interactions.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "IntonationPause": { "schema": { "title": "Narrator intonation pauses", "description": "Enable intonation pauses for Narrator", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "LockNarratorKeys": { "schema": { "title": "Lock Narrator keys", "description": "Lock the Narrator key so you don't have to press it with each command.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "NarratorCursorHighlight": { "schema": { "title": "Cursor Highlight", "description": "Enable cursor highlighting with a blue focus box", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "PlayAudioCues": { "schema": { "title": "Read audio cues", "description": "Enable sound playing when you do things like perform a Narrator command or when suggestions are available", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "ReadingWithIntent": { "schema": { "title": "Emphasize formatted text", "description": "Narrator’s voice will put more emphasis on formatted text.", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "ReadHints": { "schema": { "title": "Read hints for controls and buttons", "description": "Enable narrator announcing how to interact with items", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "SpeechSpeed": { "schema": { "title": "Speech Speed", "description": "The speed at which text is announced.", "type": "integer", "minimum": 0, "maximum": 20, "default": 10 } }, "SpeechPitch": { "schema": { "title": "Speech Pitch", "description": "The pitch at which text is announced.", "minimum": 0, "maximum": 20 } } }, "capabilitiesTransformations": { "SpeechSpeed": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.quantize", "inputPath": "http://registry\\.gpii\\.net/common/speechRate", /* https://msdn.microsoft.com/library/ee431826 * The speed range is -10 to +10. 0 being normal, -10 is a third of normal and +10 * is three times normal. The registry value is actually 0 to 20. * So this maps values between (default-speechRate / 3) and (default-speechRage * 3) * into values between 0 and 20. */ "ranges": [ { "upperBound": 50, "output": 0 }, { "upperBound": 150, "output": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/speechRate", "factor": 0.1, "offset": -5 } } }, { "upperBound": 450, "output": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/speechRate", "factor": 0.033333333333, "offset": -5 } } }, { "output": 20 } ] } } } }, "SpeechPitch": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 20, "offset": 0 } }, "transform": [ { "type": "fluid.transforms.arrayToSetMembership", "inputPath": "http://registry\\.gpii\\.net/common/trackingTTS", "outputPath": "", "presentValue": 1, "missingValue": 0, "options": { "focus": "CoupleNarratorCursorKeyboard", "caret": "FollowInsertion", "mouse": "InteractionMouse" } } ], "EchoChars": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/keyEcho" } }, "EchoWords": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/wordEcho" } }, "ReadingWithIntent": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1 } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/speechRate": { "transform": { "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "SpeechSpeed", "right": 10, "operator": "<" } }, "true": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "SpeechSpeed", "factor": 10, "offset": 50 } }, "false": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "SpeechSpeed", "factor": 30, "offset": -150 } } } }, "http://registry\\.gpii\\.net/common/pitch": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "SpeechPitch", "factor": 0.05, "offset": 0 } }, "transform": [ { "type": "fluid.transforms.setMembershipToArray", "inputPath": "", "outputPath": "http://registry\\.gpii\\.net/common/trackingTTS", "presentValue": 1, "missingValue": 0, "options": { "CoupleNarratorCursorKeyboard": "focus", "FollowInsertion": "caret", "InteractionMouse": "mouse" } } ], "http://registry\\.gpii\\.net/common/keyEcho": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EchoChars", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/wordEcho": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EchoWords", "right": 0, "operator": "!==" } } } }, "configureNoRoam": { "type": "gpii.windows.registrySettingsHandler", "liveness": "live", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\Narrator\\NoRoam", "dataTypes": { "SpeechVolume": "REG_DWORD", "SpeechVoice": "REG_SZ", "ShowKeyboardIntroduction": "REG_DWORD", "ShowBrowserSelection": "REG_DWORD", "ContextVerbosityLevel": "REG_DWORD", "RenderContextBeforeElement": "REG_DWORD", "DuckAudio": "REG_DWORD", "WinEnterLaunchEnabled": "REG_DWORD", "VerbosityLevel": "REG_DWORD", "DetailedFeedback": "REG_DWORD" } }, "supportedSettings": { "SpeechVolume": { "schema": { "title": "Speech volume", "description": "Changes the Narrator voice volume", "type": "number", "minimum": 0.01, "maximum": 1 } }, "SpeechVoice": { "schema": { "title": "Speech voice", "description": "Select which voice is going to be used for Narrator", "default": "Microsoft David - English (United States)", "enum": [ "Microsoft David - English (United States)", "Microsoft Zira - English (United States)", "Microsoft Mark - English (United States)", "Microsoft David Desktop", "Microsoft Zira Desktop" ], "enumLabels": [ "Microsoft David - English (United States)", "Microsoft Zira - English (United States)", "Microsoft Mark - English (United States)", "Microsoft David Desktop", "Microsoft Zira Desktop" ] } }, // TODO: Confirm this is still useful, it doesn't seem to appear in the Narrator options. "ShowKeyboardIntroduction": { "schema": { "title": "Show Keyboard Introduction", "description": "Whether or not to show the keyboard introduction.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, "ShowBrowserSelection": { "schema": { "title": "Show Browser Selection", "description": "Whether or not to show the browser selection.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, "ContextVerbosityLevel": { "schema": { "title": "Context Verbosity Level", "description": "Changes the amount of contextual reading for controls and buttons", "default": 2, "enum": [0, 1, 2, 3, 4, 5], "enumLabels": [ "No context reading", "Sounds only", "Immediate context", "Immediate context name and type", "Full context of new control", "Full context of both the old control and new control" ] } }, "RenderContextBeforeElement": { "schema": { "title": "Contextual reading order", "description": "Choose whether you want to hear context before or after the current item", "default": 1, "enum": [0, 1], "enumLabels": ["Before", "After"] } }, "DuckAudio": { "schema": { "title": "Lower other sounds", "description": "Enable/Disable lowering other sounds while narrator is speaking", "type": "boolean", "default": true } }, WinEnterLaunchEnabled: { "schema": { "title": "Start with shortcut", "description": "Allow the shortcut key to start Narrator", "type": "boolean", "default": true } }, "VerbosityLevel": { "schema": { "title": "Text verbosity level", "description": "Changes the level of detail Narrator provides about text.", "default": 1, "enum": [ 0, 1, 2, 3, 4, 5 ], "enumLabels": [ "0 - Text Only", "1 - Headers and errors", "2 - Basic information", "3 - Other annotations", "4 - Extended formatting", "5 - Layout and animation info" ] } }, "DetailedFeedback": { "schema": { "title": "Additional feedback", "description": "Use caps lock + E to send additional feedback", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 1 } } }, "capabilitiesTransformations": { "SpeechVolume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100, "offset": 0 } }, "ShowKeyboardIntroduction": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/speakTutorialMessages" } }, "ShowBrowserSelection": { "transform": { "type": "fluid.transforms.literalValue", "input": 0 } }, "ContextVerbosityLevel": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.ControlContextVerbosity" } }, "RenderContextBeforeElement": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.ReadContextBeforeControls" } }, "DuckAudio": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.LowerAppsVolume" } }, "WinEnterLaunchEnabled": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.StartWithShortcut" } }, "VerbosityLevel": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.TextVerbosityLevel" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.ControlContextVerbosity": "ContextVerbosityLevel", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.ReadContextBeforeControls": "RenderContextBeforeElement", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.LowerAppsVolume": "DuckAudio", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.StartWithShortcut": "WinEnterLaunchEnabled", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.TextVerbosityLevel": "VerbosityLevel" } }, "configureSystemSettings": { "type": "gpii.windows.systemSettingsHandler", "liveness": "live", "capabilities": [], "options": { "Async": true, "CheckResult": true }, "supportedSettings": { "SystemSettings_Accessibility_Narrator_IsAutoStartEnabled": { "schema": { "title": "Auto Start Narrator", "description": "Start Narrator after sign-in.", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "SystemSettings_Accessibility_Narrator_IsAutoStartOnLogonDesktopEnabled": { "schema": { "title": "Auto Start Narrator for everyone", "description": "Start Narrator before sign-in.", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } }, "capabilitiesTransformations": { "SystemSettings_Accessibility_Narrator_IsAutoStartEnabled": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.EnableAutoStart", "outputPath": "value" } }, "SystemSettings_Accessibility_Narrator_IsAutoStartOnLogonDesktopEnabled": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.EnableSystemAutoStart", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.EnableAutoStart": "SystemSettings_Accessibility_Narrator_IsAutoStartEnabled.value", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.narrator.EnableSystemAutoStart": "SystemSettings_Accessibility_Narrator_IsAutoStartOnLogonDesktopEnabled.value" } } }, "launchHandlers": { "launcher": { "type": "gpii.windows.enableRegisteredAT", "options": { "registryName": "Narrator", "getState": [ { "type": "gpii.processReporter.find", "command": "Narrator.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.nightScreen": { "name": "Windows night light settings", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.systemSettingsHandler", "liveness": "live", "options": { "Async": true, "CheckResult": true }, "capabilities": [ "display.screenEnhancement.nightScreen", "applications.com\\.microsoft\\.windows\\.nightScreen.id" ], "capabilitiesTransformations": { "SystemSettings_Display_BlueLight_ManualToggleQuickAction": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/nightScreen", "outputPath": "value" } } }, "supportedSettings": { "SystemSettings_Display_BlueLight_ManualToggleQuickAction": { "schema": { "title": "Night Screen", "description": "Reduce the blue emitted from the screen.", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/nightScreen": "SystemSettings_Display_BlueLight_ManualToggleQuickAction.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.soundSentry": { "name": "Windows 10 SoundSentry", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [ ], "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Control Panel\\Accessibility\\SoundSentry", "dataTypes": { "WindowsEffect": "REG_DWORD" } }, "supportedSettings": { "WindowsEffect": { "schema": { "title": "SoundSentry", "description": "Selects the desired visual notification for sounds.", "enum": [ 0, 1, 2, 3 ], "enumLabels": [ "No visual alert", "Flash the title of the active window", "Flash the active window", "Flash the entire screen" ] } } }, "capabilitiesTransformations": { }, "inverseCapabilitiesTransformations": { } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.onscreenKeyboard": { "name": "Windows Built-in Onscreen Keyboard", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/onScreenKeyboard/enabled" ], "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\Osk", "dataTypes": { "NavigationMode": "REG_DWORD", "ClickSound": "REG_DWORD", "ShowClearKeyboard": "REG_DWORD", "ShowNumPad": "REG_DWORD", "Mode": "REG_DWORD", "HoverPeriod": "REG_DWORD", "ScanInterval": "REG_DWORD", "UseDevice": "REG_DWORD", "UseKB": "REG_DWORD", "ScanKey": "REG_DWORD", "UseMouse": "REG_DWORD", "UseTextPrediction": "REG_DWORD", "InsertSpace": "REG_DWORD", "Dock": "REG_DWORD" } }, "supportedSettings": { "NavigationMode": { // TODO: Weird supported setting - How do we provide such use case? "schema": { "title": "On-Screen Keyboard", "description": "Enable/Disable On-Screen Keyboard", "enum": [0, 1], "enumLabels": ["Off", "On"] } }, "ClickSound": { "schema": { "title": "Use click sound", "description": "Makes click sound when pressing OSK keys", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "ShowClearKeyboard": { "schema": { "title": "Show position keys", "description": "Show keys to make it easier to move around the screen", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "ShowNumPad": { "schema": { "title": "Numeric key pad", "description": "Turn on numeric key pad", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "Mode": { "schema": { "title": "OSK keys mode", "description": "Select how OSK keys are pressed", "enum": [ 1, 2, 3 ], "enumLabels": [ "Use click to press the OSK keys", "Hover over keys", "Scan through keys" ], "default": 1 } }, "HoverPeriod": { "schema": { "title": "Hover duration", "description": "Changes the ammount of time for considering a click when hovering over a key", "type": "integer", "default": 1000, "minimum": 500, "maximum": 3000 } }, "ScanInterval": { "schema": { "title": "Scanning speed", "description": "Changes the wait interval while scanning keys", "type": "integer", "default": 1000, "minimum": 500, "maximum": 3000 } }, "UseDevice": { "schema": { "title": "Scan using gaming device", "description": "Use joystick, game pad or other gaming device", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 1 } }, "UseKB": { "schema": { "title": "Scan using keyboard key", "description": "Use specific keyboard key for scanning", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "ScanKey": { "schema": { "title": "Scan keyboard key", "description": "Keyboard key using for scanning", "enum": [ 32, 13, 113, 114, 115, 116, 117, 118, 119, 120, 123 ], "enumLabels": [ "Space Bar Key", "Enter", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F12" ], "default": 32 } }, "UseMouse": { "schema": { "title": "Scan using mouse click", "description": "Use mouse clicks to for scanning", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "UseTextPrediction": { "schema": { "title": "Text prediction", "description": "Use OSK text prediction to show suggestions while typing", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "InsertSpace": { "schema": { "title": "Auto insert space", "description": "Insert space after predicted word", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } }, "Dock": { "schema": { "title": "Dock", "description": "Dock the OSK at the bottom of the screen", "enum": [0, 1], "enumLabels": ["Off", "On"], "default": 0 } } }, "capabilitiesTransformations": { "NavigationMode": { "literalValue": 0 }, "ShowClearKeyboard": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.ShowPositionKeys" } }, "Mode": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.KeyPressMode" } }, "UseDevice": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.UseDeviceForScan" } }, "UseKB": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.UseKBForScan" } }, "UseMouse": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.UseMouseForScan" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.ShowPositionKeys": "ShowClearKeyboard", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.KeyPressMode": "Mode", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.UseDeviceForScan": "UseDevice", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.UseKBForScan": "UseKBForScan", "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.onscreenKeyboard.UseMouseForScan": "UseMouseForScan" } } }, "launchHandlers": { "launcher": { "type": "gpii.windows.enableRegisteredAT", "options": { "registryName": "osk", "getState": [ { "type": "gpii.processReporter.find", "command": "osk.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.screenDPI": { "name": "Windows DPI", "contexts": { "OS": [ { "id": "win32", "version": ">=6.2" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.displaySettingsHandler", "liveness": "live", "supportedSettings": { "screen-dpi": { "schema": { "title": "Screen DPI", "description": "Screen DPI of the default display.", "type": "number", "minimum": 1, "maximum": 5 // Taken from dpiWindows10.js, may not be appropriate } } }, "capabilitiesTransformations": { "screen-dpi": "http://registry\\.gpii\\.net/common/DPIScale" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.screenResolution": { "name": "Windows Screen Resolution", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configuration": { "type": "gpii.windows.displaySettingsHandler", "liveness": "liveRestart", "supportedSettings": { "screen-resolution": { "schema": { "title": "Screen resolution", "description": "Screen resolution of the default display.", "type": "array" // TODO: Discuss and fix this. // TODO: Not sure about this type // TODO: This must be filled in on the fly with available screen resolutions //"items": { // "enum": [] //} } } } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.stickyKeys": { "name": "Windows StickyKeys", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.spiSettingsHandler", "liveness": "live", "options": { "getAction": "SPI_GETSTICKYKEYS", "setAction": "SPI_SETSTICKYKEYS", "uiParam": "struct_size", "pvParam": { "type": "struct", "name": "STICKYKEYS" } }, "supportedSettings": { "StickyKeysOn": { // TODO: Make a general pattern for SPI settings. schema: { "title": "Sticky Keys On", "description": "Whether or not sticky keys should be turned on.", "properties": { "path": { "type": "string", "required": true}, "value": { "type": "boolean", "required": true} } } } }, "capabilitiesTransformations": { "StickyKeysOn": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/stickyKeys", "outputPath": "value" }, "path": { "transform": { "type": "fluid.transforms.literalValue", "input": "pvParam.dwFlags.SKF_STICKYKEYSON" } } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/stickyKeys": "StickyKeysOn.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.touchPadSettings": { "name": "Windows precision touchpad settings", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.systemSettingsHandler", "liveness": "live", "options": { "Async": true, "CheckResult": true }, "capabilities": [], "capabilitiesTransformations": { "SystemSettings_Input_Touch_SetActivationTimeout": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.touchPadSettings.Sensitivity", "outputPath": "value" } } }, "supportedSettings": { "SystemSettings_Input_Touch_SetActivationTimeout": { "schema": { "title": "Touchpad sensitivity", "description": "Changes Windows 10 precision touchpad sensitivity.", "default": "Medium sensitivity", "enum": [ "Low sensitivity", "Medium sensitivity", "High sensitivity", "Most sensitive" ], "enumLabels": [ "Low sensitivity", "Medium sensitivity", "High sensitivity", "Most sensitive" ] } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.windows\\.touchPadSettings.Sensitivity": "SystemSettings_Input_Touch_SetActivationTimeout.value" } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.typingEnhancement": { "name": "Windows typing autocorrect", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "live", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\TabletTip\\1.7", "dataTypes": { "EnableAutoShiftEngage": "REG_DWORD", "EnableAutocorrection": "REG_DWORD", "EnableCompatibilityKeyboard": "REG_DWORD", "EnableDesktopModeAutoInvoke": "REG_DWORD", "EnableDoubleTapSpace": "REG_DWORD", "EnableKeyAudioFeedback": "REG_DWORD", "EnablePredictionSpaceInsertion": "REG_DWORD", "EnableShiftLock": "REG_DWORD", "EnableSpellchecking": "REG_DWORD", "EnableTextPrediction": "REG_DWORD" } }, "supportedSettings": { // TODO: confirm this is still relevant, update details, and add defaults. "EnableAutoShiftEngage": { "schema": { "title": "Auto Shift", "description": "Automatically engage the shift key when ???.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, "EnableAutocorrection": { "schema": { "title": "Autocorrect Misspelled Words", "description": "Autocorrect misspelled words while typing.", "enum": [true, false], "enumLabels": ["On", "Off"], "default": true } }, // TODO: confirm this is still relevant, update details, and add defaults. "EnableCompatibilityKeyboard": { "schema": { "title": "Enable Compatibility Keyboard", "description": "Enable compatibility keyboard.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, // TODO: confirm this is still relevant, update details, and add defaults. "EnableDesktopModeAutoInvoke": { "schema": { "title": "Enable Desktop Mode Auto-invoke", "description": "Enable desktop mode auto-invoke.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, "EnableDoubleTapSpace": { "schema": { "title": "Period On Spacebar Double Tap", "description": "Add a period after the spacebar is double-tapped.", "enum": [true, false], "enumLabels": ["On", "Off"], "default": true } }, // TODO: confirm this is still relevant, update details, and add defaults. "EnableKeyAudioFeedback": { "schema": { "title": "Enable Key Audio Feedback", "description": "Play a sound when a key is pressed.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, "EnablePredictionSpaceInsertion": { "schema": { "title": "Add Space After Suggestion", "description": "Add a space after choosing a text suggestion.", "enum": [true, false], "enumLabels": ["On", "Off"], "default": true } }, // TODO: confirm this is still relevant, update details, and add defaults. "EnableShiftLock": { "schema": { "title": "Enable Shift Lock", "description": "Enable shift lock.", "enum": [true, false], "enumLabels": ["On", "Off"] } }, "EnableSpellchecking": { "schema": { "title": "Highlight Misspelled Words", "description": "Highlight misspelled words while typing.", "enum": [true, false], "enumLabels": ["On", "Off"], "default": true } }, "EnableTextPrediction": { "schema": { "title": "Show Text Suggestions", "description": "Show text suggestions while typing.", "enum": [true, false], "enumLabels": ["On", "Off"], "default": true } } }, "capabilities": [ "http://registry\\.gpii\\.net/common/autocorrectionEnabled", "http://registry\\.gpii\\.net/common/spellCheckEnabled", "http://registry\\.gpii\\.net/common/textPredictionEnabled", "http://registry\\.gpii\\.net/common/textPredictionWithSpaceEnabled", "http://registry\\.gpii\\.net/common/doubleTabSpaceEnabled", "http://registry\\.gpii\\.net/common/keyAudioFeedbackEnabled", "http://registry\\.gpii\\.net/common/autoShiftEngageEnabled", "http://registry\\.gpii\\.net/common/shiftLockEnabled", "http://registry\\.gpii\\.net/common/compatibilityKeyboardEnabled", "http://registry\\.gpii\\.net/common/desktopModeAutoInvokeEnabled" ], "capabilitiesTransformations": { "EnableAutocorrection": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/autocorrectionEnabled" } }, "EnableSpellchecking": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/spellCheckEnabled" } }, "EnableTextPrediction": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/textPredictionEnabled" } }, "EnablePredictionSpaceInsertion": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/textPredictionWithSpaceEnabled" } }, "EnableDoubleTapSpace": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/doubleTabSpaceEnabled" } }, "EnableKeyAudioFeedback": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/keyAudioFeedbackEnabled" } }, "EnableAutoShiftEngage": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/autoShiftEngageEnabled" } }, "EnableShiftLock": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/shiftLockEnabled" } }, "EnableCompatibilityKeyboard": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/compatibilityKeyboardEnabled" } }, "EnableDesktopModeAutoInvoke": { "transform": { "type": "fluid.transforms.condition", "false": 0, "true": 1, "conditionPath": "http://registry\\.gpii\\.net/common/desktopModeAutoInvokeEnabled" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/autocorrectionEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableAutocorrection", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/spellCheckEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableSpellchecking", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/textPredictionEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableTextPrediction", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/textPredictionWithSpaceEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnablePredictionSpaceInsertion", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/doubleTabSpaceEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableDoubleTapSpace", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/keyAudioFeedbackEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableKeyAudioFeedback", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/autoShiftEngageEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableAutoShiftEngage", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/shiftLockEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableShiftLock", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/compatibilityKeyboardEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableCompatibilityKeyboard", "right": 0, "operator": "!==" } }, "http://registry\\.gpii\\.net/common/desktopModeAutoInvokeEnabled": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "EnableDesktopModeAutoInvoke", "right": 0, "operator": "!==" } } } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.windows.volumeControl": { "name": "Windows 10 system volume", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.nativeSettingsHandler", "liveness": "live", "options": { "functionName": "Volume" }, "supportedSettings": { "Volume": { "schema": { "title": "System volume", "description": "Changes the current system volume.", "type": "number", "default": 0.5, "minimum": 0, "maximum": 1, "multipleOf": 0.01 } } }, "capabilitiesTransformations": { "Volume": { "transform": { "type": "fluid.transforms.value", "inputPath": "http://registry\\.gpii\\.net/common/volume", "outputPath": "value" } } }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/volume": "Volume.value" } } }, "start": [], "stop": [], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ], "isRunning": [] }, "com.office.windowsOneNoteLearningTools": { "name": "LearningTools for OneNote 2016", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "manualRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "64:Software\\Microsoft\\OneNoteLearningTools", "dataTypes": { "DictationLanguage": "REG_DWORD", "ReadingComprehensionDefaultFont": "REG_SZ", "IsReadingComprehensionFontWide": "REG_DWORD", "ReadingComprehensionTheme": "REG_DWORD", "ReadingComprehensionFontSize": "REG_DWORD", "SynthRate": "REG_DWORD", "SynthVoices": "REG_SZ" } }, "supportedSettings": { "DictationLanguage": { "schema": { "title": "Dictation Language", "description": "Voice dictation language", "type": "number", "enum": [ 1031, 3082, 1036, 1033, 1040, 1041, 1046, 1049 ], "enumLabels": [ "German", "Spanish", "French", "English", "Italian", "Japanese", "Portuguese", "Russian" ], "default": 1033 } }, "ReadingComprehensionDefaultFont": { "schema": { "title": "Font Spacing", "description": "The font in which text is preferred to be presented", "type": "string", "enum": [ "Calibri", "Sitka Small" ], "enumLabels": [ "Calibri", "Sitka Small" ], "default": "Calibri" } }, "IsReadingComprehensionFontWide": { "schema": { "title": "Font Spacing", "description": "Set wider font spacing for reading", "type": "number", "enum": [1, 0], "enumLabels": ["Default", "Wide"], "default": 0 } }, "ReadingComprehensionTheme": { "schema": { "title": "Theme", "description": "Set the theme for reading", "type": "number", "enum": [0, 1, 2, 3, 4, 5], "enumLabels": ["White", "Reverse (High-Contrast)", "Yellow", "Pink", "Green", "Blue"], "default": 0 } }, "ReadingComprehensionFontSize": { "schema": { "title": "Font Size", "description": "The font size in which text is preferred to be presented", "type": "number", "minimum": 12, "maximum": 96, "default": 48, "multipleOf" : 2 } }, "SynthRate": { "schema": { "title": "Synth rate", "description": "The font size in which text is preferred to be presented", "type": "number", "enum": [ 4294967286, 4294967289, 4294967291, 4294967294, 0, 2, 4, 6, 8 ], "enumLabels": ["-4", "-3", "-2", "-1", "0", "1", "2", "4", "6"], "default": 0 } }, "SynthVoices": { "schema": { "title": "Synth voice", "description": "The voice that will be used for text reading", "type": "string", "enum": [ "[{\"Lang\":\"zh\",\"Voice\":\"Microsoft Tracy Desktop\"}]", // - Hong kong "[{\"Lang\":\"zh\",\"Voice\":\"Microsoft Hanhan Desktop\"}]", // - Taiwan "[{\"Lang\":\"zh\",\"Voice\":\"Microsoft HuiHui Desktop\"}]", // - People’s Chinese Republic "[{\"Lang\":\"en\",\"Voice\":\"Microsoft Zira Desktop\"}]", // - US "[{\"Lang\":\"en\",\"Voice\":\"Microsoft David Desktop\"}]", // - US "[{\"Lang\":\"en\",\"Voice\":\"Microsoft Helena Desktop\"}]", // - United Kingdom "[{\"Lang\":\"fr\",\"Voice\":\"Microsoft Hortense Desktop\"}]", // - France "[{\"Lang\":\"de\",\"Voice\":\"Microsoft Hedda Desktop\"}]", // - Germany "[{\"Lang\":\"it\",\"Voice\":\"Microsoft Elsa Desktop\"}]", // - Italy "[{\"Lang\":\"ja\",\"Voice\":\"Microsoft Haruka Desktop\"}]", // - Japan "[{\"Lang\":\"ko\",\"Voice\":\"Microsoft Heami Desktop\"}]", // - Korea "[{\"Lang\":\"pl\",\"Voice\":\"Microsoft Paulina Desktop\"}]", // - Poland "[{\"Lang\":\"pt\",\"Voice\":\"Microsoft Maria Desktop\"}]", // - Portugal "[{\"Lang\":\"ru\",\"Voice\":\"Microsoft Irina Desktop\"}]", // - Russia "[{\"Lang\":\"es\",\"Voice\":\"Microsoft Sabina Desktop\"}]", // - Mexico "[{\"Lang\":\"es\",\"Voice\":\"Microsoft Helena Desktop\"}]" // - Spain ], "enumLabels": [ "ZH - Microsoft Tracy", "ZH - Microsoft Hanhan", "ZH - Microsoft HuiHui", "EN - Microsoft Zira", "EN - Microsoft David", "EN - Microsoft Helena", "FR - Microsoft Hortense", "DE - Microsoft Hedda", "IT - Microsoft Elsa", "JA - Microsoft Haruka", "KO - Microsoft Heami", "PL - Microsoft Paulina", "PT - Microsoft Maria", "RU - Microsoft Irina", "ES - Microsoft Sabina", "ES - Microsoft Helena" ] } } }, "capabilities": [ ], "capabilitiesTransformations": { } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_LOCAL_MACHINE", "path": "64:SOFTWARE\\Microsoft\\Office\\OneNote\\AddIns\\LearningTools.OneNoteLearningTools", "subPath": "FriendlyName", "dataType": "REG_SZ" } ], "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "getState": [ { "type": "gpii.processReporter.find", "command": "ONENOTE.exe" } ], "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\OneNote.exe\\}\"" } ], "setFalse": [ { "type": "gpii.windows.closeProcessByName", "filename": "ONENOTE.exe" } ] } } } }, "com.office.windowsWordHome365LearningTools": { "name": "LearningTools for Microsoft Office 2016 Word Home 365 edition for Windows 10", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "manualRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "64:Software\\Microsoft\\Office\\16.0\\Word\\Options", "dataTypes": { "ReadingModeColumnWidth": "REG_DWORD", "ReadingModePageColor": "REG_DWORD", "ReadingModePrintedPage": "REG_DWORD", "ReadAloudVoiceId": "REG_SZ", "ReadAloudVoiceRate": "REG_DWORD", "ReadingModeSyllables": "REG_DWORD", "ReadingModeTextSpacing": "REG_DWORD" } }, "supportedSettings": { "ReadingModeColumnWidth": { "schema": { "title": "Column mode", "description": "Column mode in which to display text", "type": "number", "enum": [0, 1, 2], "enumLabels": ["Narrow", "Default", "Wide"], "default": 0 } }, "ReadingModePageColor": { "schema": { "title": "Page color", "description": "The color that will be used as page background", "type": "number", "enum": [0, 1, 2], "enumLabels": ["None", "Sepia", "Reverse (High-Contrast)"], "default": 0 } }, "ReadingModePrintedPage": { "schema": { "title": "Design", "description": "Select between column desing and page design", "type": "number", "enum": [0, 1], "enumLabels": ["Column Layout", "Printed Layout"], "default": 0 } }, "ReadAloudVoiceId": { "schema": { "title": "Voice Id", "description": "The voice that will be used for text reading", "type": "string", "enum": [ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_esES_PabloM", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_esES_HelenaM", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_esES_LauraM", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_enUS_DavidM", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_enUS_MarkM", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_enUS_ZiraM" ], "enumLabels": ["Pablo", "Helena", "Laura", "David", "Mark", "Zira"], "default": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech_OneCore\\Voices\\Tokens\\MSTTS_V110_enUS_DavidM" } }, "ReadAloudVoiceRate": { "schema": { "title": "Font Size", "description": "The font size in which text is preferred to be presented", "type": "integer", // TODO: We should present the value in a homogeneus speech rate "default": 10, "minimum": 0, "maximum": 20 } }, "ReadingModeSyllables": { "schema": { "title": "Synth rate", "description": "The font size in which text is preferred to be presented", "type": "number", "enum": [0, 1], "enumLabels": ["False", "True"], "default": 0 } }, "ReadingModeTextSpacing": { "schema": { "title": "Synth rate", "description": "The font size in which text is preferred to be presented", "type": "number", "enum": [0, 1], "enumLabels": ["False", "True"], "default": 0 } } }, "capabilities": [ ], "capabilitiesTransformations": { } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_LOCAL_MACHINE", "path": "64:SOFTWARE\\Microsoft\\Office\\ClickToRun\\Configuration", "subPath": "O365HomePremRetail.TenantId", "dataType": "REG_SZ" } ], "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "getState": [ { "type": "gpii.processReporter.find", "command": "WINWORD.exe" } ], "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Winword.exe\\}\"" } ], "setFalse": [ { "type": "gpii.windows.closeProcessByName", "filename": "WINWORD.exe" } ] } } } }, "com.office.windowsWordPro365LearningTools": { "name": "LearningTools for Microsoft Office 2016 Word Pro 365 edition for Windows 10", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.windows.registrySettingsHandler", "liveness": "manualRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "64:Software\\Microsoft\\Office\\16.0\\Word\\Options", "dataTypes": { "ReadingModeColumnWidth": "REG_DWORD", "ReadingModePageColor": "REG_DWORD", "ReadingModePrintedPage": "REG_DWORD", "ReadAloudVoiceId": "REG_SZ", "ReadAloudVoiceRate": "REG_DWORD", "ReadingModeSyllables": "REG_DWORD", "ReadingModeTextSpacing": "REG_DWORD" } }, "supportedSettings": { "ReadingModeColumnWidth": { "schema": { "title": "Column mode", "description": "Column mode in which to display text", "type": "number", "enum": [0, 1, 2], "enumLabels": ["Narrow", "Default", "Wide"], "default": 0 } }, "ReadingModePageColor": { "schema": { "title": "Page color", "description": "The color that will be used as page background", "type": "number", "enum": [0, 1, 2], "enumLabels": ["None", "Sepia", "Reverse (High-Contrast)"], "default": 0 } }, "ReadingModePrintedPage": { "schema": { "title": "Design", "description": "Select between column desing and page design", "type": "number", "enum": [0, 1], "enumLabels": ["Column Layout", "Printed Layout"], "default": 0 } }, "ReadAloudVoiceId": { "schema": { "title": "Voice Id", "description": "The voice that will be used for text reading", "enum": [ "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_EN-US_DAVID_11.0", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_EN-US_ZIRA_11.0", "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_ES-ES_HELENA_11.0" ], "enumLabels": ["David", "Zira", "Helena"], "default": "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices\\Tokens\\TTS_MS_EN-US_DAVID_11.0" } }, "ReadAloudVoiceRate": { "schema": { "title": "Font Size", "description": "The font size in which text is preferred to be presented", "type": "integer", // TODO: We should present the value in a homogeneous speech rate "default": 10, "minimum": 0, "maximum": 20 } }, "ReadingModeSyllables": { "schema": { "title": "Synth rate", "description": "The font size in which text is preferred to be presented", "type": "number", "enumLabels": ["False", "True"], "enum": [0, 1], "default": 0 } }, "ReadingModeTextSpacing": { "schema": { "title": "Synth rate", "description": "The font size in which text is preferred to be presented", "type": "number", "enum": [0, 1], "enumLabels": ["False", "True"], "default": 0 } } }, "capabilities": [ ], "capabilitiesTransformations": { } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_LOCAL_MACHINE", "path": "64:SOFTWARE\\Microsoft\\Office\\ClickToRun\\Configuration", "subPath": "O365ProPlusRetail.TenantId", "dataType": "REG_SZ" } ], "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "getState": [ { "type": "gpii.processReporter.find", "command": "WINWORD.exe" } ], "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\Winword.exe\\}\"" } ], "setFalse": [ { "type": "gpii.windows.closeProcessByName", "filename": "WINWORD.exe" } ] } } } }, "com.texthelp.readWriteGold": { "name": "Read&Write 12", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [], "settingsHandlers": { "configuration": { "type": "gpii.settingsHandlers.XMLHandler", "liveness": "manualRestart", "options": { "filename": "${{environment}.APPDATA}\\Texthelp\\ReadAndWrite\\12\\RWSettings.xml", "encoding": "utf-8", "xml-tag": "" }, "capabilitiesTransformations": { "ApplicationSettings": "ApplicationSettings" }, "supportedSettings": { // General "ApplicationSettings.AppBar.IconSize.$t": { "schema": { "title": "Button size", "description": "Changes the application panel buttons size.", "enum": [ "Medium", "Small", "Large" ], "enumLabels": [ "Medium", "Small", "Large" ], "default": "Medium" } }, "ApplicationSettings.AppBar.ToolbarIconSet.$t": { "schema": { "title": "Button style", "description": "Changes the application panel buttons style.", "enum": [ "Clear", "Color" ], "enumLabels": [ "Clear", "Color" ], "default": "Clear" } }, "ApplicationSettings.AppBar.ShowText.$t": { "schema": { "title": "Show text on toolbar", "description": "Shows icons text in the application toolbar.", "type": "boolean", "default": false } }, "ApplicationSettings.AppBar.optToolbarBackColour.$t": { "schema": { "title": "Toolbar color", "description": "Changes the ammount of time for considering a click when hovering over a key", "type": "integer", "default": 1000, "minimum": 500, "maximum": 3000 } }, "ApplicationSettings.AppBar.RunOnStartUp.$t": { "schema": { "title": "Launch on Windows startup", "description": "Automatically launches the application at windows startup.", "type": "boolean", "default": true } }, // Check It "ApplicationSettings.Spelling.OrderByContext.$t": { "schema": { "title": "Order suggestions by context", "description": "Suggestions are ordered by context.", "type": "boolean", "default": true } }, "ApplicationSettings.Spelling.SpeakSpellingOnHover.$t": { "schema": { "title": "Speak when mouse pointer hovers over a word", "description": "When mouse pointer hovers over a word spell the hovered word.", "type": "boolean", "default": true } }, "ApplicationSettings.Spelling.ShowCheckIt.$t": { "schema": { "title": "Classic Spell Check", "description": "Uses the old program interface for spell checking.", "type": "boolean", "default": false } }, "ApplicationSettings.Spelling.RightClickMSWord.$t": { "schema": { "title": "Microsoft Word right click spell check", "description": "Allows right click Read&Write spell check in Microsoft Word.", "type": "boolean", "default": false } }, // Check It - Vocabulary - TODO: We need to comsume an array to build a mask // "ApplicationSettings.Spelling.optVocabMask.$t": {}, // // Dictionary "ApplicationSettings.Dictionary.WebDictionary.$t": { "schema": { "title": "Web Dictionary", "description": "Select the web dictionary to use.", "enum": [ "Google Dictionary", "Bing", "Dictionary.com" ], "enumLabels": [ "Google Dictionary", "Bing", "Dictionary.com" ], "default": "Google Dictionary" } }, "ApplicationSettings.Dictionary.PopupDictionary.$t": { "schema": { "title": "Pop-up Dictionary", "description": "Displays a popup dictionary when hovering selected words.", "type": "boolean", "default": false } }, "ApplicationSettings.Dictionary.ToggleImages.$t": { "schema": { "title": "Toggle Images", "description": "Toggles image section in dictionary popup window.", "type": "boolean", "default": false } }, // Highlights "ApplicationSettings.StudySkills.CollectYellowHighlight.$t": { "schema": { "title": "Collect Yellow color", "description": "Collects your highlighted sections that have been marked with Yellow.", "type": "boolean", "default": true } }, "ApplicationSettings.StudySkills.CollectBlueHighlight.$t": { "schema": { "title": "Collect Blue color", "description": "Collects your highlighted sections that have been marked with Blue.", "type": "boolean", "default": true } }, "ApplicationSettings.StudySkills.CollectGreenHighlight.$t": { "schema": { "title": "Collect Green color", "description": "Collects your highlighted sections that have been marked with Green.", "type": "boolean", "default": true } }, "ApplicationSettings.StudySkills.CollectPinkHighlight.$t": { "schema": { "title": "Collect Pink color", "description": "Collects your highlighted sections that have been marked with Pink.", "type": "boolean", "default": true } }, "ApplicationSettings.StudySkills.CollectOrder.$t": { "schema": { "title": "Highlights order", "description": "Changes the order in which highlights are displayed.", "enum": [ "Color", "Position", "Time" ], "enumLabels": [ "Color", "Position", "Time" ], "default": "Color" } }, "ApplicationSettings.StudySkills.ColorSeparator.$t": { "schema": { "title": "Colors separator", "description": "Element used for color separation.", "enum": [ "Paragraph", "None", "Page" ], "enumLabels": [ "Paragraph", "None", "Page" ], "default": "Paragraph" } }, "ApplicationSettings.StudySkills.HighlightSeparator.$t": { "schema": { "title": "Highlights separator", "description": "Element used for highlight separation.", "enum": [ "Line", "None", "Space", "Tab" ], "enumLabels": [ "Line", "None", "Space", "Tab" ], "default": "Line" } }, "ApplicationSettings.StudySkills.MultiDocHighlighting.$t": { "schema": { "title": "Collect from multiple documents", "description": "Makes the application collect your highlights from multiple documents.", "type": "boolean", "default": true } }, // Prediction "ApplicationSettings.Prediction.DisplayAlphabetic.$t": { "schema": { "title": "Alphabetic display", "description": "Display words alphabetically.", "type": "boolean", "default": false } }, "ApplicationSettings.Prediction.FollowCursor.$t": { "schema": { "title": "Follow the cursor while typing", "description": "Instructs the system to have the Prediction window follow where the cursor goes.", "type": "boolean", "default": false } }, "ApplicationSettings.Prediction.AutoHeightAdjust.$t": { "schema": { "title": "Auto height adjust", "description": "Instructs the system to have the Prediction window change size depending on the amount of words appearing.", "type": "boolean", "default": false } }, "ApplicationSettings.Prediction.winPredictOneWordAhead.$t": { "schema": { "title": "Predict one word ahead", "description": "Instructs the system to predict a word ahead.", "type": "boolean", "default": true } }, "ApplicationSettings.Prediction.InsertSpaceAfterPred.$t": { "schema": { "title": "Insert a space after predictions", "description": "Instructs the system to automatically insert a space after a word when it is inserted.", "type": "boolean", "default": true } }, "ApplicationSettings.Prediction.UseSpellingForPredictions.$t": { "schema": { "title": "Use spelling suggestions for the prediction list", "description": "Allows the system to suggest words even if you start to spell them wrong.", "type": "boolean", "default": true } }, // Prediction Speech "ApplicationSettings.Prediction.SpeakPredictionOnMouseHover.$t": { "schema": { "title": "Speak when hovering", "description": "Speaks when the mouse pointer hovers over a word", "type": "boolean", "default": true } }, // This two settings are excluyent, need to encode that // ===================================================== "ApplicationSettings.Prediction.SpeakOnWordClick.$t": { "schema": { "title": "Speak the word when clicked", "description": "Speaks the word clicked in the prediction list.", "type": "boolean", "default": false } }, "ApplicationSettings.Prediction.InsertOnWordClick.$t": { "schema": { "title": "Insert the word when clicked", "description": "Inserts the word clicked in the prediction list.", "type": "boolean", "default": true } }, // ===================================================== // Prediction Learning "ApplicationSettings.Prediction.SpellCheckBeforeLearn.$t": { "schema": { "title": "Spell check each word before learning", "description": "System always spell check each word before learning it. Turn off for making the system learn custom words.", "type": "boolean", "default": true } }, "ApplicationSettings.Prediction.AutoLearnAsType.$t": { "schema": { "title": "Automatically learn as I type", "description": "Prediction will learn anything typed by the user when using prediction.", "type": "boolean", "default": true } }, // Scanning "ApplicationSettings.Scanning.dpi.$t": { "schema": { "title": "Resolution", "description": "DPI resolution in which the scan is going to be performed.", "enum": [ 300, 600 ], "enumLabels": [ "300 DPI", "600 DPI" ], "default": 300 } }, "ApplicationSettings.Scanning.colormode.$t": { "schema": { "title": "Color mode", "description": "Specifies the color mode used to scan the image.", "enum": [ "Color", "GrayScale", "BlackAndWhite" ], "enumLabels": [ "Full color", "GrayScale", "Monochrome" ], "default": "Color" } }, "ApplicationSettings.Scanning.HideInterface.$t": { "schema": { "title": "Hide device settings", "description": "Make the scanning easier and faster. You can turn this off for getting device info.", "type": "boolean", "default": true } }, // Device Setup (Advanced settigns) "ApplicationSettings.Scanning.Countdown.$t": { "schema": { "title": "Use Countdown", "description": "Automatically scans using a countdown interval.", "type": "boolean", "default": true } }, "ApplicationSettings.Scanning.CountdownInterval.$t": { "schema": { "title": "Countdown seconds interval", "description": "Sets the number of seconds of the interval.", "type": "integer", "minimum": 0, "maximum": 99, "default": 6 } }, "ApplicationSettings.Scanning.ADF.$t": { "schema": { "title": "Automatic Document Feeder", "description": "Enable if you are using an Automatic Document Feeder.", "type": "boolean", "default": false } }, "ApplicationSettings.Scanning.Duplex.$t": { "schema": { "title": "Duplex", "description": "Enable you are using an 'double side scanner'.", "type": "boolean", "default": false } }, // Save Options "ApplicationSettings.Scanning.AutoSave.$t": { "schema": { "title": "Use save location", "description": "Use the supplied location to save the scanned documents.", "type": "boolean", "default": false } }, "ApplicationSettings.Scanning.DefaultFilePath.$t": { "schema": { "title": "File path", "description": "Default location for storing the scanned documents.", "type": "string", // Should be a way to capture the $HOME environmental variable "default": "%HOME%\\Documents" } }, "ApplicationSettings.Scanning.DefaultFileName.$t": { "schema": { "title": "File name", "description": "Default file name for the scanned document.", "type": "string", "default": "Scan" } }, // PDF Output "ApplicationSettings.Scanning.PdfTextOnly.$t": { "schema": { "title": "Text only PDF output", "description": "Scan to PDF to text only.", "type": "boolean", "default": false } }, "ApplicationSettings.Scanning.MSWordRetainFormat.$t": { "schema": { "title": "Plain text Word output", "description": "Scan to Word in plain text.", "type": "boolean", "default": false } }, "ApplicationSettings.Scanning.CoverFirstPage.$t": { "schema": { "title": "Title in ePub Output", "description": "Threat heading as book title for ePub output.", "type": "boolean", "default": true } }, // Output Types "ApplicationSettings.Scanning.EnableEpub.$t": { "schema": { "title": "Enable ePup", "description": "Enable ePub as output format.", "type": "boolean", "default": false } }, "ApplicationSettings.Scanning.EnableWeb.$t": { "schema": { "title": "Enable Web", "description": "Enable Web as output format.", "type": "boolean", "default": false } }, // Screen Masking "ApplicationSettings.ScreenMasking.ScreenMask.$t": { "schema": { "title": "Screen Masking mode", "description": "Specifies the mode in which 'Screen Masking' tool will operate.", "enum": [ "TintScreen", "UnderlineTypingLine", "TintTypingLine", "SystemBackground", "UnderlineCursor" ], "enumLabels": [ "TintScreen", "UnderlineTypingLine", "TintTypingLine", "SystemBackground", "UnderlineCursor" ], "default": "TintScreen" } }, // Screen Masking -> Tint whole screen subsettings "ApplicationSettings.ScreenMasking.TintScreenColour.$t": { "schema": { "title": "Whole screen color mask", "description": "Selects the color for tinting the screen.", "type": "string", "default": "#80FFFF" } }, "ApplicationSettings.ScreenMasking.TintScreenOpacity.$t": { "schema": { "title": "Whole screen mask opacity", "description": "Selects the opacity for the screen mask.", "type": "number", "minimum": 0, "maximum": 1, "default": 0.3 } }, "ApplicationSettings.ScreenMasking.ReadingLight.$t": { "schema": { "title": "Reading ruler", "description": "Enable/Disable reading ruler.", "type": "boolean", "default": false } }, "ApplicationSettings.ScreenMasking.ReadingLightColour.$t": { "schema": { "title": "Reading ruler color", "description": "Selects the color for the reading ruler.", "type": "string", "default": "#00FFFFFF" } }, "ApplicationSettings.ScreenMasking.ReadingLightOpacity.$t": { "schema": { "title": "Reading ruler opacity", "description": "Selects the opacity for the reading ruler.", "type": "number", "minimum": 0, "maximum": 1, "default": 0.3 } }, "ApplicationSettings.ScreenMasking.ReadingLightHeight.$t": { "schema": { "title": "Reading ruler height", "description": "Selects the height for the reading ruler.", "type": "integer", "minimum": 0, "maximum": 300, "default": 100 } }, // Screen Masking -> Underline typing line "ApplicationSettings.ScreenMasking.UnderlineTypingLineColour.$t": { "schema": { "title": "Underline typing line color", "description": "Selects the color for the underline typing line.", "type": "string", "default": "#80FFFF" } }, "ApplicationSettings.ScreenMasking.UnderlineTypingLineOpacity.$t": { "schema": { "title": "Underline typing line opacity", "description": "Selects the opacity for the underline typing line.", "type": "number", "minimum": 0, "maximum": 1, "default": 0.5 } }, "ApplicationSettings.ScreenMasking.UnderlineTypingLineHeight.$t": { "schema": { "title": "Underline typing line height", "description": "Selects the height for the underline typing line.", "type": "integer", "minimum": 0, "maximum": 100, "default": 5 } }, // Screen Masking -> Tint typing line "ApplicationSettings.ScreenMasking.TintTypingLineColour.$t": { "schema": { "title": "Typing line mask color", "description": "Selects the color for the typing line mask.", "type": "string", "default": "#80FFFF" } }, "ApplicationSettings.ScreenMasking.TintTypingLineOpacity.$t": { "schema": { "title": "Typing line mask opacity", "description": "Selects the opacity for the typing line mask.", "type": "number", "minimum": 0, "maximum": 1, "default": 0.3 } }, // Screen Masking -> Change page color "ApplicationSettings.ScreenMasking.SystemBackgroundColour.$t": { "schema": { "title": "Change page color", "description": "Changes the page color of text fields.", "type": "string", "default": "#80FFFF" } }, // Screen Masking -> Underline cursor "ApplicationSettings.ScreenMasking.UnderlineCursorColour.$t": { "schema": { "title": "Underline cursor color", "description": "Changes the color for the underline cursor.", "type": "string", "default": "#80FFFF" } }, "ApplicationSettings.ScreenMasking.UnderlineCursorOpacity.$t": { "schema": { "title": "Underline cursor line opacity", "description": "Selects the opacity for underline cursor line.", "type": "number", "minimum": 0, "maximum": 1, "default": 0.5 } }, "ApplicationSettings.ScreenMasking.UnderlineCursorHeight.$t": { "schema": { "title": "Underline cursor line height", "description": "Selects the height for underline cursor line.", "type": "integer", "minimum": 0, "maximum": 100, "default": 5 } }, // Screenshot Reader "ApplicationSettings.Screenshot.CaptureBy.$t": { "schema": { "title": "Capture operation", "description": "Specifies the type of operation that is needed for making a screenshot.", "enum": [ "Drawing Rectangle", "Drawing Freehand", "Hover" ], "enumLabels": [ "Drawing Rectangle", "Drawing Freehand", "Hover" ], "default": "Drawing Rectangle" } }, "ApplicationSettings.Screenshot.ScreenshotTo.$t": { "schema": { "title": "Capture target", "description": "Specifies the capture target of the screenshot operation.", "enum": [ "Window", "Microsoft Word", "Text Reader" ], "enumLabels": [ "Window", "Microsoft Word", "Text Reader" ], "default": "Window" } }, "ApplicationSettings.Screenshot.AppendToMsWordDoc.$t": { "schema": { "title": "Add to active Microsoft Word document", "description": "Automatically add the screenshot to the current active Microsoft Word document.", "type": "boolean", "default": true } }, // Speech "ApplicationSettings.Speech.CurrentVoice.$t": { "schema": { "title": "Voice", "description": "Selects the human voice for speaking.", "enum":[ "Mexican Spanish Paulina - Vocalizer", "US Ava - Vocalizer", "US Tom - Vocalizer", "Microsoft David Desktop - English (United States)", "Microsoft Zira Desktop - English (United States)" ], "enumLabels": [ "Mexican Spanish Paulina - Vocalizer", "US Ava - Vocalizer", "US Tom - Vocalizer", "Microsoft David Desktop - English (United States)", "Microsoft Zira Desktop - English (United States)" ], "default": "US Ava - Vocalizer" } }, "ApplicationSettings.Speech.VoiceSpeed.$t": { "schema": { "title": "Voice speed", "description": "Selects the speed of reading.", "type": "integer", "minimum": 0, "maximum": 100, "default": 50 } }, "ApplicationSettings.Speech.UseVoiceSpeedHotKey.$t": { "schema": { "title": "Use arrow keys to change speed", "description": "This will allow you to use the Up (\u2b06) and Down (\u2b07) keys on your keyboard to change the voice speed when it is reading.", "type": "boolean", "default": true } }, "ApplicationSettings.Speech.WordPause.$t": { "schema": { "title": "Word pause", "description": "Selects the word pause time while reading.", "type": "integer", "minimum": 0, "maximum": 1000, "default": 0, // TODO: Verify if it's the proper check "multipleOf": 100 } }, "ApplicationSettings.Speech.VoicePitch.$t": { "schema": { "title": "Voice pitch", "description": "Selects the pitch of the reading voice.", "type": "integer", "minimum": 0, "maximum": 100, "default": 50 } }, // Speech -> Auto Read "ApplicationSettings.Speech.SpeakAsIType.$t": { "schema": { "title": "Speak as I type", "description": "Enable speaking while the user is typing.", "type": "boolean", "default": true } }, // Speech -> Auto Read -> Speak as I type "ApplicationSettings.Speech.SpeakOnEachLetter.$t": { "schema": { "title": "Speak on each letter", "description": "System will speak each written letter.", "type": "boolean", "default": false } }, // Speech -> Auto Read -> Speak as I type "ApplicationSettings.Speech.SpeakOnEachWord.$t": { "schema": { "title": "Speak on each word", "description": "System will speak each written word.", "type": "boolean", "default": true } }, // Speech -> Auto Read -> Speak as I type "ApplicationSettings.Speech.SpeakOnEachSentence.$t": { "schema": { "title": "Speak on each sentence", "description": "System will speak each written sentence.", "type": "boolean", "default": true } }, // Speech -> Screen reading "ApplicationSettings.Speech.ScreenReadingEnabled.$t": { "schema": { "title": "Screen reading", "description": "Enables screen reading.", "type": "boolean", "default": true } }, // Speech -> Screen reading -> Items to read // TODO: Setting is stored in an array format in XML, we need to check how // XMLSettingsHandler handles this case. // "ApplicationSettings.Speech.ScreenReadingItems.$t": { // "schema": { // "title": "Items to read", // "description": "Selects the kind of items that shoud be readed.", // "type": "array", // "default": [ // "Buttons", // "Lists", // "Menus", // "Text", // "Other" // ] // } // }, // Speech -> Read by "ApplicationSettings.Speech.SelectionType.$t": { "schema": { "title": "Read by", "description": "Selects the reading unit.", "enum": [ 0, 1, 2 ], "enumLabels": [ "Words", "Sentences", "Paragraphs" ], "default": 1 } }, // Speech -> Continuous reading "ApplicationSettings.Speech.ContinuousReading.$t": { "schema": { "title": "Continuous reading", "description": "It instructs the system to keep reading until the end of the text.", "type": "boolean", "default": true } }, // Speech -> Read the web "ApplicationSettings.Speech.ReadTheWeb.$t": { "schema": { "title": "Read the web", "description": "Encourages the system to read webpages.", "type": "boolean", "default": true } }, // Speech -> Speech highlighting "ApplicationSettings.Speech.HighlightingMethod.$t": { "schema": { "title": "Read by", "description": "Selects the reading unit.", "enum": [ 0, 1, 2 ], "enumLabels": [ "Speak with highlighting in document", "Speak with highlighting in text reader", "Speak using one word display" ], "default": 0 } }, // Speech -> Speech highlighting -> Font "ApplicationSettings.Speech.TextReaderOneWordFontName.$t": { "schema": { "title": "One word display font", "description": "Selects the reading font for the 'one word display'", "enum": [ "Adobe Arabic", "Adobe Fan Heiti Std", "Adobe Gothic Std", "Adobe Hebrew", "Adobe Heiti Std", "Adobe Ming Std", "Adobe Myungjo Std", "Adobe Pi Std", "Adobe Song Std", "Adobe Thai", "Arial", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara", "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Courier Std", "Ebrima", "Franklin Gothic", "Gabriola", "Gadugi", "Georgia", "Global Monospace", "Global Sans Serif", "Global Serif", "Global User Interface", "HoloLens MDL2 Assets", "Impact", "Ink Free", "Javanese Text", "Kozuka Gothic Pr6N", "Kozuka Mincho Pr6N", "Leelawadee UI", "Lucida Console", "Lucida Sans Unicode", "Malgun Gothic", "Marlett", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft JhengHei UI", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "Microsoft YaHei", "Microsoft YaHei UI", "Microsoft Yi Baiti", "MingLiUHKSCS-ExtB", "MingLiU-ExtB", "Minion Pro", "Mongolian Baiti", "MS Gothic", "MS PGothic", "MS UI Gothic", "MV Boli", "Myanmar Text", "Myriad Pro", "Nirmala UI", "NSimSun", "Open Sans", "Palatino Linotype", "PMingLiu-ExtB", "Segoe MDL2 Assets", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Emoji", "Segoe UI Historic", "Segoe UI Symbol", "SimSun", "Simsun-ExtB", "Sitka Banner", "Sitka Display", "Sitka Heading", "Sitka Small", "Sitka Subheading", "Sitka Text", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic", "Yu Gothic UI" ], "enumLabels": [ "Adobe Arabic", "Adobe Fan Heiti Std", "Adobe Gothic Std", "Adobe Hebrew", "Adobe Heiti Std", "Adobe Ming Std", "Adobe Myungjo Std", "Adobe Pi Std", "Adobe Song Std", "Adobe Thai", "Arial", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara", "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Courier Std", "Ebrima", "Franklin Gothic", "Gabriola", "Gadugi", "Georgia", "Global Monospace", "Global Sans Serif", "Global Serif", "Global User Interface", "HoloLens MDL2 Assets", "Impact", "Ink Free", "Javanese Text", "Kozuka Gothic Pr6N", "Kozuka Mincho Pr6N", "Leelawadee UI", "Lucida Console", "Lucida Sans Unicode", "Malgun Gothic", "Marlett", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft JhengHei UI", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "Microsoft YaHei", "Microsoft YaHei UI", "Microsoft Yi Baiti", "MingLiUHKSCS-ExtB", "MingLiU-ExtB", "Minion Pro", "Mongolian Baiti", "MS Gothic", "MS PGothic", "MS UI Gothic", "MV Boli", "Myanmar Text", "Myriad Pro", "Nirmala UI", "NSimSun", "Open Sans", "Palatino Linotype", "PMingLiu-ExtB", "Segoe MDL2 Assets", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Emoji", "Segoe UI Historic", "Segoe UI Symbol", "SimSun", "Simsun-ExtB", "Sitka Banner", "Sitka Display", "Sitka Heading", "Sitka Small", "Sitka Subheading", "Sitka Text", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic", "Yu Gothic UI" ], "default": "Comic Sans MS" } }, "ApplicationSettings.Speech.optSpeechHighTRFontName.$t": { "schema": { "title": "Text reader display font", "description": "Selects the font for the 'text reader tool'.", "enum": [ "Adobe Arabic", "Adobe Fan Heiti Std", "Adobe Gothic Std", "Adobe Hebrew", "Adobe Heiti Std", "Adobe Ming Std", "Adobe Myungjo Std", "Adobe Pi Std", "Adobe Song Std", "Adobe Thai", "Arial", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara", "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Courier Std", "Ebrima", "Franklin Gothic", "Gabriola", "Gadugi", "Georgia", "Global Monospace", "Global Sans Serif", "Global Serif", "Global User Interface", "HoloLens MDL2 Assets", "Impact", "Ink Free", "Javanese Text", "Kozuka Gothic Pr6N", "Kozuka Mincho Pr6N", "Leelawadee UI", "Lucida Console", "Lucida Sans Unicode", "Malgun Gothic", "Marlett", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft JhengHei UI", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "Microsoft YaHei", "Microsoft YaHei UI", "Microsoft Yi Baiti", "MingLiUHKSCS-ExtB", "MingLiU-ExtB", "Minion Pro", "Mongolian Baiti", "MS Gothic", "MS PGothic", "MS UI Gothic", "MV Boli", "Myanmar Text", "Myriad Pro", "Nirmala UI", "NSimSun", "Open Sans", "Palatino Linotype", "PMingLiu-ExtB", "Segoe MDL2 Assets", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Emoji", "Segoe UI Historic", "Segoe UI Symbol", "SimSun", "Simsun-ExtB", "Sitka Banner", "Sitka Display", "Sitka Heading", "Sitka Small", "Sitka Subheading", "Sitka Text", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic", "Yu Gothic UI" ], "enumLabels": [ "Adobe Arabic", "Adobe Fan Heiti Std", "Adobe Gothic Std", "Adobe Hebrew", "Adobe Heiti Std", "Adobe Ming Std", "Adobe Myungjo Std", "Adobe Pi Std", "Adobe Song Std", "Adobe Thai", "Arial", "Bahnschrift", "Calibri", "Cambria", "Cambria Math", "Candara", "Comic Sans MS", "Consolas", "Constantia", "Corbel", "Courier New", "Courier Std", "Ebrima", "Franklin Gothic", "Gabriola", "Gadugi", "Georgia", "Global Monospace", "Global Sans Serif", "Global Serif", "Global User Interface", "HoloLens MDL2 Assets", "Impact", "Ink Free", "Javanese Text", "Kozuka Gothic Pr6N", "Kozuka Mincho Pr6N", "Leelawadee UI", "Lucida Console", "Lucida Sans Unicode", "Malgun Gothic", "Marlett", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft JhengHei UI", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "Microsoft YaHei", "Microsoft YaHei UI", "Microsoft Yi Baiti", "MingLiUHKSCS-ExtB", "MingLiU-ExtB", "Minion Pro", "Mongolian Baiti", "MS Gothic", "MS PGothic", "MS UI Gothic", "MV Boli", "Myanmar Text", "Myriad Pro", "Nirmala UI", "NSimSun", "Open Sans", "Palatino Linotype", "PMingLiu-ExtB", "Segoe MDL2 Assets", "Segoe Print", "Segoe Script", "Segoe UI", "Segoe UI Emoji", "Segoe UI Historic", "Segoe UI Symbol", "SimSun", "Simsun-ExtB", "Sitka Banner", "Sitka Display", "Sitka Heading", "Sitka Small", "Sitka Subheading", "Sitka Text", "Sylfaen", "Symbol", "Tahoma", "Times New Roman", "Trebuchet MS", "Verdana", "Webdings", "Wingdings", "Yu Gothic", "Yu Gothic UI" ], "default": "Comic Sans MS" } }, // Speech -> Speech highlighting -> Font size "ApplicationSettings.Speech.TextReaderOneWordFontSize.$t": { "schema": { "title": "One word display font size", "description": "Selects the font size for the 'one word display'.", "type": "integer", "minimum": 10, "maximum": 50, "default": 14 } }, "ApplicationSettings.Speech.optSpeechHighTRFontSize.$t": { "schema": { "title": "Text reader font size", "description": "Selects the font size for the 'text reader tool'.", "type": "integer", "minimum": 10, "maximum": 50, "default": 14 } }, // Speech -> Speech highlighting -> Highlighting colors "ApplicationSettings.Speech.HighlightingBackColour.$t": { "schema": { "title": "Highlighted background color", "description": "Selects the color used as background for highlighting.", "enum": [ "Blue", "Turquoise", "Chartreuse", // Bright green "Violet", "Red", "Yellow", "White", "DarkBlue", "Teal", "DarkGreen", "Purple", "DarkRed", "Olive", "LightGray", "Gray" ], "enumLabels": [ "Blue", "Turquoise", "Brigh green", "Violet", "Red", "Yellow", "White", "Dark Blue", "Teal", "Dark Green", "Purple", "Dark Red", "Olive green", "Dimmed Text", "Gray" ], "default": "Yellow" } }, "ApplicationSettings.Speech.HighlightingForeColour.$t": { "schema": { "title": "Highlighted foreground color", "description": "Selects the color used as foreground for highlighting.", "enum": [ "Yellow", "Red", "Violet", "Chartreuse", "Turquoise", "Blue", "Black", "LightYellow", "Orange", "LightGreen", "SkyBlue", "White", // This color is only used in case of the following setting value: // "ApplicationSettings.Speech.HighlightingMethod.$t": "Speak with highlighting in text reader" "RoyalBlue" ], "enumLabels": [ "Yellow", "Red", "Violet", "Bright green", "Turquoise", "Blue", "Black", "Pale yellow", "Orange", "Light Green", "Sky blue", "White", // This color is only used in case of the following setting value: // "ApplicationSettings.Speech.HighlightingMethod.$t": "Speak with highlighting in text reader" "Royal blue" ], "default": "Yellow" } }, // Translation "ApplicationSettings.Translation.FromLanguage.$t": { "schema": { "title": "Translate from", "description": "Selects the language from which translate text.", "enum":[ "en", "af", "sq", "ar", "be", "bn", "bg", "ca", "zh", "hr", "cs", "da", "nl", "et", "tl", "fi", "fr", "gl", "de", "el", "gu", "ht", "he", "hi", "hu", "is", "id", "ga", "it", "ja", "kn", "ko", "lv", "lt", "mk", "ms", "mt", "no", "fa", "pl", "pt", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv", "ta", "te", "th", "tr", "uk", "ur", "vi", "cy", "yi" ], "enumLabels": [ "English", "Afrikaans", "Albanian", "Arabic", "Belarusian", "Bengali", "Bulgarian", "Catalan", "Chinese", "Croatian", "Czech", "Danish", "Dutch", "Estonian", "Filipino", "Finnish", "French", "Galician", "German", "Greek", "Gujarati", "Haitian Creole", "Hebrew", "Hindi", "Hungarian", "Icelandic", "Indonesian", "Irish", "Italian", "Japanese", "Kannada", "Korean", "Latvian", "Lithuanian", "Macedonian", "Malay", "Maltese", "Norwegian", "Persian", "Polish", "Portuguese", "Romanian", "Russian", "Serbian", "Slovak", "Slovenian", "Spanish", "Swahili", "Swedish", "Tamil", "Telugu", "Thai", "Turkish", "Ukrainian", "Urdu", "Vietnamese", "Welsh", "Yiddish" ], "default": "en" } }, "ApplicationSettings.Translation.ToLanguage.$t": { "schema": { "title": "Translate to", "description": "Selects the target language in which text should be translated.", "enum":[ "en", "af", "sq", "ar", "be", "bn", "bg", "ca", "zh", "hr", "cs", "da", "nl", "et", "tl", "fi", "fr", "gl", "de", "el", "gu", "ht", "he", "hi", "hu", "is", "id", "ga", "it", "ja", "kn", "ko", "lv", "lt", "mk", "ms", "mt", "no", "fa", "pl", "pt", "ro", "ru", "sr", "sk", "sl", "es", "sw", "sv", "ta", "te", "th", "tr", "uk", "ur", "vi", "cy", "yi" ], "enumLabels": [ "English", "Afrikaans", "Albanian", "Arabic", "Belarusian", "Bengali", "Bulgarian", "Catalan", "Chinese", "Croatian", "Czech", "Danish", "Dutch", "Estonian", "Filipino", "Finnish", "French", "Galician", "German", "Greek", "Gujarati", "Haitian Creole", "Hebrew", "Hindi", "Hungarian", "Icelandic", "Indonesian", "Irish", "Italian", "Japanese", "Kannada", "Korean", "Latvian", "Lithuanian", "Macedonian", "Malay", "Maltese", "Norwegian", "Persian", "Polish", "Portuguese", "Romanian", "Russian", "Serbian", "Slovak", "Slovenian", "Spanish", "Swahili", "Swedish", "Tamil", "Telugu", "Thai", "Turkish", "Ukrainian", "Urdu", "Vietnamese", "Welsh", "Yiddish" ], "default": "es" } }, // Vocabulary List // TODO: Verify with Microsoft word installation "ApplicationSettings.Vocabulary.VocabListWindow.$t": { "schema": { "title": "Show Vocabulary list window", "description": "Displays the vocabulary list window. This lets you edit the current vocabulary list before creating a doc with it.", "type": "boolean", "default": false } }, "ApplicationSettings.Vocabulary.VocabListImages.$t": { "schema": { "title": "Include pictures", "description": "Include pictures of the words present in the vocabulary list.", "type": "boolean", "default": true } }, "ApplicationSettings.Vocabulary.VocabListDefinitions.$t": { "schema": { "title": "Include definitions", "description": "Include definitions of the words present the vocabulary list.", "type": "boolean", "default": true } }, // Voice Note "ApplicationSettings.VoiceNote.InsertInDoc.$t": { "schema": { "title": "Insert voice note directly on document", "description": "Allows you to insert a voice note directly in the current working document if supported.", "type": "boolean", "default": false } } } } }, "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{environment}.SystemDrive}\\Program Files (x86)\\Texthelp\\Read And Write 12\\ReadAndWrite.exe\"" } ], "setFalse": [ { "type": "gpii.windows.closeProcessByName", "filename": "ReadAndWrite.exe", "options": { "closeWindow": true } } ], "getState": [ { "type": "gpii.processReporter.find", "command": "ReadAndWrite.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_CURRENT_USER", "path": "Software\\Texthelp\\Voices", "subPath": "DefaultTokenId", "dataType": "REG_SZ" } ] }, "net.gpii.test.speechControl": { // This solution does not exist in real life and has been added strictly for user testing/demoing of a solution // which requires the OS to be restarted in order to respond to changed settings (e.g. DPI on Windows 7) "name": "GPII Test solution for speech control of the computer", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.settingsHandlers.noSettings", "liveness": "OSRestart", "capabilitiesTransformations": { "sc": "http://registry\\.gpii\\.net/common/speechControl" }, "supportedSettings": { "sc": { "schema": { "title": "Speech Control", "description": "Whether to enable/disable voice commands for computer.", "type": "boolean", "default": false } } } } }, "configure": [], "restore": [], "start": [], "stop": [], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ], "isRunning": [] }, "net.gpii.explode": { // This solution exists only to support manual and automated testing of GPII's error support. It references the // "exploding settings handler" which will trigger a failure using a configurable strategy during either the // get, set or launch settingsHandler action "name": "GPII Test solution for triggering settingsHandler errors", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure": { "type": "gpii.settingsHandlers.exploding", "liveness": "live", "supportedSettings": { "explodeMethod": { "schema": { "title": "Explode Method", "description": "The strategy to be used when exploding", "enum": [ "reject", "fail", "throw" ], "enumLabels": [ "reject", "fail", "throw" ] } }, "explodeOn": { "schema": { "title": "Explode On", "description": "Whether to explode during the get or set settingsHandler method", "enum": [ "get", "set", "launch", "stop" ], "enumLabels": [ "get", "set", "launch", "stop" ] } } } } }, "launchHandlers": { "launch": { "type": "gpii.settingsHandlers.exploding", "options": { "launchHandler": true, // We tunnel this through since we blundered in the initial design of settings handlers in not contextualising them. // This is preferable to the other approaches of i) Rewriting the matchmaker/lifecycle manager so that it routes other // settings to launch handlers, or ii) Rewriting the settingshandler contract so that it supports arbitrary interception // Real solutions should never read directly from the session in this way "preferences": "${{session}.preferences}" } } }, "isRunning": [ "launchers.launch" ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "net.gpii.uioPlus": { "name": "UIO+", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configuration": { "type": "gpii.settingsHandlers.webSockets", "liveness": "live", "options": { "path": "net.gpii.uioPlus" }, "supportedSettings": { "captionsEnabled": { "schema": { "title": "Captions", "description": "Request videos to display captions.", "type": "boolean", "default": false } }, "characterSpace": { "schema": { "title": "Character Space", "description": "Adjust the space between characters.", "type": "number", "default": 0, "minimum": -0.1, "maximum": 1, "multipleOf": 0.1 } }, "contrastTheme": { "schema": { "title": "Contrast Theme", "description": "Change text and background colors.", "default": "default", "enum": [ "default", "bw", "wb", "by", "yb", "lgdg", "gw", "bbr" ], "enumLabels": [ "Default Theme", "Black Foreground on a White Background", "White Foreground on a Black Background", "Black Foreground on a Yellow Background", "Yellow Foreground on a Black Background", "Light Gray Foreground on a Dark Gray Background", "Gray Foreground on a White Background", "Black Foreground on a Brown Background" ] } }, "fontSize": { "schema": { "title": "Font Size", "description": "Adjust text size.", "type": "integer", "default": 12, "minimum": 3, "maximum": 60 } }, "inputsLargerEnabled": { "schema": { "title": "Enhance Inputs", "description": "Emphasize links, buttons, menus, textfields, and other inputs.", "type": "boolean", "default": false } }, "lineSpace": { "schema": { "title": "Line Space", "description": "Adjusts the spacing between lines of text.", "type": "number", "default": 1, "minimum": 0.7, "maximum": 3, "multipleOf": 0.1 } }, "selectionTheme": { "schema": { "title": "Selection Theme", "description": "Change the highlight colour for text selections.", "default": "default", "enum": [ "default", "yellow", "green", "pink" ], "enumLabels": [ "Default Selection Highlight", "Yellow Selection Highlight", "Green Selection Highlight", "Pink Selection Highlight" ] } }, "selfVoicingEnabled": { "schema": { "title": "Self Voicing", "description": "Let the device read site content aloud.", "type": "boolean", "default": false } }, "simplifiedUiEnabled": { "schema": { "title": "Simplified UI", "description": "Only display the main content.", "type": "boolean", "default": false } }, "syllabificationEnabled": { "schema": { "title": "Syllabification", "description": "Display words broken down into their syllables.", "type": "boolean", "default": false } }, "tableOfContentsEnabled": { "schema": { "title": "Table of Contents", "description": "Create a table of contents.", "type": "boolean", "default": false } }, "wordSpace": { "schema": { "title": "Word Spacing", "description": "The spacing between words.", "type": "number", "default": 0, "minimum": -0.3, "maximum": 3, "multipleOf": 0.1 } } }, "capabilitiesTransformations": { "captionsEnabled": "http://registry\\.gpii\\.net/common/captions/enabled", "characterSpace": { "transform": { "type": "fluid.transforms.round", "scale": 1, "input": { "transform": { "type": "fluid.transforms.linearScale", "offset": 1, "inputPath": "http://registry\\.gpii\\.net/common/characterSpace" } } } }, "contrastTheme": { "transform": { // Use the same condition for applying a high contrast theme to windows: // (highContrast.enabled || highContrastTheme) && (highContrastTheme != "regular-contrast") "type": "fluid.transforms.condition", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "left": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/highContrast/enabled", "left": false, "operator": "||", "rightPath": "http://registry\\.gpii\\.net/common/highContrastTheme", "right": false } }, "operator": "&&", "right": { "transform": { "type": "fluid.transforms.binaryOp", "left": "", "leftPath": "http://registry\\.gpii\\.net/common/highContrastTheme", "operator": "!==", "right": "regular-contrast" } } } }, "true": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/highContrastTheme", "defaultOutputValue": "default", "match": { "black-white": "bw", "white-black": "wb", "black-yellow": "by", "yellow-black": "yb", "grey-black": "lgdg", "grey-white": "gw", "black-brown": "bbr" } } }, "false": "default" } }, "fontSize": { "transform": { "type": "fluid.transforms.round", "scale": 1, "input": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/fontSize", "right": 12, "operator": "/" } } } }, "inputsLargerEnabled": "http://registry\\.gpii\\.net/common/inputsLarger/enabled", "lineSpace": "http://registry\\.gpii\\.net/common/lineSpace", "selectionTheme": "http://registry\\.gpii\\.net/common/highlightColor", "selfVoicingEnabled": "http://registry\\.gpii\\.net/common/selfVoicing/enabled", "simplifiedUiEnabled": "http://registry\\.gpii\\.net/common/simplifiedUi/enabled", "syllabificationEnabled": "http://registry\\.gpii\\.net/common/syllabification/enabled", "tableOfContentsEnabled": "http://registry\\.gpii\\.net/common/tableOfContents", "wordSpace": { "transform": { "type": "fluid.transforms.round", "scale": 1, "input": { "transform": { "type": "fluid.transforms.linearScale", "offset": 1, "inputPath": "http://registry\\.gpii\\.net/common/wordSpace" } } } } }, "inverseCapabilitiesTransformations": {} } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "org.nvda-project": { "name": "NVDA Screen Reader", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configs": { "type": "gpii.settingsHandlers.INISettingsHandler", "liveness": "manualRestart", "options": { "filename": "${{environment}.APPDATA}\\nvda\\nvda.ini" }, "supportedSettings": { "audio.audioDuckingMode": { "schema": { "title": "Audio Ducking Mode", "description": "Whether NVDA should lower the volume of other applications while NVDA is speaking or all the time while NVDA is running.", "enum": [ 0, 1, 2 ], "enumLabels": [ "No Ducking", "Duck when Outputting Speech and Sounds", "Always Duck" ], "default": 0 } }, "braille.autoTether": { "schema": { "title": "Tether Braille", "description": "Whether the braille display will follow the system focus or whether it follows the navigator object / review cursor.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "braille.cursorBlink": { "schema": { "title": "Blink Cursor", "description": "Whether the cursor should blink", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "braille.cursorBlinkRate": { "schema": { "title": "Cursor Blink Rate", "description": "The blink rate of the cursor in milliseconds.", "type": "integer", "minimum": 200, "maximum": 2000, "default": 500 } }, "braille.cursorShapeFocus": { "schema": { "title": "Cursor Shape for Focus", "description": "The shape (dot pattern) of the braille cursor. The selection indicator is not affected by this option.", "enum": [ 192, 128, 255 ], "enumLabels": [ "Dots 7 and 8", "Dot 8", "All Dots" ], "default": 192 } }, "braille.cursorShapeReview": { "schema": { "title": "Cursor Shape for Review", "description": "The shape (dot pattern) of the braille cursor. The selection indicator is not affected by this option.", "enum": [ 192, 128, 255 ], "enumLabels": [ "Dots 7 and 8", "Dot 8", "All Dots" ], "default": 128 } }, "braille.display": { "schema": { "title": "Braille Display", "description": "Which of the available braillle displays to use.", "enum": [ "auto", "brltty", "ecoBraille", "hedoMobilLine", "hedoProfiLine", "lilli", "papenmeier", "papenmeier_serial", "seika", "noBraille" ], "enumLabels": [ "Automatic", "brltty", "EcoBraille displays", "hedo MobilLine USB", "hedo ProfiLine USB", "MDV Lilli", "Papenmeier BRAILLEX newer models", "Papenmeier BRAILLEX older models", "Seika braille displays", "No braille" ], "default": "noBraille" } }, "braille.expandAtCursor": { "schema": { "title": "Expand Contracted Braille", "description": "Whether to expand the word that is under the cursor into non-contracted computer braille.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "braille.focusContextPresentation": { "schema": { "title": "Focus Context Presentation", "description": "Choose what context information NVDA will show on the braille display when an object gets focus.", "enum": [ "changedContext", "fill", "scroll" ], "enumLabels": [ "Fill Display for Context Changes", "Always Fill Display", "Only when Scrolling Back" ], "default": "changedContext" } }, "braille.inputTable": { "schema": { "title": "Input Table", "description": "Complementary to the output table option. The chosen table will be used to translate braille entered on your braille display's Perkins-style keyboard into text. NVDA currently only supports computer braille input so only 8 dot computer braille tables will be shown. You can move from braille table to braille table in the list by using the arrow keys. Note that this option is only useful if your braille display has a Perkins-style keyboard and this feature is supported by the braille display driver. If input is not supported on a display which does have a braille keyboard this will be noted in the Supported Braille Displays section.", // TODO: If we need to support braille devices, we'll have to reconcile this with our larger support for languages. "enum": [ "ar-ar-g1.utb", "as-in-g1.utb", "be-in-g1.utb", "bg.ctb", "ckb-g1.ctb", "cy-cy-g1.utb", "cy-cy-g2.ctb", "cs-comp8.utb", "cs-g1.ctb", "da-dk-g08.ctb", "da-dk-g16.ctb", "da-dk-g18.ctb", "da-dk-g26.ctb", "da-dk-g28.ctb", "de-de-comp8.ctb", "de-de-g0.utb", "de-de-g1.ctb", "de-de-g2.ctb", "el.ctb", "en-gb-comp8.ctb", "en-gb-g1.utb", "en-GB-g2.ctb", "en-ueb-g1.ctb", "en-ueb-g2.ctb", "en-us-comp6.ctb", "en-us-comp8-ext.utb", "en-us-g1.ctb", "en-us-g2.ctb", "eo-g1.ctb", "Es-Es-G0.utb", "es-g1.ctb", "et-g0.utb", "ethio-g1.ctb", "fa-ir-comp8.ctb", "fa-ir-g1.utb", "fi.utb", "fi-fi-8dot.ctb", "fr-bfu-comp6.utb", "fr-bfu-comp8.utb", "fr-bfu-g2.ctb", "ga-g1.utb", "ga-g2.ctb", "gu-in-g1.utb", "gr-bb.ctb", "he.ctb", "hi-in-g1.utb", "hr-comp8.utb", "hr-g1.ctb", "hu-hu-comp8.ctb", "hu-hu-g1.ctb", "hu-hu-g2.ctb", "is.ctb", "it-it-comp6.utb", "it-it-comp8.utb", "ka-in-g1.utb", "ko-2006-g1.ctb", "ko-2006-g2.ctb", "ko-g1.ctb", "ko-g2.ctb", "ks-in-g1.utb", "lt.ctb", "lt-6dot.utb", "Lv-Lv-g1.utb", "ml-in-g1.utb", "mn-in-g1.utb", "mn-MN-g1.utb", "mn-MN-g2.ctb", "mr-in-g1.utb", "nl-BE-g0.utb", "nl-NL-g0.utb", "no-no-comp8.ctb", "No-No-g0.utb", "No-No-g1.ctb", "No-No-g2.ctb", "No-No-g3.ctb", "np-in-g1.utb", "or-in-g1.utb", "pl-pl-comp8.ctb", "Pl-Pl-g1.utb", "pt-pt-comp8.ctb", "Pt-Pt-g1.utb", "Pt-Pt-g2.ctb", "pu-in-g1.utb", "ro.ctb", "ru.ctb", "ru-ru-g1.utb", "sa-in-g1.utb", "Se-Se.ctb", "Se-Se-g1.utb", "sk-g1.ctb", "sl-si-comp8.ctb", "sl-si-g1.utb", "sr-g1.ctb", "ta-ta-g1.ctb", "te-in-g1.utb", "tr.ctb", "uk.utb", "unicode-braille.utb", "vi-g1.ctb", "zhcn-g1.ctb", "zhcn-g2.ctb", "zh-hk.ctb", "zh-tw.ctb" ], "enumLabels": [ "Arabic grade 1", "Assamese grade 1", "Bengali grade 1", "Bulgarian 8 dot computer braille", "Central Kurdish grade 1", "Welsh grade 1", "Welsh grade 2", "Czech 8 dot computer braille", "Czech grade 1", "Danish 8 dot computer braille", "Danish 6 dot grade 1", "Danish 8 dot grade 1", "Danish 6 dot grade 2", "Danish 8 dot grade 2", "German 8 dot computer braille", "German grade 0", "German grade 1", "German grade 2", "Greek (Greece)", "English (U.K.) 8 dot computer braille", "English (U.K.) grade 1", "English (U.K.) grade 2", "Unified English Braille Code grade 1", "Unified English Braille Code grade 2", "English (U.S.) 6 dot computer braille", "English (U.S.) 8 dot computer braille", "English (U.S.) grade 1", "English (U.S.) grade 2", "Esperanto grade 1", "Spanish 8 dot computer braille", "Spanish grade 1", "Estonian grade 0", "Ethiopic grade 1", "Persian 8 dot computer braille", "Persian grade 1", "Finnish 6 dot", "Finnish 8 dot computer braille", "French (unified) 6 dot computer braille", "French (unified) 8 dot computer braille", "French (unified) grade 2", "Irish grade 1", "Irish grade 2", "Gujarati grade 1", "Koine Greek", "Hebrew 8 dot computer braille", "Hindi grade 1", "Croatian 8 dot computer braille", "Croatian grade 1", "Hungarian 8 dot computer braille", "Hungarian grade 1", "Hungarian grade 2", "Icelandic 8 dot computer braille", "Italian 6 dot computer braille", "Italian 8 dot computer braille", "Kannada grade 1", "Korean grade 1 (2006)", "Korean grade 2 (2006)", "Korean grade 1", "Korean grade 2", "Kashmiri grade 1", "Lithuanian 8 dot", "Lithuanian 6 dot", "Latvian grade 1", "Malayalam grade 1", "Manipuri grade 1", "Mongolian grade 1", "Mongolian grade 2", "Marathi grade 1", "Dutch (Belgium)", "Dutch (Netherlands)", "Norwegian 8 dot computer braille", "Norwegian grade 0", "Norwegian grade 1", "Norwegian grade 2", "Norwegian grade 3", "Nepali grade 1", "Oriya grade 1", "Polish 8 dot computer braille", "Polish grade 1", "Portuguese 8 dot computer braille", "Portuguese grade 1", "Portuguese grade 2", "Punjabi grade 1", "Romanian", "Russian braille for computer code", "Russian grade 1", "Sanskrit grade 1", "Swedish 8 dot computer braille", "Swedish grade 1", "Slovak grade 1", "Slovenian 8 dot computer braille", "Slovenian grade 1", "Serbian grade 1", "Tamil grade 1", "Telugu grade 1", "Turkish grade 1", "Ukrainian", "Unicode braille", "Vietnamese grade 1", "Chinese (China Mandarin) grade 1", "Chinese (China Mandarin) grade 2", "Chinese (Hong Kong Cantonese)", "Chinese (Taiwan Mandarin)" ], "default": "en-ueb-g1.ctb" } }, "braille.messageTimeout": { "schema": { "title": "Message timeout (sec)", "description": "How long in seconds NVDA messages are displayed on the braille display. Specifying 0 disables displaying of these messages completely.", "type": "integer", "minimum": 0, "maximum": 20, "default": 4 } }, "braille.noMessageTimeout": { "schema": { "title": "Show Messages Indefinitely", "description": "Allow NVDA messages to be displayed on the braille display indefinitely.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "braille.readByParagraph": { "schema": { "title": "Display Braille by Paragraph", "description": "Whether to displayed braille by paragraphs instead of lines. If this is set the next and previous line commands will move by paragraph accordingly. This means that you do not have to scroll the display at the end of each line even where more text would fit on the display. This may allow for more fluent reading of large amounts of text. It is disabled by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "braille.showCursor": { "schema": { "title": "Show Braille Cursor", "description": "Whether to display the cursor on a braille display. It applies to the system caret and review cursor but not to the selection indicator.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "braille.tetherTo": { "schema": { "title": "Tether Braille", "description": "Whether the braille display will follow the system focus or whether it follows the navigator object / review cursor.", "enum": [ "focus", "review", "autoTether" ], "enumLabels": [ "Focus", "Review", "Auto Tether" ], "default": "focus" } }, // TODO: If we want to support braille devices, we'll have to reconcile this with our larger support for languages. "braille.translationTable": { "schema": { "title": "Output Table", "description": "The braille output table to use in translating text into braille to be presented on your braille display.", "enum": [ "ar-ar-g1.utb", "as-in-g1.utb", "be-in-g1.utb", "bg.ctb", "ckb-g1.ctb", "cy-cy-g1.utb", "cy-cy-g2.ctb", "cs-comp8.utb", "cs-g1.ctb", "da-dk-g08.ctb", "da-dk-g16.ctb", "da-dk-g18.ctb", "da-dk-g26.ctb", "da-dk-g28.ctb", "de-de-comp8.ctb", "de-de-g0.utb", "de-de-g1.ctb", "de-de-g2.ctb", "el.ctb", "en-gb-comp8.ctb", "en-gb-g1.utb", "en-GB-g2.ctb", "en-ueb-g1.ctb", "en-ueb-g2.ctb", "en-us-comp6.ctb", "en-us-comp8-ext.utb", "en-us-g1.ctb", "en-us-g2.ctb", "eo-g1.ctb", "Es-Es-G0.utb", "es-g1.ctb", "et-g0.utb", "ethio-g1.ctb", "fa-ir-comp8.ctb", "fa-ir-g1.utb", "fi.utb", "fi-fi-8dot.ctb", "fr-bfu-comp6.utb", "fr-bfu-comp8.utb", "fr-bfu-g2.ctb", "ga-g1.utb", "ga-g2.ctb", "gu-in-g1.utb", "gr-bb.ctb", "he.ctb", "hi-in-g1.utb", "hr-comp8.utb", "hr-g1.ctb", "hu-hu-comp8.ctb", "hu-hu-g1.ctb", "hu-hu-g2.ctb", "is.ctb", "it-it-comp6.utb", "it-it-comp8.utb", "ka-in-g1.utb", "ko-2006-g1.ctb", "ko-2006-g2.ctb", "ko-g1.ctb", "ko-g2.ctb", "ks-in-g1.utb", "lt.ctb", "lt-6dot.utb", "Lv-Lv-g1.utb", "ml-in-g1.utb", "mn-in-g1.utb", "mn-MN-g1.utb", "mn-MN-g2.ctb", "mr-in-g1.utb", "nl-BE-g0.utb", "nl-NL-g0.utb", "no-no-comp8.ctb", "No-No-g0.utb", "No-No-g1.ctb", "No-No-g2.ctb", "No-No-g3.ctb", "np-in-g1.utb", "or-in-g1.utb", "pl-pl-comp8.ctb", "Pl-Pl-g1.utb", "pt-pt-comp8.ctb", "Pt-Pt-g1.utb", "Pt-Pt-g2.ctb", "pu-in-g1.utb", "ro.ctb", "ru.ctb", "ru-ru-g1.utb", "sa-in-g1.utb", "Se-Se.ctb", "Se-Se-g1.utb", "sk-g1.ctb", "sl-si-comp8.ctb", "sl-si-g1.utb", "sr-g1.ctb", "ta-ta-g1.ctb", "te-in-g1.utb", "tr.ctb", "uk.utb", "unicode-braille.utb", "vi-g1.ctb", "zhcn-g1.ctb", "zhcn-g2.ctb", "zh-hk.ctb", "zh-tw.ctb" ], "enumLabels": [ "Arabic grade 1", "Assamese grade 1", "Bengali grade 1", "Bulgarian 8 dot computer braille", "Central Kurdish grade 1", "Welsh grade 1", "Welsh grade 2", "Czech 8 dot computer braille", "Czech grade 1", "Danish 8 dot computer braille", "Danish 6 dot grade 1", "Danish 8 dot grade 1", "Danish 6 dot grade 2", "Danish 8 dot grade 2", "German 8 dot computer braille", "German grade 0", "German grade 1", "German grade 2", "Greek (Greece)", "English (U.K.) 8 dot computer braille", "English (U.K.) grade 1", "English (U.K.) grade 2", "Unified English Braille Code grade 1", "Unified English Braille Code grade 2", "English (U.S.) 6 dot computer braille", "English (U.S.) 8 dot computer braille", "English (U.S.) grade 1", "English (U.S.) grade 2", "Esperanto grade 1", "Spanish 8 dot computer braille", "Spanish grade 1", "Estonian grade 0", "Ethiopic grade 1", "Persian 8 dot computer braille", "Persian grade 1", "Finnish 6 dot", "Finnish 8 dot computer braille", "French (unified) 6 dot computer braille", "French (unified) 8 dot computer braille", "French (unified) grade 2", "Irish grade 1", "Irish grade 2", "Gujarati grade 1", "Koine Greek", "Hebrew 8 dot computer braille", "Hindi grade 1", "Croatian 8 dot computer braille", "Croatian grade 1", "Hungarian 8 dot computer braille", "Hungarian grade 1", "Hungarian grade 2", "Icelandic 8 dot computer braille", "Italian 6 dot computer braille", "Italian 8 dot computer braille", "Kannada grade 1", "Korean grade 1 (2006)", "Korean grade 2 (2006)", "Korean grade 1", "Korean grade 2", "Kashmiri grade 1", "Lithuanian 8 dot", "Lithuanian 6 dot", "Latvian grade 1", "Malayalam grade 1", "Manipuri grade 1", "Mongolian grade 1", "Mongolian grade 2", "Marathi grade 1", "Dutch (Belgium)", "Dutch (Netherlands)", "Norwegian 8 dot computer braille", "Norwegian grade 0", "Norwegian grade 1", "Norwegian grade 2", "Norwegian grade 3", "Nepali grade 1", "Oriya grade 1", "Polish 8 dot computer braille", "Polish grade 1", "Portuguese 8 dot computer braille", "Portuguese grade 1", "Portuguese grade 2", "Punjabi grade 1", "Romanian", "Russian braille for computer code", "Russian grade 1", "Sanskrit grade 1", "Swedish 8 dot computer braille", "Swedish grade 1", "Slovak grade 1", "Slovenian 8 dot computer braille", "Slovenian grade 1", "Serbian grade 1", "Tamil grade 1", "Telugu grade 1", "Turkish grade 1", "Ukrainian", "Unicode braille", "Vietnamese grade 1", "Chinese (China Mandarin) grade 1", "Chinese (China Mandarin) grade 2", "Chinese (Hong Kong Cantonese)", "Chinese (Taiwan Mandarin)" ], "default": "en-ueb-g1.ctb" } }, "braille.wordWrap": { "schema": { "title": "Avoid splitting words when possible", "description": "If this is enabled a word which is too large to fit at the end of the braille display will not be split. Instead there will be some blank space at the end of the display. When you scroll the display you will be able to read the entire word. This is sometimes called \"word wrap\". Note that if the word is too large to fit on the display even by itself the word must still be split. If this is disabled as much of the word as possible will be displayed but the rest will be cut off. When you scroll the display you will then be able to read the rest of the word. Enabling this may allow for more fluent reading but generally requires you to scroll the display more.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.detectFormatAfterCursor": { "schema": { "title": "Report Formatting Changes after the Cursor", "description": "Whether to try and detect all the formatting changes on a line as it speaks it even if doing this may slow down NVDA's performance. By default, NVDA will detect the formatting at the position of the System caret / Review Cursor and in some instances may detect formatting on the rest of the line only if it is not going to cause a performance decrease. Enable this option while proof reading documents in applications such as Microsoft Word where formatting is important.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.includeLayoutTables": { "schema": { "title": "Announce Layout Tables", "description": "Whether to announce layout tables. When on, NVDA will treat these as normal tables, announcing them based on Document Formatting Settings and locating them with quick navigation commands. When off, they will not be announced nor found with quick navigation. However, the content of the tables will still be included as normal text. This option is turned off by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportAlignment": { "schema": { "title": "Announce Alignment", "description": "Whether to announce the text alignment.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportBlockQuotes": { "schema": { "title": "Announce Block quotes", "description": "Whether to announce block quotes.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportBorderColor": { "schema": { "title": "Announce Cell Border Colors", "description": "Whether to announce cell border colors.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportBorderStyle": { "schema": { "title": "Announce Cell Border Styles", "description": "Whether to announce cell border styles.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportClickable": { "schema": { "title": "Announce Clickable Items", "description": "Whether to announce items that can be clicked.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportColor": { "schema": { "title": "Announce Font Colors", "description": "Whether to announce font colors.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportComments": { "schema": { "title": "Announce Comments", "description": "Whether to announce comments.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportEmphasis": { "schema": { "title": "Announce Font Emphasis", "description": "Whether to announce font emphasis.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportFontAttributes": { "schema": { "title": "Announce Font Attributes", "description": "Whether to announce font attributes.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportFontName": { "schema": { "title": "Announce Font Name", "description": "Whether to announce font names.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportFontSize": { "schema": { "title": "Announce Font Size", "description": "Whether to announce font sizes.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportFrames": { "schema": { "title": "Announce Frames", "description": "Whether to announce frames.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportHeadings": { "schema": { "title": "Announce Headings", "description": "Whether to announce headings.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportLandmarks": { "schema": { "title": "Announce Landmarks", "description": "Whether to announce landmarks.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportLineIndentation": { "schema": { "title": "Announce Line Indentation", "description": "Whether to announce line indentation,", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportLineIndentationWithTones": { "schema": { "title": "Announce Line Indentation with Tones", "description": "Whether to announce line indentation with tones.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportLineNumber": { "schema": { "title": "Announce Line Numbers", "description": "Whether to announce line numbers.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportLineSpacing": { "schema": { "title": "Announce Line Spacing", "description": "Whether to announce line spacing.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportLinks": { "schema": { "title": "Announce Links", "description": "Whether to announce links.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportLists": { "schema": { "title": "Announce Lists", "description": "Whether to announce lists.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportPage": { "schema": { "title": "Announce Pages", "description": "Whether to announce pages.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportParagraphIndentation": { "schema": { "title": "Announce Paragraph Indentation", "description": "Whether to announce paragraph indentation.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportRevisions": { "schema": { "title": "Announce Editor Revisions", "description": "Whether to announce editor revisions.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportSpellingErrors": { "schema": { "title": "Announce Spelling Errors", "description": "Whether to announce spelling errors.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportStyle": { "schema": { "title": "Announce Font Styles", "description": "Whether to announce font styles.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "documentFormatting.reportTableCellCoords": { "schema": { "title": "Announce Cell Coordinates", "description": "Whether to announce cell coordinates.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportTableHeaders": { "schema": { "title": "Announce Row/Column Headers", "description": "Whether to announce row/column headers of tables.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "documentFormatting.reportTables": { "schema": { "title": "Announce Tables", "description": "Whether to announce tables.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "general.askToExit": { "schema": { "title": "Show Options on Exit", "description": "Whether or not an options dialog should appear when you exit NVDA. If enabled, a dialog will appear when you attempt to exit NVDA asking whether you want to exit restart or restart with add-ons disabled. When disabled, NVDA will exit immediately.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "general.language": { "schema": { "title": "Language", "description": "The language that NVDA's user interface and messages should be shown in. There are many languages however the default option is \"User Default Windows\". This option tells NVDA to use the language that Windows is currently set to.", // TODO: These cannot both be correctly alphabetised. "enum": [ "af_ZA", "am", "an", "ar", "bg", "ca", "ckb", "cs", "da", "de", "de_CH", "el", "en", "es", "es_CO", "fa", "fi", "fr", "ga", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "ka", "kn", "ko", "ky", "lt", "mk", "mn", "my", "nb_NO", "ne", "nl", "nn_NO", "pa", "pl", "pt_BR", "pt_PT", "ro", "ru", "sk", "sl", "sq", "sr", "sv", "tl", "th", "tr", "uk", "ur", "vi", "zh_CN", "zh_HK", "zh_TW", "Windows" ], "enumLabels": [ "Afrikkans(South Africa)", "Amharic", "Aragonese", "Arabic", "Bulgarian", "Catalan", "Central Kurdish", "Czech", "Danish", "German", "German(Switzerland)", "Greek", "English", "Spanish", "Spanish (Columbia)", "Persian", "Finnish", "French", "Irish", "Galician", "Herbrew", "Hindi", "Croatian", "Hungarian", "Indonesian", "Icelandic", "Italian", "Japanese", "Georgian", "Kannada", "Korean", "Kyrgyz", "Lithuanian", "Macedonian", "Mongolian", "Burmese", "Norwegian Bokmal (Norway)", "Nepali", "Dutch", "Norwegian Nynorsk (Norway)", "Punjabi", "Polish", "Portugese (Brazil)", "Portugese (Portugal)", "Romanian", "Russian", "Slovak", "Slovenian", "Albanian", "Serbian (Latin)", "Swedish", "Tamil", "Thai", "Turkish", "Ukranian", "Urdu", "Vietnamese", "Chinese (simplified China)", "Chinese (Traditional Hong Kong SAR)", "Chinese (Traditional Taiwan)", "User default" ], "default": "Windows" } }, "general.playStartAndExitSounds": { "schema": { "title": "Play Sounds on Startup or Exit", "description": "Whether NVDA should play sounds when it starts or exits.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "general.saveConfigurationOnExit": { "schema": { "title": "Save Configuration on Exit", "description": "Whether to automatically save the current configuration when you exit NVDA.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "general.showWelcomeDialogAtStartup": { "schema": { "title": "Show Welcome Dialog on Startup", "description": "Whether or not to show the welcome dialog on startup.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "inputComposition.alwaysIncludeShortCharacterDescriptionInCandidateName": { "schema": { "title": "Always include short character description when announcing candidates", "description": "Whether or not NVDA should provide a short description for each character in a candidate either when its selected or when its automatically read when the candidate list appears. Note that for locales such as Chinese the announcement of extra character descriptions for the selected candidate is not affected by this option. This option may be useful for Korean and japanese input methods.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "inputComposition.announceSelectedCandidate": { "schema": { "title": "Announce Selected Candidate", "description": "Whether NVDA should announce the selected candidate when a candidate list appears or when the selection is changed. For input methods where the selection can be changed with the arrow keys (such as Chinese New Phonetic) this is necessary but for some input methods it may be more efficient typing with this option turned off. Note that even with this option off the review cursor will still be placed on the selected candidate allowing you to use object navigation / review to manually read this or other candidates.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "inputComposition.autoReportAllCandidates": { "schema": { "title": "Announce All Available Candidates", "description": "Whether or not all visible candidates should be announced automatically when a candidate list appears or its page is changed. Having this option on for pictographic input methods such as chinese New ChangJie or Boshiami is useful as you can automatically hear all symbols and their numbers and you can choose one right away. However for phonetic input methods such as chinese New Phonetic it may be more useful to turn this option off as all the symbols will sound the same and you will have to use the arrow keys to navigate the list items individually to gain more information from the character descriptions for each candidate.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "inputComposition.reportCompositionStringChanges": { "schema": { "title": "Announce Changes to the Composition String", "description": "After reading or precomposition data has been combined into a valid pictographic symbol most input methods place this symbol into a composition string for temporary storage along with other combined symbols before they are finally inserted into the document. This option allows you to choose whether or not NVDA should announce new symbols as they appear in the composition string. This option is on by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "inputComposition.reportReadingStringChanges": { "schema": { "title": "Announce Changes to the Reading String", "description": "Some input methods such as Chinese New Phonetic and New ChangJie have a reading string (sometimes known as a precomposition string). You can choose whether or not NVDA should announce new characters being typed into this reading string with this option. This option is on by default. Note some older input methods such as Chinese ChangJie may not use the reading string to hold precomposition characters but instead use the composition string directly. Please see the next option for configuring announcing of the composition string.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.alertForSpellingErrors": { "schema": { "title": "Play sound for spelling errors while typing", "description": "Whether to play a short buzzer sound when a word you type contains a spelling error.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.allowSkimReadingInSayAll": { "schema": { "title": "Allow skim reading in Say All", "description": "If on, certain navigation commands (such as quick navigation in browse mode or moving by line or paragraph) do not stop Say All rather Say All jumps to the new position and continues reading.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "keyboard.beepForLowercaseWithCapslock": { "schema": { "title": "Beep if typing lowercase letters when caps lock is on", "description": "When enabled, a warning beep will be heard if a letter is typed with the shift key while caps lock is on. Generally typing shifted letters with caps lock is unintentional and is usually due to not realising that caps lock is enabled. Therefore it can be quite helpful to be warned about this.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.handleInjectedKeys": { "schema": { "title": "Handle keys from other applications", "description": "Whether key presses generated by applications such as on-screen keyboards and speech recognition software should be processed by NVDA. This option is on by default though certain users may wish to turn this off such as those typing Vietnamese with the Unikey typing software as it will cause incorrect character input.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.keyboardLayout": { "schema": { "title": "Keyboard Layout", "description": "What keyboard layout NVDA should use. Currently the two that come with NVDA are Desktop and Laptop.", "enum": [ "desktop", "laptop" ], "enumLabels": [ "Desktop", "Laptop" ], "default": "desktop" } }, "keyboard.speakCommandKeys": { "schema": { "title": "Announce Command Keys", "description": "Whether to announce all non-character keys you type on the keyboard. This includes key combinations such as control plus another letter.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "keyboard.speakTypedCharacters": { "schema": { "title": "Announce Typed Characters", "description": "Whether to announce all characters you type on the keyboard.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "keyboard.speakTypedWords": { "schema": { "title": "Announce Typed Words", "description": "Whether to announce words you type on the keyboard.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "keyboard.speechInterruptForCharacters": { "schema": { "title": "Interrupt Speech for Typed Characters", "description": "Whether or not to interrupt speech each time a character is typed. This is on by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.speechInterruptForEnter": { "schema": { "title": "Interrupt Speech for Enter Key", "description": "Whether to interrupt speech each time the Enter key is pressed. On by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.useCapsLockAsNVDAModifierKey": { "schema": { "title": "Use CapsLock as an NVDA Modifier Key", "description": "Whether or not to use the caps lock key as an NVDA modifier key.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "keyboard.useExtendedInsertAsNVDAModifierKey": { "schema": { "title": "Use Extended Insert as an NVDA Modifier Key", "description": "Whether or not to use the extended insert key (usually found above the arrow keys near home and end) as an NVDA modifier key.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "keyboard.useNumpadInsertAsNVDAModifierKey": { "schema": { "title": "Use Numpad Insert as an NVDA Modifier Key", "description": "Whether or not to use the insert key on the number pad as an NVDA modifier key.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "mouse.audioCoordinates_detectBrightness": { "schema": { "title": "Brightness controls audio coordinates volume", "description": "Whether the volume of the audio coordinates beeps is controled by how bright the screen is under the mouse. This setting is turned off by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "mouse.audioCoordinatesOnMouseMove": { "schema": { "title": "Play audio coordinates when mouse moves", "description": "Whether NVDA should play beeps as the mouse moves so that the user can work out where the mouse is in regards to the dimensions of the screen. The higher the mouse is on the screen the higher the pitch of the beeps. The further left or right the mouse is located on the screen the further left or right the sound will be played (assuming the user has stereo speakers or headphones).", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "mouse.enableMouseTracking": { "schema": { "title": "Mouse Tracking", "description": "Whether to announce the text currently under the mouse pointer as you move it around the screen. This allows you to find things on the screen by physically moving the mouse rather than trying to find them through object navigation.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "mouse.mouseTextUnit": { "schema": { "title": "Text Unit Resolution", "description": "If NVDA is set to announce the text under the mouse as you move it this option allows you to choose exactly how much text will be spoken. The options are character word line and paragraph.", "enum": [ "character", "word", "line", "paragraph" ], "enumLabels": [ "Character", "Word", "Line", "Paragraph" ], "default": "paragraph" } }, "mouse.reportMouseShapeChanges": { "schema": { "title": "Announce Mouse Shape Changes", "description": "Whether to announce the shape of the mouse pointer each time it changes. The mouse pointer in Windows changes shape to convey certain information such as when something is editable or when something is loading et cetera.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "mouse.reportObjectRoleOnMouseEnter": { "schema": { "title": "Announce Role when Mouse Enters Object", "description": "Whether to announce the role (type) of object as the mouse moves inside it.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "presentation.guessObjectPositionInformationWhenUnavailable": { "schema": { "title": "Guess object position information when unavailable", "description": "If announcing of object position information is turned on this option allows NVDA to guess object position information when it is otherwise unavailable for a particular control. When on NVDA will announce position information for more controls such as menus and toolbars however this information may be slightly inaccurate.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "presentation.reportAutoSuggestionsWithSound": { "schema": { "title": "Play a sound when auto-suggestions appear", "description": "Toggle announcement of auto-suggestions, which are lists of suggested entries based on the text entered into certain edit fields and documents.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "presentation.reportDynamicContentChanges": { "schema": { "title": "Announce dynamic content changes", "description": "Toggles the announcement of new content in particular objects such as terminals and the history control in chat programs.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "presentation.reportHelpBalloons": { "schema": { "title": "Announce Help Balloons", "description": "Whether to report help balloons as they appear. Help Balloons are like tool tips but are usually larger in size and are associated with system events such as a network cable being unplugged.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "presentation.reportKeyboardShortcuts": { "schema": { "title": "Announce Object Shortcut Keys", "description": "Whether to announce the shortcut key that is associated with a certain object or control when it is announced. For example, the File menu on a menu bar may have a shortcut key of alt+f.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "presentation.reportObjectDescriptions": { "schema": { "title": "Announce Object Descriptions", "description": "Whether to announce the description along with objects.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "presentation.reportObjectPositionInformation": { "schema": { "title": "Announce Object Position Information", "description": "Whether to announce an object's position (e.g. 1 of 4) when moving to the object with the focus or object navigation.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "presentation.reportTooltips": { "schema": { "title": "Announce Tooltips", "description": "Whether to announce tool tips as they appear. Many Windows and controls show a small message (or tool tip) when you move the mouse pointer over them or sometimes when you move the focus to them.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "presentation.progressBarUpdates.progressBarOutputMode": { "schema": { "title": "Progress Bar Output", "description": "Whether/how to announce progress bar updates. It has the following options: Off: Progress bars will not be announced as they change. Speak: This option tells NVDA to speak the progress bar in percentages. Each time the progress bar changes NVDA will speak the new value. Beep: This tells NVDA to beep each time the progress bar changes. The higher the beep the closer the progress bar is to completion. Beep and speak: This option tells NVDA to both beep and speak when a progress bar updates.", "enum": [ "off", "speak", "beep", "speak and beep" ], "enumLabels": [ "Off", "Speak", "Beep", "Speak and Beep" ], "default": "beep" } }, "presentation.progressBarUpdates.reportBackgroundProgressBars": { "schema": { "title": "Announce Background Progress Bars", "description": "Whether to keep announcing a progress bar even if it is not physically in the foreground. If you minimize or switch away from a window that contains a progress bar NVDA will keep track of it allowing you to do other things while NVDA tracks the progress bar.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "reviewCursor.followCaret": { "schema": { "title": "Follow System Carat", "description": "Whether to automatically move the review cursor to the position of the system caret each time the system caret moves.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "reviewCursor.followFocus": { "schema": { "title": "Follow System Focus", "description": "Whether to place the review cursor in the same object as the current system focus whenever the focus changes.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "reviewCursor.followMouse": { "schema": { "title": "Follow Mouse Cursor", "description": "Whether the review cursor should follow the mouse as it moves.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "reviewCursor.simpleReviewMode": { "schema": { "title": "Simple Review Mode", "description": "When enabled NVDA will filter the hierarchy of objects that can be navigated to exclude objects that aren't of interest to the user; e.g. invisible objects and objects used only for layout purposes.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.beepSpeechModePitch": { "schema": { "title": "Speech Mode Beep Pitch", "description": "The pitch of the beep in speech mode.", "type": "integer", "minimum": 50, "maximum": 11025, "default": 10000 } }, "speech.espeak.autoDialectSwitching": { "schema": { "title": "eSpeak Automatic Dialect Switching", "description": "When using eSpeak, whether or not dialect changes should be made rather than just actual language changes. For example if reading in an English U.S. voice but a document specifies that some text is in English U.K. then the synthesizer will switch accents if this option is enabled. This option is disabled by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.espeak.autoLanguageSwitching": { "schema": { "title": "eSpeak Automatic Language Switching", "description": "When using eSpeak, whether NVDA should switch speech synthesizer languages automatically if the text being read specifies its language. This option is enabled by default. Currently only the eSpeak synthesizer supports automatic language switching.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.espeak.beepForCapitals": { "schema": { "title": "eSpeak Beep for Capitals", "description": "When using eSpeak, whether to make a small beep each time NVDA encounters a capitalized character by itself. Like the \"say cap for capitals\" setting, this is useful for Synthesizers that can't change their pitch for capital letters.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.espeak.capPitchChange": { "schema": { "title": "eSpeak Capital Pitch Change Percentage", "description": "When using eSpeak, the amount that the pitch of the voice will change when speaking a capital letter. This value is a percentage where a negative value lowers the pitch and a positive value raises it. For no pitch change you would use 0.", "type": "integer", "minimum": -100, "maximum": 100, "default": 30 } }, "speech.espeak.inflection": { "schema": { "title": "Voice Inflection", "description": "How much inflection (rise and fall in pitch) the synthesizer should use to speak with. (The only synthesizer that supports this option at the present time is eSpeak).", "type": "integer", "minimum": 0, "maximum": 100, "default": 75 } }, "speech.espeak.pitch": { "schema": { "title": "eSpeak Pitch", "description": "The voice pitch eSpeak should use.", "type": "integer", "minimum": 0, "maximum": 100, "default": 40 } }, "speech.espeak.rate": { "schema": { "title": "eSpeak Speech Rate", "description": "The rate at which eSpeak should speak.", "type": "integer", "minimum": 0, "maximum": 100, "default": 30 } }, "speech.espeak.rateBoost": { "schema": { "title": "eSpeak Speech Rate Boost", "description": "Whether to use the \"sonic\" library to speed up the speech rate.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.espeak.sayCapForCapitals": { "schema": { "title": "Announce Capitals in eSpeak", "description": "Whether eSpeak should say the word \"cap\" before any capital letter when spoken as an individual character, such as when spelling a word.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.espeak.trustVoiceLanguage": { "schema": { "title": "eSpeak Trust Voice Language", "description": "Whether the current voice's language can be trusted when processing symbols and characters. This is on by default. If you find that NVDA is reading punctuation in the wrong language for a particular synthesizer or voice you may wish to turn this off to force NVDA to use its global language setting instead.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.espeak.useSpellingFunctionality": { "schema": { "title": "eSpeak Use Spelling Functionality", "description": "Some words consist of only one character but the pronunciation is different depending on whether the character is being spoken as an individual character (such as when spelling) or a word. For example in English \"a\" is both a letter and a word and is pronounced differently in each case. This option allows the synthesizer to differentiate between these two cases if the synthesizer supports this. Most synthesizers do support it. This option should generally be enabled. However some Microsoft Speech API synthesizers do not implement this correctly and behave strangely when it is enabled. If you are having problems with the pronunciation of individual characters try disabling this option.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.espeak.voice": { "schema": { "title": "ESpeak Voice", "description": "The voice to use when using the 'eSpeak' engine.", // TODO: Figure out a way to more cleanly reuse material between language-supporting features. Common term? "enum": [ "af", "sq", "am", "ar", "an", "hy-arevela", "hyw", "as", "az", "eu", "bn", "bpy", "bs", "bg", "ca", "zh-yue", "zh-cmn", "hr", "cs", "da", "nl", "en-us", "en-029", "en-gb", "en-gb-x-gbclan", "en-gb-x-rp", "en-gb-scotland", "en-gb-x-gbcwmd", "eo", "et", "fi", "fr-be", "fr-fr", "fr-ch", "ga", "gd", "ka", "de", "grc", "el", "kl", "gn", "gu", "ht", "hak", "hi", "hu", "is", "id", "ia", "it", "ja", "quc", "kn", "kk", "kok", "ko", "ku", "ky", "la", "lv", "lfn", "lt", "jbo", "mk", "ms", "ml", "mt", "mr", "my", "mi", "nci", "ne", "no", "or", "om", "pap", "fa-Latn", "fa", "pl", "pt-br", "pt-pt", "pa", "ro", "ru-LV", "ru", "sr", "tn", "shn", "sd", "si", "sk", "sl", "es-419", "es", "sw", "sv", "ta", "tt", "te", "tr", "ur", "vi-vn-x-central", "vi", "vi-vn-x-south", "cy" ], "enumLabels": [ "Afrikaans", "Albanian", "Amharic", "Arabic", "Aragonese", "Armenian (East Armenia)", "Armenian (West Armenia)", "Assamese", "Azerbaijani", "Basque", "Bengali", "Bishnupriya Manipuri", "Bosnian", "Bulgarian", "Catalan", "Chinese (Cantonese)", "Chinese (Mandarin)", "Croatian", "Czech", "Danish", "Dutch", "English (America)", "English (Caribbean)", "English (Great Britain)", "English (Lancaster)", "English (Received Pronunciation)", "English (Scotland)", "English (West Midlands)", "Esperanto", "Estonian", "Finnish", "French (Belgium)", "French (France)", "French (Switzerland)", "Gaelic (Irish)", "Gaelic (Scottish)", "Georgian", "German", "Greek (Ancient)", "Greek", "Greenlandic", "Guarani", "Gujarati", "Haitian Creole", "Hakka Chinese", "Hindi", "Hungarian", "Icelandic", "Indonesian", "Interlingua", "Italian", "Japanese", "K'iche'", "Kannada", "Kazakh", "Konkani", "Korean", "Kurdish", "Kyrgyz", "Latin", "Latvian", "Lingua Franca Nova", "Lithuanian", "Lojban", "Macedonian", "Malay", "Malayalam", "Maltese", "Marathi", "Myanmar (Burmese)", "Māori", "Nahuatl (Classical)", "Nepali", "Norwegian Bokmål", "Oriya", "Oromo", "Papiamento", "Persian (Pinglish)", "Persian", "Polish", "Portuguese (Brazil)", "Portuguese (Portugal)", "Punjabi", "Romanian", "Russian (Latvia)", "Russian", "Serbian", "Setswana", "Shan (Tai Yai)", "Sindhi", "Sinhala", "Slovak", "Slovenian", "Spanish (Latin America)", "Spanish (Spain)", "Swahili", "Swedish", "Tamil", "Tatar", "Telugu", "Turkish", "Urdu", "Vietnamese (Central)", "Vietnamese (Northern)", "Vietnamese (Southern)", "Welsh" ] } }, "speech.espeak.volume": { "schema": { "title": "eSpeak Volume", "description": "The volume eSpeak should use.", "type": "integer", "minimum": 0, "maximum": 100, "default": 100 } }, "speech.oneCore.autoDialectSwitching": { "schema": { "title": "oneCore Automatic Dialect Switching", "description": "When using oneCore, whether or not dialect changes should be made rather than just actual language changes. For example if reading in an English U.S. voice but a document specifies that some text is in English U.K. then the synthesizer will switch accents if this option is enabled. This option is disabled by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.oneCore.autoLanguageSwitching": { "schema": { "title": "OneCore Automatic Language Switching", "description": "When using oneCore, whether NVDA should switch speech synthesizer languages automatically if the text being read specifies its language. This option is enabled by default. Currently only the eSpeak synthesizer supports automatic language switching.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.oneCore.beepForCapitals": { "schema": { "title": "oneCore Beep for Capitals", "description": "When using oneCore, whether to make a small beep each time NVDA encounters a capitalized character by itself. Like the \"say cap for capitals\" setting this is useful for Synthesizers that can't change their pitch for capital letters.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.oneCore.capPitchChange": { "schema": { "title": "OneCore Capital Pitch Change Percentage", "description": "When using oneCore, the amount that the pitch of the voice will change when speaking a capital letter. This value is a percentage where a negative value lowers the pitch and a positive value raises it. For no pitch change you would use 0.", "type": "integer", "minimum": -100, "maximum": 100, "default": 30 } }, "speech.oneCore.pitch": { "schema": { "title": "OneCore Voice Pitch", "description": "When using oneCore, the pitch of the current voice, from 0 to 100 (0 being the lowest pitch and 100 being the highest).", "type": "integer", "minimum": 0, "maximum": 100, "default": 50 } }, "speech.oneCore.rate": { "schema": { "title": "OneCore Speech Rate", "description": "The speech rate, from 0 to 100 (0 being the slowest, 100 being the fastest).", "type": "integer", "minimum": 0, "maximum": 100, "default": 50 } }, "speech.oneCore.sayCapForCapitals": { "schema": { "title": "OneCore Announce Capitals", "description": "Whether to say the word \"cap\" before any capital letter when spoken as an individual character such as when spelling. Usually NVDA raises the pitch slightly for any capital letter but some synthesizers may not support this well so perhaps this option may be of use.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.oneCore.trustVoiceLanguage": { "schema": { "title": "OneCore Trust Voice Language", "description": "Whether the current voice's language can be trusted when processing symbols and characters. This is on by default. If you find that NVDA is reading punctuation in the wrong language for a particular synthesizer or voice you may wish to turn this off to force NVDA to use its global language setting instead.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.oneCore.useSpellingFunctionality": { "schema": { "title": "OneCore Use Spelling Functionality", "description": "Some words consist of only one character but the pronunciation is different depending on whether the character is being spoken as an individual character (such as when spelling) or a word. For example in English \"a\" is both a letter and a word and is pronounced differently in each case. This option allows the synthesizer to differentiate between these two cases if the synthesizer supports this. Most synthesizers do support it. This option should generally be enabled. However some Microsoft Speech API synthesizers do not implement this correctly and behave strangely when it is enabled. If you are having problems with the pronunciation of individual characters try disabling this option.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.oneCore.voice": { "schema": { "title": "OneCore Voice", "description": "The voice to use.", "enum": [ "Microsoft David", "Microsoft Zira", "Microsoft Mark" ], "enumLabels": [ "Microsoft David", "Microsoft Zira", "Microsoft Mark" ], "default": "Microsoft David" } }, "speech.oneCore.volume": { "schema": { "title": "OneCore Speech Volume", "description": "The speech volume, from 0 to 100 (0 being the lowest volume and 100 being the highest).", "type": "integer", "minimum": 0, "maximum": 100, "default": 100 } }, "speech.outputDevice": { "schema": { "title": "Speech Output Device", "description": "The sound card that NVDA should instruct the selected synthesizer to speak through.", // Hard code this to the only known good value. "enum": ["Microsoft Sound Mapper"], "enumLabels": ["Microsoft Sound Mapper"] } }, "speech.sapi5.beepForCapitals": { "schema": { "title": "SAPI5 Beep for Capitals", "description": "When using sapi5, whether to make a small beep each time NVDA encounters a capitalized character by itself. Like the \"say cap for capitals\" setting this is useful for Synthesizers that can't change their pitch for capital letters.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.sapi5.capPitchChange": { "schema": { "title": "SAPI5 Capital Pitch Change Percentage", "description": "The amount that the pitch of the voice will change when speaking a capital letter. This value is a percentage where a negative value lowers the pitch and a positive value raises it. For no pitch change you would use 0.", "type": "integer", "minimum": -100, "maximum": 100, "default": 30 } }, "speech.sapi5.pitch": { "schema": { "title": "SAPI5 Voice Pitch", "description": "The pitch of the current voice, from 0 to 100 (0 being the lowest pitch and 100 being the highest).", "type": "integer", "minimum": 0, "maximum": 100, "default": 50 } }, "speech.sapi5.rate": { "schema": { "title": "SAPI5 Speech Rate", "description": "The speech rate, from 0 to 100 (0 being the slowest, 100 being the fastest).", "type": "integer", "minimum": 0, "maximum": 100, "default": 50 } }, "speech.sapi5.sayCapForCapitals": { "schema": { "title": "SAPI5 Announce Capitals", "description": "Whether to say the word \"cap\" before any capital letter when spoken as an individual character such as when spelling. Usually NVDA raises the pitch slightly for any capital letter but some synthesizers may not support this well so perhaps this option may be of use.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.sapi5.trustVoiceLanguage": { "schema": { "title": "SAPI5 Trust Voice Language", "description": "Whether the current voice's language can be trusted when processing symbols and characters. This is on by default. If you find that NVDA is reading punctuation in the wrong language for a particular synthesizer or voice you may wish to turn this off to force NVDA to use its global language setting instead.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.sapi5.useSpellingFunctionality": { "schema": { "title": "SAPI5 Use Spelling Functionality", "description": "Some words consist of only one character but the pronunciation is different depending on whether the character is being spoken as an individual character (such as when spelling) or a word. For example in English \"a\" is both a letter and a word and is pronounced differently in each case. This option allows the synthesizer to differentiate between these two cases if the synthesizer supports this. Most synthesizers do support it. This option should generally be enabled. However some Microsoft Speech API synthesizers do not implement this correctly and behave strangely when it is enabled. If you are having problems with the pronunciation of individual characters try disabling this option.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.sapi5.voice": { "schema": { "title": "SAPI5 Voice", "description": "The voice to use.", "enum": [ "Microsoft David Desktop - English (United States)", "Microsoft Zira Desktop - English (United States)" ], "enumLabels": [ "Microsoft David Desktop - English (United States)", "Microsoft Zira Desktop - English (United States)" ], "default": "Microsoft David Desktop - English (United States)" } }, "speech.sapi5.volume": { "schema": { "title": "SAPI5 Speech Volume", "description": "The speech volume, from 0 to 100 (0 being the lowest volume and 100 being the highest).", "type": "integer", "minimum": 0, "maximum": 100, "default": 100 } }, "speech.silence.autoDialectSwitching": { "schema": { "title": "\"No Speech\" Automatic Dialect Switching", "description": "When using \"no speech\", whether or not dialect changes should be made rather than just actual language changes. For example if reading in an English U.S. voice but a document specifies that some text is in English U.K. then the synthesizer will switch accents if this option is enabled. This option is disabled by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.silence.autoLanguageSwitching": { "schema": { "title": "\"No Speech\" Automatic Language Switching", "description": "When using \"no speech\", whether NVDA should switch speech synthesizer languages automatically if the text being read specifies its language. This option is enabled by default. Currently only the eSpeak synthesizer supports automatic language switching.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.silence.beepForCapitals": { "schema": { "title": "\"No Speech\" Beep for Capitals", "description": "When using oneCore, whether to make a small beep each time NVDA encounters a capitalized character by itself. Like the \"say cap for capitals\" setting this is useful for Synthesizers that can't change their pitch for capital letters.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.silence.capPitchChange": { "schema": { "title": "\"No Speech\" Capital Pitch Change Percentage", "description": "When using \"no speech\", the amount that the pitch of the voice will change when speaking a capital letter. This value is a percentage where a negative value lowers the pitch and a positive value raises it. For no pitch change you would use 0.", "type": "integer", "minimum": -100, "maximum": 100, "default": 30 } }, "speech.silence.sayCapForCapitals": { "schema": { "title": "\"No Speech\" Announce Capitals", "description": "Whether to say the word \"cap\" before any capital letter when spoken as an individual character such as when spelling. Usually NVDA raises the pitch slightly for any capital letter but some synthesizers may not support this well so perhaps this option may be of use.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "speech.silence.trustVoiceLanguage": { "schema": { "title": "\"No Speech\" Trust Voice Language", "description": "Whether the current voice's language can be trusted when processing symbols and characters. This is on by default. If you find that NVDA is reading punctuation in the wrong language for a particular synthesizer or voice you may wish to turn this off to force NVDA to use its global language setting instead.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.silence.useSpellingFunctionality": { "schema": { "title": "\"No Speech\" Use Spelling Functionality", "description": "Some words consist of only one character but the pronunciation is different depending on whether the character is being spoken as an individual character (such as when spelling) or a word. For example in English \"a\" is both a letter and a word and is pronounced differently in each case. This option allows the synthesizer to differentiate between these two cases if the synthesizer supports this. Most synthesizers do support it. This option should generally be enabled. However some Microsoft Speech API synthesizers do not implement this correctly and behave strangely when it is enabled. If you are having problems with the pronunciation of individual characters try disabling this option.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speech.symbolLevel": { "schema": { "title": "Punctuation/Symbol Level", "description": "The amount of punctuation and other symbols that should be spoken as words. This option applies to all synthesizers not just the currently active synthesizer.", "enum": [ 0, 100, 200, 300 ], "enumLabels": [ "None", "Some", "Most", "All" ], "default": 100 } }, "speech.synth": { "schema": { "title": "Synthesizer", "description": "The synthesizer you wish NVDA to use for speech output. The \"No speech\" option allows you to use NVDA with no speech output what so ever. This may be useful for someone who wishes to only use NVDA with Braille, or perhaps to sighted developers who only wish to use the Speech Viewer.", "enum": [ "auto", "espeak", "sapi4", "sapi5", "oneCore", "silence" ], "enumLabels": [ "auto", "eSpeak", "sapi4", "sapi5", "oneCore", "No Speech" ], "default": "auto" } }, "speechViewer.autoPositionWindow": { "schema": { "title": "Speech Viewer", "description": "Whether to enable the speech viewer (in real time).", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "speechViewer.showSpeechViewerAtStartup": { "schema": { "title": "Show Speech Viewer on Startup", "description": "Whether to enable the speech viewer on startup.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "touch.touchTyping": { "schema": { "title": "Touch Typing Mode", "description": "Whether to require a single or double key press to type a literal character.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "update.autoCheck": { "schema": { "title": "Automatically Check for NVDA Updates", "description": "If this is enabled NVDA will automatically check for updated versions of NVDA and inform you when an update is available. You can also manually check for updates by selecting Check for updates under Help in the NVDA menu.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "update.startupNotification": { "schema": { "title": "Notify of Pending Update on Startup", "description": "Whether to notify about an update that is waiting to be installed when NVDA is started.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "uwpOcr.language": { "schema": { "title": "Recognition Language", "description": "The language to use for text recognition.", "enum": [ "English(United States)" ], "enumLabels": [ "English(United States)" ], "default": "English(United States)" } }, "virtualBuffers.autoPassThroughOnCaretMove": { "schema": { "title": "Automatic focus mode for caret movement", "description": "This option when checked allows NVDA to enter and leave focus mode when using arrow keys. For example if arrowing down a webpage and you land on an edit box NVDA will automatically bring you into focus mode. If you arrow out of the edit box NVDA will put you back in browse mode.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "False" } }, "virtualBuffers.autoPassThroughOnFocusChange": { "schema": { "title": "Automatic focus mode for focus changes", "description": "Whether to invoke focus mode if focus changes. For example when on a web page if you press tab and you land on a form if this option is checked focus mode will automatically be invoked.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "virtualBuffers.autoSayAllOnPageLoad": { "schema": { "title": "Automatic Say All on page load", "description": "Whether to automatically read a page after it loads in browse mode. This option is enabled by default.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "virtualBuffers.linesPerPage": { "schema": { "title": "Lines per Page", "description": "The amount of lines you will move by when pressing page up or page down while in browse mode.", "type": "integer", "minimum": 5, "maximum": 150, "default": 25 } }, "virtualBuffers.maxLineLength": { "schema": { "title": "Maximum Line Length", "description": "The maximum length of a line in browse mode (in characters).", "type": "integer", "minimum": 10, "maximum": 250, "default": 100 } }, "virtualBuffers.passThroughAudioIndication": { "schema": { "title": "Audio indication of focus and browse modes", "description": "Whether to play special sounds when NVDA switches between browse mode and focus mode rather than speaking the change.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "virtualBuffers.trapNonCommandGestures": { "schema": { "title": "Trap all non-command gestures from reaching the document", "description": "Enabled by default this option allows you to choose if gestures (such as key presses) that do not result in an NVDA command and are not considered to be a command key in general should be trapped from going through to the document you are currently focused on. As an example if enabled if the letter j was pressed it would be trapped from reaching the document even though it is not a quick navigation command nor is it likely to be a command in the application itself.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } }, "virtualBuffers.useScreenLayout": { "schema": { "title": "Use Screen Layout", "description": "Whether content in browse mode should place content such as links and other fields on their own line or if it should keep them in the flow of text as it is visually shown. If the option is enabled then things will stay as they are visually shown but if it is disabled then fields will be placed on their own line.", "enum": [ "True", "False" ], "enumLabels": [ "True", "False" ], "default": "True" } } }, "capabilitiesTransformations": { "keyboard\\.speakTypedCharacters": "http://registry\\.gpii\\.net/common/keyEcho", "keyboard\\.speakTypedWords": "http://registry\\.gpii\\.net/common/wordEcho", "presentation\\.reportHelpBalloons": "http://registry\\.gpii\\.net/common/speakTutorialMessages", "speech\\.espeak\\.pitch": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 100 } }, "speech\\.espeak\\.rate": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.binaryOp", "right": 3.10, "operator": "/", "left": { "transform": { "type": "fluid.transforms.binaryOp", "right": 80, "operator": "-", "left": { "transform": { "type": "fluid.transforms.condition", "truePath": "http://registry\\.gpii\\.net/common/speechRate", "false": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": "/", "right": 3 } }, "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": "<=", "right": 390 } } } } } } } } } }, "speech\\.espeak\\.rateBoost": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": ">", "right": 390 } }, "speech\\.espeak\\.sayCapForCapitals": "http://registry\\.gpii\\.net/common/announceCapitals", // TODO: Figure out a way to reuse this material between language-supporting features. Common term? "speech\\.espeak\\.voice": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en": "en\\en", "en-GB": "en\\en", "en-US": "en\\en-us", "en-scotland": "en\\en-sc", "en-BZ": "en\\en-wi", "en-BS": "en\\en-wi", "en-AG": "en\\en-wi", "en-AI": "en\\en-wi", "af": "af", "bg": "bg", "bs": "bs", "ca": "ca", "cs": "cs", "cy": "cy", "da": "da", "de": "de", "el": "el", "grc": "test\\grc", "eo": "eo", "es": "es", "es-419": "es-la", "et": "et", "fi": "fi", "fr": "fr", "fr-BE": "fr-be", "hi": "hi", "hr": "hr", "hu": "hu", "hy": "hy", "hy-arevmda": "hy-west", "id": "id", "is": "is", "it": "it", "jbo": "test\\jbo", "ka": "ka", "kn": "kn", "ku": "ku", "la": "la", "lv": "lv", "mk": "mk", "ml": "ml", "nci": "test\\nci", "nl": "nl", "no": "no", "pap": "test\\pap", "pl": "pl", "pt-BR": "pt", "pt-PT": "pt-pt", "ro": "ro", "ru": "ru", "sk": "sk", "sq": "sq", "sr": "sr", "sv": "sv", "sw": "sw", "ta": "ta", "tr": "tr", "vi": "vi", "zh-cmn": "zh", "cmn": "zh", "zh-yue": "zh-yue" } } }, "speech\\.espeak\\.volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "speech\\.oneCore\\.pitch": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 100 } }, "speech\\.oneCore\\.rate": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.binaryOp", "right": 3.10, "operator": "/", "left": { "transform": { "type": "fluid.transforms.binaryOp", "right": 80, "operator": "-", "left": { "transform": { "type": "fluid.transforms.condition", "truePath": "http://registry\\.gpii\\.net/common/speechRate", "false": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": "/", "right": 3 } }, "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": "<=", "right": 390 } } } } } } } } } }, "speech\\.oneCore\\.sayCapForCapitals": "http://registry\\.gpii\\.net/common/announceCapitals", // TODO: "speech\\.oneCore\\.voice" cannot be updated to reflect the current language without additional research, i.e. installing all languages. "speech\\.oneCore\\.volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "speech\\.sapi5\\.pitch": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/pitch", "factor": 100 } }, "speech\\.sapi5\\.rate": { "transform": { "type": "fluid.transforms.round", "input": { "transform": { "type": "fluid.transforms.binaryOp", "right": 3.10, "operator": "/", "left": { "transform": { "type": "fluid.transforms.binaryOp", "right": 80, "operator": "-", "left": { "transform": { "type": "fluid.transforms.condition", "truePath": "http://registry\\.gpii\\.net/common/speechRate", "false": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": "/", "right": 3 } }, "condition": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "http://registry\\.gpii\\.net/common/speechRate", "operator": "<=", "right": 390 } } } } } } } } } }, "speech\\.sapi5\\.sayCapForCapitals": "http://registry\\.gpii\\.net/common/announceCapitals", // TODO: "speech\\.sapi5\\.voice" cannot be updated to reflect the current language without additional research, i.e. installing all languages. "speech\\.sapi5\\.volume": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "http://registry\\.gpii\\.net/common/volumeTTS", "factor": 100 } }, "speech\\.silence\\.sayCapForCapitals": "http://registry\\.gpii\\.net/common/announceCapitals", "speech\\.symbolLevel": { "transform": { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "match": { "none": 0, "some": 100, "most": 200, "all": 300 } } }, "transform": [ { "type": "fluid.transforms.arrayToSetMembership", "inputPath": "http://registry\\.gpii\\.net/common/trackingTTS", "outputPath": "", "presentValue": true, "missingValue": false, "options": { "focus": "reviewCursor\\.followFocus", "caret": "reviewCursor\\.followCaret", "mouse": "reviewCursor\\.followMouse" } }, { "type": "fluid.transforms.valueMapper", "defaultInputPath": "http://registry\\.gpii\\.net/common/screenReaderTTS/enabled", "match": { // Explicitly set the voice to eSpeak so that we can control the language as well. "true": { "outputValue": { "transform": [ { "type": "fluid.transforms.literalValue", "input": "espeak", "outputPath": "speech\\.synth" }, { "type": "fluid.transforms.literalValue", "input": "Microsoft Sound Mapper", "outputPath": "speech\\.outputDevice" } ] } }, "false": { "outputValue": { "transform": [ { "type": "fluid.transforms.literalValue", "input": "silence", "outputPath": "speech\\.synth" }, { "type": "fluid.transforms.literalValue", "input": "Microsoft Sound Mapper", "outputPath": "speech\\.outputDevice" } ] } } } } ] }, "inverseCapabilitiesTransformations": { "http://registry\\.gpii\\.net/common/speakTutorialMessages": "presentation\\.reportHelpBalloons", "http://registry\\.gpii\\.net/common/keyEcho": "keyboard\\.speakTypedCharacters", "http://registry\\.gpii\\.net/common/wordEcho": "keyboard\\.speakTypedWords", // TODO: eSpeak is the preferred voice and is the only one we perform an inverse transform of at the moment. If we decide to flesh this out better, we will need a better transform here. "http://registry\\.gpii\\.net/common/announceCapitals": "speech\\.espeak\\.sayCapForCapitals", "transform": [ { "type": "fluid.transforms.valueMapper", "defaultInputPath": "virtualBuffers\\.autoSayAllOnPageLoad.value", "defaultOutputPath": "http://registry\\.gpii\\.net/common/readingUnit", "match": { "true": "all", "false": "sentence" } }, { "type": "fluid.transforms.setMembershipToArray", "inputPath": "", "outputPath": "http://registry\\.gpii\\.net/common/trackingTTS", "presentValue": true, "missingValue": false, "options": { "reviewCursor\\.followFocus": "focus", "reviewCursor\\.followCaret": "caret", "reviewCursor\\.followMouse": "mouse" } }, { "type": "fluid.transforms.valueMapper", "defaultOutputPath": "http://registry\\.gpii\\.net/common/punctuationVerbosity", "defaultInputPath": "speech\\.symbolLevel", "match": { "0": "none", "100": "some", "200": "most", "300": "all" } }, { "type": "fluid.transforms.condition", "outputPath": "http://registry\\.gpii\\.net/common/screenReaderTTS/enabled", "false": true, "true": false, "condition": { "transform": { "type": "fluid.transforms.binaryOp", "left": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "speech\\.synth", "operator": "===", "right": "silence" } }, "right": { "transform": { "type": "fluid.transforms.binaryOp", "leftPath": "speech\\.outputDevice", "operator": "===", "right": "Microsoft Sound Mapper" } }, "operator": "&&" } } }, { "type": "fluid.transforms.condition", "outputPath": "http://registry\\.gpii\\.net/common/speechRate", "condition": { "transform": { "type": "fluid.transforms.binaryOp", "right": true, "operator": "===", "leftPath": "speech\\.espeak\\.rateBoost" } }, "false": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "speech\\.espeak\\.rate", "factor": 3.1, "offset": 80 } }, "true": { "transform": { "type": "fluid.transforms.binaryOp", "left": { "transform": { "type": "fluid.transforms.linearScale", "inputPath": "speech\\.espeak\\.rate", "factor": 3.1, "offset": 80 } }, "operator": "*", "right": 3 } } }, // TODO: Figure out a way to reuse this material between language-supporting features. Common term? { "type": "fluid.transforms.valueMapper", "defaultInputPath": "speech\\.espeak\\.voice", "defaultOutputPath": "http://registry\\.gpii\\.net/common/auditoryOutLanguage", "match": { "en\\en": "en", "en\\en-us": "en-US", "en\\en-sc": "en-scotland", "en\\en-wi": "en-BZ", "af": "af", "bg": "bg", "bs": "bs", "ca": "ca", "cs": "cs", "cy": "cy", "da": "da", "de": "de", "el": "el", "test\\grc": "grc", "eo": "eo", "es": "es", "es-la": "es-419", "et": "et", "fi": "fi", "fr": "fr", "fr-be": "fr-BE", "hi": "hi", "hr": "hr", "hu": "hu", "hy": "hy", "hy-west": "hy-arevmda", "id": "id", "is": "is", "it": "it", "test\\jbo": "jbo", "ka": "ka", "kn": "kn", "ku": "ku", "la": "la", "lv": "lv", "mk": "mk", "ml": "ml", "test\\nci": "nci", "nl": "nl", "no": "no", "test\\pap": "pap", "pl": "pl", "pt": "pt-BR", "pt-pt": "pt-PT", "ro": "ro", "ru": "ru", "sk": "sk", "sq": "sq", "sr": "sr", "sv": "sv", "sw": "sw", "ta": "ta", "tr": "tr", "vi": "vi", "zh": "zh-cmn", "zh-yue": "zh-yue" } } ] } } }, "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "getState": [ { "type": "gpii.processReporter.find", "command": "nvda.exe" } ], "setTrue": [ { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\nvda.exe\\}\"" } ], "setFalse": [ { "type": "gpii.windows.closeProcessByName", "filename": "nvda_service.exe" }, { "type": "gpii.windows.closeProcessByName", "filename": "nvda.exe" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.registryKeyExists", "hKey": "HKEY_LOCAL_MACHINE", "path": "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\nvda.exe", "subPath": "", "dataType": "REG_SZ" } ] }, "trace.easyOne.communicator.windows": { "name": "EasyOne Communicator Windows", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/simplifiedUi/enabled" ], "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "setTrue": { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\firefox.exe\\}\" http://easyone.gpii.net/user/${{gpiiKey}}" }, "setFalse": { "type": "gpii.windows.closeProcessByName", "filename": "firefox.exe" }, "getState": [ { "type": "gpii.processReporter.neverRunning" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "trace.easyOne.sudan.windows": { "name": "EasyOne Communicator Sudan", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [], "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "setTrue": { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\firefox.exe\\}\" http://easyone.gpii.net/sudan" }, "setFalse": { "type": "gpii.windows.closeProcessByName", "filename": "firefox.exe" }, "getState": [ { "type": "gpii.processReporter.neverRunning" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "webinsight.webAnywhere.windows": { "name": "Web Anywhere", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "capabilities": [ "http://registry\\.gpii\\.net/common/screenReaderTTS/enabled" ], "launchHandlers": { "launcher": { "type": "gpii.launchHandlers.flexibleHandler", "options": { "setTrue": { "type": "gpii.launch.exec", "command": "\"${{registry}.HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\firefox.exe\\}\" \"http://webanywhere.cs.washington.edu/beta/?starting_url=http%3A%2F%2Fcloud4all.info\"" }, "setFalse": { "type": "gpii.windows.closeProcessByName", "filename": "firefox.exe" }, "getState": [ { "type": "gpii.processReporter.neverRunning" } ] } } }, "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] }, "com.microsoft.office": { "name": "Microsoft Office", "contexts": { "OS": [ { "id": "win32", "version": ">=5.0" } ] }, "settingsHandlers": { "configure.common-tabletmode": { "type": "gpii.windows.registrySettingsHandler", "liveness": "liveRestart", "options": { "hKey": "HKEY_CURRENT_USER", "path": "Software\\Microsoft\\Office\\16.0\\Common", "dataTypes": { "OverrideTabletMode": "REG_DWORD", "OverridePointerMode": "REG_DWORD" } }, "capabilitiesTransformations": { "OverrideTabletMode": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.office.tabletMode", "true": 1, "false": 0 } }, "OverridePointerMode": { "transform": { "type": "fluid.transforms.condition", "conditionPath": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.office.tabletMode", "true": 2, "false": 1 } } }, "supportedSettings": { "OverrideTabletMode": { "schema": { "title": "Enable Tablet Mode", "description": "Display larger ribbon buttons that are easier to touch", "type": "number", "enum": [ 1, 2 ], "enumLabels": [ "off", "on" ], "default": 1 } }, "OverridePointerMode": { "schema": { "title": "Enable Tablet Mode", "description": "Display larger ribbon buttons that are easier to touch", "type": "number", "enum": [ 1, 2 ], "enumLabels": [ "off", "on" ], "default": 1 } } } }, "configure.ribbons": { "type": "gpii.settingsHandlers.remoteFileSettingsHandler", "liveness": "live", "options": { "settings": { "word-ribbon": { "path": "${{environment}.LOCALAPPDATA}\\Microsoft\\Office\\Word.officeUI", "url": "https://raw.githubusercontent.com/GPII/gpii-assets/master/dataBlocks/officeRibbon/Word%20%value.xml", "cache": true }, "excel-ribbon": { "path": "${{environment}.LOCALAPPDATA}\\Microsoft\\Office\\Excel.officeUI", "url": "https://raw.githubusercontent.com/GPII/gpii-assets/master/dataBlocks/officeRibbon/Excel%20%value.xml", "cache": true } } }, "capabilitiesTransformations": { "word-ribbon": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.office.word-ribbon", "excel-ribbon": "http://registry\\.gpii\\.net/applications/com\\.microsoft\\.office.excel-ribbon" }, "supportedSettings": { "word-ribbon": { "schema": { "title": "Word Ribbon Layout", "description": "Specifies the custom layout of the ribbon and quick access toolbar for Word", "enum": [ "StandardSet", "Basics+StandardSet", "Essentials+StandardSet", "Basics+Essentials+StandardSet" ], "enumLabels": [ "Standard Set", "Basics and Standard Set", "Essentials and Standard Set", "Basic, Essentials, and Standard Set" ], "default": "StandardSet" } }, "excel-ribbon": { "schema": { "title": "Excel Ribbon Layout", "description": "Specifies the custom layout of the ribbon and quick access toolbar for Excel", "enum": [ "StandardSet", "Basics+StandardSet", "Essentials+StandardSet", "Basics+Essentials+StandardSet" ], "enumLabels": [ "Standard Set", "Basics and Standard Set", "Essentials and Standard Set", "Basic, Essentials, and Standard Set" ], "default": "StandardSet" } } } } }, "configure": [ "settings.configure.ribbons", "settings.configure.common-tabletmode", { type: "gpii.windows.office.reloadRibbon", application: "Word" } ], "restore": [ "settings.configure.ribbons", "settings.configure.common-tabletmode", { type: "gpii.windows.office.reloadRibbon", application: "Word" } ], "isInstalled": [ { "type": "gpii.deviceReporter.alwaysInstalled" } ] } }