diff --git a/init.lua b/init.lua
index 5cac3d1..813b1b4 100644
--- a/init.lua
+++ b/init.lua
@@ -91,7 +91,7 @@ vim.g.mapleader = ' '
 vim.g.maplocalleader = ' '
 
 -- Set to true if you have a Nerd Font installed and selected in the terminal
-vim.g.have_nerd_font = false
+vim.g.have_nerd_font = true
 
 -- [[ Setting options ]]
 -- See `:help vim.opt`
@@ -102,10 +102,10 @@ vim.g.have_nerd_font = false
 vim.opt.number = true
 -- You can also add relative line numbers, to help with jumping.
 --  Experiment for yourself to see if you like it!
--- vim.opt.relativenumber = true
+vim.opt.relativenumber = true
 
 -- Enable mouse mode, can be useful for resizing splits for example!
-vim.opt.mouse = 'a'
+vim.opt.mouse = ''
 
 -- Don't show the mode, since it's already in the status line
 vim.opt.showmode = false
@@ -156,6 +156,14 @@ vim.opt.cursorline = true
 -- Minimal number of screen lines to keep above and below the cursor.
 vim.opt.scrolloff = 10
 
+-- Set foldmethod
+-- See `:help foldmethod`
+vim.opt.foldcolumn = '1'
+vim.opt.foldlevel = 99
+vim.opt.foldlevelstart = 99
+vim.opt.foldenable = true
+vim.opt.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
+
 -- [[ Basic Keymaps ]]
 --  See `:help vim.keymap.set()`
 
@@ -671,6 +679,27 @@ require('lazy').setup({
         -- ts_ls = {},
         --
 
+        cuelsp = {},
+        elixirls = {
+          elixirLS = {
+            dialyzerEnabled = true,
+            dialyzerFormat = 'dialyxir_long',
+            fetchDeps = false,
+            mixEnv = 'test',
+          },
+        },
+        gopls = {},
+        helm_ls = {},
+        html = { filetypes = { 'html', 'twig', 'hbs' } },
+        jsonls = {
+          settings = {
+            json = {
+              -- schemas = {
+              --   ["https://raw.githubusercontent.com/woodpecker-ci/woodpecker/main/pipeline/frontend/yaml/linter/schema/schema.json"] = "renovate.json",
+              -- },
+            },
+          },
+        },
         lua_ls = {
           -- cmd = { ... },
           -- filetypes = { ... },
@@ -685,6 +714,32 @@ require('lazy').setup({
             },
           },
         },
+        pyright = {},
+        templ = {},
+        terraformls = {},
+        ts_ls = {},
+        yamlls = {
+          settings = {
+            yaml = {
+              schemas = {
+                ["https://json.schemastore.org/chart.json"] = "Chart.{yml,yaml}",
+                ["https://json.schemastore.org/drone.json"] = ".drone.{yml,yaml}",
+                ["https://json.schemastore.org/github-action.json"] = ".github/action.{yml,yaml}",
+                ["https://json.schemastore.org/github-workflow.json"] = ".github/workflows/*",
+                ["https://json.schemastore.org/kustomization.json"] = "kustomization.{yml,yaml}",
+                ["https://json.schemastore.org/prettierrc.json"] = ".prettierrc.{yml,yaml}",
+                ["https://json.schemastore.org/circleciconfig.json"] = ".circleci/config.{yml,yaml}",
+                ["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}",
+                ["https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"] = "*api*.{yml,yaml}",
+                ["https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/playbook"] = "*play*.{yml,yaml}",
+                ["https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible.json#/$defs/tasks"] = "roles/tasks/*.{yml,yaml}",
+                ["https://raw.githubusercontent.com/argoproj/argo-workflows/master/api/jsonschema/schema.json"] = "*flow*.{yml,yaml}",
+                ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "*docker-compose*.{yml,yaml}",
+                -- kubernetes = "*.{yml,yaml}",
+              }
+            }
+          }
+        }
       }
 
       -- Ensure the servers and tools above are installed
@@ -716,6 +771,33 @@ require('lazy').setup({
             -- by the server configuration above. Useful when disabling
             -- certain features of an LSP (for example, turning off formatting for ts_ls)
             server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {})
+            -- overwrite elixirls for older versions of elixir
+            --   * elixir 1.11 use version 0.12.0
+            --   * elixir 1.12 use verions 0.14.6
+            if server_name == 'elixirls' then
+              local version = vim.fn.system('mise current elixir') or ''
+              local elixir_servers = {
+                { version = '^1.11', path = '/elixir-ls/release/v0.12.0/language_server.sh' },
+                { version = '^1.12', path = '/elixir-ls/release/v0.14.6/language_server.sh' },
+              }
+              for _, ex_server in ipairs(elixir_servers) do
+                if string.match(version, ex_server.version) == nil then goto continue end
+                server = vim.tbl_extend('keep', server, { cmd = { vim.fn.expand('$LOCAL_SRC_HOME') .. ex_server.path } })
+                ::continue::
+              end
+            elseif server_name == 'pyright' then
+              local python_paths = {
+                { name = 'poetry', cmd = { 'poetry', 'env', 'info', '--executable' }},
+                { name = 'system', cmd = { 'which', 'python' }},
+              }
+              for _, py_server in ipairs(python_paths) do
+                local cmd = vim.system(py_server.cmd, { text = true }):wait()
+                if (cmd.code > 0) then goto continue end
+                local python_path = string.gsub(cmd.stdout, '\n', '')
+                server = vim.tbl_extend('keep', server, { settings = { python = { pythonPath = python_path } } })
+                ::continue::
+              end
+            end
             require('lspconfig')[server_name].setup(server)
           end,
         },
@@ -875,6 +957,7 @@ require('lazy').setup({
             -- set group index to 0 to skip loading LuaLS completions as lazydev recommends it
             group_index = 0,
           },
+          { name = 'supermavem' },
           { name = 'nvim_lsp' },
           { name = 'luasnip' },
           { name = 'path' },
@@ -890,19 +973,37 @@ require('lazy').setup({
     --
     -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
     'folke/tokyonight.nvim',
+    dependencies = {
+      'drewxs/ash.nvim',
+      'wnkz/monoglow.nvim',
+      'rjshkhr/shadow.nvim',
+      'sainnhe/gruvbox-material',
+    },
     priority = 1000, -- Make sure to load this before all the other start plugins.
     config = function()
       ---@diagnostic disable-next-line: missing-fields
-      require('tokyonight').setup {
-        styles = {
-          comments = { italic = false }, -- Disable italics in comments
-        },
-      }
+      -- require('tokyonight').setup {
+      --   styles = {
+      --     comments = { italic = false }, -- Disable italics in comments
+      --   },
+      -- }
 
       -- Load the colorscheme here.
       -- Like many other themes, this one has different styles, and you could load
       -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
-      vim.cmd.colorscheme 'tokyonight-night'
+      -- For monoglow the following variants area available:
+      -- 'monoglow-z', 'monoglow-lack', or 'monoglow-void'.
+      -- gruvbox-material configuration based on https://github.com/gonstoll/dotfiles/blob/2d7ec07bd475c73e7ba1a48b27a2a85315bfd2d1/.config/nvim/lua/plugins/colorscheme/gruvbox.lua#L5-L13
+      vim.g.gruvbox_material_better_performance = 1
+      vim.g.gruvbox_material_foreground = 'material'
+      vim.g.gruvbox_material_background = 'medium'
+      vim.g.gruvbox_material_ui_contrast = 'low'
+      vim.g.gruvbox_material_float_style = 'dim'
+      vim.g.gruvbox_material_enable_italic = 0
+      vim.g.gruvbox_material_disable_italic_comment = 1
+      vim.g.gruvbox_material_cursor = 'red'
+      vim.g.gruvbox_material_disable_terminal_colors = 1
+      vim.cmd.colorscheme 'gruvbox-material'
     end,
   },
 
@@ -952,7 +1053,39 @@ require('lazy').setup({
     main = 'nvim-treesitter.configs', -- Sets main module to use for opts
     -- [[ Configure Treesitter ]] See `:help nvim-treesitter`
     opts = {
-      ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' },
+      ensure_installed = {
+        'bash',
+        'c',
+        'css',
+        'diff',
+        'dockerfile',
+        'eex',
+        'elixir',
+        'erlang',
+        'gitcommit',
+        'go',
+        'heex',
+        'html',
+        'http',
+        'javascript',
+        'json',
+        'jsonc',
+        'lua',
+        'luadoc',
+        'markdown',
+        'markdown_inline',
+        'python',
+        'query',
+        'sql',
+        'templ',
+        'terraform',
+        'toml',
+        'tsx',
+        'typescript',
+        'vim',
+        'vimdoc',
+        'yaml',
+      },
       -- Autoinstall languages that are not installed
       auto_install = true,
       highlight = {
@@ -982,17 +1115,17 @@ require('lazy').setup({
   --  Uncomment any of the lines below to enable them (you will need to restart nvim).
   --
   -- require 'kickstart.plugins.debug',
-  -- require 'kickstart.plugins.indent_line',
+  require 'kickstart.plugins.indent_line',
   -- require 'kickstart.plugins.lint',
   -- require 'kickstart.plugins.autopairs',
   -- require 'kickstart.plugins.neo-tree',
-  -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
+  require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
 
   -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
   --    This is the easiest way to modularize your config.
   --
   --  Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going.
-  -- { import = 'custom.plugins' },
+  { import = 'custom.plugins' },
   --
   -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec`
   -- Or use telescope!