cursive-spinner-view 0.1.3

Cursive spinner view
Documentation
{
  description = "cursive-spinner-view dev shell";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  };

  outputs = { self, nixpkgs }:
  let
    # Systems supported
    systems = [
      "x86_64-linux" # 64-bit Intel/AMD Linux
      "aarch64-linux" # 64-bit ARM Linux
      "x86_64-darwin" # 64-bit Intel macOS
      "aarch64-darwin" # 64-bit ARM macOS
    ];
    eachSystem = with nixpkgs.lib; (
      f: foldAttrs mergeAttrs { } 
        (map (s: mapAttrs (_: v: { ${s} = v; }) (f s)) systems)
    );
  in eachSystem (system:
  let
    pkgs = import nixpkgs { inherit system; };

    devShellInputs = with pkgs; [
      rustc
      cargo
      clippy
      rustfmt
      gcc
      ncurses
      pkg-config
      # Helix code editor
      helix
      # Nix LSP for Helix
      nil
      # Toml LSP
      taplo
      # Rust LSP
      rust-analyzer
      # Fish shell
      fish
      zellij
    ];
  in
  {
    devShells = {
      default = pkgs.mkShell {
        packages = devShellInputs;

        shellHook = ''
          export EDITOR=hx
          # pkg-config for ncurses
          export PKG_CONFIG_PATH="${pkgs.ncurses.dev}/lib/pkgconfig"
          # zellij session
          exec zellij --session cursive-spinner-view-dev \
            --layout dev-layout.kdl
        '';
      };
    };
  });
}