live-share icon indicating copy to clipboard operation
live-share copied to clipboard

Shared terminals don’t render animations correctly

Open chrisdusyk-iq opened this issue 4 years ago • 4 comments

Issue Type: Bug

When I connect to a live share session and the host gives access to the terminal, it does not animate correctly for me as the connectee. On the host's screen, npm's animations display normally, however they do not animate on my side. Instead it renders a new row in the terminal for every animation change.

image

Extension version: 1.0.2478 VS Code version: Code 1.47.2 (17299e413d5590b14ab0340ea477cdd86ff13daf, 2020-07-15T18:22:06.216Z) OS version: Windows_NT x64 10.0.18363

System Info
Item Value
CPUs Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz (12 x 2208)
GPU Status 2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: disabled_off
protected_video_decode: unavailable_off
rasterization: enabled
skia_renderer: disabled_off_ok
video_decode: enabled
viz_display_compositor: enabled_on
viz_hit_test_surface_layer: disabled_off_ok
webgl: enabled
webgl2: enabled
Load (avg) undefined
Memory (System) 31.74GB (7.27GB free)
Process Argv .
Screen Reader no
VM 0%

chrisdusyk-iq avatar Jul 23 '20 20:07 chrisdusyk-iq

@IlyaBiryukov Is this a sizing issue? I would have sworn that we supported animations in shared terminals?

lostintangent avatar Dec 22 '20 05:12 lostintangent

Possibly.

Shared terminals broadcast host terminal stdout to the guests, including all ANSI ESC sequences. The guest renderer interprets them by changing color (as on the screenshot) or positioning the cursor, or doing something else. We do not interpret these ESC sequences in Live Share.

The issue may be due guest terminal not interpreting the ANSI ESC sequences coming from the host terminal correctly. This may happen for many reasons, one of them is that the terminal size on the guest is different from the host. Other reason may be that the guest terminal didn't initialize properly (the guest terminal may generate its own ESC sequence and send it to the host terminal shell, and that may not work because the shell is already assuming it works with the host terminal renderer).

To get 100% fidelity in the shared terminals, we'd need to capture and broadcast terminal window buffer changes instead of terminal stdout.

David's team or the extensibility team will be the right owner of the shared terminals in Live Share now.

IlyaBiryukov avatar Dec 22 '20 18:12 IlyaBiryukov

This issue has been automatically marked as stale because it has not had recent activity. It will be closed automatically in 2 days.

github-actions[bot] avatar Aug 15 '22 10:08 github-actions[bot]

To get 100% fidelity in the shared terminals, we'd need to capture and broadcast terminal window buffer changes instead of terminal stdout.

This'd be a feature that I'd really appreciate. Love this extension but shared terminal support is a bit too dodgy for me to reliably use for pair/group programming.

mondash avatar Aug 16 '22 04:08 mondash

We’re not able to prioritize this issue over the other higher-impact issues we receive every week, based on the votes and comments from others in the community and our understanding of the issue. However, rest assured that we love your input. If you feel it deserves to stay open, then clarify your use case and contact us to let us know how severe it is for you.

derekbekoe avatar Mar 29 '23 00:03 derekbekoe