# terminal_view: Forward ctrl-q to PTY when terminal is focused on Linux \(\#58879\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/5cf706ceebe9d8c89e00bf3f8559931009908ffa)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: 5cf706ceebe9d8c89e00bf3f8559931009908ffa

Requested commit: 5cf706ceebe9d8c89e00bf3f8559931009908ffa

Commit: 5cf706ceebe9d8c89e00bf3f8559931009908ffa

Tree: 2034d17d80980ac4d57f66051f8aa00b1d3f5f87

Author: saberoueslati

Committer: GitHub

## Message

```
terminal_view: Forward ctrl-q to PTY when terminal is focused on Linux (#58879)

## Context

On Linux, `ctrl-q` is globally bound to `zed::Quit`. When a
`TerminalView` is focused, pressing `ctrl-q` quit the application
instead of forwarding the keycode to the shell, breaking programs like
`ftp`, `tig`, and any app that uses XON/XOFF flow control.

Windows already had the fix: its `Terminal` keymap context overrides
`ctrl-q` with `["terminal::SendKeystroke", "ctrl-q"]`. The Linux keymap
was simply missing that override.

Closes #58809

Manual test after fix below :

[Screencast from 2026-06-09
00-46-37.webm](https://github.com/user-attachments/assets/3d103b2a-bff1-4559-af1d-2a52d57a6b18)


## How to Review

- **`assets/keymaps/default-linux.json`** : One-line addition in the
`Terminal` context under the "Overrides for conflicting keybindings"
comment, mirroring the existing Windows entry.
- **`crates/terminal_view/src/terminal_view.rs`** : Regression test
`ctrl_q_is_forwarded_to_terminal_not_quit` (Linux-only, `#[cfg(target_os
= "linux")]`): loads the default keymap, focuses a display-only
terminal, simulates `ctrl-q`, and asserts the PTY receives byte `0x11`
instead of the quit action firing.

## Self-Review Checklist

- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the UI/UX checklist
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- Fixed `ctrl-q` quitting Zed instead of being forwarded to the shell
when a terminal is focused on Linux
```

## Parents

- [fbceb2823b16ca5b8bfed5b15d9e67614f5e604b](https://git.cafe/gitcafe/zed/commit/fbceb2823b16ca5b8bfed5b15d9e67614f5e604b?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/5cf706ceebe9d8c89e00bf3f8559931009908ffa?format=markdown)
