From 034fc6c781b2bd2eb7a238fb97735ed0bfbb8bef Mon Sep 17 00:00:00 2001 From: fqbn207 Date: Thu, 16 Jan 2025 01:12:53 +0100 Subject: [PATCH] kekl --- configuration.nix | 11 +++-- flake.lock | 21 ++++++++++ flake.nix | 19 +++++---- modules/system/nix/nvim/cmp.nix | 30 ++++++++++++++ modules/system/nix/nvim/default.nix | 25 +++++++++--- modules/system/nix/nvim/default.nix~ | 35 ++++++++++++++++ modules/system/nix/nvim/lsp.nix | 11 ++++- modules/system/nix/nvim/neotree.nix | 2 +- modules/system/nix/nvim/opts.nix | 15 ------- modules/system/nix/nvim/raw/cmp.lua | 59 +++++++++++++++++++++++++++ modules/system/nix/nvim/raw/opts.lua | 37 +++++++++++++++++ modules/system/nix/nvim/raw/opts.lua~ | 37 +++++++++++++++++ modules/system/nix/nvim/terminal.nix | 8 ++-- 13 files changed, 272 insertions(+), 38 deletions(-) create mode 100644 modules/system/nix/nvim/cmp.nix create mode 100644 modules/system/nix/nvim/default.nix~ delete mode 100644 modules/system/nix/nvim/opts.nix create mode 100644 modules/system/nix/nvim/raw/cmp.lua create mode 100644 modules/system/nix/nvim/raw/opts.lua create mode 100644 modules/system/nix/nvim/raw/opts.lua~ diff --git a/configuration.nix b/configuration.nix index 0a96479..aaa596e 100644 --- a/configuration.nix +++ b/configuration.nix @@ -3,9 +3,8 @@ lib, pkgs, ... -}: let - home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/master.tar.gz"; -in { +}: +{ imports = [ ./hardware-configuration.nix ./modules/system/nix/default.nix @@ -43,7 +42,7 @@ in { useOSProber = true; }; }; - supportedFilesystems = ["ntfs"]; + supportedFilesystems = [ "ntfs" ]; }; networking = { @@ -231,6 +230,7 @@ in { vesktop pacman wf-recorder + ]; security = { @@ -238,7 +238,7 @@ in { enable = true; extraRules = [ { - users = ["fabian"]; + users = [ "fabian" ]; noPass = true; keepEnv = true; } @@ -270,5 +270,4 @@ in { system.stateVersion = "unstable"; - home-manager.users.fabian = ./modules/home/home.nix; } diff --git a/flake.lock b/flake.lock index 1f0c124..d7b528a 100644 --- a/flake.lock +++ b/flake.lock @@ -36,6 +36,26 @@ "type": "github" } }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1736785676, + "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "mnw": { "locked": { "lastModified": 1735150973, @@ -2239,6 +2259,7 @@ }, "root": { "inputs": { + "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nvf": "nvf" } diff --git a/flake.nix b/flake.nix index 4966a5a..232b1eb 100644 --- a/flake.nix +++ b/flake.nix @@ -3,25 +3,30 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; nvf.url = "github:notashelf/nvf"; }; outputs = { self, nixpkgs, + home-manager, nvf, }: { - packages."x86_64-linux".default = - (nvf.lib.neovimConfiguration { - pkgs = nixpkgs.legacyPakcages."x86_64-linux"; - modules = [./modules/system/nix/nvim/default.nix]; - }) - .neovim; nixosConfigurations.poggers = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./configuration.nix - nvf.homeManagerModules.default + nvf.nixosModules.default + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.fabian = import ./modules/home/home.nix; + }; + } ]; }; }; diff --git a/modules/system/nix/nvim/cmp.nix b/modules/system/nix/nvim/cmp.nix new file mode 100644 index 0000000..e370273 --- /dev/null +++ b/modules/system/nix/nvim/cmp.nix @@ -0,0 +1,30 @@ +{ + pkgs, + lib, + ... +}: { + programs.nvf.settings.vim = { + extraLuaFiles = [ + (builtins.path { + path = ./raw/cmp.lua; + name = "my-lua-file"; + }) + ]; + autocomplete = { + nvim-cmp = { + enable = true; + setupOpts = { + completion = { + completeopt = "menu,menuone,noinsert,noselect"; + }; + }; + sourcePlugins = [ + "crates-nvim" + "cmp-path" + "cmp-nvim-lsp" + "rustaceanvim" + ]; + }; + }; + }; +} diff --git a/modules/system/nix/nvim/default.nix b/modules/system/nix/nvim/default.nix index 6d87303..2d0b7d4 100644 --- a/modules/system/nix/nvim/default.nix +++ b/modules/system/nix/nvim/default.nix @@ -8,12 +8,27 @@ ./terminal.nix ./neotree.nix ./opts.nix + ./cmp.nix ]; - vim = { - theme = { - enable = true; - name = "horizon"; - style = "dark"; + programs.nvf = { + enable = true; + settings = { + vim = { + extraLuaFiles = [ + (builtins.path { + path = ./raw/opts.lua; + name = "opts.lua"; + }) + ]; + autopairs.nvim-autopairs.enable = true; + statusline.lualine = { + enable = true; + }; + telescope.enable = true; + theme = { + enable = true; + }; + }; }; }; } diff --git a/modules/system/nix/nvim/default.nix~ b/modules/system/nix/nvim/default.nix~ new file mode 100644 index 0000000..539a628 --- /dev/null +++ b/modules/system/nix/nvim/default.nix~ @@ -0,0 +1,35 @@ +{ + pkgs, + lib, + ... +}: { + imports = [ + ./lsp.nix + ./terminal.nix + ./neotree.nix + ./opts.nix + ./cmp.nix + ]; + programs.nvf = { + enable = true; + settings = { + vim = { + extraLuaFiles = [ + (builtins.path { + path = ./raw/opts.lua; + name = "opts.lua" + }) + ]; + autopairs.nvim-autopairs.enable = true; + statusline.lualine = { + enable = true; + }; + telescope.enable = true; + theme = { + enable = true; + }; + }; + }; + }; +} + diff --git a/modules/system/nix/nvim/lsp.nix b/modules/system/nix/nvim/lsp.nix index 070067c..34f3df9 100644 --- a/modules/system/nix/nvim/lsp.nix +++ b/modules/system/nix/nvim/lsp.nix @@ -3,7 +3,7 @@ lib, ... }: { - vim = { + programs.nvf.settings.vim = { languages = { clang = { enable = true; @@ -11,6 +11,15 @@ treesitter.enable = true; lsp.enable = true; }; + python = { + enable = true; + }; + go = { + enable = true; + }; + lua = { + enable = true; + }; rust = { enable = true; dap.enable = true; diff --git a/modules/system/nix/nvim/neotree.nix b/modules/system/nix/nvim/neotree.nix index e77d045..0605dde 100644 --- a/modules/system/nix/nvim/neotree.nix +++ b/modules/system/nix/nvim/neotree.nix @@ -3,7 +3,7 @@ lib, ... }: { - vim = { + programs.nvf.settings.vim = { filetree = { neo-tree = { enable = true; diff --git a/modules/system/nix/nvim/opts.nix b/modules/system/nix/nvim/opts.nix deleted file mode 100644 index 26afa62..0000000 --- a/modules/system/nix/nvim/opts.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - pkgs, - lib, - ... -}: { - vim = { - globals = { - mapleader = " "; - - shiftwidth = 2; - tabstop = 2; - softtabstop = 2; - }; - }; -} diff --git a/modules/system/nix/nvim/raw/cmp.lua b/modules/system/nix/nvim/raw/cmp.lua new file mode 100644 index 0000000..187207c --- /dev/null +++ b/modules/system/nix/nvim/raw/cmp.lua @@ -0,0 +1,59 @@ +local cmp = require("cmp") +vim.opt.completeopt = { "menu", "menuone", "noinsert", "noselect" } +cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end, + }, + sorting = { + comparators = { + cmp.config.compare.offset, + cmp.config.compare.exact, + cmp.config.compare.recently_used, + cmp.config.compare.kind, + cmp.config.compare.sort_text, + cmp.config.compare.length, + cmp.config.compare.order, + }, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, { "i", "s" }), + + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + end, { "i", "s" }), + + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = false }), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + { name = 'buffer' }, + { name = 'path' }, + { name = 'nvim_lua' }, + { name = 'emoji' }, + }), + highlight = { + default = "Subtle" + }, +}) diff --git a/modules/system/nix/nvim/raw/opts.lua b/modules/system/nix/nvim/raw/opts.lua new file mode 100644 index 0000000..b6ffb0c --- /dev/null +++ b/modules/system/nix/nvim/raw/opts.lua @@ -0,0 +1,37 @@ +vim.opt.shiftwidth = 2 +vim.opt.tabstop = 2 +vim.opt.cursorline = true +vim.opt.expandtab = true +vim.opt.autoindent = true +vim.opt.smartindent = true +vim.opt.softtabstop = 4 +vim.opt.relativenumber = true + +vim.diagnostic.config({ + virtual_text = true, + virtual_lines = true, +}) + +local map = vim.api.nvim_set_keymap +local opts = { noremap = true, silent = true } + +vim.g.mapleader = " " +map('n', '', ":ToggleTerm size=40", opts) +map('n', '', ":Neotree filesystem reveal toggle", opts) +map('v', '', '>gv', opts) +map('v', '', '', ":ToggleTerm size=40", opts) +map('n', '', ":Neotree filesystem reveal toggle", opts) +map('v', '', '>gv', opts) +map('v', '', '