From c037780743c3f86ac6d9a91731dd4d1c1123d40f Mon Sep 17 00:00:00 2001 From: oddlama Date: Sun, 5 Nov 2023 19:31:15 +0100 Subject: [PATCH] feat: use nixvim for manpager definition --- pkgs/default.nix | 8 +++ users/modules/config/manpager.nix | 65 +++++++++++++++++++ users/modules/config/manpager/default.nix | 14 ----- users/modules/config/manpager/init.lua | 17 ----- users/modules/config/neovim.nix | 2 - users/modules/default.nix | 3 +- users/modules/neovim.nix | 76 ----------------------- users/myuser/neovim/default.nix | 34 ++-------- 8 files changed, 78 insertions(+), 141 deletions(-) create mode 100644 users/modules/config/manpager.nix delete mode 100644 users/modules/config/manpager/default.nix delete mode 100644 users/modules/config/manpager/init.lua delete mode 100644 users/modules/neovim.nix diff --git a/pkgs/default.nix b/pkgs/default.nix index 0639417..df04426 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -8,6 +8,14 @@ kanidm-secret-manipulator = prev.callPackage ./kanidm-secret-manipulator.nix {}; segoe-ui-ttf = prev.callPackage ./segoe-ui-ttf.nix {}; zsh-histdb-skim = prev.callPackage ./zsh-skim-histdb.nix {}; + neovim-clean = prev.neovim-unwrapped.overrideAttrs (_neovimFinal: neovimPrev: { + nativeBuildInputs = (neovimPrev.nativeBuildInputs or []) ++ [prev.makeWrapper]; + postInstall = + (neovimPrev.postInstall or "") + + '' + wrapProgram $out/bin/nvim --add-flags "--clean" + ''; + }); kanidm = prev.kanidm.overrideAttrs (_finalAttrs: _previousAttrs: { patches = [ diff --git a/users/modules/config/manpager.nix b/users/modules/config/manpager.nix new file mode 100644 index 0000000..9cf7024 --- /dev/null +++ b/users/modules/config/manpager.nix @@ -0,0 +1,65 @@ +{ + lib, + pkgs, + ... +}: { + home.sessionVariables.MANPAGER = lib.getExe (pkgs.nixvim.makeNixvim { + package = pkgs.neovim-clean; + + options = { + buftype = "nowrite"; + backup = false; + modeline = false; + shelltemp = false; + swapfile = false; + undofile = false; + writebackup = false; + virtualedit = "all"; + splitkeep = "screen"; + termguicolors = false; + }; + + extraConfigLua = '' + vim.opt.shadafile = vim.fn.stdpath "state" .. "/shada/man.shada"; + ''; + + keymaps = [ + { + action = ""; + key = ""; + mode = ["n"]; + options = { + silent = true; + desc = "Jump to tag under cursor"; + }; + } + { + action = ":pop"; + key = ""; + mode = ["n"]; + options = { + silent = true; + desc = "Jump to previous tag in stack"; + }; + } + { + action = ":pop"; + key = ""; + mode = ["n"]; + options = { + silent = true; + desc = "Jump to previous tag in stack"; + }; + } + { + action = ":tag"; + key = ""; + mode = ["n"]; + options = { + silent = true; + desc = "Jump to next tag in stack"; + }; + } + ]; + }); +} diff --git a/users/modules/config/manpager/default.nix b/users/modules/config/manpager/default.nix deleted file mode 100644 index 1970a13..0000000 --- a/users/modules/config/manpager/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{pkgs, ...}: let - nvimPager = pkgs.wrapNeovimUnstable pkgs.neovim-unwrapped nvimConfig; - nvimConfig = - pkgs.neovimUtils.makeNeovimConfig { - wrapRc = false; - withPython3 = false; - withRuby = false; - } - // { - wrapperArgs = ["--add-flags" "--clean -u ${./init.lua}"]; - }; -in { - home.sessionVariables.MANPAGER = "${nvimPager}/bin/nvim '+Man!'"; -} diff --git a/users/modules/config/manpager/init.lua b/users/modules/config/manpager/init.lua deleted file mode 100644 index 0f729d4..0000000 --- a/users/modules/config/manpager/init.lua +++ /dev/null @@ -1,17 +0,0 @@ -vim.opt.buftype = "nowrite" -vim.opt.backup = false -vim.opt.modeline = false -vim.opt.shelltemp = false -vim.opt.swapfile = false -vim.opt.undofile = false -vim.opt.writebackup = false -vim.opt.shadafile = vim.fn.stdpath "state" .. "/shada/man.shada" -vim.opt.virtualedit = "all" -vim.opt.splitkeep = "screen" --- Make sure to use ANSI colors -vim.opt.termguicolors = false - -vim.keymap.set("n", "", "", { silent = true, desc = "Jump to tag under cursor" }) -vim.keymap.set("n", "", ":pop", { silent = true, desc = "Jump to previous tag in stack" }) -vim.keymap.set("n", "", ":pop", { silent = true, desc = "Jump to previous tag in stack" }) -vim.keymap.set("n", "", ":tag", { silent = true, desc = "Jump to next tag in stack" }) diff --git a/users/modules/config/neovim.nix b/users/modules/config/neovim.nix index 1780571..a14bc8d 100644 --- a/users/modules/config/neovim.nix +++ b/users/modules/config/neovim.nix @@ -1,6 +1,4 @@ { - programs.neovim-custom.enable = true; - home.persistence."/state".directories = [ ".local/share/nvim" ".local/state/nvim" diff --git a/users/modules/default.nix b/users/modules/default.nix index 8fc479d..398b6ec 100644 --- a/users/modules/default.nix +++ b/users/modules/default.nix @@ -2,11 +2,10 @@ imports = [ ./uid.nix ./secrets.nix - ./neovim.nix ./config/htop.nix ./config/impermanence.nix - ./config/manpager + ./config/manpager.nix ./config/neovim.nix ./config/shell ./config/utils.nix diff --git a/users/modules/neovim.nix b/users/modules/neovim.nix deleted file mode 100644 index 1acc7e4..0000000 --- a/users/modules/neovim.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - inherit - (lib) - concatMapStrings - flip - mkEnableOption - mkIf - mkOption - mkPackageOption - types - ; - - cfg = config.programs.neovim-custom; - - initLuaContent = '' - ${cfg.initEarly} - - -- Begin plugin configuration - ${concatMapStrings (x: "${x.config}\n") (cfg.config.plugins or [])} - -- End plugin configuration - - ${cfg.init} - ''; - - nvimConfig = - pkgs.neovimUtils.makeNeovimConfig cfg.config - // { - wrapRc = false; - wrapperArgs = ["--add-flags" "-u ${pkgs.writeText "init.lua" initLuaContent}"]; - }; - - finalPackage = - flip pkgs.wrapNeovimUnstable nvimConfig - (cfg.package.overrideAttrs (_final: prev: { - nativeBuildInputs = (prev.nativeBuildInputs or []) ++ [pkgs.makeWrapper]; - postInstall = - (prev.postInstall or "") - + '' - wrapProgram $out/bin/nvim --add-flags "--clean" - ''; - })); -in { - options.programs.neovim-custom = { - enable = mkEnableOption "Neovim"; - package = mkPackageOption pkgs "neovim-unwrapped" {}; - config = mkOption { - description = "The neovim configuration to use (passed to makeNeovimConfig and then to wrapNeovimUnstable)"; - default = {}; - type = types.anything; - }; - initEarly = mkOption { - description = "The early init.lua content that will be added before plugin configs."; - default = ""; - type = types.lines; - }; - init = mkOption { - description = "The init.lua content, added after plugin configs."; - default = ""; - type = types.lines; - }; - }; - - config = mkIf cfg.enable { - home = { - # XXX: TODO packages = [finalPackage]; - shellAliases.E = "${finalPackage}/bin/nvim"; - sessionVariables.EDITOR = "nvim"; - shellAliases.vimdiff = "nvim -d"; - }; - }; -} diff --git a/users/myuser/neovim/default.nix b/users/myuser/neovim/default.nix index ea14c75..d353f9f 100644 --- a/users/myuser/neovim/default.nix +++ b/users/myuser/neovim/default.nix @@ -3,37 +3,8 @@ pkgs, ... }: { - #programs.neovim-custom = { - # config = { - # withPython3 = false; - # withRuby = false; - # withNodeJs = false; - # #extraPython3Packages = p: []; - # plugins = with pkgs.vimPlugins; [ - # { - # plugin = neo-tree-nvim; - # config = - # /* - # lua - # */ - # '' - # require("neo-tree").setup {} - # ''; - # } - # ]; - # }; - # init = builtins.readFile ./aaa/init.lua; - #}; - home.shellAliases.nixvim = lib.getExe (pkgs.nixvim.makeNixvim { - package = pkgs.neovim-unwrapped.overrideAttrs (_final: prev: { - nativeBuildInputs = (prev.nativeBuildInputs or []) ++ [pkgs.makeWrapper]; - postInstall = - (prev.postInstall or "") - + '' - wrapProgram $out/bin/nvim --add-flags "--clean" - ''; - }); + package = pkgs.neovim-clean; colorschemes = { catppuccin = { @@ -158,6 +129,9 @@ }; in [(pkgs.wrapNeovimUnstable pkgs.neovim-unwrapped nvimConfig)]; + home.sessionVariables.EDITOR = "nvim"; + home.shellAliases.vimdiff = "nvim -d"; + xdg.configFile = { "nvim/ftplugin".source = ./ftplugin; "nvim/init.lua".source = ./init.lua;