nixos/modules/packages/default.nix

102 lines
3.6 KiB
Nix
Raw Normal View History

2023-07-18 13:55:24 +08:00
inputs:
{
options.nixos.packages = let inherit (inputs.lib) mkOption types; in
{
packages = mkOption { default = []; type = types.listOf (types.enum
[
2023-07-23 12:14:32 +08:00
"games" "wine" "gui-extra" "office" "vscode"
2023-07-18 13:55:24 +08:00
]); };
};
2023-07-22 00:37:12 +08:00
config = let inherit (inputs.lib) mkMerge mkIf; in mkMerge
[
(
2023-07-23 12:14:32 +08:00
mkIf (builtins.elem "games" inputs.config.nixos.packages.packages) { programs =
{
anime-game-launcher.enable = true;
honkers-railway-launcher.enable = true;
steam.enable = true;
};}
2023-07-18 13:55:24 +08:00
)
2023-07-22 00:37:12 +08:00
(
2023-07-23 12:14:32 +08:00
mkIf (builtins.elem "wine" inputs.config.nixos.packages.packages)
{ environment.systemPackages = [ inputs.pkgs.wine ]; }
2023-07-22 00:37:12 +08:00
)
2023-07-22 18:29:52 +08:00
(
2023-07-23 12:14:32 +08:00
mkIf (builtins.elem "gui-extra" inputs.config.nixos.packages.packages)
{ environment.systemPackages = with inputs.pkgs; [ qbittorrent element-desktop tdesktop discord ]; }
2023-07-22 18:29:52 +08:00
)
(
2023-07-23 12:14:32 +08:00
mkIf (builtins.elem "office" inputs.config.nixos.packages.packages)
{ environment.systemPackages = with inputs.pkgs; [ libreoffice-qt ]; }
)
(
mkIf (builtins.elem "vscode" inputs.config.nixos.packages.packages)
{ environment.systemPackages = [(inputs.pkgs.vscode-with-extensions.override
{
vscodeExtensions = (with inputs.pkgs.vscode-extensions;
[
ms-vscode.cpptools
genieai.chatgpt-vscode
ms-ceintl.vscode-language-pack-zh-hans
llvm-vs-code-extensions.vscode-clangd
twxs.cmake
ms-vscode.cmake-tools
donjayamanne.githistory
github.copilot
github.github-vscode-theme
ms-vscode.hexeditor
oderwat.indent-rainbow
ms-toolsai.jupyter
ms-toolsai.vscode-jupyter-cell-tags
ms-toolsai.jupyter-keymap
ms-toolsai.jupyter-renderers
ms-toolsai.vscode-jupyter-slideshow
james-yu.latex-workshop
yzhang.markdown-all-in-one
pkief.material-icon-theme
equinusocio.vsc-material-theme
bbenoist.nix
ms-python.vscode-pylance
ms-python.python
ms-vscode-remote.remote-ssh
redhat.vscode-xml
dotjoshjohnson.xml
jnoortheen.nix-ide
])
++ (with inputs.pkgs.nix-vscode-extensions.vscode-marketplace;
[
jeff-hykin.better-cpp-syntax
ms-vscode.cpptools-extension-pack
ms-vscode.cpptools-themes
josetr.cmake-language-support-vscode
fredericbonnet.cmake-test-adapter
equinusocio.vsc-community-material-theme
guyutongxue.cpp-reference
intellsmi.comment-translate
intellsmi.deepl-translate
ms-vscode-remote.remote-containers
fabiospampinato.vscode-diff
cschlosser.doxdocgen
znck.grammarly
ms-python.isort
thfriedrich.lammps
leetcode.vscode-leetcode
equinusocio.vsc-material-theme-icons
gimly81.matlab
affenwiesel.matlab-formatter
xdebug.php-debug
ckolkman.vscode-postgres
ms-ossdata.vscode-postgresql
ms-vscode-remote.remote-ssh-edit
ms-vscode.remote-explorer
ms-vscode.test-adapter-converter
hbenl.vscode-test-explorer
hirse.vscode-ungit
fortran-lang.linter-gfortran
]);
}
) ]; }
2023-07-22 18:29:52 +08:00
)
2023-07-22 00:37:12 +08:00
];
2023-07-18 13:55:24 +08:00
}