this repo has no description
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 124 lines 3.0 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 inputs, 6 ... 7}: { 8 options.cow.dev = let 9 mkLangOpt = d: ((lib.mkEnableOption d) // {default = config.cow.dev.enable;}); 10 in { 11 enable = lib.mkEnableOption "Dev stuff (all on by default)"; 12 c = mkLangOpt "C/C++ dev stuff"; 13 rust = mkLangOpt "Rust dev stuff"; 14 haskell = mkLangOpt "Haskell dev stuff"; 15 web = mkLangOpt "Web dev stuff"; 16 nix = mkLangOpt "Nix dev stuff"; 17 python = mkLangOpt "Python dev stuff"; 18 dotnet = lib.mkEnableOption ".NET dev stuff"; 19 cutter = mkLangOpt "Cutter"; 20 typst = mkLangOpt "Typst"; 21 mc = lib.mkEnableOption "Minecraft modpack stuff"; 22 }; 23 24 config = let 25 conf = config.cow.dev; 26 in 27 lib.mkIf conf.enable { 28 nixpkgs.overlays = lib.optional conf.rust inputs.fenix.overlays.default; 29 30 xdg.configFile = { 31 "astro/config.json" = lib.mkIf conf.web { 32 text = builtins.toJSON { 33 telemetry = { 34 enabled = false; 35 anonymousId = ""; 36 notifiedAt = "0"; 37 }; 38 }; 39 }; 40 "ghc/ghci.conf" = lib.mkIf conf.haskell { 41 text = '' 42 :set prompt "\ESC[1;35m\x03BB> \ESC[m" 43 :set prompt-cont "\ESC[1;35m > \ESC[m" 44 ''; 45 }; 46 }; 47 48 cow.imperm.keepCache = 49 [ 50 ".config/gh" 51 ] 52 ++ (lib.optional conf.rust ".cargo") 53 ++ (lib.optionals conf.web [ 54 ".npm" 55 ".pnpm" 56 ]); 57 58 programs.git = { 59 enable = true; 60 settings = { 61 init.defaultBranch = "main"; 62 advice.addIgnoredFiles = false; 63 }; 64 }; 65 66 programs.npm = lib.mkIf conf.web { 67 enable = true; 68 package = pkgs.nodejs_latest; 69 settings = { 70 fund = false; 71 }; 72 }; 73 74 home.packages = with pkgs; 75 [gh] 76 ++ (lib.optionals (conf.rust or conf.c) [ 77 pkg-config 78 gnumake 79 gcc 80 gdb 81 ]) 82 ++ (lib.optionals conf.mc [ 83 jre 84 ]) 85 ++ (lib.optionals conf.rust [ 86 (pkgs.fenix.complete.withComponents [ 87 "cargo" 88 "clippy" 89 "rust-src" 90 "rustc" 91 "rustfmt" 92 ]) 93 rust-analyzer-nightly 94 cargo-tauri 95 mprocs 96 evcxr 97 ]) 98 ++ (lib.optionals conf.web [ 99 pnpm 100 yarn 101 # deno 102 ]) 103 ++ (lib.optionals conf.haskell [ 104 haskell.compiler.ghc912 105 ]) 106 ++ (lib.optionals conf.python [ 107 python3 108 pipenv 109 uv 110 ruff 111 ]) 112 ++ (lib.optionals conf.dotnet [ 113 dotnet-sdk_10 114 dotnet-runtime_10 115 mono 116 dotnetPackages.Nuget 117 ]) 118 ++ (lib.optionals conf.typst [ 119 typst 120 typstyle 121 ]); 122 # ++ (lib.optional conf.cutter (cutter.withPlugins (p: with p; [rz-ghidra]))); TODO: Cutter broken 123 }; 124}