From 3ace8277e54370c0aa3d17e61018cf039c42d69b Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Wed, 29 May 2024 22:35:40 +0200 Subject: [PATCH] feat(keymaps): new keymap to toggle mazimize of current window leader-m or leader-wm --- lua/lazyvim/config/keymaps.lua | 2 ++ lua/lazyvim/plugins/extras/ui/mini-animate.lua | 2 +- lua/lazyvim/util/toggle.lua | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index a6ac8f3c..2bb782fc 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -177,6 +177,8 @@ map("n", "w-", "s", { desc = "Split Window Below", remap = true }) map("n", "w|", "v", { desc = "Split Window Right", remap = true }) map("n", "-", "s", { desc = "Split Window Below", remap = true }) map("n", "|", "v", { desc = "Split Window Right", remap = true }) +map("n", "wm", function() LazyVim.toggle.maximize() end, { desc = "Maximize Toggle" }) +map("n", "m", function() LazyVim.toggle.maximize() end, { desc = "Maximize Toggle" }) -- tabs map("n", "l", "tablast", { desc = "Last Tab" }) diff --git a/lua/lazyvim/plugins/extras/ui/mini-animate.lua b/lua/lazyvim/plugins/extras/ui/mini-animate.lua index cca34135..c1f44d6d 100644 --- a/lua/lazyvim/plugins/extras/ui/mini-animate.lua +++ b/lua/lazyvim/plugins/extras/ui/mini-animate.lua @@ -17,7 +17,7 @@ return { local animate = require("mini.animate") return { resize = { - timing = animate.gen_timing.linear({ duration = 100, unit = "total" }), + timing = animate.gen_timing.linear({ duration = 50, unit = "total" }), }, scroll = { timing = animate.gen_timing.linear({ duration = 150, unit = "total" }), diff --git a/lua/lazyvim/util/toggle.lua b/lua/lazyvim/util/toggle.lua index 543d4c13..b001798f 100644 --- a/lua/lazyvim/util/toggle.lua +++ b/lua/lazyvim/util/toggle.lua @@ -73,6 +73,23 @@ function M.inlay_hints(buf, value) end end +M._maximized = nil +function M.maximize() + if M._maximized then + vim.o.winwidth = M._maximized.width + vim.o.winheight = M._maximized.height + M._maximized = nil + vim.cmd("wincmd =") + else + M._maximized = { + width = vim.o.winwidth, + height = vim.o.winheight, + } + vim.o.winwidth = 999 + vim.o.winheight = 999 + end +end + setmetatable(M, { __call = function(m, ...) return m.option(...)