return {
	{
		-- <S> to add ", (... Surrounding selected text
		"kylechui/nvim-surround",
		version = "*", -- Use for stability; omit to use `main` branch for the latest features
		event = "VeryLazy",
		config = function()
			require("nvim-surround").setup({
				-- Configuration here, or leave empty to use defaults
			})
		end,
	},
	{
		"rcarriga/nvim-notify",
		opts = {
			-- regular opts
		},
		config = function(_, opts)
			require("notify").setup(vim.tbl_extend("keep", {
				-- other stuff
				background_colour = "#000000",
			}, opts))
		end,
	},
	{
		-- Automatically add brackets by pairs
		"jiangmiao/auto-pairs",
		lazy = false,
	},
	{ -- Scroll
		"karb94/neoscroll.nvim",
		config = function()
			require("neoscroll").setup({})
		end,
	},
	{ "echasnovski/mini.nvim", version = false },
	{
		"farmergreg/vim-lastplace", -- when open go to the closed position
	},
	{
		"nvim-tree/nvim-web-devicons",
		config = function()
			require("nvim-web-devicons").setup({
				-- your personnal icons can go here (to override)
				-- you can specify color or cterm_color instead of specifying both of them
				-- DevIcon will be appended to `name`
				override = {
					zsh = {
						icon = "",
						color = "#428850",
						cterm_color = "65",
						name = "Zsh",
					},
				},
				-- globally enable different highlight colors per icon (default to true)
				-- if set to false all icons will have the default icon's color
				color_icons = true,
				-- globally enable default icons (default to false)
				-- will get overriden by `get_icons` option
				default = true,
				-- globally enable "strict" selection of icons - icon will be looked up in
				-- different tables, first by filename, and if not found by extension; this
				-- prevents cases when file doesn't have any extension but still gets some icon
				-- because its name happened to match some extension (default to false)
				strict = true,
				-- same as `override` but specifically for overrides by filename
				-- takes effect when `strict` is true
				override_by_filename = {
					[".gitignore"] = {
						icon = "",
						color = "#f1502f",
						name = "Gitignore",
					},
				},
				-- same as `override` but specifically for overrides by extension
				-- takes effect when `strict` is true
				override_by_extension = {
					["log"] = {
						icon = "",
						color = "#81e043",
						name = "Log",
					},
				},
				-- same as `override` but specifically for operating system
				-- takes effect when `strict` is true
				override_by_operating_system = {
					["apple"] = {
						icon = "",
						color = "#A2AAAD",
						cterm_color = "248",
						name = "Apple",
					},
				},
			})
			-- code
		end,
	},
	{
		"j-hui/fidget.nvim",
		opts = {
			-- options
		},
	},
	{
		"stevearc/dressing.nvim",
		opts = {},
	},
	{ "eandrju/cellular-automaton.nvim" }, -- stupid animation
	{ url = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim" }, -- rainbow delimiters
	{
		"lukas-reineke/indent-blankline.nvim",
		main = "ibl",
		opts = {},
		config = function()
			-- Config for matching colors with rainbow_delimiters
			local highlight = {
				"RainbowRed",
				"RainbowYellow",
				"RainbowBlue",
				"RainbowOrange",
				"RainbowGreen",
				"RainbowViolet",
				"RainbowCyan",
			}
			local hooks = require("ibl.hooks")
			-- create the highlight groups in the highlight setup hook, so they are reset
			-- every time the colorscheme changes
			hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
				vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" })
				vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" })
				vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" })
				vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" })
				vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" })
				vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" })
				vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" })
			end)

			vim.g.rainbow_delimiters = { highlight = highlight }
			require("ibl").setup({
				scope = { highlight = highlight },
				exclude = {
					filetypes = {
						"lspinfo",
						"packer",
						"checkhealth",
						"help",
						"man",
						"dashboard",
						"",
					},
					-- filetypes = vim.g.exclude_filetypes,
				},
			})

			hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark)
		end,
	},
	{
		-- Scrollbar
		"lewis6991/satellite.nvim",
		config = function()
			require("satellite").setup({
				current_only = false,
				winblend = 50,
				zindex = 40,
				excluded_filetypes = {},
				width = 2,
				handlers = {
					cursor = {
						enable = true,
						-- Supports any number of symbols
						symbols = { "⎺", "⎻", "⎼", "⎽" },
						-- symbols = { '⎻', '⎼' }
						-- Highlights:
						-- - SatelliteCursor (default links to NonText
					},
					search = {
						enable = true,
						-- Highlights:
						-- - SatelliteSearch (default links to Search)
						-- - SatelliteSearchCurrent (default links to SearchCurrent)
					},
					diagnostic = {
						enable = true,
						signs = { "-", "=", "≡" },
						min_severity = vim.diagnostic.severity.HINT,
						-- Highlights:
						-- - SatelliteDiagnosticError (default links to DiagnosticError)
						-- - SatelliteDiagnosticWarn (default links to DiagnosticWarn)
						-- - SatelliteDiagnosticInfo (default links to DiagnosticInfo)
						-- - SatelliteDiagnosticHint (default links to DiagnosticHint)
					},
					gitsigns = {
						enable = true,
						signs = { -- can only be a single character (multibyte is okay)
							add = "│",
							change = "│",
							delete = "-",
						},
						-- Highlights:
						-- SatelliteGitSignsAdd (default links to GitSignsAdd)
						-- SatelliteGitSignsChange (default links to GitSignsChange)
						-- SatelliteGitSignsDelete (default links to GitSignsDelete)
					},
					marks = {
						enable = true,
						show_builtins = false, -- shows the builtin marks like [ ] < >
						key = "m",
						-- Highlights:
						-- SatelliteMark (default links to Normal)
					},
					quickfix = {
						signs = { "-", "=", "≡" },
						-- Highlights:
						-- SatelliteQuickfix (default links to WarningMsg)
					},
				},
			})
		end,
	},
}
