1
0
Fork 0
nixos/pkgs/pkgsets.nix

277 lines
5.6 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.machine;
optPkgs = package: pkgstring: optionals (elem pkgstring cfg.pkgs) package;
gitpkgs = import /nixpkgs {};
# Programms I'm likely to want on every machine and/or may execute as root
base = with pkgs; [
alsaUtils
ccze
cksfv
cryptsetup
dhcpcd
dnsutils
git
gnupg
gptfdisk
haskellPackages.nix-derivation
home-manager
htop
hwinfo
indent
iptables
jp
lrzip
lsof
lshw
macchanger
mkpasswd
netcat
nix-diff
nix-index
nix-plugins
nix-prefetch-git
nix-serve
nix-update-source
nix-zsh-completions
nixbang
nixops
nmap
nox
ntfs3g
oh-my-zsh
openssl
parted
p7zip
pciutils
psmisc
rfkill
ripgrep
rsync
sl
sysvtools
telnet
traceroute
tree
unrar
unzipNLS
usbutils
vim
vulnix
wget
whois
wirelesstools
wpa_supplicant
zip
zlib
zsh
];
dict = with pkgs; [
translate-shell
( hunspellWithDicts (with pkgs.hunspellDicts; [ de-de en-us ] ))
( aspellWithDicts (d: [ d.de d.en d.en-computers d.en-science ] ))
];
emacs = gitpkgs.emacsWithPackages (epkgs: with epkgs; [
/* Theming */
solarized-theme color-theme-sanityinc-tomorrow moe-theme powerline moody minions
/*General Stuff */
rainbow-delimiters # color parenthesis by indentation
color-identifiers-mode
/* Python */
company-jedi pylint melpaStablePackages.elpy
/* Git support */
magit
emms # multimedia support
wsd-mode
plantuml-mode
/* Other Stuff, not yet sorted */
mu4e-alert
google-translate
transmission
org-plus-contrib orgit ox-gfm ox-rst
easy-jekyll markdown-mode impatient-mode simple-httpd htmlize
eclim
auto-complete
pkgs.aspell pkgs.aspellDicts.en pkgs.aspellDicts.de
use-package diminish bind-key
smartparens
evil-surround evil-indent-textobject evil-cleverparens avy undo-tree
cdlatex # for math expressions
helm
/* LaTeX */ auctex helm-bibtex cdlatex
markdown-mode
flycheck
pkgs.ledger
yaml-mode
company
/* C/C++ */ irony company-irony company-irony-c-headers flycheck-irony clang-format pkgs.clang-tools
/* Haskell */ haskell-mode flycheck-haskell
/* Org */ org org-ref pdf-tools org-bullets org-caldav
/* Rust */ rust-mode flycheck-rust racer
/* mail */ messages-are-flowing
/* Nix */ nix-buffer nix-mode nixos-options company-nixos-options nix-sandbox
paganini-theme
spaceline # modeline beautification
winum eyebrowse # window management
auto-compile
/* Maxima */ pkgs.maxima
visual-fill-column
web-mode
melpaStablePackages.idris-mode helm-idris
]);
extra = with pkgs; [
transmission
texlive.combined.scheme-full
];
mailutils = with pkgs; [
fetchmail
imagemagick
isync
mu-git
pandoc
postfix
];
cpp = with pkgs; [
clang
cmake
gcc
global
irony-server
];
haskell = pkgs.haskellPackages.ghcWithPackages (pkgs: with pkgs; [
mtl
random
]);
java = with pkgs; [
openjdk11
(with pkgs.eclipses; eclipseWithPlugins {
eclipse = eclipse-platform;
jvmArgs = [ "-Xmx2048m" ];
plugins = [
plugins.color-theme
plugins.emacsplus
plugins.checkstyle
];
})
];
python3 = gitpkgs.python3Full.withPackages(ps: with ps; [
GitPython
bpython
configparser
django
elpy
emoji
epc
genanki
numpy
opencv3
paho-mqtt
pep8
pillow
pip
plotly
pyflakes
pylama
pylint
pyopengl
pyproj
requests
schedule
scipy
selenium
telegram
tkinter
toolz
virtualenv
# flask
# flask-common
# flask-compress
# flask-cors
# flask-limiter
# flask-pymongo
# flask-restful
# flask-restplus
# flask_assets
# flask_elastic
# flask_login
# flask_mail
# flask_marshmallow
# flask_migrate
# flask_oauthlib
# flask_principal
# flask_script
# flask_sqlalchemy
# flask_testing
# flask_wtf
# flaskbabel
] ++ optionals (elem "i3" cfg.desktop.wms) [ py3status pytz tzlocal ]);
rustpkgs = with pkgs; [
rustup
carnix
rustracer
];
server = with pkgs; [
audit
(jekyll.override { withOptionalDependencies = true; })
letsencrypt
php
simp_le
];
uniProgs = with pkgs; [
qucs
];
xpkgs = with pkgs; [
feh
scrot
theme_flat-remix
theme_sddm_midnight
gnome3.dconf
gnome3.gnome-terminal
gnome3.gvfs
gvfs
pcmanfm lxmenu-data shared_mime_info
pavucontrol
xclip
xlibs.xkill
xorg.xbacklight
xdiskusage
];
in {
environment.systemPackages = base
++ (optPkgs dict "dict")
++ (optPkgs [emacs] "emacs")
++ (optPkgs extra "extra")
++ (optPkgs mailutils "mailutils")
++ (optPkgs cpp "cpp")
++ (optPkgs [haskell] "haskell")
++ (optPkgs java "java")
++ (optPkgs [python3] "python3")
++ (optPkgs rustpkgs "rustpkgs")
++ (optPkgs server "server")
++ (optPkgs uniProgs "uniProgs")
++ (optPkgs xpkgs "xpkgs");
services.emacs = {
enable = (elem "emacs" cfg.pkgs);
install = (elem "emacs" cfg.pkgs);
package = emacs;
};
}