From 75c06f578002481be2eab3ef832ef538342e5212 Mon Sep 17 00:00:00 2001
From: DerGrumpf
Date: Wed, 26 Mar 2025 13:26:52 +0100
Subject: [PATCH] Changed: Neovim Conf
---
home/hyprland/default.nix | 1 -
home/neovim/configs/init.lua | 37 ++++++++++
home/neovim/configs/lazy-lock.json | 34 +++++++++
home/neovim/configs/lua/chadrc.lua | 24 +++++++
home/neovim/configs/lua/configs/conform.lua | 15 ++++
home/neovim/configs/lua/configs/lazy.lua | 47 +++++++++++++
home/neovim/configs/lua/configs/lint.lua | 21 ++++++
home/neovim/configs/lua/configs/lspconfig.lua | 57 +++++++++++++++
.../configs/lua/configs/mason-conform.lua | 4 ++
.../neovim/configs/lua/configs/mason-lint.lua | 26 +++++++
.../configs/lua/configs/mason-lspconfig.lua | 24 +++++++
.../neovim/configs/lua/configs/treesitter.lua | 26 +++++++
home/neovim/configs/lua/mappings.lua | 10 +++
home/neovim/configs/lua/options.lua | 7 ++
home/neovim/configs/lua/plugins/init.lua | 70 +++++++++++++++++++
home/neovim/default.nix | 19 +++++
home/programs/common.nix | 6 +-
home/programs/docker.nix | 21 ++++++
18 files changed, 443 insertions(+), 6 deletions(-)
create mode 100644 home/neovim/configs/init.lua
create mode 100644 home/neovim/configs/lazy-lock.json
create mode 100644 home/neovim/configs/lua/chadrc.lua
create mode 100644 home/neovim/configs/lua/configs/conform.lua
create mode 100644 home/neovim/configs/lua/configs/lazy.lua
create mode 100644 home/neovim/configs/lua/configs/lint.lua
create mode 100644 home/neovim/configs/lua/configs/lspconfig.lua
create mode 100644 home/neovim/configs/lua/configs/mason-conform.lua
create mode 100644 home/neovim/configs/lua/configs/mason-lint.lua
create mode 100644 home/neovim/configs/lua/configs/mason-lspconfig.lua
create mode 100644 home/neovim/configs/lua/configs/treesitter.lua
create mode 100644 home/neovim/configs/lua/mappings.lua
create mode 100644 home/neovim/configs/lua/options.lua
create mode 100644 home/neovim/configs/lua/plugins/init.lua
create mode 100644 home/neovim/default.nix
create mode 100644 home/programs/docker.nix
diff --git a/home/hyprland/default.nix b/home/hyprland/default.nix
index 1796b56..fa8f6e0 100644
--- a/home/hyprland/default.nix
+++ b/home/hyprland/default.nix
@@ -10,7 +10,6 @@ in
{
imports = [
./kitty.nix # Terminal
- ./fileManager.nix
../waybar # Status Bar
../rofi # App Launcher
];
diff --git a/home/neovim/configs/init.lua b/home/neovim/configs/init.lua
new file mode 100644
index 0000000..0fda20c
--- /dev/null
+++ b/home/neovim/configs/init.lua
@@ -0,0 +1,37 @@
+vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
+vim.g.mapleader = " "
+
+-- bootstrap lazy and all plugins
+local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
+
+if not vim.uv.fs_stat(lazypath) then
+ local repo = "https://github.com/folke/lazy.nvim.git"
+ vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
+end
+
+vim.opt.rtp:prepend(lazypath)
+
+local lazy_config = require "configs.lazy"
+
+-- load plugins
+require("lazy").setup({
+ {
+ "NvChad/NvChad",
+ lazy = false,
+ branch = "v2.5",
+ import = "nvchad.plugins",
+ },
+
+ { import = "plugins" },
+}, lazy_config)
+
+-- load theme
+dofile(vim.g.base46_cache .. "defaults")
+dofile(vim.g.base46_cache .. "statusline")
+
+require "options"
+require "nvchad.autocmds"
+
+vim.schedule(function()
+ require "mappings"
+end)
diff --git a/home/neovim/configs/lazy-lock.json b/home/neovim/configs/lazy-lock.json
new file mode 100644
index 0000000..6a483ed
--- /dev/null
+++ b/home/neovim/configs/lazy-lock.json
@@ -0,0 +1,34 @@
+{
+ "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
+ "NvChad": { "branch": "v2.5", "commit": "6f25b2739684389ca69ea8229386c098c566c408" },
+ "base46": { "branch": "v3.0", "commit": "59566882e09a8a77dbdb33b678a93680c36ae089" },
+ "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
+ "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
+ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
+ "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
+ "conform.nvim": { "branch": "master", "commit": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d" },
+ "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
+ "fzf.vim": { "branch": "master", "commit": "245eaf8e50fe440729056ce8d4e7e2bb5b1ff9c9" },
+ "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" },
+ "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" },
+ "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
+ "mason-conform.nvim": { "branch": "main", "commit": "1983f353b29d8716751665c18d57e1ac0473a59a" },
+ "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
+ "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
+ "menu": { "branch": "main", "commit": "7769b17c2a131108c02b10e9f844e504aa605cc2" },
+ "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
+ "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" },
+ "nvim-cmp": { "branch": "main", "commit": "c27370703e798666486e3064b64d59eaf4bdc6d5" },
+ "nvim-lint": { "branch": "master", "commit": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8" },
+ "nvim-lspconfig": { "branch": "master", "commit": "8a1529e46eef5efc86c34c8d9bdd313abc2ecba0" },
+ "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" },
+ "nvim-treesitter": { "branch": "master", "commit": "1a314a58d6d7695d226b56f6b61b1596993d5ac7" },
+ "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" },
+ "openscad.nvim": { "branch": "main", "commit": "58baf76fd2f9e2fe2ca83ea120d56084edb8871e" },
+ "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
+ "telescope.nvim": { "branch": "master", "commit": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4" },
+ "ui": { "branch": "v3.0", "commit": "57d403c219353b1f8e4cd635d058fbfcd9d647ea" },
+ "volt": { "branch": "main", "commit": "21a2351697abfed26d4469b88d3ab124d55a1b3f" },
+ "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
+}
diff --git a/home/neovim/configs/lua/chadrc.lua b/home/neovim/configs/lua/chadrc.lua
new file mode 100644
index 0000000..a7aa89e
--- /dev/null
+++ b/home/neovim/configs/lua/chadrc.lua
@@ -0,0 +1,24 @@
+-- This file needs to have same structure as nvconfig.lua
+-- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua
+-- Please read that file to know all available options :(
+
+---@type ChadrcConfig
+local M = {}
+
+M.base46 = {
+ theme = "radium",
+
+ -- hl_override = {
+ -- Comment = { italic = true },
+ -- ["@comment"] = { italic = true },
+ -- },
+}
+
+-- M.nvdash = { load_on_startup = true }
+-- M.ui = {
+-- tabufline = {
+-- lazyload = false
+-- }
+--}
+
+return M
diff --git a/home/neovim/configs/lua/configs/conform.lua b/home/neovim/configs/lua/configs/conform.lua
new file mode 100644
index 0000000..5b50b37
--- /dev/null
+++ b/home/neovim/configs/lua/configs/conform.lua
@@ -0,0 +1,15 @@
+local options = {
+ formatters_by_ft = {
+ lua = { "stylua" },
+ -- css = { "prettier" },
+ -- html = { "prettier" },
+ },
+
+ format_on_save = {
+ -- These options will be passed to conform.format()
+ timeout_ms = 500,
+ lsp_fallback = true,
+ },
+}
+
+return options
diff --git a/home/neovim/configs/lua/configs/lazy.lua b/home/neovim/configs/lua/configs/lazy.lua
new file mode 100644
index 0000000..cd170bd
--- /dev/null
+++ b/home/neovim/configs/lua/configs/lazy.lua
@@ -0,0 +1,47 @@
+return {
+ defaults = { lazy = true },
+ install = { colorscheme = { "nvchad" } },
+
+ ui = {
+ icons = {
+ ft = "",
+ lazy = " ",
+ loaded = "",
+ not_loaded = "",
+ },
+ },
+
+ performance = {
+ rtp = {
+ disabled_plugins = {
+ "2html_plugin",
+ "tohtml",
+ "getscript",
+ "getscriptPlugin",
+ "gzip",
+ "logipat",
+ "netrw",
+ "netrwPlugin",
+ "netrwSettings",
+ "netrwFileHandlers",
+ "matchit",
+ "tar",
+ "tarPlugin",
+ "rrhelper",
+ "spellfile_plugin",
+ "vimball",
+ "vimballPlugin",
+ "zip",
+ "zipPlugin",
+ "tutor",
+ "rplugin",
+ "syntax",
+ "synmenu",
+ "optwin",
+ "compiler",
+ "bugreport",
+ "ftplugin",
+ },
+ },
+ },
+}
diff --git a/home/neovim/configs/lua/configs/lint.lua b/home/neovim/configs/lua/configs/lint.lua
new file mode 100644
index 0000000..51f32aa
--- /dev/null
+++ b/home/neovim/configs/lua/configs/lint.lua
@@ -0,0 +1,21 @@
+local lint = require("lint")
+
+lint.linters_by_ft = {
+ lua = { "luacheck" },
+}
+
+lint.linters.luacheck.args = {
+ "--globals",
+ "vim",
+ "--formatter",
+ "plain",
+ "--codes",
+ "--ranges",
+ "-",
+}
+
+vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
+ callback = function()
+ lint.try_lint()
+ end,
+})
diff --git a/home/neovim/configs/lua/configs/lspconfig.lua b/home/neovim/configs/lua/configs/lspconfig.lua
new file mode 100644
index 0000000..8f814e5
--- /dev/null
+++ b/home/neovim/configs/lua/configs/lspconfig.lua
@@ -0,0 +1,57 @@
+-- load defaults i.e lua_lsp
+local on_attach = require("nvchad.configs.lspconfig").on_attach
+local on_init = require("nvchad.configs.lspconfig").on_init
+local capabilities = require("nvchad.configs.lspconfig").capabilities
+
+local lspconfig = require("lspconfig")
+
+-- List of all servers configured
+lspconfig.servers = {
+ "lua_ls",
+ "templ",
+ "jedi_language_server",
+ -- "gopls",
+}
+
+-- List of servers configured with default config
+local default_servers = {
+ "templ",
+ -- "gopls",
+ "jedi_language_server",
+}
+
+-- lsps with default config
+for _, lsp in ipairs(default_servers) do
+ lspconfig[lsp].setup({
+ on_attach = on_attach,
+ on_init = on_init,
+ capabilities = capabilities,
+ })
+end
+
+-- Lua LSP
+lspconfig.lua_ls.setup({
+ on_attach = on_attach,
+ on_init = on_init,
+ capabilities = capabilities,
+
+ settings = {
+ Lua = {
+ diagnostics = {
+ enable = false, -- Disable all diagnostics from lua_ls
+ -- globals = { "vim" }
+ },
+ workspace = {
+ library = {
+ vim.fn.expand("$VIMRUNTIME/lua"),
+ vim.fn.expand("$VIMRUNTIME/lua/vim/lsp"),
+ vim.fn.stdpath("data") .. "/lazy/ui/nvchad_types",
+ vim.fn.stdpath("data") .. "/lazy/lazy.nvim/lua/lazy",
+ --"${3rd}/love2d/library",
+ },
+ maxPreload = 100000,
+ preloadFileSize = 10000,
+ },
+ },
+ },
+})
diff --git a/home/neovim/configs/lua/configs/mason-conform.lua b/home/neovim/configs/lua/configs/mason-conform.lua
new file mode 100644
index 0000000..4fa05a7
--- /dev/null
+++ b/home/neovim/configs/lua/configs/mason-conform.lua
@@ -0,0 +1,4 @@
+require("mason-conform").setup({
+ -- List of formatters to ignore during install
+ ignore_install = {},
+})
diff --git a/home/neovim/configs/lua/configs/mason-lint.lua b/home/neovim/configs/lua/configs/mason-lint.lua
new file mode 100644
index 0000000..2f5a603
--- /dev/null
+++ b/home/neovim/configs/lua/configs/mason-lint.lua
@@ -0,0 +1,26 @@
+local lint = package.loaded["lint"]
+
+local ignore_install = {}
+
+local function table_contains(table, value)
+ for _, v in ipairs(table) do
+ if v == value then
+ return true
+ end
+ end
+ return false
+end
+
+local all_linters = {}
+for _, v in pairs(lint.linters_by_ft) do
+ for _, linter in ipairs(v) do
+ if not table_contains(ignore_install, linter) then
+ table.insert(all_linters, linter)
+ end
+ end
+end
+
+require("mason-nvim-lint").setup({
+ ensure_installed = all_linters,
+ automatic_installation = false,
+})
diff --git a/home/neovim/configs/lua/configs/mason-lspconfig.lua b/home/neovim/configs/lua/configs/mason-lspconfig.lua
new file mode 100644
index 0000000..cce6dd7
--- /dev/null
+++ b/home/neovim/configs/lua/configs/mason-lspconfig.lua
@@ -0,0 +1,24 @@
+local lspconfig = package.loaded["lspconfig"]
+
+local ignore_install = {}
+
+local function table_contains(table, value)
+ for _, v in ipairs(table) do
+ if v == value then
+ return true
+ end
+ end
+ return false
+end
+
+local all_servers = {}
+for _, s in ipairs(lspconfig.servers) do
+ if not table_contains(ignore_install, s) then
+ table.insert(all_servers, s)
+ end
+end
+
+require("mason-lspconfig").setup({
+ ensure_installed = all_servers,
+ automatic_installation = false,
+})
diff --git a/home/neovim/configs/lua/configs/treesitter.lua b/home/neovim/configs/lua/configs/treesitter.lua
new file mode 100644
index 0000000..d2a09cb
--- /dev/null
+++ b/home/neovim/configs/lua/configs/treesitter.lua
@@ -0,0 +1,26 @@
+local options = {
+ ensure_installed = {
+ "bash",
+ "fish",
+ "lua",
+ "luadoc",
+ "markdown",
+ "printf",
+ "toml",
+ "vim",
+ "vimdoc",
+ "yaml",
+ -- Languages
+ "python",
+ "templ",
+ },
+
+ highlight = {
+ enable = true,
+ use_languagetree = true,
+ },
+
+ indent = { enable = true },
+}
+
+require("nvim-treesitter.configs").setup(options)
diff --git a/home/neovim/configs/lua/mappings.lua b/home/neovim/configs/lua/mappings.lua
new file mode 100644
index 0000000..783b78f
--- /dev/null
+++ b/home/neovim/configs/lua/mappings.lua
@@ -0,0 +1,10 @@
+require "nvchad.mappings"
+
+-- add yours here
+
+local map = vim.keymap.set
+
+map("n", ";", ":", { desc = "CMD enter command mode" })
+map("i", "jk", "")
+
+-- map({ "n", "i", "v" }, "", " w ")
diff --git a/home/neovim/configs/lua/options.lua b/home/neovim/configs/lua/options.lua
new file mode 100644
index 0000000..95205d5
--- /dev/null
+++ b/home/neovim/configs/lua/options.lua
@@ -0,0 +1,7 @@
+require("nvchad.options")
+
+-- add yours here!
+local o = vim.o
+o.shiftwidth = 4
+o.tabstop = 4
+o.softtabstop = 4
diff --git a/home/neovim/configs/lua/plugins/init.lua b/home/neovim/configs/lua/plugins/init.lua
new file mode 100644
index 0000000..a5430cb
--- /dev/null
+++ b/home/neovim/configs/lua/plugins/init.lua
@@ -0,0 +1,70 @@
+return {
+
+ {
+ "nvim-treesitter/nvim-treesitter",
+ event = { "BufReadPre", "BufNewFile" },
+ config = function()
+ require("configs.treesitter")
+ end,
+ },
+
+ {
+ "mfussenegger/nvim-lint",
+ event = { "BufReadPre", "BufNewFile" },
+ config = function()
+ require("configs.lint")
+ end,
+ },
+
+ -- {
+ -- "rshkarin/mason-nvim-lint",
+ -- event = "VeryLazy",
+ -- config = function()
+ -- require("config.mason-lint")
+ -- end,
+ -- },
+
+ {
+ "stevearc/conform.nvim",
+ event = "BufWritePre", -- uncomment for format on save
+ opts = require("configs.conform"),
+ },
+
+ {
+ "zapling/mason-conform.nvim",
+ event = "VeryLazy",
+ dependencies = { "conform.nvim" },
+ config = function()
+ require("configs.mason-conform")
+ end,
+ },
+
+ {
+ "neovim/nvim-lspconfig",
+ event = { "BufReadPre", "BufNewFile" },
+ config = function()
+ require("nvchad.configs.lspconfig").defaults()
+ require("configs.lspconfig")
+ end,
+ },
+
+ {
+ "williamboman/mason-lspconfig.nvim",
+ event = "VeryLazy",
+ dependencies = { "nvim-lspconfig" },
+ config = function()
+ require("configs.mason-lspconfig")
+ end,
+ },
+
+ {
+ "salkin-mada/openscad.nvim",
+ config = function()
+ vim.g.openscad_load_snippets = true
+ vim.g.openscad_default_mappings = true
+ vim.g.openscad_auto_open = true
+ require("openscad")
+ end,
+ dependencies = { "L3MON4D3/LuaSnip", "junegunn/fzf.vim" },
+ },
+}
diff --git a/home/neovim/default.nix b/home/neovim/default.nix
new file mode 100644
index 0000000..8255088
--- /dev/null
+++ b/home/neovim/default.nix
@@ -0,0 +1,19 @@
+{
+ pkgs,
+ config,
+ ...
+}: {
+ programs.neovim = {
+ enable = true;
+ defaultEditor = true;
+ viAlias = true;
+ vimAlias = true;
+ vimdiffAlias = true;
+ };
+
+ home.file.".config/nvim" = {
+ source = ./configs;
+ # copy the scripts directory recursively
+ recursive = true;
+ };
+}
diff --git a/home/programs/common.nix b/home/programs/common.nix
index 61d0d91..3dc5d03 100644
--- a/home/programs/common.nix
+++ b/home/programs/common.nix
@@ -4,11 +4,7 @@
catppuccin-bat,
...
}: {
- home.packages = with pkgs; [
- # docker
- docker-compose
-
- ];
+ #home.packages = with pkgs; [];
programs = {
tmux = {
diff --git a/home/programs/docker.nix b/home/programs/docker.nix
new file mode 100644
index 0000000..49ec0cd
--- /dev/null
+++ b/home/programs/docker.nix
@@ -0,0 +1,21 @@
+{ pkgs, ... }: {
+
+ virtualisation.docker = {
+ enable = true;
+ rootless = {
+ enable = true;
+ setSockettVariable = true;
+ };
+
+ daemon.settings = {
+ data-root = "/docker/containers";
+ userland-proxy = false;
+ experimental = true;
+ metrics-addr = "0.0.0.0:9323";
+ ipv6 = true;
+ fixed-cidr-v6 = "fd00::/80";
+ };
+ };
+ users.extraGroups.docker.members = [ "username-with-access-to-socket" ];
+
+}