Giter VIP home page Giter VIP logo

telenvda's Introduction

Introduction

Welcome to the TeleNVDA addon, which will allow you to connect to another computer running the free NVDA screen reader. With this add-on, you can connect to another person's computer, or allow a trusted person to connect to your system to perform routine maintenance, diagnose a problem, or provide training. This add-on is a modified version of the NVDA Remote add-on, and is maintained by the NVDA spanish community. It's fully compatible with NVDA Remote. These are the current differences:

  • An option allows blocking remote speech commands different from text.
  • Improved support for proxy servers and TOR hidden services (Proxy support add-on is required).
  • Ability to change the f11 key to another gesture. Now this works as a common script so, you can assign gestures in the "Input Gestures" dialog.
  • Ability to ignore the next immediate gesture completely, it is useful if you need to send to the remote machine the gesture used to toggle between host and remote machine.
  • Several bug fixes.

Before You Begin

You will need to have installed NVDA on both computers, and obtain the TeleNVDA addon. The installation of both NVDA and the TeleNVDA addon are standard. If you need more information, this can be found in NVDA's User Guide.

Updating

When updating the addon, if you have installed TeleNVDA on the secure desktop, it is recommended that you also update the copy on the secure desktop. To do this, first update your existing addon. Then open the NVDA menu, preferences, General settings, and press the button labeled "Use currently saved settings on the logon and other secure screens (requires administrator privileges)".

Starting a remote session through a relay server

On the computer to be controlled

  1. Open the NVDA menu, Tools, Remote, Connect.
  2. Choose client in the first radio button.
  3. Select Allow this machine to be controlled in the second set of radio buttons.
  4. In the host field, enter the host of the server you are connecting to, for example remote.nvda.es. When the particular server uses an alternative port, you can enter the host in the form <host>:<port>, for example remote.nvda.es:1234. If you are connecting to an IPV6 address, enter it between square brackets, for example [2603:1020:800:2::32].
  5. Enter a key into the key field, or press the generate key button. The key is what others will use to control your computer. The machine being controlled and all its clients need to use the same key.
  6. Press ok. Once done, you will hear a tone and connected. If the server includes a message of the day, it will be displayed in a dialog box. You will see this dialog everytime you connect or only the first time, depending on the server configuration.

On the machine that is to be the controlling computer

  1. Open the NVDA menu, Tools, Remote, Connect.
  2. Choose client in the first radio button.
  3. Select Control another machine in the second set of radio buttons.
  4. In the host field, enter the host of the server you are connecting to, for example remote.nvda.es. When the particular server uses an alternative port, you can enter the host in the form <host>:<port>, for example remote.nvda.es:1234. If you are connecting to an IPV6 address, enter it between square brackets, for example [2603:1020:800:2::32].
  5. Enter a key into the key field, or press the generate key button. The machine being controlled and all its clients need to use the same key.
  6. Press ok. Once done, you will hear a tone and connected. If the server includes a message of the day, it will be displayed in a dialog box. You will see this dialog everytime you connect or only the first time, depending on the server configuration.

Connection security warning

If you connect to a server without a valid SSL certificate, you will receive a connection security warning. This may mean that your connection is insecure. If you trust this server fingerprint, you can press "Connect" to connect once, or "Connect and do not ask again for this server" to connect and save the fingerprint.

Direct connections

The server option in the connect dialog allows you to set up a direct connection. Once selecting this, select which mode your end of the connection will be in. The other person will connect to you using the opposite.

Once the mode is selected, you can use the Get External IP button to get your external IP address and make sure the port which is entered in the port field is forwarded correctly. If portcheck detects that your port (6837 by default) is not reachable, a warning will appear. Forward your port and try again. Note: The process for forwarding ports is outside of the scope of this document. Please consult the information provided with your router for further instruction.

Enter a key into the key field, or press generate. The other person will need your external IP along with the key to connect. If you entered a port other than the default (6837) in the port field, make sure that the other person appends the alternative port to the host address in the form <external ip>:<port>.

Once ok is pressed, you will be connected. When the other person connects, you can use NVDA Remote normally.

Controlling the remote machine

Once the session is connected, the user of the controlling machine can press f11 to start controlling the remote machine (e.g. by sending keyboard keys or braille input). This gesture can be changed from NVDA Input Gestures Dialog. When NVDA says controlling remote machine, the keyboard and braille display keys you press will go to the remote machine. Furthermore, when the controlling machine is using a braille display, information from the remote machine will be displayed on it. Press f11 again to stop sending keys and switch back to the controlling machine. For best compatibility, please ensure that the keyboard layouts on both machines match.

Sharing your session

To share a link so someone else can easily join your TeleNVDA session, select Copy Link from the Remote menu. IF you are connected as the controlling computer, this link will allow someone else to connect and be controlled. If instead you have set up your computer to be controlled, the link will allow people who you share it with to control your machine. Many applications will allow users to activate this link automatically, but if it does not run from within a specific app, it can be coppied to the clipboard and run from the run dialog.

Send Ctrl+Alt+Del

While sending keys, it is not possible to send the CTRL+Alt+del combination normally. If you need to send CTRL+Alt+del, and the remote system is on the secure desktop, use this command.

Send toggle key between local and remote computer

Usually when you press the assigned gesture to switch between the local and the remote machine, it won't be sent to the remote machine; it will switch between the local machine and the remote machine instead.

If you need to send this or any gesture to the remote machine, you can override this behavior for the next immediate gesture by activating the ignore next gesture script.

By default, this script is assigned to the control + f11 key. This gesture can be changed from NVDA Input Gestures Dialog.

When this script is called, the next gesture will be ignored and will be sent to the remote machine, including the gesture to activate the ignore next gesture script. Once the next gesture has been sent, it will return to the usual behavior.

Remotely Controlling an Unattended Computer

Sometimes, you may wish to control one of your own computers remotely. This is especially helpful if you are traveling, and you wish to control your home PC from your laptop. Or, you may want to control a computer in one room of your house while sitting outside with another PC. A little advanced preparation makes this convenient and possible.

  1. Enter the NVDA menu, and choose Tools, then Remote. Finally, press Enter on Options.
  2. Check the box that says, "Auto connect to control server on startup".
  3. Select whether to use a remote relay server or to locally host the connection.
  4. Select Allow this machine to be controlled in the second set of radio buttons.
  5. If you host the connection yourself, you will need to ensure that the port entered in the port field (6837 by default) on the controlled machine can be accessed from the controlling machines.
  6. If you wish to use a relay server, Fill in both the Host and Key fields, tab to OK, and press Enter. The Generate Key option is not available in this situation. It is best to come up with a key you will remember so you can easily use it from any remote location.

For advanced use, you can also configure NVDA Remote to automatically connect to a local or remote relay server in controlling mode. If you want this, select Control another machine in the second set of radio buttons.

Note: The autoconnect at startup-related options in the options dialog do not apply until NVDA is restarted.

Muting Speech on the Remote Computer

If you do not wish to hear the remote computer's speech or NVDA specific sounds, simply access the NVDA menu, Tools, and Remote. Arrow down to Mute Remote, and press Enter. Please note that this option will not disable remote braille output to the controlling display when the controlling machine is sending keys.

Ending a remote Session

To end a remote session, do the following:

  1. On the controlling computer, press F11 to stop controlling the remote machine. You should hear or read the message: "Controlling local machine." If you instead hear or read a message that you are controlling the remote machine, press F11 once more.
  2. Access the NVDA menu, then Tools, Remote, and press Enter on Disconnect.

Alternatively, you can press NVDA+alt+page down to directly disconnect the session. This gesture can be changed from NVDA Input Gestures Dialog. To keep the other end safe, you may press this gesture while sending keys to disconnect the remote computer.

Push clipboard

The Push clipboard option in the remote menu allows you to push text from your clipboard. when activated, any text on the clipboard will be pushed to the other machines.

Sending files

The Send file option in the remote menu allows you to send small files to all session members, including the controlled machine. Please note, you can only send files smaller than 10 MB. Sending or receiving files on secure screens is not allowed. When the file is received on the remote machines, a Save as dialog will pop up, allowing you to choose where to save the file.

Configuring TeleNVDA to Work on a Secure Desktop

In order for TeleNVDA to work on the secure desktop, the addon must be installed in the NVDA running on the secure desktop.

  1. From the NVDA menu, select Preferences, then General Settings.
  2. Tab to the Use Currently Saved Settings on the Logon and Other Secure Screens (requires administrator privileges) button, and press Enter.
  3. Answer Yes to the prompts regarding copying your settings and about copying plugins, and respond to the User Account Control prompt that may appear.
  4. When settings are copied, press Enter to dismiss the OK button. Tab to OK and Enter once more to exit the dialog.

Once TeleNVDA is installed on the secure desktop, if you are currently being controlled in a remote session, you will have speech and braille access to the secure desktop when switched to.

Clearing SSL certificate fingerprints

If you no longer want to trust the server fingerprints you've trusted, you can clear all of the trusted fingerprints by pressing the "Delete all trusted fingerprints" button in the Options dialog.

Altering TeleNVDA

This project is covered by the GNU General Public License, version 2 or later. You may clone this repo to make alteration to TeleNVDA, provided that you read, understand and respect the license terms.

3rd Party dependencies

These can be installed with pip:

  • Markdown
  • scons

In order to build the URL handler executable, you need Visual Studio 2019 or later.

To package the add-on for distribution:

  1. Open a command line, change to the root of this repo
  2. Run the scons command. The created add-on, if there were no errors, is placed in the current directory.

telenvda's People

Contributors

beqabeqa473 avatar cary-rowen avatar christianlm avatar cobc avatar ctoth avatar davidacm avatar dpy013 avatar feerrenrut avatar florianionascu7 avatar heidari78 avatar ivnc avatar jcsteh avatar jmdaweb avatar josephsl avatar kvark128 avatar leonardder avatar nardol avatar nidza07 avatar nishimotz avatar oaron avatar pvagner avatar school510587 avatar seanbudd avatar surfer0627 avatar tsengwoody avatar tspivey avatar vgjh2005 avatar yplassiard-accessolutions avatar zahyur avatar zstanecic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.