Add setting for enabling server-side decorations (#39250)
Previously, this was controllable via the undocumented ZED_WINDOW_DECORATIONS environment variable (added in #13866). Using an environment variable for this is inconvenient because it requires users to set that environment variable somehow before starting Zed, such as in the .desktop file or persistently in their shell. Controlling this via a Zed setting is more convenient. This does not modify the design of the titlebar in any way. It only moves the existing option from an environment variable to a Zed setting. Fixes #14165 Client-side decorations (default): <img width="3840" height="2160" alt="image" src="https://github.com/user-attachments/assets/525feb92-2f60-47d3-b0ca-47c98770fa8c" /> Server-side decorations in KDE Plasma: <img width="3840" height="2160" alt="image" src="https://github.com/user-attachments/assets/7379c7c8-e5e3-47ba-a3ea-4191fec9434d" /> Release Notes: - Changed option for Wayland server-side decorations from an environment variable to settings.json field --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
@@ -3264,6 +3264,21 @@ pub(crate) fn settings_data(cx: &App) -> Vec<SettingsPage> {
|
||||
metadata: None,
|
||||
files: USER,
|
||||
}),
|
||||
SettingsPageItem::SettingItem(SettingItem {
|
||||
title: "Window Decorations",
|
||||
description: "(Linux only) whether Zed or your compositor should draw window decorations.",
|
||||
field: Box::new(SettingField {
|
||||
json_path: Some("window_decorations"),
|
||||
pick: |settings_content| {
|
||||
settings_content.workspace.window_decorations.as_ref()
|
||||
},
|
||||
write: |settings_content, value| {
|
||||
settings_content.workspace.window_decorations = value;
|
||||
},
|
||||
}),
|
||||
metadata: None,
|
||||
files: USER,
|
||||
}),
|
||||
SettingsPageItem::SectionHeader("Pane Modifiers"),
|
||||
SettingsPageItem::SettingItem(SettingItem {
|
||||
title: "Inactive Opacity",
|
||||
|
||||
@@ -513,6 +513,7 @@ fn init_renderers(cx: &mut App) {
|
||||
.add_basic_renderer::<settings::ShellDiscriminants>(render_dropdown)
|
||||
.add_basic_renderer::<settings::EditPredictionsMode>(render_dropdown)
|
||||
.add_basic_renderer::<settings::RelativeLineNumbers>(render_dropdown)
|
||||
.add_basic_renderer::<settings::WindowDecorations>(render_dropdown)
|
||||
// please semicolon stay on next line
|
||||
;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user