feat: fennelize kitty-padding

This commit is contained in:
Youwen Wu 2025-02-01 14:20:52 -08:00
parent 7cce5e4204
commit e58f6efffe
Signed by: youwen5
GPG key ID: 865658ED1FE61EC3
2 changed files with 67 additions and 41 deletions

View file

@ -0,0 +1,37 @@
;; remove padding from kitty terminal when entering vim
(local M {})
(local ___fn___ vim.fn)
(local api vim.api)
(local autocmd api.nvim_create_autocmd)
(local autogroup api.nvim_create_augroup)
(fn no-padding [sync]
(let [command "kitty @ set-spacing padding-h=0 padding-bottom=0"]
(if (not sync)
(___fn___.jobstart command
{:on_stderr (fn [_ d _]
(when (> (length d) 1)
(vim.notify "Error setting window padding. Make sure kitty remote control is turned on."
vim.log.levels.DEBUG)))})
(___fn___.system command))))
(fn restore-padding [sync]
(let [command "kitty @ set-spacing padding=default"]
(if (not sync)
(___fn___.jobstart command
{:on_stderr (fn [_ d _]
(when (> (length d) 1)
(vim.notify "Error setting window padding. Make sure kitty remote control is turned on."
vim.log.levels.DEBUG)))})
(___fn___.system command))))
(fn M.setup []
(autocmd [:VimResume :VimEnter]
{:callback (fn [] (no-padding))
:group (autogroup :SpacingRemove {:clear true})
:pattern "*"})
(autocmd [:VimLeavePre :VimSuspend]
{:callback (fn [] (restore-padding true))
:group (autogroup :SpacingRestore {:clear true})}))
M

View file

@ -1,58 +1,47 @@
-- remove padding from kitty terminal when entering vim -- [nfnl] Compiled from ./fnl/scripts/kitty-padding.fnl by https://github.com/Olical/nfnl, do not edit.
local M = {} local M = {}
local ___fn___ = vim.fn
local fn = vim.fn
local api = vim.api local api = vim.api
local autocmd = api.nvim_create_autocmd local autocmd = api.nvim_create_autocmd
local autogroup = api.nvim_create_augroup local autogroup = api.nvim_create_augroup
local function no_padding(sync)
local no_padding = function(sync)
local command = "kitty @ set-spacing padding-h=0 padding-bottom=0" local command = "kitty @ set-spacing padding-h=0 padding-bottom=0"
if not sync then if not sync then
fn.jobstart(command, { local function _1_(_, d, _0)
on_stderr = function(_, d, _) if (#d > 1) then
if #d > 1 then return vim.notify("Error setting window padding. Make sure kitty remote control is turned on.", vim.log.levels.DEBUG)
vim.notify("Error setting window padding. Make sure kitty remote control is turned on.", vim.log.levels.DEBUG)
end
end,
})
else else
fn.system(command) return nil
end end
end end
return ___fn___.jobstart(command, {on_stderr = _1_})
local restore_padding = function(sync) else
return ___fn___.system(command)
end
end
local function restore_padding(sync)
local command = "kitty @ set-spacing padding=default" local command = "kitty @ set-spacing padding=default"
if not sync then if not sync then
fn.jobstart(command, { local function _4_(_, d, _0)
on_stderr = function(_, d, _) if (#d > 1) then
if #d > 1 then return vim.notify("Error setting window padding. Make sure kitty remote control is turned on.", vim.log.levels.DEBUG)
vim.notify("Error setting window padding. Make sure kitty remote control is turned on.", vim.log.levels.DEBUG)
end
end,
})
else else
fn.system(command) return nil
end
end
return ___fn___.jobstart(command, {on_stderr = _4_})
else
return ___fn___.system(command)
end end
end end
M.setup = function() M.setup = function()
autocmd({ "VimResume", "VimEnter" }, { local function _7_()
pattern = "*", return no_padding()
callback = function() end
no_padding() autocmd({"VimResume", "VimEnter"}, {callback = _7_, group = autogroup("SpacingRemove", {clear = true}), pattern = "*"})
end, local function _8_()
group = autogroup("SpacingRemove", { clear = true }), return restore_padding(true)
}) end
return autocmd({"VimLeavePre", "VimSuspend"}, {callback = _8_, group = autogroup("SpacingRestore", {clear = true})})
autocmd({ "VimLeavePre", "VimSuspend" }, {
callback = function()
restore_padding(true)
end,
group = autogroup("SpacingRestore", { clear = true }),
})
end end
return M return M