1# ChromeVox on Desktop Linux 2 3## Starting ChromeVox 4 5On Chrome OS, you can enable spoken feedback (ChromeVox) by pressing Ctrl+Alt+Z. 6 7If you have a Chromebook, this gives you speech support built-in. If you're 8building Chrome from source and running it on desktop Linux, speech and braille 9won't be included by default. Here's how to enable it. 10 11## Compiling the Chrome OS version of Chrome 12 13First follow the public instructions for 14[Chrome checkout and build](https://www.chromium.org/developers/how-tos/get-the-code). 15 16Edit `.gclient` (in `chromium/`) and at the bottom add: 17 18``` 19target_os = ["chromeos"] 20``` 21 22Run `gclient sync` to update your checkout. 23 24Then create a GN configuration with "chromeos" as the target OS, for example: 25 26``` 27gn args out/cros 28``` 29 30...in editor, add this line: 31 32``` 33target_os = "chromeos" 34is_component_build = true 35is_debug = false 36``` 37 38Note: Only ```target_os = "chromeos"``` is required, the others are recommended 39for a good experience but you can configure Chrome however you like otherwise. 40Note that Native Client is required, so do not put `enable_nacl = false` in 41your file anywhere! 42 43Now build Chrome as usual, e.g.: 44 45``` 46autoninja -C out/cros chrome 47``` 48 49And run it as usual to see a mostly-complete Chrome OS desktop inside 50of a window: 51 52``` 53out/cros/chrome 54``` 55 56By default you'll be logged in as the default user. If you want to 57simulate the login manager too, run it like this: 58 59``` 60out/cros/chrome --login-manager 61``` 62 63You can run any of the above under it’s own X session (avoiding any window 64manager key combo conflicts) by doing something like 65 66``` 67startx out/cros/chrome 68``` 69 70NOTE: if you decide to run Chrome OS under linux within a window manager, you 71are subject to its keybindings which will most certainly conflict with 72ChromeVox. The Search key (which gets mapped from LWIN/key code 91), usually 73gets assigned to numerous shortcut combinations. You can manually disable all 74such combinations, or run under X as described above. 75 76## Speech 77 78If you want speech, you just need to copy the speech synthesis data files to 79/usr/share like it would be on a Chrome OS device: 80 81``` 82gsutil ls gs://chromeos-localmirror/distfiles/googletts* 83``` 84 85Pick the latest version and 86 87``` 88gsutil cp gs://chromeos-localmirror/distfiles/googletts-13.1.tar.xz /usr/share/chromeos-assets/speech_synthesis/patts/ 89tar xvf /usr/share/chromeos-assets/speech_synthesis/patts/googletts-13.1.tar.xz 90rm /usr/share/chromeos-assets/speech_synthesis/patts/googletts-13.1.tar.xz 91``` 92 93**Be sure to check permissions of /usr/share/chromeos-assets, some users report 94they need to chmod or chown too, it really depends on your system.** 95 96After you do that, just run "chrome" as above (e.g. out/cros/chrome) and press 97Ctrl+Alt+Z, and you should hear it speak! If not, check the logs. 98 99### eSpeak 100 101To get [eSpeak](espeak.md) on Chrome OS on Desktop Linux, copy the eSpeak 102extension (chrome branch) to the same place: 103 104``` 105cd ~ 106git clone https://chromium.googlesource.com/chromiumos/third_party/espeak-ng 107cd espeak-ng 108git checkout chrome 109sudo cp -r chrome-extension /usr/share/chromeos-assets/speech_synthesis/espeak-ng 110``` 111 112## Braille 113 114ChromeVox uses extension APIs to deliver braille to Brltty through libbrlapi 115and uses Liblouis to perform translation and backtranslation. 116 117Once built, Chrome and ChromeVox will use your machine’s running Brltty 118daemon to display braille if ChromeVox is running. Simply ensure you have a 119display connected before running Chrome and that Brltty is running. 120 121Note you may need to customize brltty.conf (typically found in /etc). 122In particular, the api-parameters Auth param may exclude the current user. 123You can turn this off by doing: 124api-parameters Auth=none 125 126Testing against the latest releases of Brltty (e.g. 5.4 at time of writing) is 127encouraged. 128 129For more general information, see [ChromeVox](chromevox.md) 130 131# Using ChromeVox 132 133ChromeVox keyboard shortcuts use Search. On Linux that's usually your Windows 134key. If some shortcuts don't work, you may need to remove Gnome keyboard 135shortcut bindings, or use "startx", as suggested above, or remap it. 136 137* Search+Space: Click 138* Search+Left/Right: navigate linearly 139* Search+Period: Open ChromeVox menus 140* Search+H: jump to next heading on page 141