{
  description = "Nix flake for NIT LaTeX Report Env";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    eskk-vim = {
      url = "github:vim-skk/eskk.vim";
      flake = false;
    };
  };

  outputs = inputs@{ self, flake-utils, nixpkgs, ... }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = import nixpkgs {
          inherit system;
          config = {};
          overlays = import ./nix/overlay.nix { inherit (inputs)eskk-vim; };
        };
        lualibs = with pkgs.lua53Packages; [
          lyaml
        ];
        myvim = import ./nix/vim.nix { inherit pkgs; };
        mytexlive = import ./nix/latex.nix { inherit pkgs; };
      in
      {
        devShells.default = pkgs.stdenv.mkDerivation {
          name = "LaTeX Environment";
          shellHook = ''
            export PS1="NIT Report \w \$ "
          '';
          nativeBuildInputs = [
            mytexlive
            myvim
            pkgs.gnumake
            pkgs.jq
            pkgs.pandoc
            pkgs.qpdf
            pkgs.mermaid-cli
          ] ++ lualibs;
        };
      }
    );
}
