diff --git a/modules/home-manager/nvim/default.nix b/modules/home-manager/nvim/default.nix index 12f48e0..1e82242 100755 --- a/modules/home-manager/nvim/default.nix +++ b/modules/home-manager/nvim/default.nix @@ -1,8 +1,7 @@ {pkgs, ...}: { - # fix nvchad - # xdg.configFile."nvim" = { - # source = "${pkgs.nvchad}"; - # }; + xdg.configFile."nvim" = { + source = "${pkgs.nvchad}"; + }; programs = { neovim = { diff --git a/pkgs/nvchad/custom/mappings.lua b/pkgs/nvchad/custom/mappings.lua deleted file mode 100644 index 57b2f99..0000000 --- a/pkgs/nvchad/custom/mappings.lua +++ /dev/null @@ -1,49 +0,0 @@ -local M = {} - -M.nvterm = { - t = { - [""] = { - function() - require("nvterm.terminal").toggle("float") - end, - "Toggle floating term", - }, - }, - n = { - [""] = { - function() - require("nvterm.terminal").toggle("float") - end, - "Toggle floating term", - }, - ["Sl"] = { "SessionManager! load_last_session", desc = "Load last session" }, - ["Ss"] = { "SessionManager! save_current_session", desc = "Save this session" }, - ["Sd"] = { "SessionManager! delete_session", desc = "Delete session" }, - ["Sf"] = { "SessionManager! load_session", desc = "Search sessions" }, - ["S."] = { - "SessionManager! load_current_dir_session", - desc = "Load current directory session", - }, - }, -} - -if vim.g.neovide then - M.neovide = { - n = { - [""] = { - function() - vim.g.neovide_scale_factor = vim.g.neovide_scale_factor + 0.1 - end, - desc = "Zoom In (Neovide)", - }, - [""] = { - function() - vim.g.neovide_scale_factor = vim.g.neovide_scale_factor - 0.1 - end, - desc = "Zoom Out (Neovide)", - }, - }, - } -end - -return M diff --git a/pkgs/nvchad/default.nix b/pkgs/nvchad/default.nix index 5bdc442..9bc1127 100644 --- a/pkgs/nvchad/default.nix +++ b/pkgs/nvchad/default.nix @@ -1,26 +1,16 @@ { stdenv, lib, - fetchFromGitHub, }: let - custom = ./custom; + nvim = ./nvim; in stdenv.mkDerivation { pname = "nvchad"; - version = "2.0.0"; + version = "2.5.0"; - src = fetchFromGitHub { - owner = "NvChad"; - repo = "NvChad"; - rev = "refs/heads/v2.0"; - sha256 = "sha256-tKMvKdB3jPSvcyewaOe8oak3pXhjAcLyyxgGMiMeqeU="; - }; - - installPhase = '' - mkdir $out - cp -r * "$out/" - mkdir -p "$out/lua/custom" - cp -r ${custom}/* "$out/lua/custom/" + buildCommand = '' + mkdir -p $out + cp -r ${nvim}/* "$out/" ''; meta = with lib; { diff --git a/pkgs/nvchad/nvim/init.lua b/pkgs/nvchad/nvim/init.lua new file mode 100644 index 0000000..7d0fdbf --- /dev/null +++ b/pkgs/nvchad/nvim/init.lua @@ -0,0 +1,39 @@ +vim.g.base46_cache = vim.fn.stdpath("data") .. "/nvchad/base46/" +vim.g.mapleader = " " + +-- bootstrap lazy and all plugins +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" + +if not vim.loop.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", + config = function() + require("options") + end, + }, + + { import = "plugins" }, +}, lazy_config) + +-- load theme +dofile(vim.g.base46_cache .. "defaults") +dofile(vim.g.base46_cache .. "statusline") + +require("nvchad.autocmds") + +vim.schedule(function() + require("mappings") +end) diff --git a/pkgs/nvchad/custom/chadrc.lua b/pkgs/nvchad/nvim/lua/chadrc.lua similarity index 77% rename from pkgs/nvchad/custom/chadrc.lua rename to pkgs/nvchad/nvim/lua/chadrc.lua index 57731d7..26b1d21 100644 --- a/pkgs/nvchad/custom/chadrc.lua +++ b/pkgs/nvchad/nvim/lua/chadrc.lua @@ -1,7 +1,7 @@ local M = {} M.ui = { - theme = "oxocarbon", + theme = "poimandres", transparency = true, nvdash = { load_on_startup = true, @@ -16,7 +16,4 @@ M.ui = { }, } -M.mappings = require("custom.mappings") -M.plugins = "custom.plugins" - return M diff --git a/pkgs/nvchad/custom/configs/conform.lua b/pkgs/nvchad/nvim/lua/configs/conform.lua similarity index 100% rename from pkgs/nvchad/custom/configs/conform.lua rename to pkgs/nvchad/nvim/lua/configs/conform.lua diff --git a/pkgs/nvchad/custom/configs/gen.lua b/pkgs/nvchad/nvim/lua/configs/gen.lua similarity index 100% rename from pkgs/nvchad/custom/configs/gen.lua rename to pkgs/nvchad/nvim/lua/configs/gen.lua diff --git a/pkgs/nvchad/nvim/lua/configs/lazy.lua b/pkgs/nvchad/nvim/lua/configs/lazy.lua new file mode 100644 index 0000000..cd170bd --- /dev/null +++ b/pkgs/nvchad/nvim/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/pkgs/nvchad/custom/configs/lspconfig.lua b/pkgs/nvchad/nvim/lua/configs/lspconfig.lua similarity index 89% rename from pkgs/nvchad/custom/configs/lspconfig.lua rename to pkgs/nvchad/nvim/lua/configs/lspconfig.lua index 4ff8912..d3774c9 100644 --- a/pkgs/nvchad/custom/configs/lspconfig.lua +++ b/pkgs/nvchad/nvim/lua/configs/lspconfig.lua @@ -1,4 +1,4 @@ -local configs = require("plugins.configs.lspconfig") +local configs = require("nvchad.configs.lspconfig") local on_attach = configs.on_attach local capabilities = configs.capabilities diff --git a/pkgs/nvchad/custom/configs/noice.lua b/pkgs/nvchad/nvim/lua/configs/noice.lua similarity index 100% rename from pkgs/nvchad/custom/configs/noice.lua rename to pkgs/nvchad/nvim/lua/configs/noice.lua diff --git a/pkgs/nvchad/custom/configs/null-ls.lua b/pkgs/nvchad/nvim/lua/configs/null-ls.lua similarity index 100% rename from pkgs/nvchad/custom/configs/null-ls.lua rename to pkgs/nvchad/nvim/lua/configs/null-ls.lua diff --git a/pkgs/nvchad/custom/configs/nvim-lint.lua b/pkgs/nvchad/nvim/lua/configs/nvim-lint.lua similarity index 100% rename from pkgs/nvchad/custom/configs/nvim-lint.lua rename to pkgs/nvchad/nvim/lua/configs/nvim-lint.lua diff --git a/pkgs/nvchad/custom/configs/overrides.lua b/pkgs/nvchad/nvim/lua/configs/overrides.lua similarity index 69% rename from pkgs/nvchad/custom/configs/overrides.lua rename to pkgs/nvchad/nvim/lua/configs/overrides.lua index 9ddde9c..08aa258 100644 --- a/pkgs/nvchad/custom/configs/overrides.lua +++ b/pkgs/nvchad/nvim/lua/configs/overrides.lua @@ -39,23 +39,6 @@ M.mason = { }, } -M.nvterm = { - terminals = { - shell = vim.o.shell, - list = {}, - type_opts = { - float = { - relative = "editor", - row = 0.23, - col = 0.15, - width = 0.7, - height = 0.5, - border = "single", - }, - }, - }, -} - M.telescope = { defaults = { winblend = 40, diff --git a/pkgs/nvchad/nvim/lua/mappings.lua b/pkgs/nvchad/nvim/lua/mappings.lua new file mode 100644 index 0000000..564697c --- /dev/null +++ b/pkgs/nvchad/nvim/lua/mappings.lua @@ -0,0 +1,42 @@ +require("nvchad.mappings") + +local map = vim.keymap.set +local g = vim.g + +local float_opts = { + relative = "editor", + row = 0.13, + col = 0.14, + width = 0.7, + height = 0.7, + border = "single", +} + +local toggleTerm = function() + require("nvchad.term").toggle({ pos = "float", id = "float", float_opts = float_opts }) +end + +local toggleLazygit = function() + require("nvchad.term").toggle({ pos = "float", id = "lazygit", float_opts = float_opts, cmd = "lazygit" }) +end + +local zoomInNeovide = function() + g.neovide_scale_factor = g.neovide_scale_factor + 0.1 +end + +local zoomOutNeovide = function() + g.neovide_scale_factor = g.neovide_scale_factor - 0.1 +end + +map({ "n", "t" }, "", toggleTerm, { desc = "Toggle Floating Terminal" }) +map({ "n", "t" }, "", toggleLazygit, { desc = "Toggle Lazygit" }) +map("n", "Sl", "SessionManager! load_last_session", { desc = "Load last session" }) +map("n", "Ss", "SessionManager! save_current_session", { desc = "Save this session" }) +map("n", "Sd", "SessionManager! delete_session", { desc = "Delete session" }) +map("n", "Sf", "SessionManager! load_session", { desc = "Search sessions" }) +map("n", "S.", "SessionManager! load_current_dir_session", { desc = "Load current directory session" }) + +if g.neovide then + map("n", "", zoomInNeovide, { desc = "Zoom In (Neovide)" }) + map("n", "", zoomOutNeovide, { desc = "Zoom Out (Neovide)" }) +end diff --git a/pkgs/nvchad/custom/init.lua b/pkgs/nvchad/nvim/lua/options.lua similarity index 88% rename from pkgs/nvchad/custom/init.lua rename to pkgs/nvchad/nvim/lua/options.lua index aa414cd..9a62a66 100644 --- a/pkgs/nvchad/custom/init.lua +++ b/pkgs/nvchad/nvim/lua/options.lua @@ -1,3 +1,5 @@ +require "nvchad.options" + local opt = vim.opt local g = vim.g @@ -8,3 +10,4 @@ opt.guifont = "FiraCode Nerd Font:h12" -- neovide stuff g.neovide_scale_factor = 0.7 -- g.neovide_transparency = 0.8 + diff --git a/pkgs/nvchad/custom/plugins.lua b/pkgs/nvchad/nvim/lua/plugins/init.lua similarity index 55% rename from pkgs/nvchad/custom/plugins.lua rename to pkgs/nvchad/nvim/lua/plugins/init.lua index 9c90d01..2ea7515 100644 --- a/pkgs/nvchad/custom/plugins.lua +++ b/pkgs/nvchad/nvim/lua/plugins/init.lua @@ -1,6 +1,12 @@ -local overrides = require("custom.configs.overrides") +local overrides = require("configs.overrides") local plugins = { + { + "stevearc/conform.nvim", + config = function() + require "configs.conform" + end, + }, { "nvim-treesitter/nvim-treesitter", opts = overrides.treesitter, @@ -9,35 +15,11 @@ local plugins = { "williamboman/mason.nvim", opts = overrides.mason, }, - { - "NvChad/nvterm", - opts = overrides.nvterm, - }, - -- { - -- "telescope.nvim", - -- opts = overrides.telescope, - -- }, - -- Need to setup properly - -- { - -- "stevearc/conform.nvim", - -- event = "BufWritePre", - -- config = function() - -- require("custom.configs.conform") - -- end, - -- }, - -- { - -- "mfussenegger/nvim-lint", - -- lazy = true, - -- event = { "BufReadPre", "BufNewFile" }, - -- config = function() - -- require("custom.configs.nvim-lint") - -- end, - -- }, { "David-Kunz/gen.nvim", lazy = false, opts = function() - return require("custom.configs.gen") + return require("configs.gen") end, }, { @@ -57,21 +39,21 @@ local plugins = { "rcarriga/nvim-notify", }, opts = function() - return require("custom.configs.noice") + return require("configs.noice") end, }, { "neovim/nvim-lspconfig", config = function() - require("plugins.configs.lspconfig") - require("custom.configs.lspconfig") + require("nvchad.configs.lspconfig").defaults() + require("configs.lspconfig") end, }, { "nvimtools/none-ls.nvim", event = "VeryLazy", opts = function() - return require("custom.configs.null-ls") + return require("configs.null-ls") end, }, {