mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 16:08:45 +08:00
135 lines
5.0 KiB
Nix
135 lines
5.0 KiB
Nix
inputs:
|
|
{
|
|
options.nixos.packages = let inherit (inputs.lib) mkOption types; in
|
|
{
|
|
packages = mkOption { default = []; type = types.listOf (types.enum
|
|
[
|
|
"basic" "games" "wine" "gui-extra" "office" "vscode"
|
|
]); };
|
|
};
|
|
config = let inherit (inputs.lib) mkMerge mkIf; in mkMerge
|
|
[
|
|
(
|
|
mkIf (builtins.elem "basic" inputs.config.nixos.packages.packages)
|
|
{
|
|
environment.systemPackages = with inputs.pkgs;
|
|
[
|
|
# shell
|
|
ksh
|
|
# basic tools
|
|
beep dos2unix gnugrep pv tmux
|
|
# lsxx
|
|
pciutils usbutils lshw wayland-utils clinfo glxinfo vulkan-tools util-linux
|
|
# top
|
|
iotop iftop htop
|
|
# editor
|
|
vim nano
|
|
# downloader
|
|
wget aria2 curl yt-dlp
|
|
# file manager
|
|
tree git autojump exa trash-cli lsd zellij broot file xdg-ninja
|
|
# compress
|
|
pigz rar upx unzip zip lzip p7zip
|
|
# file system management
|
|
sshfs e2fsprogs adb-sync
|
|
# disk management
|
|
smartmontools
|
|
# encryption and authentication
|
|
apacheHttpd openssl ssh-to-age gnupg age sops
|
|
# networking
|
|
ipset iptables iproute2 dig nettools
|
|
# nix tools
|
|
nix-output-monitor nix-template appimage-run nil nixd nix-alien
|
|
# development
|
|
gcc go rustc
|
|
|
|
# move to other place
|
|
kio-fuse pam_u2f tldr
|
|
pdfchain wgetpaste httplib clang magic-enum xtensor
|
|
boost cereal cxxopts valgrind
|
|
todo-txt-cli pandoc
|
|
];
|
|
programs =
|
|
{
|
|
nix-index-database.comma.enable = true;
|
|
nix-index.enable = true;
|
|
zsh =
|
|
{
|
|
enable = true;
|
|
syntaxHighlighting.enable = true;
|
|
autosuggestions.enable = true;
|
|
enableCompletion = true;
|
|
ohMyZsh =
|
|
{
|
|
enable = true;
|
|
plugins = [ "git" "colored-man-pages" "extract" "history-substring-search" "autojump" ];
|
|
customPkgs = with inputs.pkgs; [ zsh-nix-shell ];
|
|
};
|
|
};
|
|
command-not-found.enable = false;
|
|
adb.enable = true;
|
|
gnupg.agent = { enable = true; enableSSHSupport = true; };
|
|
};
|
|
services =
|
|
{
|
|
fwupd.enable = true;
|
|
udev.packages = [ inputs.pkgs.yubikey-personalization ];
|
|
};
|
|
}
|
|
)
|
|
(
|
|
mkIf (builtins.elem "games" inputs.config.nixos.packages.packages) { programs =
|
|
{
|
|
anime-game-launcher.enable = true;
|
|
honkers-railway-launcher.enable = true;
|
|
steam.enable = true;
|
|
};}
|
|
)
|
|
(
|
|
mkIf (builtins.elem "wine" inputs.config.nixos.packages.packages)
|
|
{ environment.systemPackages = [ inputs.pkgs.wine ]; }
|
|
)
|
|
(
|
|
mkIf (builtins.elem "gui-extra" inputs.config.nixos.packages.packages)
|
|
{ environment.systemPackages = with inputs.pkgs; [ qbittorrent element-desktop tdesktop discord ]; }
|
|
)
|
|
(
|
|
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.nix-vscode-extensions.vscode-marketplace;
|
|
(with equinusocio; [ vsc-community-material-theme vsc-material-theme vsc-material-theme-icons ])
|
|
++ (with github; [ copilot github-vscode-theme ])
|
|
++ (with intellsmi; [ comment-translate deepl-translate ])
|
|
++ (with ms-python; [ isort python vscode-pylance ])
|
|
++ (with ms-toolsai;
|
|
[
|
|
jupyter jupyter-keymap jupyter-renderers vscode-jupyter-cell-tags vscode-jupyter-slideshow
|
|
])
|
|
++ (with ms-vscode;
|
|
[
|
|
cmake-tools cpptools cpptools-extension-pack cpptools-themes hexeditor remote-explorer
|
|
test-adapter-converter
|
|
])
|
|
++ (with ms-vscode-remote; [ remote-ssh remote-containers remote-ssh-edit ])
|
|
++ [
|
|
donjayamanne.githistory genieai.chatgpt-vscode fabiospampinato.vscode-diff cschlosser.doxdocgen
|
|
llvm-vs-code-extensions.vscode-clangd ms-ceintl.vscode-language-pack-zh-hans oderwat.indent-rainbow
|
|
twxs.cmake guyutongxue.cpp-reference znck.grammarly thfriedrich.lammps leetcode.vscode-leetcode
|
|
james-yu.latex-workshop gimly81.matlab affenwiesel.matlab-formatter ckolkman.vscode-postgres
|
|
yzhang.markdown-all-in-one pkief.material-icon-theme bbenoist.nix ms-ossdata.vscode-postgresql
|
|
redhat.vscode-xml dotjoshjohnson.xml jnoortheen.nix-ide xdebug.php-debug hbenl.vscode-test-explorer
|
|
jeff-hykin.better-cpp-syntax josetr.cmake-language-support-vscode fredericbonnet.cmake-test-adapter
|
|
hirse.vscode-ungit fortran-lang.linter-gfortran
|
|
];
|
|
})];
|
|
}
|
|
)
|
|
];
|
|
}
|