155 lines
4.1 KiB
Nix
155 lines
4.1 KiB
Nix
{
|
|
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.overlays.default;
|
|
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
|
|
./program-neovim.nix
|
|
];
|
|
|
|
config = {
|
|
|
|
nixpkgs.overlays = [
|
|
rust-overlay
|
|
];
|
|
|
|
environment.variables = {
|
|
EDITOR="nvim";
|
|
PAGER="less -R";
|
|
};
|
|
|
|
environment.etc."nvim.lua" = {
|
|
source = ./init.lua;
|
|
};
|
|
|
|
programs = with pkgs; {
|
|
neovim.enable = true;
|
|
neovim.vimAlias = true;
|
|
neovim.viAlias = true;
|
|
neovim.configure = {
|
|
customRC = (builtins.readFile ./.vimrc);
|
|
packages.myVimPackage = with pkgs.vimPlugins; {
|
|
start = [
|
|
nvim-tree-lua
|
|
nvim-web-devicons
|
|
nvim-lspconfig
|
|
packer-nvim
|
|
vim-lsp
|
|
vim-vsnip
|
|
coq_nvim
|
|
vimspector
|
|
vimagit
|
|
hoon-vim
|
|
nvim-treesitter
|
|
omnisharp-extended-lsp-nvim
|
|
#neotest-dotnet
|
|
nix-develop-nvim
|
|
trouble-nvim
|
|
nightfox-nvim
|
|
] ++ (with nvim-treesitter-parsers; [
|
|
rust
|
|
lua
|
|
toml
|
|
yaml
|
|
json
|
|
ini
|
|
html
|
|
css
|
|
nix
|
|
latex
|
|
]);
|
|
};
|
|
};
|
|
|
|
zsh.enable = true; # default shell on catalina
|
|
# This is a total hack but we don't want the default clobbering it which it does if it's an empty string or null
|
|
zsh.promptInit = "#noop";
|
|
zsh.interactiveShellInit = (builtins.readFile ./.zshrc);
|
|
};
|
|
environment.systemPackages = (with pkgs; [
|
|
nodejs
|
|
nodePackages.typescript-language-server
|
|
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
|
|
#podman-desktop # Broken on darwin right now with electron build issues.
|
|
# Note that podman expects qemu to be installed in order to use the podman machine setup.
|
|
qemu
|
|
podman
|
|
lima
|
|
rlwrap
|
|
docker-client
|
|
google-cloud-sdk
|
|
rnix-lsp
|
|
nil
|
|
alloy6
|
|
(tlaplus.override {
|
|
adoptopenjdk-bin = jdk;
|
|
})
|
|
jdk
|
|
plantuml-c4
|
|
texlive.combined.scheme-basic
|
|
nssTools
|
|
mkcert
|
|
octave
|
|
kubo
|
|
dotnet-sdk_7
|
|
powershell
|
|
rust-analyzer
|
|
# TODO add sonic-pi here if it supports the arch
|
|
]) ++ [
|
|
sile
|
|
runwhen
|
|
durnitisp
|
|
jj
|
|
age
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|