return {
  "folke/snacks.nvim",
  ---@type snacks.Config
  opts = {
    picker = {
      layout = {
        preview = "main",
        preset = "ivy",
      },
      sources = {
        explorer = {
          auto_close = true,
          layout = { preset = "sidebar", preview = "top" },
        }
      }
    },
    terminal = {
      win = {
        position = "float",
        border = "rounded",
        height = 0.8,
        width = 0.6,
      }
    },
  },
  keys = {
    { "`",                function() Snacks.explorer() end,                    desc = "File Explorer" },
    { "<leader>s",        function() Snacks.picker.lsp_symbols() end,          desc = "LSP Symbols" },
    { "gd",               function() Snacks.picker.lsp_definitions() end,      desc = "Goto Definition" },
    { "gD",               function() Snacks.picker.lsp_declarations() end,     desc = "Goto Declaration" },
    { "gr",               function() Snacks.picker.lsp_references() end,       nowait = true,                  desc = "References" },
    { "gI",               function() Snacks.picker.lsp_implementations() end,  desc = "Goto Implementation" },
    { "gy",               function() Snacks.picker.lsp_type_definitions() end, desc = "Goto T[y]pe Definition" },

    { "<leader><leader>", function() Snacks.picker.smart() end,                desc = "Smart Find Files" },
    { "<leader>b",        function() Snacks.picker.buffers() end,              desc = "Buffers" },
    { "<leader>/",        function() Snacks.picker.grep() end,                 desc = "Grep" },
    { "<leader>:",        function() Snacks.picker.command_history() end,      desc = "Command History" },
    { "<leader>n",        function() Snacks.picker.notifications() end,        desc = "Notification History" },
    { "<leader>u",        function() Snacks.picker.undo() end,                 desc = "Undo History" },
    { '<leader>"',        function() Snacks.picker.registers() end,            desc = "Registers" },

    { "<leader>gb",       function() Snacks.picker.git_branches() end,         desc = "Git Branches" },
    { "<leader>gl",       function() Snacks.picker.git_log() end,              desc = "Git Log" },
    { "<leader>gs",       function() Snacks.picker.git_status() end,           desc = "Git Status" },
    { "<leader>gS",       function() Snacks.picker.git_stash() end,            desc = "Git Stash" },
    { "<leader>gd",       function() Snacks.picker.git_diff() end,             desc = "Git Diff (Hunks)" },
    { "<leader>gf",       function() Snacks.picker.git_log_file() end,         desc = "Git Log File" },

    { "<F12>",            function() Snacks.terminal.toggle() end,             desc = "Terminal Toggle",       mode = { "n", "i", "t" } },
  }
}
