hterm 1.52: Treat Ctrl-Alt as AltGr

* Assume that Ctrl-Alt-[Printable] means AltGr-[Printable].  After this change,
  we ignore the ctrl/alt modifiers when they appear in keydown, leaving it
  up to the browser to send the correct key code in the keypress event.  This
  fixes a longstanding issue with international keyboards where users could
  not type characters/symbols that required use of AltGr.

  We will still have trouble on the mac, which does not set Ctrl+Alt when
  AltGr is used.


Change-Id: I6040a37a1f8abdcf9e8caedbf32b2500f7b5fc21
Reviewed-by: Marius Schilder <>
Tested-by: Rob Ginda <>
2 files changed
tree: 35a9bb788724863e56bae217f59cc72d0e02869b
  1. .gitignore
  4. hterm/
  5. libdot/
  6. nassh/
  7. package.json
  8. saltpig/
  9. wam/
  10. wash/


This repository contains the libdot JavaScript library and some web applications that make use of it.

The official copy of this repository is hosted at

There is also a mirror on github at Keep in mind that this mirror may occasionally be behind the official repository.

All changes must go through the Gerrit code review server on Github pull requests cannot be accepted. Please see the document in this directory for the details.

Top level directories

  • libdot/ is a small set of JS libraries initially developed as part of hterm, now available as shared code. It provides a base layer for web applications. The code is intended to work in any modern browser, in either a plain web page or a “privileged” environment such as a Chrome platform application or Firefox extension. In practice, it's only been put to use in Chrome platform applications so far.

  • hterm/ is a JS library that provides a terminal emulator. It is reasonably fast, reasonably correct, and reasonably portable across browsers.

  • nassh/ is a Chrome App (currently a “v1.5” app, soon to become a “v2” or platform app) that combines hterm with a NaCl build of OpenSSH to provide a PuTTY-like app for Chrome users.

  • wash/ is a library for cross-origin virtual filsystems, similar to the Plan 9 filesystem. This directory also contains a simple bash-like shell environment for exploring these filesystems. The code in this directory is a work-in-progress.