Accent Manager NVDA Add-on

Overview

The Accent Manager add-on for NVDA provides a convenient way to insert accented characters without relying on the Windows international keyboard, which can be cumbersome and prone to accidental layout changes. This add-on is especially useful for typing names and words with accents in various languages.

Features

Usage Instructions

  1. Activate Accent Manager

  2. Press NVDA + / (NVDA key and slash) to enter Accent Manager mode.

  3. Select Accent Type

  4. Use Up Arrow and Down Arrow to cycle through accent types:

  5. Acute (e.g., á, é, í)
  6. Tilde (e.g., ã, ñ, õ)
  7. Grave (e.g., à, è, ì)

  8. Toggle Capitalization

  9. Press NVDA + c to toggle between uppercase and lowercase accented characters.

  10. Insert Accented Characters

  11. Type the letter you want to accent (a, e, i, n, o, u). The corresponding accented character will be added to the buffer.

  12. If the accent/letter combination is not valid, NVDA will say "invalid".

  13. Delete Last Character

  14. Press Backspace to remove the last character from the buffer.

  15. Send Accented Characters

  16. When you leave Accent Manager mode by pressing escape, the buffer is sent to the application using braille input emulation. This also happens if focus moves away from the virtual UI.

Example Workflow

  1. Press NVDA + / to activate Accent Manager.
  2. Use Down Arrow to select "tilde".
  3. Press n to add "ñ" to the buffer.
  4. Press NVDA + c to enable caps, then a to add "Ã".
  5. Press Backspace to remove the last character if needed.
  6. Move focus away or finish to send the buffer to the application.

Supported Characters

| Accent Type | a | e | i | n | o | u | | ----------- | --- | --- | --- | --- | --- | --- | | Acute | á | é | í | | ó | ú | | Tilde | ã | | | ñ | õ | | | Grave | à | è | ì | | ò | ù |

Uppercase versions are available when caps is enabled.

Installation

  1. Download the latest .nvda-addon file from the releases.
  2. In NVDA, open the Tools menu > Manage add-ons.
  3. Click "Install..." and select the downloaded file.
  4. Restart NVDA when prompted.

License

See COPYING.txt for license information.

Support

For questions or issues, please open an issue on the repository or contact the author.

In addition, this template includes configuration files for the following tools for use in add-on development and testing (see "additional tools" section for details):

Requirements

You need the following software to use this code for your NVDA add-on development and packaging:

Note, that you may not need these tools in a local build environment, if you are using Appveyor or GitHub Actions, to build and package your add-ons.

Usage

To create a new NVDA add-on using this template:

  1. Create an empty folder to hold the files for your add-on.
  2. Copy the folder:

site_scons

and the following files, into your new empty folder:

buildVars.py manifest.ini.tpl manifest-translated.ini.tpl sconstruct .gitignore .gitattributes

  1. If you intend to use the provided GitHub workflow, also copy the folder:

.github

and file:

.pre-commit-config.yaml

  1. Create an addon folder inside your new folder. You will put your code in the usual folders for NVDA extensions, under the addon folder. For instance: globalPlugins, synthDrivers, etc.
  2. In the buildVars.py file, change variable addon_info with your add-on's information (name, summary, description, version, author, url, source url, license, and license URL). Also, be sure to carefully set the paths contained in the other variables in that file. If you need to use custom Markdown extensions, original add-on interface language is not English, or include custom braille translations tables, be sure to fil out markdown list, base language variable, and braille tables dictioanry, respectively.
  3. Gettext translations must be placed into addon\locale\<lang>/LC_MESSAGES\nvda.po.

Add-on manifest specification

An add-on manifest generated manually or via buildVars.py must include the following information:

In addition, the following information must be filled out (not used in the manifest but used elsewhere such as add-on store) in buildVars:

Custom add-on information

In addition to the core manifest data, custom add-on information can be specified.

Braille translation tables

Information on custom braille tables must be specified in buildVars under brailleTables dictionary as follows:

Note: you must fill out this dictionary if at least one custom braille table is included in the add-on. If not, leave the dictionary empty.

Speech symbol dictionaries

Information on custom symbol dictionaries must be specified in buildVars under symbolDictionaries dictionary as follows:

Note: you must fill out this dictionary if at least one custom symbol dictionary is included in the add-on. If not, leave the dictionary empty.

To manage documentation files for your addon:

  1. Copy the readme.md file for your add-on to the first created folder, where you copied buildVars.py. You can also copy style.css to improve the presentation of HTML documents.
  2. Documentation files (named readme.md) must be placed into addon\doc\<lang>/.

To package the add-on for distribution:

  1. Open a command line, change to the folder that has the sconstruct file (usually the root of your add-on development folder) and run the scons command. The created add-on, if there were no errors, is placed in the current directory.
  2. You can further customize variables in the buildVars.py file.
  3. You can also customize version and update channel information from command line by passing the following switches when running scons:
  4. version: add-on version string of the form major.minor or major.minor.patch (all integers)
  5. channel: update channel (do not use this switch unless you know what you are doing).
  6. dev: suitable for development builds, names the add-on according to current date (yyyymmdd) and sets update channel to "dev".

Additional tools

The template includes configuration files for use with additional tools such as linters. These include:

Read the documentation for the tools you wish to use when building and developing add-ons.

Note that this template only provides a basic add-on structure and build infrastructure. You may need to adapt it for your specific needs such as using additional tools.

If you have any issues please use the NVDA addon list mentioned above.