👋 Hey all, first post on Lemmy.

I recently released v1.0.1 of kitty-scrollback.nvim. If you have any feedback, issues, or suggestions feel free to open an issue. I’m interested to get feedback if the setup easy or if there are any unclear/confusing steps. This requires Neovim nightly (v0.10) and Kitty v0.29.

kitty-scrollbakc.nvim

Features

  • 😻 Navigate Kitty’s scrollback buffer with Neovim
  • 🐱 Copy contents from Neovim to system clipboard
  • 😺 Send contents from Neovim to Kitty shell
  • 🙀 Execute shell command from Neovim to Kitty shell
  • sorrybookbroke@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    I can see this being very useful for those small scripts I make but stubbornly don’t break out into a script file when it doesn’t work first try. It there any way to just make it launch empty on the prompt to start the command from there?

    • nvimmike@programming.devOP
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      thanks! when you say launch empty, do you mean without the scrollback buffer? or just with a blank window for the command?

      • sorrybookbroke@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Sorry for the delay, but yeah I mean without the scrollback buffer. Right from the prompt, get a neovim buffer that excecutes. Thanks again for sharing btw, this is a fantastic project

        • nvimmike@programming.devOP
          link
          fedilink
          arrow-up
          3
          ·
          edit-2
          1 year ago

          ah I gotcha. There is no option at the moment to completely disable the scrollback, but you could hook into some callbacks to trigger and customizations.

          For example,

          your_awesome_config.lua

          local M = {}
          
          M.config = function(kitty_data)
            return {
              paste_window = {
                winblend = 10,
                winopts_overrides = function(paste_winopts)
                  local h = vim.o.lines - 5 -- TODO: magic number 3 for footer and 2 for border
                  return {
                    border = 'solid',
                    row = 0,
                    col = 0,
                    height = h < 1 and 3 or h, -- TODO: magic number 3 for footer
                    width = vim.o.columns,
                  }
                end,
                footer_winopts_overrides = function(footer_winopts, paste_winopts)
                  return {
                    border = 'single',
                    title = ' kitty-scrollback.nvim ',
                    title_pos = 'center',
                  }
                end,
              },
              kitty_get_text = {
                extent = 'screen',
                ansi = true,
              },
              callbacks = {
                after_ready = function(kitty_data, opts)
                  vim.cmd.startinsert()
                end,
              },
            }
          end
          
          return M
          

          kitty.conf

          map f1 kitty_scrollback_nvim --config-file /your_awesome_config.lua
          

          I plan to document some of the advanced configurations, just haven’t had time to get to it 👍

          I could add an option to have no scrollback and a single buffer like you mentioned similar to `` behavior in bash. I’ll think on that one.

          Thanks for the kind words 🙂