Chezmoi
info
You can enable the extra with the :LazyExtras command.
Plugins marked as optional will only be configured if they are installed.
Below you can find a list of included plugins and their default settings.
caution
You don't need to copy the default settings to your config. They are only shown here for reference.
chezmoi.vim
- Options
 - Full Spec
 
opts = nil
{
  -- highlighting for chezmoi files template files
  "alker0/chezmoi.vim",
  init = function()
    vim.g["chezmoi#use_tmp_buffer"] = 1
    vim.g["chezmoi#source_dir_path"] = vim.env.HOME .. "/.local/share/chezmoi"
  end,
}
chezmoi.nvim
- Options
 - Full Spec
 
opts = {
  edit = {
    watch = false,
    force = false,
  },
  notification = {
    on_open = true,
    on_apply = true,
    on_watch = false,
  },
  telescope = {
    select = { "<CR>" },
  },
}
{
  "xvzc/chezmoi.nvim",
  cmd = { "ChezmoiEdit" },
  keys = {
    {
      "<leader>sz",
      pick_chezmoi,
      desc = "Chezmoi",
    },
  },
  opts = {
    edit = {
      watch = false,
      force = false,
    },
    notification = {
      on_open = true,
      on_apply = true,
      on_watch = false,
    },
    telescope = {
      select = { "<CR>" },
    },
  },
  init = function()
    -- run chezmoi edit on file enter
    vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
      pattern = { vim.env.HOME .. "/.local/share/chezmoi/*" },
      callback = function()
        vim.schedule(require("chezmoi.commands.__edit").watch)
      end,
    })
  end,
}
mini.icons
Filetype icons
- Options
 - Full Spec
 
opts = {
  file = {
    [".chezmoiignore"] = { glyph = "", hl = "MiniIconsGrey" },
    [".chezmoiremove"] = { glyph = "", hl = "MiniIconsGrey" },
    [".chezmoiroot"] = { glyph = "", hl = "MiniIconsGrey" },
    [".chezmoiversion"] = { glyph = "", hl = "MiniIconsGrey" },
    ["bash.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    ["json.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    ["ps1.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    ["sh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    ["toml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    ["yaml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    ["zsh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
  },
}
{
  "nvim-mini/mini.icons",
  opts = {
    file = {
      [".chezmoiignore"] = { glyph = "", hl = "MiniIconsGrey" },
      [".chezmoiremove"] = { glyph = "", hl = "MiniIconsGrey" },
      [".chezmoiroot"] = { glyph = "", hl = "MiniIconsGrey" },
      [".chezmoiversion"] = { glyph = "", hl = "MiniIconsGrey" },
      ["bash.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
      ["json.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
      ["ps1.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
      ["sh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
      ["toml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
      ["yaml.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
      ["zsh.tmpl"] = { glyph = "", hl = "MiniIconsGrey" },
    },
  },
}
dashboard-nvim (optional)
- Options
 - Full Spec
 
opts = function(_, opts)
  local projects = {
    action = pick_chezmoi,
    desc = "  Config",
    icon = "",
    key = "c",
  }
  projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)
  projects.key_format = "  %s"
  -- remove lazyvim config property
  for i = #opts.config.center, 1, -1 do
    if opts.config.center[i].key == "c" then
      table.remove(opts.config.center, i)
    end
  end
  table.insert(opts.config.center, 5, projects)
end
{
  "nvimdev/dashboard-nvim",
  optional = true,
  opts = function(_, opts)
    local projects = {
      action = pick_chezmoi,
      desc = "  Config",
      icon = "",
      key = "c",
    }
    projects.desc = projects.desc .. string.rep(" ", 43 - #projects.desc)
    projects.key_format = "  %s"
    -- remove lazyvim config property
    for i = #opts.config.center, 1, -1 do
      if opts.config.center[i].key == "c" then
        table.remove(opts.config.center, i)
      end
    end
    table.insert(opts.config.center, 5, projects)
  end,
}
snacks.nvim (optional)
- Options
 - Full Spec
 
opts = function(_, opts)
  local chezmoi_entry = {
    icon = " ",
    key = "c",
    desc = "Config",
    action = pick_chezmoi,
  }
  local config_index
  for i = #opts.dashboard.preset.keys, 1, -1 do
    if opts.dashboard.preset.keys[i].key == "c" then
      table.remove(opts.dashboard.preset.keys, i)
      config_index = i
      break
    end
  end
  table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry)
end
{
  "folke/snacks.nvim",
  optional = true,
  opts = function(_, opts)
    local chezmoi_entry = {
      icon = " ",
      key = "c",
      desc = "Config",
      action = pick_chezmoi,
    }
    local config_index
    for i = #opts.dashboard.preset.keys, 1, -1 do
      if opts.dashboard.preset.keys[i].key == "c" then
        table.remove(opts.dashboard.preset.keys, i)
        config_index = i
        break
      end
    end
    table.insert(opts.dashboard.preset.keys, config_index, chezmoi_entry)
  end,
}