diff --git a/lua/cosmic/lsp/providers/null_ls.lua b/lua/cosmic/lsp/providers/null_ls.lua
index 07a4024..ad974b8 100644
--- a/lua/cosmic/lsp/providers/null_ls.lua
+++ b/lua/cosmic/lsp/providers/null_ls.lua
@@ -1,34 +1,22 @@
-local utils = require('cosmic.utils')
+local u = require('cosmic.utils')
 local defaults = require('cosmic.lsp.providers.defaults')
 local config = require('cosmic.config')
 local null_ls = require('null-ls')
 
 local config_opts = config.lsp.servers.null_ls or {}
-local has_eslint_config = function(u)
-  return u.root_has_file('.eslintrc')
-    or u.root_has_file('.eslintrc.json')
-    or u.root_has_file('.eslintrc.js')
-    or u.root_has_file('package.json')
-    or u.root_has_file('.eslintrc.cjs')
-    or u.root_has_file('.eslintrc.yaml')
-    or u.root_has_file('.eslintrc.yml')
-end
 
-require('null-ls').setup(utils.merge({
-  sources = {
+-- how to disable sources?
+if not config_opts.default_cosmic_sources then
+  config_opts.sources = u.merge_list({
     null_ls.builtins.code_actions.eslint_d.with({
-      condition = has_eslint_config,
       prefer_local = 'node_modules/.bin',
     }),
     null_ls.builtins.diagnostics.eslint_d.with({
-      condition = has_eslint_config,
       prefer_local = 'node_modules/.bin',
     }),
     null_ls.builtins.formatting.eslint_d.with({
-      condition = has_eslint_config,
       prefer_local = 'node_modules/.bin',
     }),
-    null_ls.builtins.diagnostics.shellcheck,
     null_ls.builtins.diagnostics.markdownlint,
     null_ls.builtins.formatting.prettierd.with({
       env = {
@@ -37,5 +25,7 @@ require('null-ls').setup(utils.merge({
     }),
     null_ls.builtins.formatting.stylua,
     null_ls.builtins.code_actions.gitsigns,
-  },
-}, defaults, config_opts or {}))
+  }, config_opts.sources)
+end
+
+require('null-ls').setup(u.merge(defaults, config_opts))
diff --git a/lua/cosmic/utils/init.lua b/lua/cosmic/utils/init.lua
index ac0378f..92a5a17 100644
--- a/lua/cosmic/utils/init.lua
+++ b/lua/cosmic/utils/init.lua
@@ -16,6 +16,13 @@ function M.buf_map(bufnr, mode, lhs, rhs, opts)
   vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, options)
 end
 
+function M.merge_list(tbl1, tbl2)
+  for _, v in ipairs(tbl2) do
+    table.insert(tbl1, v)
+  end
+  return tbl1
+end
+
 function M.merge(...)
   return vim.tbl_deep_extend('force', ...)
 end