👋 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
  • nvimmikeOP
    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

      • nvimmikeOP
        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 🙂

          • nvimmikeOP
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            haha yep 🙂 took a couple attempts to get it to where it is but I’m happy with it now