nixos/pkgs/pkgsets.nix

272 lines
5.5 KiB
Nix

{ stable ? import <nixos-stable>,
unstable ? import <nixos-unstable>,
gitpkgs ? import /nixpkgs/default.nix,
config, lib, pkgs, ... }:
with lib;
let
optPkgs = package: pkgstring: if elem pkgstring config.machine.pkgs then package else [];
gitpkgs = import /nixpkgs/default.nix {};
# 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
home-manager
htop
hwinfo
indent
iptables
lrzip
lshw
macchanger
mkpasswd
netcat
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
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 */
google-translate
transmission
org-plus-contrib orgit ox-gfm ox-rst
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
/* 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
/* temporarily fix python stuff */
py3status pytz tzlocal
]);
rustpkgs = with pkgs; [
rustup
carnix
rustracer
];
server = with pkgs; [
audit
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" config.machine.pkgs);
install = (elem "emacs" config.machine.pkgs);
package = emacs;
};
}