{ lib, config, pkgs, ... }: let inherit (lib) mkEnableOption mkIf; cfg = config.horseman.apps.dev; in { options = { horseman.apps.dev = { enable = mkEnableOption "Apps used for programming"; }; }; config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ dotnet-sdk_9 dotnet-sdk_8 gcc ghex godot hyperfine jdk jetbrains.clion jetbrains.idea jetbrains.rider jetbrains.rust-rover jetbrains.webstorm libqalculate mermaid-cli mono nodejs_22 platformio-core python313 quickemu sqlite sqlitebrowser tinymist typst xclip unityhub uv zed-editor haskellPackages.ghc haskellPackages.cabal-install tree-sitter-grammars.tree-sitter-haskell haskell-language-server kotlin tree-sitter-grammars.tree-sitter-kotlin kotlin-language-server tree-sitter-grammars.tree-sitter-nix nixd cargo rustc rust-analyzer tree-sitter-grammars.tree-sitter-rust ]; # QuickEMU USB Support virtualisation.spiceUSBRedirection.enable = true; programs.nix-ld.enable = true; programs.nix-ld.libraries = with pkgs; [ dotnetCorePackages.sdk_9_0 ]; }; }