ZIm/crates
Thorsten Ball 69e698c3be
terminal: Fix blinking settings & blinking with custom shape (#18538)
This is a follow-up to #18530 thanks to this comment here:
https://github.com/zed-industries/zed/pull/18530#issuecomment-2382870564

In short: it fixes the `blinking` setting and the `cursor_shape` setting
as it relates to blinking.

Turns out our `blinking` setting was always the wrong value when using
`terminal_controlled` and the terminal _would_ control the blinking.

Example script to test with:

```bash
echo -e "0 normal \x1b[\x30 q"; sleep 2
echo -e "1 blink block \x1b[\x31 q"; sleep 2
echo -e "2 solid block \x1b[\x32 q"; sleep 2
echo -e "3 blink under \x1b[\x33 q"; sleep 2
echo -e "4 solid under \x1b[\x34 q"; sleep 2
echo -e "5 blink vert \x1b[\x35 q"; sleep 2
echo -e "6 solid vert \x1b[\x36 q"; sleep 2
echo -e "0 normal \x1b[\x30 q"; sleep 2

echo -e "color \x1b]12;#00ff00\x1b\\"; sleep 2
echo -e "reset \x1b]112\x1b\\ \x1b[\x30 q"
```

Before the changes in here, this script would set the cursor shape and
the blinking, but the blinking boolean would always be wrong.

This change here makes sure that it works consistently:

- `terminal.cursor_shape` only controls the *default* shape of the
terminal, not the blinking.
- `terminal.blinking = on` means that it's *always* blinking, regardless
of what terminal programs want
- `terminal.blinking = off` means that it's *never* blinking, regardless
of what terminal programs want
- `terminal.blinking = terminal_controlled (default)` means that it's
blinking depending on what terminal programs want. when a terminal
program resets the cursor to default, it sets it back to
`terminal.cursor_shape` if that is set.

Release Notes:

- Fixed the behavior of `{"terminal": {"blinking":
"[on|off|terminal_controlled]"}` to work correctly and to work correctly
when custom `cursor_shape` is set.
- `terminal.cursor_shape` only controls the *default* shape of the
terminal, not the blinking.
- `terminal.blinking = on` means that it's *always* blinking, regardless
of what terminal programs want
- `terminal.blinking = off` means that it's *never* blinking, regardless
of what terminal programs want
- `terminal.blinking = terminal_controlled (default)` means that it's
blinking depending on what terminal programs want. when a terminal
program resets the cursor to default, it sets it back to
`terminal.cursor_shape` if that is set.

Demo:


https://github.com/user-attachments/assets/b3fbeafd-ad58-41c8-9c07-1f03bc31771f

Co-authored-by: Bennet <bennet@zed.dev>
2024-09-30 15:36:35 +02:00
..
activity_indicator lsp: Remove reinstall, update config (#18318) 2024-09-25 10:45:56 -07:00
anthropic Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
assets add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
assistant More git hunk highlighting fixes (#18459) 2024-09-27 13:48:37 -07:00
assistant_slash_command Introduce a new /delta command (#17903) 2024-09-17 08:47:08 -06:00
assistant_tool assistant: Add basic tool invocation (#17368) 2024-09-04 14:32:20 -04:00
audio Update Rust crate rodio to 0.19.0 (#17389) 2024-09-16 21:55:32 -06:00
auto_update Continue to redirect to GitHub commits for nightly and dev release notes (#18487) 2024-09-28 15:20:32 -04:00
breadcrumbs Add missing shortcuts in tooltips (#18282) 2024-09-27 11:06:48 +02:00
call Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
channel Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
cli zed: Use CLI env for lang servers, tasks, terminal (#17075) 2024-08-29 18:09:06 +02:00
client client: Remove unused fs dependency (#18324) 2024-09-25 10:02:35 +02:00
clock Add the ability to propose changes to a set of buffers (#18170) 2024-09-20 18:28:50 -04:00
collab settings: Make external formatter arguments optional (#18340) 2024-09-30 09:34:41 +03:00
collab_ui Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
collections gpui: Add SVG rendering to img element and generic asset cache (#9931) 2024-03-29 17:09:49 -07:00
command_palette chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
command_palette_hooks chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
context_servers context_servers: Remove context_type from ResourceContent (#18097) 2024-09-19 15:51:48 -04:00
copilot Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
db Add system_id (#18040) 2024-09-19 07:20:27 -04:00
dev_server_projects chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
diagnostics Remove replica_id from MultiBuffers (#18141) 2024-09-20 10:48:27 -04:00
docs_preprocessor Don't rely on relative path for docs preprocessor (#16883) 2024-08-26 11:43:13 -04:00
editor Restore paste on middle-click on linux (#18503) 2024-09-30 10:27:47 +02:00
evals Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
extension Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
extension_api zed_extension_api: Use v0.2.0 WIT types (#17802) 2024-09-13 14:49:50 -04:00
extension_cli remote_server: Remove dependency on libssl and libcrypto (#15446) 2024-09-18 23:29:34 +02:00
extensions_ui Revert "settings: Remove auxiliary Content types where possible (#16744)" (#17768) 2024-09-12 14:46:08 -04:00
feature_flags /auto (#16696) 2024-09-13 13:17:49 -04:00
feedback Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
file_finder Avoid unwrap in file finder (#18374) 2024-09-26 10:31:17 +03:00
file_icons chore: Clean up allocs around project panel (#15422) 2024-07-29 14:21:41 +02:00
fs /auto (#16696) 2024-09-13 13:17:49 -04:00
fsevent Retain run loop (#11241) 2024-04-30 23:31:59 -06:00
fuzzy Improve slash commands (#16195) 2024-08-13 23:06:07 -07:00
git Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
git_hosting_providers Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
go_to_line More git hunk highlighting fixes (#18459) 2024-09-27 13:48:37 -07:00
google_ai Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
gpui gpui: Fix pre-edit position after applying scale factor (#18214) 2024-09-30 12:57:59 +02:00
gpui_macros add ui::Vector and separate images from icons (#17815) 2024-09-13 17:44:16 -04:00
headless Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
html_to_markdown chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
http_client Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
image_viewer chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
indexed_docs chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
inline_completion_button chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
install_cli Fix flickering (#9012) 2024-03-11 10:45:57 +01:00
isahc_http_client Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
journal chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
language settings: Make external formatter arguments optional (#18340) 2024-09-30 09:34:41 +03:00
language_model Remove Qwen2 model (#18444) 2024-09-27 13:30:25 -04:00
language_selector use ssh lsp store (#17655) 2024-09-10 15:51:01 -04:00
language_tools Improve language server log view split ergonomics (#18527) 2024-09-30 11:25:11 +03:00
languages Improve C++ Tree-sitter queries (#18016) 2024-09-30 10:27:30 +02:00
live_kit_client chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
live_kit_server live_kit_server: Re-remove protocol submodule (#15317) 2024-07-26 21:10:56 -04:00
lsp lsp: Remove reinstall, update config (#18318) 2024-09-25 10:45:56 -07:00
markdown Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
markdown_preview Upgrade tree sitter and all grammars (#17734) 2024-09-16 17:10:57 -07:00
media Update Rust crate bindgen to 0.70.0 (#17024) 2024-08-28 22:12:49 -07:00
menu open picker (#14524) 2024-07-15 17:04:15 -06:00
multi_buffer Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
node_runtime Make python run local worktree LSPs (#18353) 2024-09-25 12:45:41 -07:00
notifications Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
ollama Fix read timeout for ollama (#18417) 2024-09-27 00:36:17 -06:00
open_ai Stop leaking isahc assumption (#18408) 2024-09-26 14:01:05 -06:00
outline More git hunk highlighting fixes (#18459) 2024-09-27 13:48:37 -07:00
outline_panel ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
paths macos: Use ~/Library/Caches/Zed instead of ~/.cache/zed (#17949) 2024-09-17 13:51:11 -04:00
picker Update typos-cli to v1.24.6. Add scripts/check-spelling. Fix typos (#17961) 2024-09-17 15:08:14 -04:00
prettier Allow using system node (#18172) 2024-09-23 15:28:04 -06:00
project terminal: Fix blinking settings & blinking with custom shape (#18538) 2024-09-30 15:36:35 +02:00
project_panel ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
project_symbols Fix renames over language server for SSH remoting (#17897) 2024-09-16 16:20:17 -06:00
proto Remove old project search code path, bump min-supported zed version for collaboration (#18404) 2024-09-26 12:10:39 -07:00
quick_action_bar Add missing shortcuts in tooltips (#18282) 2024-09-27 11:06:48 +02:00
recent_projects ssh remoting: Show error if opening connection timed out (#18401) 2024-09-27 09:31:45 +02:00
refineable Move Clippy configuration to the workspace level (#8891) 2024-03-05 12:01:17 -05:00
release_channel chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
remote ssh remoting: Show error if opening connection timed out (#18401) 2024-09-27 09:31:45 +02:00
remote_server SSH Remoting: Fix bugs in worktree syncing (#18406) 2024-09-26 12:03:57 -07:00
repl Styling option for separating terminal view background from background color (#17611) 2024-09-17 12:51:31 -04:00
rich_text Disable definition lists in Markdown (#17648) 2024-09-10 11:16:27 -04:00
rope Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
rpc Remove Qwen2 model (#18444) 2024-09-27 13:30:25 -04:00
search Capitalize tooltip labels on buffer search (#18458) 2024-09-27 17:02:32 -03:00
semantic_index Add a slash command for automatically retrieving relevant context (#17972) 2024-09-20 18:09:18 -04:00
semantic_version Extract SemanticVersion into its own crate (#9956) 2024-03-29 12:11:57 -04:00
session chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
settings settings: Show notification when user/project settings fail to parse (#18122) 2024-09-20 10:53:06 +02:00
settings_ui chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
snippet Correct escaping in snippets (#14912) 2024-07-22 00:57:34 +02:00
snippet_provider Fix file descriptors leak in evals (#18351) 2024-09-25 15:21:00 -04:00
sqlez Workspace persistence for SSH projects (#17996) 2024-09-19 17:51:28 +02:00
sqlez_macros Replace lazy_static with std::sync::LazyLock (#16066) 2024-08-20 14:27:33 -04:00
story chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
storybook Fix missing tooltips for selected buttons (#18435) 2024-09-27 14:16:14 +02:00
sum_tree Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
supermaven Implement grapheme support for supermaven completions (#18279) 2024-09-24 08:49:07 -06:00
supermaven_api chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tab_switcher tab_switcher: Add file and project search icons (#17115) 2024-09-17 14:48:05 +02:00
task chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
tasks_ui ssh remoting: Fix cmd-o (#18308) 2024-09-24 16:23:08 -06:00
telemetry_events Add system_id (#18040) 2024-09-19 07:20:27 -04:00
terminal terminal: Fix blinking settings & blinking with custom shape (#18538) 2024-09-30 15:36:35 +02:00
terminal_view terminal: Fix blinking settings & blinking with custom shape (#18538) 2024-09-30 15:36:35 +02:00
text Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
theme Add ability to separately set background color for highlighted brackets (#17566) 2024-09-26 12:48:23 -04:00
theme_importer chore: Another round of style lints fixes (#17519) 2024-09-07 02:36:55 +02:00
theme_selector settings_ui: Add theme settings controls (#15115) 2024-07-24 16:25:52 -04:00
time_format chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
title_bar linux/x11: Give title bar inactive bg on mouse down (#18529) 2024-09-30 12:39:11 +02:00
ui Fix missing tooltips for selected buttons (#18435) 2024-09-27 14:16:14 +02:00
ui_input Rename ui_text_field crate to ui_input (#13949) 2024-07-08 17:05:30 -04:00
ui_macros Add ui_macros crate & DerivePathStr derive macro (#17811) 2024-09-13 16:45:16 -04:00
util Fix opening file with colon (#17281) 2024-09-17 11:19:07 -04:00
vcs_menu chore: Fix several style lints (#17488) 2024-09-06 11:58:39 +02:00
vim vim: Command selection fixes (#18424) 2024-09-27 10:06:19 -06:00
welcome Welcome tweaks (#17874) 2024-09-16 08:29:46 -04:00
workspace ssh remoting: Show error message if project path does not exist (#18343) 2024-09-25 18:08:34 +02:00
worktree Pass Summary::Context to Item::summarize (#18510) 2024-09-29 10:30:48 -06:00
zed Add a way to explicitly specify RC toolkit path (#18402) 2024-09-30 11:34:44 +03:00
zed_actions Improve Linux terminal keymap and context menu (#16845) 2024-08-26 01:01:46 +03:00