Modifier keys (such as AltGr-f for [, AltGr-c for &) not supported on Windows
Description
When pressing the key sequences AltGr-f, AltGr-c, AltGr-m, etc. (for [, & and < characters, respectively), the cursor blinks but nothing happens, the requested characters are not typed in.
Environment
- Contour Version or Git commit hash:
v0.1.0_prerelease_120c2add127c061327876b718b61c2a1f3b94b274c1 - Operating System (name / distribution / version): Windows 10 x64 1909
- Contour configuration: default (? I think... I did not change anything.)
- TERM environment variable:
xterm-256color - Compiler version: N/A (Installed from release)
- Keyboard layout:
huHU
By default, the terminal starts PowerShell. The modifier characters work in the standard PowerShell window. I'm ssh over to a Linux machine, but it doesn't help the case. (Normal Git Bash MINTTY works properly.)
Steps to Reproduce
- Download release version for Windows, and unpack it.
- Start
bin/Contour.exe - Try to type in
&by pressingAltGr-c, observe nothing happens.
A few more context. I have tried the same workflow but with enUS layout, and that one works fine. (*)
I've also tried with ruRU in three modes supported on Windows, both the standard YeTseUKE, the "QWERTY-fied" phonetic called YaShERT and the Win10-specific "mnenomic keyboard" (where you type out latinised words on a normal QWERTY keyboard but it rewrites them to Russian more or less..., e.g. typing moq cobaka sidit becomes моя собака сидит) and the only thing that is produced in lieu of the Cyrillic letters are a bunch of ???.
Turning over to cmd.exe after Countour spun up PowerShell doesn't help either, furthering driving the point home that this is a feature missing from here.
Unfortunately, the only Linux machine I can get to right now is too old (Debian 10) to install the dependencies needed.
(*): Sadly, I can't get used to the enUS layout when it comes to programming, the special symbol keys are just way too close to one another I constantly mistype them. When I was a child, our first computer that I had access to, for some weird reason, had a Dvorak keyboard. Then I went to school and they had stupid QWERTZ keyboards and in the past decades I've completely forgotten Dvorak. ☹️
Using 0.1.1 now!
I've tried this out on Linux. As Ubuntu 18.04 release is still the one from the past year with too new and nonexistent dependencies wanted, what I did was to install contour inside a Docker Ubuntu 20.04 and inject the X screen inside the docker.
It works fancy this way.
However, on the topic of modifier sequences. Let's imagine I want to type [[&&ááőőóóű]].
[ is AltGr-F, & is AltGr-c, ] is AltGr-G. á is the second button to the right next to l so should be ' on the enUS keyboard, ő is right next to p, ó is the third to the right from 9 on the top row, and ü is the second to the right from 9 on the top row.
Inside Docker, I've run the following commands, just to ensure that stuff like á and ő work fine. Without enabling UTF-8, even the standard Bash prompt inside Docker will reject and misinterpret the character sequences.
RUN apt-get install -fy locales
RUN export DEBIAN_FRONTEND=noninteractive; \
sed -i -e "s/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/" /etc/locale.gen && \
dpkg-reconfigure --frontend=noninteractive locales && \
update-locale LANG=en_US.UTF-8
ENV LANG en_US.UTF-8
I've also ran apt-get install -fy keyboard-configuration and selected the 47. Hungarian option.
My main machine is set to the en_US.UTF-8 value too, except for dates and such, where hu_HU is used. (The latter just ensures the date format is not the weird USA one but a proper European one, but that is irrelevant to the char sequence issue.) It is the keyboard layout that is hu_HU, the machine otherwise speaks English to me.
╰─ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
So now typing into Bash from Konsole works:

Now if I start contour, it works:

So it seems if the system is set in just the right way (with all the hassle ensuring it works fine inside Docker!) then the escape sequences are respected. It also works inside vim!
Oh that is a really precious insight. Many thanks for your detailed comment. I am currently on the making-fonts-look-awesome-spree, and this ticket (modifier keys) is most likely the next one to tame (for a satisfaction-by-default-installation).
What I wonder is, that with using Konsole it worked for you out of the box, and using contour only after your keyboard settings tweak? Maybe I am misunderstanding here? -- I'd like to provide an out-of-the-box experience, so I would want to make contour keyboard input work the same way as other major terminal emulators (at least gnome-terminal / konsole / xterm).
p.s.: do I understand that correctly, your Linux host is Ubuntu 18.04? if so, I think I should not drop 18.04 support just yet but instead really make sure it works without hassles.
Yes, that's the next comment. I've managed to hack contour up to my normal system (made a tarball, installed all the dependencies manually instead of using the release deb package), i.e. outside of Docker and whatnot.
And voilá, it works fine!

So this whole keyboard layout issue is a Windows-specific thing now. I do not have macOS to test.
Yes, I am Ubuntu 18.04, and it is very unlikely to change for a few years still. (It's corporate machine, I have no control over the base distribution.) So at least as long as Ubuntu 18.04 is supported officially (until 2023 or somesuch, it's 16.04 that is expiring this April) please don't drop support.
Okay, I'll ensure Ubuntu 18.04 then. I am also very happy that your special font symbols (left side of the prompt) are looking good. (For some installs it doesn't, and that's why I'm currently working on font-fallback improvements).
As for what Windows matters, I am currently working on a DirectWrite backend for font/text handling. I might come across your above behavior then, too, I hope. (Well, Thursday/Friday I'll be streaming some parts doing that then).
I am also very happy that your special font symbols (left side of the prompt) are looking good. (For some installs it doesn't, and that's why I'm currently working on font-fallback improvements).
It is ZSH with Powerlevel9k, and I have never configured that specific glyph, so I guess it's their default for multiline prompts.
In general, I use both Fira Code and JetBrains Mono for the terminal fonts, but nowadays I settled more on JetBrains Mono. I've set the configuration variable for the font in my ContourRC. I do have POWERLEVEL9K_MODE=awesome-fontconfig set, but I do not remember having installed any specific font...
However, I do have some fonts that have specific glyphs, as Powerline does show Git icons and such:

I do have a few fonts like Inconsolate or Liberation Sans installed systemwide because of LaTeX so these might be from there... Not sure.
Using release https://github.com/contour-terminal/contour/releases/tag/v0.3.9.250, this is still a thing. The odd part is that in PowerShell the modifier keys work nicely, but once you SSH away to any system whatsoever (we tried this with several configurations, different Windows machines, different remote machines, Debian, Ubuntu, RedHat, SUSE, etc., various versions in a corporate setting, SSH and local WSL...) it just breaks apart.
I'm trying this with both my own configuration, and the default one, same result.

cat itself does loopback some escape sequences on every key press. But these are not useful when typing into a shell, or a complex program like Vim.

The odd thing is that it looks like AltGr-f (which is the sequence for [) is somewhat special, like as if it worked as a meta escape key. Pressing any usual AltGr-character after having press AltGr-f-w, for example, results in a | character. (Which should happen with AltGr-w normally.) This consistently happens with every such sequence:

This seems to be specific to something on Windows... Exact same contour configs SSHing to a remote Unix-based machine from another Unix-based machine (e.g. from Ubuntu to Debian, Ubuntu to RedHat, Debian to Ubuntu, etc.) works normally.
I think this picture is the best way I can sum it up, that you can see I pressed [ twice and yet only one appeared on the remote side:

N.b.: Git Bash, unlike Contour, is not sending magical escape sequences to the input stream of cat:

FYI: You can type <kbd>Drücken</kbd> to get Drücken. 🤣
P.S.: @gamesh411 You might be interested in tracking this...
Trying again with mayhaps newer versions.
- Windows 10 Version 22H2 (OS Build 19045.3448)
- Contour 0.4.0.5652-win64
- OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
Using the default configuration as created by the aforementioned version. Same behaviour:
- Everything works locally in PowerShell, the issues only creep up when an SSH to remote machines (some the previously used ones, some also brand new, I even tried SSHing into a brand new Ubuntu 22.04 VM...) is created
-
AltGr-C for
&, AltGr-Q for\do not appear in neither Bash, nor ZSH. In the Contour log output, the following is shown:
[2023-09-26 09:16:51.2136217.213621] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:16:51.2139039.213903] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:16:51.3703810.370380] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:16:51.3708115.370811] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:16:53.4420067.442006] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:16:53.4424083.442408] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:16:53.7131816.713181] [gui.input] Character press event received: Alt,Control &
[2023-09-26 09:16:53.7133227.713322] [vt.input] Sending Alt,Control "&".
- If I open a
caton the remote side and do the exact same keypresses: AltGr-C, AltGr-Q, I do end up seeing something in the remote end and in the logs:
$ cat
^[&^[\
[2023-09-26 09:19:12.6894659.689465] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:19:12.6897002.689700] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:19:13.0317126.031712] [gui.input] Character press event received: Alt,Control &
[2023-09-26 09:19:13.0319270.031926] [vt.input] Sending Alt,Control "&".
[2023-09-26 09:19:13.0961487.096148] [vt.rasterizer] Shaped codepoints (Text): ^[& (U+005E/0 U+005B/1 U+0026/2)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (314+0+0|8+0)
[2023-09-26 09:19:13.1893416.189341] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:19:13.1901748.190174] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:19:13.2516626.251662] [vt.rasterizer] Shaped codepoints (Text): ^[&^[\ (U+005E/0 U+005B/1 U+0026/2 U+005E/3 U+005B/4 U+005C/5)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (314+0+0|8+0) (587+0+0|8+0) (387+0+0|8+0) (590+0+0|8+0)
- the same weirdness with AltGr-F
[acting like an "escape" character still applies. Put simply, if I press it before any previously mentioned sequence, e.g. doing AltGr-F-F, I do get a[to appear in Bash, sh, or Zsh, with the following log output. Note that the frontend also emits a beep here. Only[seems to exhibit this behaviour! (I.e., AltGr-Q-Q will NOT create a\.)
[2023-09-26 09:21:38.0027016.002701] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:21:38.0034961.003496] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:21:38.2718188.271818] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:21:38.2720434.272043] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:21:38.3840317.384031] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:21:38.3842900.384290] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:21:38.4415353.441535] [vt.trace.sequence] control U+07 (Bell, Alert)
- similarly, creating a
\(normally AltGr-Q) via first escaping by AltGr-F-Q
[2023-09-26 09:23:14.5057878.505787] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:23:14.5063180.506317] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:23:14.7980553.798055] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:23:14.7983462.798346] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:23:14.9792741.979274] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:23:14.9799585.979958] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:23:15.0358632.035863] [vt.trace.sequence] control U+07 (Bell, Alert)
[2023-09-26 09:23:15.0517022.051702] [vt.rasterizer] Shaped codepoints (Text): \ (U+005C/0)
with metrics: (590+0+0|8+0)
The same sequences AltGr-F-F and AltGr-F-Q executed if the target program running in the remote server is not bash, sh, or zsh, but cat:
$ cat
^[[^[[
^[[^[\
^C
[2023-09-26 09:24:11.3644186.364418] [gui.input] Character press event received: None c
[2023-09-26 09:24:11.4326654.432665] [gui.input] Character press event received: None a
[2023-09-26 09:24:11.5223688.522368] [gui.input] Character press event received: None t
[2023-09-26 09:24:11.7691265.769126] [gui.input] Character press event received: None \r
[2023-09-26 09:24:11.8253249.825324] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:24:11.8260498.826049] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:24:13.8170600.817059] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:24:13.8174883.817488] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:24:14.2216298.221629] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:24:14.2218958.221895] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:24:14.5363445.536344] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:24:14.5366059.536605] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:24:14.5998498.599849] [vt.rasterizer] Shaped codepoints (Text): ^[[^[[ (U+005E/0 U+005B/1 U+005B/2 U+005E/3 U+005B/4 U+005B/5)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0) (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0)
[2023-09-26 09:24:16.6740493.674049] [gui.input] Character press event received: None \r
[2023-09-26 09:24:16.7305414.730541] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:24:16.7308769.730876] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:24:16.7443370.744336] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:24:16.7464461.746446] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:24:17.3950803.395080] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:24:17.3957529.395752] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:24:17.7771550.777154] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:24:17.7773623.777362] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:24:18.1366247.136624] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:24:18.1372993.137299] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:24:18.1987354.198735] [vt.rasterizer] Shaped codepoints (Text): ^[[^[\ (U+005E/0 U+005B/1 U+005B/2 U+005E/3 U+005B/4 U+005C/5)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0) (587+0+0|8+0) (387+0+0|8+0) (590+0+0|8+0)
[2023-09-26 09:24:18.9240296.924029] [gui.input] Character press event received: None \r
[2023-09-26 09:24:18.9812136.981213] [vt.trace.sequence] text: " cat^[[^[[^[[^[\"
[2023-09-26 09:24:18.9818336.981833] [vt.trace.sequence] Processing RM CSI 25 l
[2023-09-26 09:24:18.9820976.982097] [vt.parser] Unsupported VT sequence: CSI 25 l
[2023-09-26 09:24:18.9822453.982245] [vt.trace.sequence] Processing CUP CSI 6;1 H
[2023-09-26 09:24:18.9823987.982398] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:24:19.4649078.464907] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:24:19.4877296.487729] [gui.input] Character press event received: Control C
[2023-09-26 09:24:19.5641168.564116] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:24:19.5647657.564765] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:24:19.6839359.683935] [vt.trace.sequence] text: "^C"
For comparison, doing the following input using Git Bash (remote TERM=xterm) results in the following output:
AltGr-F ␣ SPACE AltGr-Q ␣ SPACE ␣ SPACE AltGr-F-F ␣ SPACE AltGr-F-Q ␣ SPACE Ctrl-C
c a t ⏎ RETURN AltGr-F ⏎ RETURN AltGr-Q ⏎ RETURN ⏎ RETURN AltGr-F-F ⏎ RETURN AltGr-Fsh-Q ⏎ RETURN Ctrl-C
And the previous sequences using Contour (remote TERM=contour, but remote TERM=xterm produces the same result):
[2023-09-26 09:31:35.0519039.051903] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:35.0526446.052644] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:35.1857501.185749] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:35.1860836.186083] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:35.2556916.255691] [vt.rasterizer] Shaped codepoints (Text): ^[[ (U+005E/0 U+005B/1 U+005B/2)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0)
[2023-09-26 09:31:35.2590301.259030] [vt.rasterizer] Inserting rasterized_glyph(0, 9x5+(0, 10), rgb) (bbox 9x15, numCells 1) id 587 render mode Gray Text yOverflow 0 yMin 9.
[2023-09-26 09:31:35.2608973.260897] [vt.rasterizer] Inserting rasterized_glyph(0, 5x14+(2, 11), rgb) (bbox 9x15, numCells 1) id 387 render mode Gray Text yOverflow 0 yMin 1.
[2023-09-26 09:31:35.6133050.613304] [gui.input] Character press event received: None
[2023-09-26 09:31:37.3914490.391448] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:37.3922849.392284] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:37.5038152.503815] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:31:37.5046788.504678] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:31:37.5678372.567837] [vt.rasterizer] Shaped codepoints (Text): ^[\ (U+005E/0 U+005B/1 U+005C/2)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (590+0+0|8+0)
[2023-09-26 09:31:37.9536407.953640] [gui.input] Character press event received: None
[2023-09-26 09:31:39.6632804.663280] [gui.input] Character press event received: None
[2023-09-26 09:31:40.0916270.091626] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:40.0923243.092324] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:40.2707422.270742] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:40.2710445.271044] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:40.3831664.383166] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:40.3834629.383462] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:40.4470337.447033] [vt.rasterizer] Shaped codepoints (Text): ^[[^[[ (U+005E/0 U+005B/1 U+005B/2 U+005E/3 U+005B/4 U+005B/5)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0) (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0)
[2023-09-26 09:31:42.0258034.025803] [gui.input] Character press event received: None
[2023-09-26 09:31:42.5219184.521918] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:42.5223053.522305] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:42.6105314.610531] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:42.6108165.610816] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:42.6780531.678053] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:31:42.6784536.678453] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:31:42.7401807.740180] [vt.rasterizer] Shaped codepoints (Text): ^[[^[\ (U+005E/0 U+005B/1 U+005B/2 U+005E/3 U+005B/4 U+005C/5)
with metrics: (587+0+0|8+0) (387+0+0|8+0) (387+0+0|8+0) (587+0+0|8+0) (387+0+0|8+0) (590+0+0|8+0)
[2023-09-26 09:31:43.1283960.128395] [gui.input] Character press event received: None
[2023-09-26 09:31:43.3322289.332228] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:43.4212826.421282] [gui.input] Character press event received: Control C
[2023-09-26 09:31:43.4841283.484128] [vt.rasterizer] Shaped codepoints (Text): ^C (U+005E/0 U+0043/1)
with metrics: (587+0+0|8+0) (6+0+0|8+0)
[2023-09-26 09:31:43.4917087.491708] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:43.4918971.491897] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:43.4925285.492528] [vt.trace.parser] [Unicode] Scanned text: maxCharCount 79; cells 2; bytes 2; UTF-8 (1/0): "$ "
[2023-09-26 09:31:43.4931209.493120] [vt.trace.sequence] text: (2 bytes, 2 cells): "$ "
[2023-09-26 09:31:44.1184585.118458] [gui.input] Character press event received: None c
[2023-09-26 09:31:44.2095870.209586] [gui.input] Character press event received: None a
[2023-09-26 09:31:44.2727777.272777] [vt.rasterizer] Shaped codepoints (Text): ca (U+0063/0 U+0061/1)
with metrics: (133+0+0|8+0) (131+0+0|8+0)
[2023-09-26 09:31:44.2773852.277385] [gui.input] Character press event received: None t
[2023-09-26 09:31:44.3404706.340470] [vt.rasterizer] Shaped codepoints (Text): cat (U+0063/0 U+0061/1 U+0074/2)
with metrics: (133+0+0|8+0) (131+0+0|8+0) (150+0+0|8+0)
[2023-09-26 09:31:44.4557815.455781] [gui.input] Character press event received: None \r
[2023-09-26 09:31:44.5131517.513151] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:44.5139860.513985] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:46.1664343.166434] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:46.1670155.167015] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:46.2788322.278832] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:46.2791539.279153] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:46.6609006.660900] [gui.input] Character press event received: None \r
[2023-09-26 09:31:46.7175504.717550] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:46.7181882.718188] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:46.7379704.737970] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:46.7399743.739974] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:46.9551591.955158] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:46.9561123.956112] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:47.4654672.465467] [gui.input] Input not handled for mods Alt,Control key 0x1000021
[2023-09-26 09:31:48.1681900.168189] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:31:48.1687497.168749] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:31:48.7307561.730756] [gui.input] Character press event received: None \r
[2023-09-26 09:31:48.7874294.787429] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:48.7881233.788123] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:48.8061274.806127] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:48.8077646.807764] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:50.5533758.553375] [gui.input] Character press event received: None \r
[2023-09-26 09:31:50.6146683.614668] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:50.6152289.615228] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:50.6379029.637902] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:50.6406599.640659] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:50.8246698.824669] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:50.8254631.825462] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:50.9360648.936064] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:50.9363484.936348] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:51.0487608.048760] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:51.0490145.049014] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:51.5433856.543385] [gui.input] Character press event received: None \r
[2023-09-26 09:31:51.5990868.599086] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:51.6000055.600005] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:51.6144510.614451] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:51.6163234.616323] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:51.7919655.791965] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:51.7926523.792652] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:31:51.8375269.837526] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:31:51.8377439.837743] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:31:51.9271891.927189] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:31:51.9275409.927540] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:31:52.6232819.623281] [gui.input] Character press event received: None \r
[2023-09-26 09:31:52.6794685.679468] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:52.6799468.679946] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:52.6884811.688481] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:52.6896992.689699] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:52.8939864.893986] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:31:52.9612265.961226] [gui.input] Character press event received: Control C
[2023-09-26 09:31:53.0346289.034628] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:31:53.0352410.035241] [vt.trace.sequence] control U+0A (Line Feed)
[2023-09-26 09:31:53.0358789.035878] [vt.trace.parser] [Unicode] Scanned text: maxCharCount 79; cells 2; bytes 2; UTF-8 (1/0): "$ "
[2023-09-26 09:31:53.0363862.036386] [vt.trace.sequence] text: (2 bytes, 2 cells): "$ "
For reference, here is the same keyboard sequence typed into the automatically spawned PowerShell within Contour. I can't try the cat example, sadly, because there is no such thing on Windows that's catting the stdin, as far as I can tell...
AltGr-F ␣ SPACE AltGr-Q ␣ SPACE ␣ SPACE AltGr-F-F ␣ SPACE AltGr-F-Q ␣ SPACE Ctrl-C
[2023-09-26 09:40:06.6453887.645388] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:40:06.6456257.645625] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:40:06.9819663.981966] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:40:06.9822528.982252] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:40:06.9853856.985385] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:07.0058755.005875] [vt.trace.sequence] Processing SGR CSI 91 m
[2023-09-26 09:40:07.0078789.007878] [vt.trace.sequence] Processing CUP CSI 1;17 H
[2023-09-26 09:40:07.0085160.008515] [vt.trace.sequence] text: "> "
[2023-09-26 09:40:07.0110139.011013] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:07.0114716.011471] [vt.trace.sequence] text: "["
[2023-09-26 09:40:07.0118018.011801] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:07.3195098.319509] [gui.input] Character press event received: None
[2023-09-26 09:40:07.3216270.321626] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:07.3220800.322080] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:07.3377562.337756] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:07.3400439.340043] [vt.trace.sequence] control U+08 (Backspace)
[2023-09-26 09:40:07.3406168.340616] [vt.trace.sequence] text: "["
[2023-09-26 09:40:07.3429620.342961] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:07.3432922.343292] [vt.trace.sequence] text: " "
[2023-09-26 09:40:07.3435407.343540] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:07.5000101.500010] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:40:07.5006203.500620] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:40:07.5671542.567154] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:40:07.5676266.567626] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:40:07.5693850.569384] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:07.5884971.588497] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:07.5899286.589928] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:07.5903983.590398] [vt.trace.sequence] text: "["
[2023-09-26 09:40:07.5927292.592729] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:07.5930099.593009] [vt.trace.sequence] text: " \"
[2023-09-26 09:40:07.5933681.593368] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:07.8145313.814531] [gui.input] Character press event received: None
[2023-09-26 09:40:07.8165546.816554] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:07.8276354.827635] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:07.8291032.829103] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:07.8295376.829537] [vt.trace.sequence] text: "["
[2023-09-26 09:40:07.8329253.832925] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:07.8332853.833285] [vt.trace.sequence] text: " \ "
[2023-09-26 09:40:07.8337507.833750] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:08.0844402.084440] [gui.input] Character press event received: None
[2023-09-26 09:40:08.0861252.086125] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:08.0964695.096469] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:08.0978234.097823] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:08.0981690.098169] [vt.trace.sequence] text: "["
[2023-09-26 09:40:08.1005565.100556] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:08.1007302.100730] [vt.trace.sequence] text: " \ "
[2023-09-26 09:40:08.1012081.101208] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:08.3555962.355596] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:40:08.3560607.356060] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:40:08.4671131.467112] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:40:08.4672332.467233] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:40:08.4678558.467855] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:08.4770863.477086] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:08.4783496.478349] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:08.4787246.478724] [vt.trace.sequence] text: "["
[2023-09-26 09:40:08.4818733.481873] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:08.4821623.482162] [vt.trace.sequence] text: " \ ["
[2023-09-26 09:40:08.4822156.482215] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:08.6019122.601912] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:40:08.6020986.602098] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:40:08.6048562.604856] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:08.6195139.619513] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:08.6214765.621476] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:08.6215381.621538] [vt.trace.sequence] text: "["
[2023-09-26 09:40:08.6238394.623839] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:08.6239348.623934] [vt.trace.sequence] text: " \ [["
[2023-09-26 09:40:08.6241107.624110] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:08.8494817.849481] [gui.input] Character press event received: None
[2023-09-26 09:40:08.8514605.851460] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:08.8729812.872981] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:08.8757579.875757] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:08.8760217.876021] [vt.trace.sequence] text: "["
[2023-09-26 09:40:08.8761856.876185] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:08.8763495.876349] [vt.trace.sequence] text: " \ [[ "
[2023-09-26 09:40:08.8765568.876556] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:09.0762446.076244] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:40:09.0771423.077142] [gui.input] Input not handled for mods Alt,Control key 0x1000023
[2023-09-26 09:40:09.2101202.210120] [gui.input] Character press event received: Alt,Control [
[2023-09-26 09:40:09.2104376.210437] [vt.input] Sending Alt,Control "[".
[2023-09-26 09:40:09.2141115.214111] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:09.2369782.236978] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:09.2379252.237925] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:09.2382253.238225] [vt.trace.sequence] text: "["
[2023-09-26 09:40:09.2383694.238369] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:09.2384988.238498] [vt.trace.sequence] text: " \ [[ ["
[2023-09-26 09:40:09.2387311.238731] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:09.3021816.302181] [gui.input] Character press event received: Alt,Control \\
[2023-09-26 09:40:09.3027944.302794] [vt.input] Sending Alt,Control "\\".
[2023-09-26 09:40:09.3038920.303891] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:09.3168795.316879] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:09.3180569.318056] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:09.3182198.318219] [vt.trace.sequence] text: "["
[2023-09-26 09:40:09.3183229.318322] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:09.3184139.318413] [vt.trace.sequence] text: " \ [[ [\"
[2023-09-26 09:40:09.3185176.318517] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:09.5712009.571200] [gui.input] Character press event received: None
[2023-09-26 09:40:09.5736922.573692] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:09.5853941.585394] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:09.5868958.586895] [vt.trace.sequence] Processing CUP CSI 1;19 H
[2023-09-26 09:40:09.5871169.587116] [vt.trace.sequence] text: "["
[2023-09-26 09:40:09.5872366.587236] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:09.5873560.587355] [vt.trace.sequence] text: " \ [[ [\ "
[2023-09-26 09:40:09.5875677.587567] [vt.trace.sequence] Processing DECSM CSI ? 25 h
[2023-09-26 09:40:09.7944769.794476] [gui.input] Input not handled for mods Control key 0x1000021
[2023-09-26 09:40:10.4473074.447307] [gui.input] Character press event received: Control C
[2023-09-26 09:40:10.4494563.449456] [vt.trace.sequence] Processing DECRM CSI ? 25 l
[2023-09-26 09:40:10.4674356.467435] [vt.trace.sequence] Processing CUP CSI H
[2023-09-26 09:40:10.4689035.468903] [vt.trace.sequence] text: "PS C:\Users\risz"
[2023-09-26 09:40:10.4691454.469145] [vt.trace.sequence] Processing SGR CSI 91 m
[2023-09-26 09:40:10.4693537.469353] [vt.trace.sequence] text: "> "
[2023-09-26 09:40:10.4695756.469575] [vt.trace.sequence] Processing SGR CSI 93 m
[2023-09-26 09:40:10.4697907.469790] [vt.trace.sequence] text: "["
[2023-09-26 09:40:10.4699082.469908] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:10.4700275.470027] [vt.trace.sequence] text: " \ [[ [\ "
[2023-09-26 09:40:10.4702829.470282] [vt.trace.sequence] Processing SGR CSI 91 m
[2023-09-26 09:40:10.4704968.470496] [vt.trace.sequence] text: "^C"
[2023-09-26 09:40:10.4705440.470544] [vt.trace.sequence] Processing SGR CSI m
[2023-09-26 09:40:10.4705728.470572] [vt.trace.sequence] control U+0D (Carriage Return)
[2023-09-26 09:40:10.4706073.470607] [vt.trace.sequence] control U+0A (Line Feed)
Does WSL behave the same as ssh?
Does WSL behave the same as ssh?
@ferdinandyb Unfortunately, I cannot check this. I do not have WSL on the Windows system that I am ~~using~~ unfortunately forced to use, and enabling it would require administrator privileges that I do not have... I think we checked with @gamesh411 a while ago and if I recall correctly, the answer should be Yes, although memories could have gotten foggy by now.
Hm. So I was thinking about it, maybe it's not actually Contour but SSH? Let's see...
Contour, running PowerShell, uses OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2, and exhibits the bad behaviour.
The native PowerShell "terminal" (or whatever this thing is, the one with the blue background and Consolas font!) uses the same SSH client, installed at:
> (Get-Command ssh.exe).Path
C:\WINDOWS\System32\OpenSSH\ssh.exe
but PowerShell's console does NOT exhibit the bogus behaviour.
Git Bash, which also does NOT exhibit the weird behaviour, on the other hand, rolls its own joint by running the following SSH client:
$ which ssh; ssh -V
/usr/bin/ssh
OpenSSH_8.3p1, OpenSSL 1.1.1g 21 Apr 2020
Now /usr/bin is a bit cheeky in here, because this is actually something like C:\Program Files\Git\usr\bin.
I tried forcing Git Bash to run SSH via the Windows binary, but I can't get to log in:
$ /c/Windows/System32/OpenSSH/ssh.exe machine
You are connected to: <HOST>
CreateProcessW failed error:193
ssh_askpass: posix_spawnp: Unknown error
CreateProcessW failed error:193
ssh_askpass: posix_spawnp: Unknown error
CreateProcessW failed error:193
ssh_askpass: posix_spawnp: Unknown error
CreateProcessW failed error:193
ssh_askpass: posix_spawnp: Unknown error
CreateProcessW failed error:193
ssh_askpass: posix_spawnp: Unknown error
Received disconnect from <IP> port 22:2: Too many authentication failures
Disconnected from <IP> port 22
For me powershell works fine. In WSL slowly pressing altgr+f twice gives this:
. If I just got dropped into wsl and press it quickly
^[[ flashes and then I get dropped in my zsh normal mode as if I pressed escape (I have a zsh-vim plugin thingy).
@ferdinandyb Do you mean "in WSL" as in the WSL terminal prompt running inside Contour?
What about bash or pure sh? Could you try the key sequences I sent above, in sh. Just to rule out shell plugins interfering. Nonetheless, ^[[ is not a good sign, it's what I'm getting as well...
By WSL I mean I start contour, type "wsl", get dropped into the whatever WSL is with my default shell (zsh).
Ok, so in WSL, after executing /bin/sh I still see the same ^[[ thing happening. Altgr-g produces ^[].
@uspasojevic96 suggested locales...
Some more information, as I was tinkering about with some of the machines. So I spun up a completely new machine which is completely headless. It just has an SSH, nothing else. Pure, bare metal, not Docker.
SSHing into it like so:
PS> ssh 192.168.1.169 bash
I do not get a login shell (no prompt whatsoever), but I am still connected and can type. Here, pressing AltGr-F results in a single [, as expected!
echo $0
bash
locale
LANG=en_US
LANGUAGE=
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME=C
LC_COLLATE=C
LC_MONETARY="en_US"
LC_MESSAGES=C
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
clear
TERM environment variable not set.
[
However, if I connect using a log-in shell, even if the locale is the same, the bogus behaviour of not getting the AltGr sequences returns...
bash-4.4$ ~ locale
LANG=en_US
LANGUAGE=
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME=C
LC_COLLATE=C
LC_MONETARY="en_US"
LC_MESSAGES=C
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=
Normally, my computers are set to en_GB.UTF-8, but this does not change anything, the wrong behaviour is apparent still.