# Linux IDE UX Issues

**URL:** <https://forum.cursor.com/t/linux-ide-ux-issues/155307>\
**Category:** Bug Reports\
**Tags:** devcontainers, linux, chat, layout\
**Created:** [March 19, 2026, 6:45pm UTC](https://forum.cursor.com/t/linux-ide-ux-issues/155307 "2026-03-19T18:45:23Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrew.jo.acron](https://avatars.discourse-cdn.com/v4/letter/a/7ab992/32.png) [@andrew.jo.acron](https://forum.cursor.com/u/andrew.jo.acron)\
**Post date:** [March 19, 2026, 6:45pm UTC](https://forum.cursor.com/t/linux-ide-ux-issues/155307/1 "2026-03-19T18:45:23Z")

</div>

### Where does the bug appear (feature/product)?

Cursor IDE

### Describe the Bug

The user experience when handling chat windows on Linux is buggy enough that it can be an obstacle, but there are workarounds. I have not collected specific reproducible issues but if one were to use and exercise it for a few days it should become evident quite quickly. This has been present for at least the last few months since I began using the tool and was not newly introduced in a recent update. This is observed while connected to containers using the Dev Containers extension. Cursor runs on a Linux host but attaches to a workspace inside the container.

Examples are using chats as editor windows and moving them in and out of the primary IDE window. Typing sometimes becomes inverted where letters are prepended instead of appended or the chats cannot be typed into. Dragging the window into and out of another window group often fixes. Other issues are similar and are disruptive to the UX when using chats anywhere besides the pane-style ai agents chat panes.

Enterprise customer bug report.

### Steps to Reproduce

The user experience when handling chat windows on Linux is buggy enough that it can be an obstacle, but there are workarounds. I have not collected specific reproducible issues but if one were to use and exercise it for a few days it should become evident quite quickly. This has been present for at least the last few months since I began using the tool and was not newly introduced in a recent update. This is observed while connected to containers using the Dev Containers extension. Cursor runs on a Linux host but attaches to a workspace inside the container.

Examples are using chats as editor windows and moving them in and out of the primary IDE window. Typing sometimes becomes inverted where letters are prepended instead of appended or the chats cannot be typed into. Dragging the window into and out of another window group often fixes. Other issues are similar and are disruptive to the UX when using chats anywhere besides the pane-style ai agents chat panes.

Enterprise customer bug report.

### Expected Behavior

The user experience when handling chat windows on Linux is buggy enough that it can be an obstacle, but there are workarounds. I have not collected specific reproducible issues but if one were to use and exercise it for a few days it should become evident quite quickly. This has been present for at least the last few months since I began using the tool and was not newly introduced in a recent update. This is observed while connected to containers using the Dev Containers extension. Cursor runs on a Linux host but attaches to a workspace inside the container.

Examples are using chats as editor windows and moving them in and out of the primary IDE window. Typing sometimes becomes inverted where letters are prepended instead of appended or the chats cannot be typed into. Dragging the window into and out of another window group often fixes. Other issues are similar and are disruptive to the UX when using chats anywhere besides the pane-style ai agents chat panes.

Enterprise customer bug report.

### Screenshots / Screen Recordings

[cursor-settings-bug-report-host.txt](https://forum.cursor.com/uploads/short-url/zS1vtwOCXbpciQYw8ELg1Xcz0ik.txt) (4.85 KB)

### Operating System

Linux

### Version Information

DEV CONTAINERS  
v1.0.32 but present for months with auto-update enabled

CURSOR  
Version: 2.6.19  
VSCode Version: 1.105.1  
Commit: 224838f96445be37e3db643a163a817c15b36060  
Date: 2026-03-12T04:07:27.435Z  
Build Type: Stable  
Release Track: Default  
Electron: 39.4.0  
Chromium: 142.0.7444.265  
Node.js: 22.22.0  
V8: 14.2.231.22-electron.0  
OS: Linux x64 6.17.0-19-generic

HOST  
=== OS ===  
Ubuntu 24.04.4 LTS

=== Kernel ===  
Linux USGRREL-D036788 6.17.0-19-generic #19~24.04.2-Ubuntu SMP PREEMPT\_DYNAMIC Fri Mar 6 23:08:46 UTC 2 x86\_64 x86\_64 x86\_64 GNU/Linux

=== Session / display ===  
XDG\_SESSION\_TYPE=x11  
WAYLAND\_DISPLAY=  
DISPLAY=:1

## === PCI graphics === 0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Tiger Lake-H GT1 [UHD Graphics] [8086:9a70] (rev 01) Subsystem: Dell Tiger Lake-H GT1 [UHD Graphics] [1028:0a69] Kernel driver in use: i915 Kernel modules: i915, xe

0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104GLM [RTX A4000 Mobile] [10de:24b7] (rev a1)  
Subsystem: Dell GA104GLM [RTX A4000 Mobile] [1028:0a69]  
Kernel driver in use: nvidia  
Kernel modules: nvidiafb, nouveau, nvidia\_drm, nvidia

=== Xorg (if log exists) ===

=== GLX / Mesa (needs mesa-utils) ===  
name of display: :1  
display: :1 screen: 0  
direct rendering: Yes  
Extended renderer info (GLX\_MESA\_query\_renderer):  
Vendor: Intel (0x8086)  
Device: Mesa Intel(R) UHD Graphics (TGL GT1) (0x9a70)  
Version: 25.2.8  
Accelerated: yes  
Video memory: 128010MB  
Unified memory: yes  
Preferred profile: core (0x1)  
Max core profile version: 4.6  
Max compat profile version: 4.6  
Max GLES1 profile version: 1.1  
Max GLES[23] profile version: 3.2  
OpenGL vendor string: Intel  
OpenGL renderer string: Mesa Intel(R) UHD Graphics (TGL GT1)  
OpenGL core profile version string: 4.6 (Core Profile) Mesa 25.2.8-0ubuntu0.24.04.1  
OpenGL core profile shading language version string: 4.60  
OpenGL core profile context flags: (none)  
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.2.8-0ubuntu0.24.04.1  
OpenGL shading language version string: 4.60  
OpenGL context flags: (none)  
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.2.8-0ubuntu0.24.04.1  
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

=== EGL (needs mesa-utils-extra on some distros) ===  
EGL client extensions string:  
EGL\_EXT\_client\_extensions, EGL\_EXT\_device\_base,  
EGL\_EXT\_device\_enumeration, EGL\_EXT\_device\_query, EGL\_EXT\_explicit\_device,  
EGL\_EXT\_platform\_base, EGL\_EXT\_platform\_device, EGL\_EXT\_platform\_wayland,  
EGL\_EXT\_platform\_x11, EGL\_EXT\_platform\_xcb,  
EGL\_KHR\_client\_get\_all\_proc\_addresses, EGL\_KHR\_debug,  
EGL\_KHR\_platform\_gbm, EGL\_KHR\_platform\_wayland, EGL\_KHR\_platform\_x11,  
EGL\_MESA\_platform\_gbm, EGL\_MESA\_platform\_surfaceless

GBM platform:  
EGL API version: 1.5  
EGL vendor string: NVIDIA  
EGL version string: 1.5  
EGL client APIs: OpenGL\_ES OpenGL  
EGL extensions string:  
EGL\_ANDROID\_native\_fence\_sync, EGL\_EXT\_buffer\_age, EGL\_EXT\_client\_sync,  
EGL\_EXT\_create\_context\_robustness, EGL\_EXT\_image\_dma\_buf\_import,  
EGL\_EXT\_image\_dma\_buf\_import\_modifiers, EGL\_EXT\_output\_base,  
EGL\_EXT\_output\_drm, EGL\_EXT\_present\_opaque, EGL\_EXT\_protected\_content,  
EGL\_EXT\_stream\_acquire\_mode, EGL\_EXT\_stream\_consumer\_egloutput,  
EGL\_EXT\_sync\_reuse, EGL\_IMG\_context\_priority, EGL\_KHR\_config\_attribs,  
EGL\_KHR\_context\_flush\_control, EGL\_KHR\_create\_context,  
EGL\_KHR\_create\_context\_no\_error, EGL\_KHR\_fence\_sync,  
EGL\_KHR\_get\_all\_proc\_addresses, EGL\_KHR\_gl\_colorspace,  
EGL\_KHR\_gl\_renderbuffer\_image, EGL\_KHR\_gl\_texture\_2D\_image,  
EGL\_KHR\_gl\_texture\_3D\_image, EGL\_KHR\_gl\_texture\_cubemap\_image,  
EGL\_KHR\_image, EGL\_KHR\_image\_base, EGL\_KHR\_no\_config\_context,  
EGL\_KHR\_partial\_update, EGL\_KHR\_reusable\_sync, EGL\_KHR\_stream,  
EGL\_KHR\_stream\_attrib, EGL\_KHR\_stream\_consumer\_gltexture,  
EGL\_KHR\_stream\_cross\_process\_fd, EGL\_KHR\_stream\_fifo,  
EGL\_KHR\_stream\_producer\_eglsurface, EGL\_KHR\_surfaceless\_context,  
EGL\_KHR\_swap\_buffers\_with\_damage, EGL\_KHR\_wait\_sync,  
EGL\_MESA\_image\_dma\_buf\_export, EGL\_NV\_nvrm\_fence\_sync,  
EGL\_NV\_output\_drm\_flip\_event, EGL\_NV\_quadruple\_buffer,  
EGL\_NV\_robustness\_video\_memory\_purge, EGL\_NV\_stream\_attrib,  
EGL\_NV\_stream\_consumer\_eglimage, EGL\_NV\_stream\_consumer\_gltexture\_yuv,  
EGL\_NV\_stream\_cross\_display, EGL\_NV\_stream\_cross\_object,  
EGL\_NV\_stream\_cross\_process, EGL\_NV\_stream\_cross\_system,  
EGL\_NV\_stream\_dma, EGL\_NV\_stream\_fifo\_next,  
EGL\_NV\_stream\_fifo\_synchronous, EGL\_NV\_stream\_flush,

=== Vulkan summary (needs vulkan-tools) ===  
install: sudo apt install vulkan-tools

CONTAINER  
=== OS ===  
Ubuntu 24.04.1 LTS

=== Kernel ===  
Linux bc6f6cb01f5a 6.17.0-19-generic #19~24.04.2-Ubuntu SMP PREEMPT\_DYNAMIC Fri Mar 6 23:08:46 UTC 2 x86\_64 x86\_64 x86\_64 GNU/Linux

=== Session / display ===  
XDG\_SESSION\_TYPE=  
WAYLAND\_DISPLAY=  
DISPLAY=:1

=== PCI graphics ===  
bash: lspci: command not found

=== Xorg (if log exists) ===

=== GLX / Mesa (needs mesa-utils) ===  
name of display: :1  
display: :1 screen: 0  
direct rendering: Yes  
Extended renderer info (GLX\_MESA\_query\_renderer):  
Vendor: Intel (0x8086)  
Device: Mesa Intel(R) UHD Graphics (TGL GT1) (0x9a70)  
Version: 25.0.7  
Accelerated: yes  
Video memory: 64005MB  
Unified memory: yes  
Preferred profile: core (0x1)  
Max core profile version: 4.6  
Max compat profile version: 4.6  
Max GLES1 profile version: 1.1  
Max GLES[23] profile version: 3.2  
OpenGL vendor string: Intel  
OpenGL renderer string: Mesa Intel(R) UHD Graphics (TGL GT1)  
OpenGL core profile version string: 4.6 (Core Profile) Mesa 25.0.7-0ubuntu0.24.04.2  
OpenGL core profile shading language version string: 4.60  
OpenGL core profile context flags: (none)  
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.0.7-0ubuntu0.24.04.2  
OpenGL shading language version string: 4.60  
OpenGL context flags: (none)  
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 25.0.7-0ubuntu0.24.04.2  
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

=== EGL (needs mesa-utils-extra on some distros) ===  
EGL client extensions string:  
EGL\_EXT\_client\_extensions, EGL\_EXT\_device\_base,  
EGL\_EXT\_device\_enumeration, EGL\_EXT\_device\_query, EGL\_EXT\_explicit\_device,  
EGL\_EXT\_platform\_base, EGL\_EXT\_platform\_device, EGL\_EXT\_platform\_wayland,  
EGL\_EXT\_platform\_x11, EGL\_EXT\_platform\_xcb,  
EGL\_KHR\_client\_get\_all\_proc\_addresses, EGL\_KHR\_debug,  
EGL\_KHR\_platform\_gbm, EGL\_KHR\_platform\_wayland, EGL\_KHR\_platform\_x11,  
EGL\_MESA\_platform\_gbm, EGL\_MESA\_platform\_surfaceless

GBM platform:  
eglinfo: eglInitialize failed

Wayland platform:  
eglinfo: eglInitialize failed

X11 platform:  
EGL API version: 1.5  
EGL vendor string: Mesa Project  
EGL version string: 1.5  
EGL client APIs: OpenGL OpenGL\_ES  
EGL driver name: iris  
EGL extensions string:  
EGL\_ANDROID\_blob\_cache, EGL\_ANDROID\_native\_fence\_sync,  
EGL\_ANGLE\_sync\_control\_rate, EGL\_CHROMIUM\_sync\_control,  
EGL\_EXT\_buffer\_age, EGL\_EXT\_config\_select\_group,  
EGL\_EXT\_create\_context\_robustness, EGL\_EXT\_image\_dma\_buf\_import,  
EGL\_EXT\_image\_dma\_buf\_import\_modifiers, EGL\_EXT\_pixel\_format\_float,  
EGL\_EXT\_protected\_content, EGL\_EXT\_query\_reset\_notification\_strategy,  
EGL\_EXT\_surface\_compression, EGL\_EXT\_swap\_buffers\_with\_damage,  
EGL\_IMG\_context\_priority, EGL\_KHR\_cl\_event2, EGL\_KHR\_config\_attribs,  
EGL\_KHR\_context\_flush\_control, EGL\_KHR\_create\_context,  
EGL\_KHR\_create\_context\_no\_error, EGL\_KHR\_fence\_sync,  
EGL\_KHR\_get\_all\_proc\_addresses, EGL\_KHR\_gl\_colorspace,  
EGL\_KHR\_gl\_renderbuffer\_image, EGL\_KHR\_gl\_texture\_2D\_image,  
EGL\_KHR\_gl\_texture\_3D\_image, EGL\_KHR\_gl\_texture\_cubemap\_image,  
EGL\_KHR\_image, EGL\_KHR\_image\_base, EGL\_KHR\_image\_pixmap,  
EGL\_KHR\_no\_config\_context, EGL\_KHR\_partial\_update, EGL\_KHR\_reusable\_sync,  
EGL\_KHR\_surfaceless\_context, EGL\_KHR\_swap\_buffers\_with\_damage,  
EGL\_KHR\_wait\_sync, EGL\_MESA\_configless\_context, EGL\_MESA\_drm\_image,  
EGL\_MESA\_gl\_interop, EGL\_MESA\_image\_dma\_buf\_export, EGL\_MESA\_query\_driver,

=== Vulkan summary (needs vulkan-tools) ===  
install: sudo apt install vulkan-tools

### For AI issues: which model did you use?

N/A

### For AI issues: add Request ID with privacy disabled

N/A

### Additional Information

=== Cursor / VS Code CLI ===  
2.6.19  
224838f96445be37e3db643a163a817c15b36060  
x64

Extensions installed on Container REDACTEDNAME (bc6f6cb01f5a):  
anysphere.cpptools  
arm.armls  
johnstoncode.svn-scm  
llvm-vs-code-extensions.vscode-clangd  
mads-hartmann.bash-ide-vscode  
ms-azuretools.vscode-containers  
ms-azuretools.vscode-docker  
ms-python.vscode-python-envs  
ms-vscode.cmake-tools  
ms-vscode.hexeditor  
ms-vscode.live-server  
ms-vscode.makefile-tools  
ms-vscode.powershell  
timonwong.shellcheck  
vadimcn.vscode-lldb  
xaver.clang-format

=== User settings.json ===  
(no settings.json found at usual paths)  
=== User keybindings.json (if any) ===  
=== Workspace settings (run from repo root) ===  
(no ./.vscode/settings.json here)

=== Cursor / VS Code CLI ===  
2.6.20  
b29eb4ee5f9f6d1cb2afbc09070198d3ea6ad760  
x64

(node:1146633) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.  
(Use `cursor --trace-deprecation ...` to show where the warning was created)  
anysphere.cpptools  
anysphere.csharp  
anysphere.cursorpyright  
anysphere.remote-containers  
anysphere.remote-ssh  
arm.armls  
bbenoist.doxygen  
johnstoncode.svn-scm  
llvm-vs-code-extensions.vscode-clangd  
mads-hartmann.bash-ide-vscode  
ms-azuretools.vscode-containers  
ms-azuretools.vscode-docker  
ms-dotnettools.vscode-dotnet-runtime  
ms-python.debugpy  
ms-python.pylint  
ms-python.python  
ms-python.vscode-python-envs  
ms-vscode.cmake-tools  
ms-vscode.cpptools-themes  
ms-vscode.hexeditor  
ms-vscode.live-server  
ms-vscode.makefile-tools  
ms-vscode.notepadplusplus-keybindings  
ms-vscode.powershell  
ms-vscode.vs-keybindings  
timonwong.shellcheck  
vadimcn.vscode-lldb  
xaver.clang-format  
zixuanwang.linkerscript

=== User settings.json ===  
— /home/NAME-REDACTED/.config/Cursor/User/settings.json —  
{  
“window.commandCenter”: true,  
“cursor.composer.shouldChimeAfterChatFinishes”: true,  
“workbench.colorTheme”: “Visual Studio Dark - C++”,  
“workbench.activityBar.orientation”: “vertical”,  
“files.trimTrailingWhitespace”: true,  
“editor.renderWhitespace”: “all”,  
“editor.autoClosingBrackets”: “never”,  
“editor.autoClosingComments”: “never”,  
“editor.autoClosingQuotes”: “never”,  
“search.followSymlinks”: false,  
“terminal.integrated.scrollback”: 10000,  
“cursor.composer.textSizeScale”: 1.15,  
“remote.autoForwardPortsSource”: “hybrid”,  
“git.terminalAuthentication”: false  
}  
=== User keybindings.json (if any) ===  
— /home/NAME-REDACTED/.config/Cursor/User/keybindings.json —  
// Place your key bindings in this file to override the defaults  
[  
{  
“key”: “ctrl+shift+=”,  
“command”: “workbench.action.zoomIn”  
},  
{  
“key”: “ctrl+=”,  
“command”: “-workbench.action.zoomIn”  
},  
{  
“key”: “ctrl+shift±”,  
“command”: “workbench.action.zoomOut”  
},  
{  
“key”: “ctrl+numpad\_subtract”,  
“command”: “-workbench.action.zoomOut”  
},  
{  
“key”: “ctrl±”,  
“command”: “-workbench.action.zoomOut”  
},  
{  
“key”: “ctrl+shift+y”,  
“command”: “editor.action.inlineDiffs.acceptPartialEdit”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+y”,  
“command”: “-editor.action.inlineDiffs.acceptPartialEdit”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+shift+y”,  
“command”: “aichat.newfollowupaction”  
},  
{  
“key”: “ctrl+y”,  
“command”: “-aichat.newfollowupaction”  
},  
{  
“key”: “ctrl+shift+alt+n”,  
“command”: “workbench.action.newWindow”  
},  
{  
“key”: “ctrl+shift+n”,  
“command”: “-workbench.action.newWindow”  
},  
{  
“key”: “ctrl+shift+n”,  
“command”: “editor.action.inlineDiffs.rejectPartialEdit”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+n”,  
“command”: “-editor.action.inlineDiffs.rejectPartialEdit”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+shift+a”,  
“command”: “chatEditing.acceptAllFiles”,  
“when”: “hasUndecidedChatEditingResource && inChatInput && !chatSessionRequestInProgress”  
},  
{  
“key”: “ctrl+enter”,  
“command”: “-chatEditing.acceptAllFiles”,  
“when”: “hasUndecidedChatEditingResource && inChatInput && !chatSessionRequestInProgress”  
},  
{  
“key”: “ctrl+shift+a”,  
“command”: “editor.action.inlineDiffs.acceptAll”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+enter”,  
“command”: “-editor.action.inlineDiffs.acceptAll”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+shift+r”,  
“command”: “editor.action.inlineDiffs.rejectAll”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+shift+backspace”,  
“command”: “-editor.action.inlineDiffs.rejectAll”,  
“when”: “editorTextFocus && inlineDiffs.activeEditorWithDiffs”  
},  
{  
“key”: “ctrl+shift+r”,  
“command”: “editor.action.inlineDiffs.rejectAllAcrossAllEditors”,  
“when”: “editorHasPromptBar && editorTextFocus || editorTextFocus && hasDisplayedDiff”  
},  
{  
“key”: “ctrl”,  
“command”: “-editor.action.inlineDiffs.rejectAllAcrossAllEditors”,  
“when”: “editorHasPromptBar && editorTextFocus || editorTextFocus && hasDisplayedDiff”  
}  
]  
=== Workspace settings (run from repo root) ===  
(no ./.vscode/settings.json here)

### Does this stop you from using Cursor

No - Cursor works, but with this issue

---

<div class="post-metadata">

**Author:** ![Colin](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/colin/32/90452_2.png) [@Colin](https://forum.cursor.com/u/Colin)\
**Post date:** [March 19, 2026, 8:47pm UTC](https://forum.cursor.com/t/linux-ide-ux-issues/155307/7 "2026-03-19T20:47:53Z")

</div>

Hey @andrew.jo.acron!

Thanks for the detailed report. I was able to reproduce this on Linux — opening multiple chats as editor windows and switching focus between them eventually causes either blocked input or the reverse-typing behavior you described (characters prepended instead of appended).

We’ve filed a bug internally to track this. In the meantime, does this workaround help when it happens?

> `Ctrl+Shift+P` → Developer: Reload Window on the affected window

This should restore normal input without losing the chat. Not a fix, but should unblock you until we address it properly.

---

<div class="post-metadata">

**Author:** ![andrew.jo.acron](https://avatars.discourse-cdn.com/v4/letter/a/7ab992/32.png) [@andrew.jo.acron](https://forum.cursor.com/u/andrew.jo.acron)\
**Post date:** [March 20, 2026, 7:44pm UTC](https://forum.cursor.com/t/linux-ide-ux-issues/155307/8 "2026-03-20T19:44:46Z")

</div>

Great news and impressive response time. I will continue to use workarounds like the one you mentioned in the meantime. Thank you!

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [April 15, 2026, 4:59pm UTC](https://forum.cursor.com/t/linux-ide-ux-issues/155307/10 "2026-04-15T16:59:49Z")

</div>

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.
