{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; sile-flake.url = "github:sile-typesetter/sile"; durnitisp-flake.url = "github:zaphar/durnitisp"; runwhen-flake.url = "github:zaphar/runwhen"; agenix-flake.url = "github:ryantm/agenix"; rust-overlay-flake = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; jj-flake.url = "github:martinvonz/jj"; }; outputs = { self, nixpkgs, sile-flake, runwhen-flake, durnitisp-flake, rust-overlay-flake, jj-flake, agenix-flake, }: { systemModule = system: let runwhen = runwhen-flake.defaultPackage."${system}"; durnitisp = durnitisp-flake.defaultPackage."${system}"; rust-overlay = rust-overlay-flake.overlay; sile = sile-flake.defaultPackage.${system}; jj = jj-flake.packages."${system}".jujutsu; age = agenix-flake.packages."${system}".default; in { config, pkgs, ... }: { imports = [ agenix-flake.nixosModules.default ]; config = { nixpkgs.overlays = [ rust-overlay ]; environment.variables = { EDITOR="nvim"; PAGER="less -R"; }; programs = with pkgs; { neovim.enable = true; neovim.configure = { #customRC = (builtins.readFile ../.vimrc); packages.myVimPackage = with pkgs.vimPlugins; { start = [ coc-nvim nerdtree vim-nix coc-rust-analyzer coc-diagnostic coc-markdownlint coc-tslint coc-explorer coc-git coc-vimlsp coc-python coc-clangd coc-go coc-html coc-css coc-yaml coc-json vim-toml hoon-vim ]; }; }; zsh.enable = true; # default shell on catalina #zsh.interactiveShellInit = (builtins.readFile ../.zshrc); }; environment.systemPackages = (with pkgs; [ nodejs tmux gnumake # TODO find a version of the julia package that will install # on darwin and add it as an overlay python3 emacs git mercurial bash curl wget jq spacebar coreutils watch iterm2 go htop colima qemu podman lima rlwrap docker-client google-cloud-sdk rnix-lsp nil alloy6 jdk plantuml-c4 texlive.combined.scheme-basic nssTools mkcert octave kubo dotnet-sdk_7 # TODO add sonic-pi here if it supports the arch ]) ++ [ sile runwhen durnitisp jj age ]; }; }; }; }