74 lines
1.3 KiB
Nix
74 lines
1.3 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.opts.tools;
|
|
in
|
|
{
|
|
options = {
|
|
opts.tools = {
|
|
enable = lib.mkEnableOption "common tools";
|
|
ide.enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
description = "jetbrains and other visual IDEs";
|
|
};
|
|
dev.enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = true;
|
|
description = "programming languages and environments";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
environment.systemPackages = with pkgs;[
|
|
dust
|
|
eza
|
|
fastfetch
|
|
fd
|
|
helix
|
|
micro
|
|
openssl
|
|
ripgrep
|
|
starship
|
|
tealdeer
|
|
transcrypt
|
|
] ++
|
|
lib.optionals cfg.ide.enable [
|
|
# jetbrains.rust-rover
|
|
# jetbrains.goland
|
|
jetbrains.clion
|
|
jetbrains.idea-ultimate
|
|
jetbrains.pycharm-professional
|
|
jetbrains.webstorm
|
|
android-studio
|
|
zed-editor
|
|
] ++
|
|
lib.optionals cfg.dev.enable [
|
|
# Rust
|
|
rustup
|
|
|
|
# Python
|
|
python3
|
|
poetry
|
|
|
|
# Haskell
|
|
haskellPackages.ghc
|
|
haskellPackages.stack
|
|
|
|
# Node
|
|
nodejs_22
|
|
pnpm
|
|
bun
|
|
|
|
# Nix
|
|
nil
|
|
nixd
|
|
nixfmt-rfc-style
|
|
|
|
# Gleam
|
|
gleam
|
|
beamMinimal26Packages.erlang
|
|
];
|
|
};
|
|
}
|