0
0

floatingterminal.lua 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. return {
  2. {
  3. dir = "../custom/like-a-butterfly",
  4. name = "like-a-butterfly",
  5. enabled = true,
  6. lazy = false,
  7. config = function()
  8. local lab = require('like-a-butterfly')
  9. -- Configure eight homerow terminals
  10. function MakeTerm(shortcut, name, command)
  11. lab.create_term(name, command)
  12. vim.keymap.set("n", shortcut, function()
  13. lab.open_term(name)
  14. end)
  15. end
  16. vim.api.nvim_create_autocmd({ "BufEnter" },
  17. {
  18. pattern = { "*" },
  19. group = vim.api.nvim_create_augroup(
  20. 'like-a-butterfly', { clear = true }),
  21. callback = function()
  22. vim
  23. .schedule(function()
  24. if (vim.bo.filetype ~= "butterfly") then
  25. lab.close_all()
  26. else
  27. vim.api.nvim_feedkeys(
  28. vim.api.nvim_replace_termcodes(
  29. '<C-\\><C-n>^zei',
  30. true, true, true), 'i', true)
  31. vim.cmd("setlocal sidescrolloff=" .. vim.o
  32. .columns)
  33. vim.cmd("redraw!")
  34. end
  35. end)
  36. end
  37. })
  38. MakeTerm("stt", "Alpha", "zsh")
  39. MakeTerm("sts", "Beta", "zsh")
  40. MakeTerm("str", "Gamma", "zsh")
  41. MakeTerm("sta", "Delta", "zsh")
  42. MakeTerm("stn", "Epsilon", "zsh")
  43. MakeTerm("ste", "Zeta", "/bin/zsh ~/.scripts/omniscratch.zsh")
  44. MakeTerm("sti", "Eta", "lazydocker")
  45. MakeTerm("sto", "Theta", "lazygit")
  46. -- Keymaps
  47. vim.keymap.set("t", "<Esc><Esc>", lab.close_all)
  48. vim.keymap.set("t", "<Esc><Space>", "<Esc>")
  49. vim.keymap.set("t", "<C-S-t>", "<C-\\><C-n>")
  50. vim.keymap.set("t", "<S-Space>", "<Esc>")
  51. end
  52. }
  53. }