|
|
@@ -1,81 +1,55 @@
|
|
|
return {
|
|
|
{
|
|
|
- "voldikss/vim-floaterm",
|
|
|
+ dir = "../custom/like-a-butterfly",
|
|
|
+ name = "like-a-butterfly",
|
|
|
enabled = true,
|
|
|
lazy = false,
|
|
|
config = function()
|
|
|
- -- Floaterm config
|
|
|
- vim.g.floaterm_autoinsert = true
|
|
|
- vim.g.floaterm_autohide = 2
|
|
|
- vim.g.floaterm_autoclose = 1
|
|
|
- vim.g.floaterm_borderchars = "-¦-¦⌌⌍⌏⌎"
|
|
|
- vim.g.floaterm_opener = "vsplit"
|
|
|
- -- Config for interacting with terminals
|
|
|
- vim.g.floaterm_lastused = ""
|
|
|
- local term_group = vim.api.nvim_create_augroup("terminal",
|
|
|
- { clear = true })
|
|
|
- local terminal_callback = function()
|
|
|
- vim.wo.colorcolumn = tostring(-1)
|
|
|
- vim.opt.stc = ""
|
|
|
- vim.b.number = false
|
|
|
- vim.b.relativenumber = false
|
|
|
- vim.b.winfixwidth = false
|
|
|
- end
|
|
|
- vim.api.nvim_create_autocmd({ "TermOpen" }, {
|
|
|
- pattern = { "*" },
|
|
|
- group = term_group,
|
|
|
- callback = terminal_callback
|
|
|
- })
|
|
|
- vim.api.nvim_create_autocmd({ "BufWinEnter", "WinEnter" }, {
|
|
|
- pattern = { "term://*" },
|
|
|
- group = term_group,
|
|
|
- callback = function()
|
|
|
- terminal_callback();
|
|
|
- vim.cmd(":startinsert");
|
|
|
- end
|
|
|
- })
|
|
|
- vim.api.nvim_create_autocmd({ "BufEnter" }, {
|
|
|
- pattern = { "*" },
|
|
|
- group = term_group,
|
|
|
- callback = function()
|
|
|
- vim.defer_fn(function()
|
|
|
- vim.schedule(function()
|
|
|
- if (vim.bo.filetype ~= "floaterm") then
|
|
|
- vim.cmd(":FloatermHide " ..
|
|
|
- vim.g.floaterm_lastused)
|
|
|
- end
|
|
|
- end)
|
|
|
- end, 100)
|
|
|
- end
|
|
|
- })
|
|
|
+ local lab = require('like-a-butterfly')
|
|
|
-- Configure eight homerow terminals
|
|
|
- function MakeTerm(shortcut, name, command, options)
|
|
|
- vim.cmd(":nnoremap " .. shortcut ..
|
|
|
- " :lua vim.g.floaterm_lastused='" .. name ..
|
|
|
- "'; vim.api.nvim_exec2(\"FloatermShow " .. name ..
|
|
|
- "\", {})<CR>")
|
|
|
- vim.cmd(":FloatermNew --name=" .. name .. " --title=" .. name ..
|
|
|
- " --silent --titleposition=left " .. options ..
|
|
|
- " /bin/zsh -c \"while true; do; " .. command ..
|
|
|
- "; done;\"")
|
|
|
+ function MakeTerm(shortcut, name, command)
|
|
|
+ lab.create_term(name, command)
|
|
|
+ vim.keymap.set("n", shortcut, function()
|
|
|
+ lab.open_term(name)
|
|
|
+ end)
|
|
|
end
|
|
|
|
|
|
- MakeTerm("stt", "Alpha", "clear; zsh", "--width=1.0 --height=0.99")
|
|
|
- MakeTerm("sts", "Beta", "clear; zsh", "--width=1.0 --height=0.99")
|
|
|
- MakeTerm("str", "Gamma", "clear; zsh", "--width=1.0 --height=0.99")
|
|
|
- MakeTerm("sta", "Delta", "clear; zsh", "--width=1.0 --height=0.99")
|
|
|
- MakeTerm("stn", "Epsilon", "clear; zsh", "--width=80 --height=40")
|
|
|
- MakeTerm("ste", "Zeta", "/bin/zsh ~/.scripts/omniscratch.zsh",
|
|
|
- "--width=80 --height=40")
|
|
|
- MakeTerm("sti", "Eta", "lazydocker", "--width=2.0 --height=2.0")
|
|
|
- MakeTerm("sto", "Theta", "lazygit", "--width=2.0 --height=2.0")
|
|
|
+ vim.api.nvim_create_autocmd({ "BufEnter" },
|
|
|
+ {
|
|
|
+ pattern = { "*" },
|
|
|
+ group = vim.api.nvim_create_augroup(
|
|
|
+ 'like-a-butterfly', { clear = true }),
|
|
|
+ callback = function()
|
|
|
+ vim
|
|
|
+ .schedule(function()
|
|
|
+ if (vim.bo.filetype ~= "butterfly") then
|
|
|
+ lab.close_all()
|
|
|
+ else
|
|
|
+ vim.api.nvim_feedkeys(
|
|
|
+ vim.api.nvim_replace_termcodes(
|
|
|
+ '<C-\\><C-n>^zei',
|
|
|
+ true, true, true), 'i', true)
|
|
|
+ vim.cmd("set sidescrolloff=" .. vim.o
|
|
|
+ .columns)
|
|
|
+ vim.cmd("redraw!")
|
|
|
+ end
|
|
|
+ end)
|
|
|
+ end
|
|
|
+ })
|
|
|
+ MakeTerm("stt", "Alpha", "zsh")
|
|
|
+ MakeTerm("sts", "Beta", "zsh")
|
|
|
+ MakeTerm("str", "Gamma", "zsh")
|
|
|
+ MakeTerm("sta", "Delta", "zsh")
|
|
|
+ MakeTerm("stn", "Epsilon", "zsh")
|
|
|
+ MakeTerm("ste", "Zeta", "/bin/zsh ~/.scripts/omniscratch.zsh")
|
|
|
+ MakeTerm("sti", "Eta", "lazydocker")
|
|
|
+ MakeTerm("sto", "Theta", "lazygit")
|
|
|
+
|
|
|
-- Keymaps
|
|
|
- vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>:FloatermHide<CR>")
|
|
|
+ vim.keymap.set("t", "<Esc><Esc>", lab.close_all)
|
|
|
vim.keymap.set("t", "<Esc><Space>", "<Esc>")
|
|
|
vim.keymap.set("t", "<C-S-t>", "<C-\\><C-n>")
|
|
|
vim.keymap.set("t", "<S-Space>", "<Esc>")
|
|
|
- vim.keymap.set("t", "<A-up>", "<C-\\><C-n>:FloatermHide<CR>")
|
|
|
- vim.keymap.set("t", "<A-down>", "<C-\\><C-n>:FloatermNext<CR>")
|
|
|
end
|
|
|
}
|
|
|
}
|