From 3631f7887ea2ea92cdcd69891ff1e58e87ff6753 Mon Sep 17 00:00:00 2001 From: Armel van Ravels Date: Mon, 16 Mar 2026 10:47:45 +0100 Subject: [PATCH] Add image support to nvim --- programs/nvim.nix | 62 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/programs/nvim.nix b/programs/nvim.nix index 9e83962..d266d91 100644 --- a/programs/nvim.nix +++ b/programs/nvim.nix @@ -3,6 +3,11 @@ { programs.neovim = { enable = true; + extraLuaPackages = ps: [ ps.magick ]; + extraPackages = [ + pkgs.ueberzugpp + pkgs.imagemagick + ]; plugins = with pkgs.vimPlugins; [ neo-tree-nvim @@ -18,6 +23,7 @@ (nvim-treesitter.withAllGrammars) vim-nix lualine-nvim + image-nvim ]; extraLuaConfig = '' @@ -91,6 +97,62 @@ lualine_z = {'location'} } } + + -- ========================= + -- image-nvim + -- ========================= + require("image").setup({ + backend = "ueberzug", -- or "ueberzug" or "sixel" + processor = "magick_cli", -- or "magick_rock" + integrations = { + markdown = { + enabled = true, + clear_in_insert_mode = false, + download_remote_images = true, + only_render_image_at_cursor = false, + only_render_image_at_cursor_mode = "popup", -- or "inline" + floating_windows = false, -- if true, images will be rendered in floating markdown windows + filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here + }, + asciidoc = { + enabled = true, + clear_in_insert_mode = false, + download_remote_images = true, + only_render_image_at_cursor = false, + only_render_image_at_cursor_mode = "popup", + floating_windows = false, + filetypes = { "asciidoc", "adoc" }, + }, + neorg = { + enabled = true, + filetypes = { "norg" }, + }, + rst = { + enabled = true, + }, + typst = { + enabled = true, + filetypes = { "typst" }, + }, + html = { + enabled = false, + }, + css = { + enabled = false, + }, + }, + max_width = nil, + max_height = nil, + max_width_window_percentage = nil, + max_height_window_percentage = 50, + scale_factor = 1.0, + window_overlap_clear_enabled = false, -- toggles images when windows are overlapped + window_overlap_clear_ft_ignore = { "cmp_menu", "cmp_docs", "snacks_notif", "scrollview", "scrollview_sign" }, + editor_only_render_when_focused = false, -- auto show/hide images when the editor gains/looses focus + tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off) + hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened + }) + ''; }; }