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
|
|
|
}
|