dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 1 | # ChromeVox on Desktop Linux |
| 2 | |
| 3 | ## Starting ChromeVox |
| 4 | |
| 5 | On Chrome OS, you can enable spoken feedback (ChromeVox) by pressing Ctrl+Alt+Z. |
| 6 | |
| 7 | If you have a Chromebook, this gives you speech support built-in. If you're |
| 8 | building Chrome from source and running it on desktop Linux, speech and braille |
| 9 | won't be included by default. Here's how to enable it. |
| 10 | |
| 11 | ## Compiling the Chrome OS version of Chrome |
| 12 | |
| 13 | First follow the public instructions for |
| 14 | [Chrome checkout and build](https://www.chromium.org/developers/how-tos/get-the-code). |
| 15 | |
| 16 | Create a GN configuration with "chromeos" as the target OS, for example: |
| 17 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 18 | ``` |
| 19 | gn args out/cros |
| 20 | ``` |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 21 | |
| 22 | ...in editor, add this line: |
| 23 | |
| 24 | ``` |
| 25 | target_os = "chromeos" |
| 26 | is_component_build = true |
| 27 | is_debug = false |
| 28 | ``` |
| 29 | |
| 30 | Note: Only ```target_os = "chromeos"``` is required, the others are recommended |
| 31 | for a good experience but you can configure Chrome however you like otherwise. |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 32 | Note that Native Client is required, so do not put `enable_nacl = false` in |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 33 | your file anywhere! |
| 34 | |
| 35 | Now build Chrome as usual, e.g.: |
| 36 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 37 | ``` |
| 38 | ninja -C out/cros chrome |
| 39 | ``` |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 40 | |
| 41 | And run it as usual to see a mostly-complete Chrome OS desktop inside |
| 42 | of a window: |
| 43 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 44 | ``` |
| 45 | out/cros/chrome |
| 46 | ``` |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 47 | |
| 48 | By default you'll be logged in as the default user. If you want to |
| 49 | simulate the login manager too, run it like this: |
| 50 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 51 | ``` |
| 52 | out/cros/chrome --login-manager |
| 53 | ``` |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 54 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 55 | You can run any of the above under it’s own X session (avoiding any window |
| 56 | manager key combo conflicts) by doing something like |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 57 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 58 | ``` |
| 59 | startx out/cros/chrome |
| 60 | ``` |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 61 | |
| 62 | ## Speech |
| 63 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 64 | If you want speech, you just need to copy the speech synthesis data files to |
| 65 | /usr/share like it would be on a Chrome OS device: |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 66 | |
| 67 | ``` |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 68 | sudo git clone https://chromium.googlesource.com/chromiumos/platform/assets /usr/share/chromeos-assets |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 69 | ``` |
| 70 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 71 | Change the permissions: |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 72 | |
| 73 | ``` |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 74 | sudo find /usr/share/chromeos-assets -type f -exec chmod 644 {} \; |
| 75 | sudo find /usr/share/chromeos-assets -type d -exec chmod 755 {} \; |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 76 | ``` |
| 77 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 78 | Next, unzip the NaCl executables. You only need to do the one for your host |
| 79 | architecture: |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 80 | |
| 81 | ``` |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 82 | PATTS_DIR=/usr/share/chromeos-assets/speech_synthesis/patts |
Katie D | 11cc61c | 2018-01-19 17:57:45 | [diff] [blame] | 83 | sudo unzip $PATTS_DIR/tts_service_x86_64.nexe.zip -d $PATTS_DIR |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 84 | ``` |
| 85 | |
Katie Dektar | 8ea0d42 | 2017-09-18 19:45:17 | [diff] [blame] | 86 | You may need to update permissions for the unzipped files within within |
| 87 | speech_synthesis/patts: |
| 88 | |
| 89 | ``` |
| 90 | sudo find $PATTS_DIR -type f -exec chmod 755 {} \; |
| 91 | ``` |
| 92 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 93 | **Be sure to check permissions of /usr/share/chromeos-assets, some users report |
| 94 | they need to chmod or chown too, it really depends on your system.** |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 95 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 96 | After you do that, just run "chrome" as above (e.g. out/cros/chrome) and press |
| 97 | Ctrl+Alt+Z, and you should hear it speak! If not, check the logs. |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 98 | |
| 99 | ## Braille |
| 100 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 101 | ChromeVox uses extension APIs to deliver braille to Brltty through libbrlapi |
| 102 | and uses Liblouis to perform translation and backtranslation. |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 103 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 104 | Once built, Chrome and ChromeVox will use your machine’s running Brltty |
| 105 | daemon to display braille if ChromeVox is running. Simply ensure you have a |
| 106 | display connected before running Chrome and that Brltty is running. |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 107 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 108 | Testing against the latest releases of Brltty (e.g. 5.4 at time of writing) is |
| 109 | encouraged. |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 110 | |
| 111 | For more general information, see [ChromeVox](chromevox.md) |
| 112 | |
| 113 | # Using ChromeVox |
| 114 | |
dbeam | 9e590b2 | 2017-03-02 07:11:20 | [diff] [blame] | 115 | ChromeVox keyboard shortcuts use Search. On Linux that's usually your Windows |
| 116 | key. If some shortcuts don't work, you may need to remove Gnome keyboard |
| 117 | shortcut bindings, or use "startx", as suggested above, or remap it. |
dmazzoni | 2f48975 | 2017-02-16 03:39:16 | [diff] [blame] | 118 | |
| 119 | * Search+Space: Click |
| 120 | * Search+Left/Right: navigate linearly |
| 121 | * Search+Period: Open ChromeVox menus |
| 122 | * Search+H: jump to next heading on page |