nixos-config/nixos/homes/palo/packages/development.nix

165 lines
3.7 KiB
Nix

{ pkgs, lib, config, ... }:
with pkgs;
with lib;
{
config = mkMerge [
(mkIf config.gui.enable {
home.packages =
let
# to make copilot work
# jetbrains.pycharm-professional
fhsPyCharm = pkgs.buildFHSUserEnv {
name = "pycharm";
targetPkgs = pkgs: (with pkgs; [
black
isort
#unstable.jetbrains.pycharm-professional
jetbrains.pycharm-professional
python311
pipenv
zlib # needed for NumPy
nodejs
git
]);
runScript = "pycharm-professional";
};
# jetbrains.datagrip
fhsDataGrip = pkgs.buildFHSUserEnv {
name = "datagrip";
targetPkgs = pkgs: (with pkgs; [
unstable.jetbrains.datagrip
]);
runScript = "datagrip";
};
fhsClion = pkgs.buildFHSUserEnv {
name = "clion";
targetPkgs = pkgs: (with pkgs; [
unstable.jetbrains.clion
]);
runScript = "clion";
};
in
[
# general
unstable.jetbrains.idea-ultimate
#vscode
jetbrains.mps
fhsDataGrip
(pkgs.makeDesktopItem {
name = "datagrip";
desktopName = "DataGrip";
exec = "${fhsDataGrip}/bin/datagrip";
terminal = false;
})
# Rust
fhsClion
(pkgs.makeDesktopItem {
name = "clion";
desktopName = "Clion";
exec = "${fhsClion}/bin/clion";
terminal = false;
})
gcc
rustup
# python
fhsPyCharm
(pkgs.makeDesktopItem {
name = "pycharm";
desktopName = "PyCharm";
exec = "${fhsPyCharm}/bin/pycharm";
terminal = false;
})
# planing
((ganttproject-bin.override {
jre = pkgs.openjdk11;
}).overrideAttrs (old: {
version = "3.1.3100";
src = pkgs.fetchzip {
url = "https://dl.ganttproject.biz/ganttproject-3.1.3100/ganttproject-3.1.3100.zip";
sha256 = "sha256-hw2paak0P670/kemiuqYHIaN0uUtkVKy+AX2X7OdnJ4=";
};
}))
];
})
{
home.packages =
let
pandocScript = { inputFormat, outputFormat }:
pkgs.writers.writeDashBin "pandoc-from-${inputFormat}-to-${outputFormat}" ''
${pkgs.pandoc}/bin/pandoc \
--from ${inputFormat} \
--to ${outputFormat} \
--standalone \
"$@"
'';
in
[
# smoke
tmux
nethogs
netsniff-ng
iftop
# terminal recorder
asciinema
asciinema-agg
asciinema-scenario
termtosvg
# shell
gum
yq-go
gojq
jq
ijq
# nomad
nomad
wander
# terraform
unstable.terragrunt
unstable.terraform
terraform-docs
awscli2
# python
python3Full
pipenv
unstable.mdbook
nodePackages.prettier
shfmt
black
pre-commit
nixpkgs-fmt
treefmt
] ++ (map pandocScript (lib.cartesianProductOfSets {
inputFormat = [ "man" "markdown" "mediawiki" "asciidoc" ];
outputFormat = [ "mediawiki" "docbook5" "html5" "man" "jira" "markdown" ];
}));
}
];
}