feat: init

This commit is contained in:
Nick 2025-03-29 23:08:26 -05:00
commit 96c6f790fc
804 changed files with 33411 additions and 0 deletions

1
templates/elm/.envrc Executable file
View file

@ -0,0 +1 @@
use flake

1
templates/elm/.gitignore vendored Executable file
View file

@ -0,0 +1 @@
.direnv

74
templates/elm/flake.lock generated Executable file
View file

@ -0,0 +1,74 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1730785428,
"narHash": "sha256-Zwl8YgTVJTEum+L+0zVAWvXAGbWAuXHax3KzuejaDyo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4aa36568d413aca0ea84a1684d2d46f55dbabad7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1730504152,
"narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1720535198,
"narHash": "sha256-zwVvxrdIzralnSbcpghA92tWu2DV2lwv89xZc8MTrbg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "205fd4226592cc83fd4c0885a3e4c9c400efabb5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
}
}
},
"root": "root",
"version": 7
}

30
templates/elm/flake.nix Executable file
View file

@ -0,0 +1,30 @@
{
description = "Elm Environment";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11";
};
outputs = inputs @ {
flake-parts,
self,
...
}: let
system = "x86_64-linux";
in
flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
./parts
];
systems = [
system
];
perSystem = {pkgs, ...}: {
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
};
_module.args.pkgs-stable = import inputs.nixpkgs-stable {
inherit system;
};
};
};
}

View file

@ -0,0 +1,33 @@
{
pkgs,
pkgs-stable,
...
}:
{
devShells = {
default = pkgs.mkShell {
packages = builtins.attrValues {
inherit (pkgs)
age
just
nil
nixd
sops
ssh-to-age
nixfmt-rfc-style
;
inherit (pkgs-stable.elmPackages)
elm
elm-format
elm-land
elm-language-server
elm-review
elm-test
;
inherit (pkgs.haskellPackages)
nixfmt
;
};
};
};
}

20
templates/elm/parts/default.nix Executable file
View file

@ -0,0 +1,20 @@
{
perSystem = {
pkgs,
lib,
config,
self',
...
}: let
configPath = ./config;
devshellImports = let
files = builtins.attrNames (builtins.readDir configPath);
in
map
(name: configPath + "/${name}")
(builtins.filter (name: builtins.match ".*\\.nix$" name != null) files);
in {
imports = devshellImports;
};
}

1
templates/haskell/.envrc Executable file
View file

@ -0,0 +1 @@
use flake

4
templates/haskell/.gitignore vendored Executable file
View file

@ -0,0 +1,4 @@
.direnv
.pre-commit-config.yaml
.vscode
dist-newstyle

10
templates/haskell/example.cabal Executable file
View file

@ -0,0 +1,10 @@
cabal-version: 3.0
name: example
version: 0.1.0.0
executable main
main-is: Main.hs
build-depends:
, base
default-language: Haskell2010
hs-source-dirs: src

21
templates/haskell/flake.nix Executable file
View file

@ -0,0 +1,21 @@
{
inputs = {
haskell-flake.url = "github:srid/haskell-flake";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
pre-commit-hooks-nix.url = "github:cachix/pre-commit-hooks.nix";
};
outputs = inputs @ {
self,
nixpkgs,
flake-parts,
...
}:
flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
inputs.haskell-flake.flakeModule
inputs.pre-commit-hooks-nix.flakeModule
./parts
];
systems = nixpkgs.lib.systems.flakeExposed;
};
}

0
templates/haskell/justfile Executable file
View file

View file

@ -0,0 +1,45 @@
{
pkgs,
config,
...
}:
{
haskellProjects.default = {
devShell = {
enable = true;
tools = hp: {
inherit (hp)
cabal-fmt
haskell-language-server
;
inherit (pkgs)
dhall
dhall-json
dhall-lsp-server
helix-gpt
age
just
nil
nixd
sops
ssh-to-age
nixfmt-rfc-style
libz
ngrep
stripe-cli
vscode-langservers-extracted
zlib
;
inherit (pkgs.haskellPackages)
nixfmt
;
};
hlsCheck.enable = true;
mkShellArgs.shellHook = "${config.pre-commit.installationScript}";
};
};
}

View file

@ -0,0 +1 @@
{self, ...}: {packages.default = self.packages.example;}

View file

@ -0,0 +1,7 @@
{
pre-commit.settings.hooks = {
nixfmt.enable = true;
commitizen.enable = true;
statix.enable = true;
};
}

View file

@ -0,0 +1,20 @@
{
perSystem = {
pkgs,
lib,
config,
self',
...
}: let
configPath = ./config;
devshellImports = let
files = builtins.attrNames (builtins.readDir configPath);
in
map
(name: configPath + "/${name}")
(builtins.filter (name: builtins.match ".*\\.nix$" name != null) files);
in {
imports = devshellImports;
};
}

4
templates/haskell/src/Main.hs Executable file
View file

@ -0,0 +1,4 @@
module Main where
main :: IO ()
main = putStrLn "Hello, World!"

1
templates/typst/.envrc Executable file
View file

@ -0,0 +1 @@
use flake

4
templates/typst/.gitignore vendored Executable file
View file

@ -0,0 +1,4 @@
.direnv
.pre-commit-config.yaml
.vscode
*.pdf

28
templates/typst/flake.nix Executable file
View file

@ -0,0 +1,28 @@
{
description = "Typst Environment";
inputs = {
devshell.url = "github:numtide/devshell";
flake-root.url = "github:srid/flake-root";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
pre-commit-hooks-nix.url = "github:cachix/pre-commit-hooks.nix";
};
outputs =
inputs@{
nixpkgs,
flake-parts,
self,
...
}:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
inputs.devshell.flakeModule
inputs.flake-root.flakeModule
inputs.pre-commit-hooks-nix.flakeModule
./parts
];
systems = nixpkgs.lib.systems.flakeExposed;
};
}

View file

@ -0,0 +1,26 @@
{
pkgs,
config,
...
}:
{
devShells = {
default = pkgs.mkShell {
packages = builtins.attrValues {
inherit (pkgs)
just
nil
typst
tinymist
typstyle
yamlfmt
nixfmt-rfc-style
;
inherit (pkgs.nodePackages)
"@commitlint/config-conventional"
;
};
};
shellHook = "${config.pre-commit.installationScript}";
};
}

View file

@ -0,0 +1,7 @@
{
pre-commit.settings.hooks = {
nixfmt.enable = true;
commitizen.enable = true;
statix.enable = true;
};
}

View file

@ -0,0 +1,24 @@
{
perSystem =
{
pkgs,
lib,
config,
self',
...
}:
let
configPath = ./config;
devshellImports =
let
files = builtins.attrNames (builtins.readDir configPath);
in
map (name: configPath + "/${name}") (
builtins.filter (name: builtins.match ".*\\.nix$" name != null) files
);
in
{
imports = devshellImports;
};
}

8
templates/typst/src/refs.yml Executable file
View file

@ -0,0 +1,8 @@
citizen:
author: John Zerilli
chapter: 3
date: 2021
isbn: 9780262044813
publisher: The MIT Press
title: A Citizen's Guide To Artificial Intelligence
type: Book

View file

@ -0,0 +1,63 @@
// Catppuccin Latte
#let catppuccinLatteRosewater = rgb("#dc8a78")
#let catppuccinLatteFlamingo = rgb("#dd7878")
#let catppuccinLattePink = rgb("#ea76cb")
#let catppuccinLatteMauve = rgb("#8839ef")
#let catppuccinLatteRed = rgb("#d20f39")
#let catppuccinLatteMaroon = rgb("#e64553")
#let catppuccinLattePeach = rgb("#fe640b")
#let catppuccinLatteYellow = rgb("#df8e1d")
#let catppuccinLatteGreen = rgb("#40a02b")
#let catppuccinLatteTeal = rgb("#179299")
#let catppuccinLatteSky = rgb("#04a5e5")
#let catppuccinLatteSapphire = rgb("#209fb5")
#let catppuccinLatteBlue = rgb("#1e66f5")
#let catppuccinLatteLavender = rgb("#7287fd")
#let catppuccinLatteText = rgb("#4c4f69")
#let catppuccinLatteSubtext1 = rgb("#5c5f77")
#let catppuccinLatteSubtext0 = rgb("#6c6f85")
#let catppuccinLatteOverlay2 = rgb("#7c7f93")
#let catppuccinLatteOverlay1 = rgb("#8c8fa1")
#let catppuccinLatteOverlay0 = rgb("#9ca0b0")
#let catppuccinLatteSurface2 = rgb("#acb0be")
#let catppuccinLatteSurface1 = rgb("#bcc0cc")
#let catppuccinLatteSurface0 = rgb("#ccd0da")
#let catppuccinLatteBase = rgb("#eff1f5")
#let catppuccinLatteMantle = rgb("#e6e9ef")
#let catppuccinLatteCrust = rgb("#dce0e8")
// General:
#let project(author: (:), title: (), body) = {
show figure.caption: it => it.body
set quote(attribution: "content", block: true)
set document(author: author.firstName + " " + author.lastName, title: title)
set text(fill: catppuccinLatteText, font: ("New Computer Modern"), lang: "en")
let title = {
align(center)[
#block[
#text(size: 25pt, weight: "medium")[#title]
]
]
}
let name = {
align(
center,
)[
#block[
#text(size: 12pt, weight: "regular")[#author.firstName #author.lastName]
]
]
}
title
name
body
}

12
templates/typst/src/typst.typ Executable file
View file

@ -0,0 +1,12 @@
#import "template.typ": *
#show: project.with(author: (firstName: "First", lastName: "Last"), title: "Title")
Test
#quote(
attribution: <citizen>,
)[ Fact is, you can't satisfy both calibration and error rate balance if the base
rates differ... ]
#bibliography("refs.yml", style: "ieee")