diff --git a/assets/keymaps/default.json b/assets/keymaps/default.json
index 1049e216f3d6452641da021f23e6b7efc9084e43..831c076b5c5c36c89dc0e03a37b77b2171e39590 100644
--- a/assets/keymaps/default.json
+++ b/assets/keymaps/default.json
@@ -20,6 +20,7 @@
"cmd-shift-S": "workspace::SaveAs",
"cmd-=": "zed::IncreaseBufferFontSize",
"cmd--": "zed::DecreaseBufferFontSize",
+ "cmd-0": "zed::ResetBufferFontSize",
"cmd-,": "zed::OpenSettings",
"cmd-q": "zed::Quit",
"cmd-n": "workspace::NewFile",
diff --git a/crates/settings/src/settings.rs b/crates/settings/src/settings.rs
index 9b5ed124412d697166b52217488b0f67e6263bf4..58c70d32c1dcebc37cee699f31f1b45f5fd6351a 100644
--- a/crates/settings/src/settings.rs
+++ b/crates/settings/src/settings.rs
@@ -21,6 +21,7 @@ pub use keymap_file::{keymap_file_json_schema, KeymapFileContent};
pub struct Settings {
pub buffer_font_family: FamilyId,
pub buffer_font_size: f32,
+ pub default_buffer_font_size: f32,
pub vim_mode: bool,
pub tab_size: u32,
pub soft_wrap: SoftWrap,
@@ -73,6 +74,7 @@ impl Settings {
Ok(Self {
buffer_font_family: font_cache.load_family(&[buffer_font_family])?,
buffer_font_size: 15.,
+ default_buffer_font_size: 15.,
vim_mode: false,
tab_size: 4,
soft_wrap: SoftWrap::None,
@@ -126,6 +128,7 @@ impl Settings {
Settings {
buffer_font_family: cx.font_cache().load_family(&["Monaco"]).unwrap(),
buffer_font_size: 14.,
+ default_buffer_font_size: 14.,
vim_mode: false,
tab_size: 4,
soft_wrap: SoftWrap::None,
@@ -162,6 +165,7 @@ impl Settings {
}
merge(&mut self.buffer_font_size, data.buffer_font_size);
+ merge(&mut self.default_buffer_font_size, data.buffer_font_size);
merge(&mut self.vim_mode, data.vim_mode);
merge(&mut self.format_on_save, data.format_on_save);
merge(&mut self.soft_wrap, data.editor.soft_wrap);
diff --git a/crates/zed/src/menus.rs b/crates/zed/src/menus.rs
index e90b716d02af56883167de353375ec29c57ffcdb..cc5f128bc014462e77400f7a3ade0c0f1e0503ad 100644
--- a/crates/zed/src/menus.rs
+++ b/crates/zed/src/menus.rs
@@ -15,6 +15,14 @@ pub fn menus() -> Vec