{
  config,
  lib,
  ...
}: let
  cfg = config.soispha.programs.nvim;
in {
  home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
    extraFiles = {
      "ftplugin/norg.lua".text = ''
        ${lib.strings.fileContents ./key_mappings.lua}
      '';
    };

    plugins = {
      cmp.settings.sources = [
        {name = "neorg";}
      ];

      neorg = {
        enable = true;
        lazyLoading = true;

        modules = {
          "core.defaults" = {
            __empty = null;
          };
          "core.esupports.metagen".config = {
            type = "auto";
          };
          "core.journal".config = {
            workspace = "journal";
          };
          "core.keybinds".config = {
            __empty = null;
          };
          "core.completion".config = {
            engine = "nvim-cmp";
          };
          "core.concealer".config = {
            __empty = null;
          };
          "core.dirman".config = {
            workspaces = {
              general = "~/repos/notes/general";
              journal = "~/repos/notes/journal";
              projects = "~/repos/notes/projects";
            };
          };
          "core.export".config = {
            __empty = null;
          };
          "core.integrations.telescope".config = {
            __empty = null;
          };

          "core.ui.calendar".config = {
            __empty = null;
          };
        };
      };
    };
  };
}