nixos/pkgs/pkgsets.nix

293 lines
6 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }:
2019-02-26 13:44:40 +01:00
with lib;
2019-02-26 13:44:40 +01:00
let
cfg = config.machine;
optPkgs = package: pkgstring: optionals (elem pkgstring cfg.pkgs) package;
gitpkgs = import /nixpkgs {};
2019-02-26 13:44:40 +01:00
# Programms I'm likely to want on every machine and/or may execute as root
base = with pkgs; [
alsaUtils
finger_bsd
2019-02-26 13:44:40 +01:00
ccze
cksfv
cryptsetup
dhcpcd
dnsutils
git
gnupg
gptfdisk
haskellPackages.nix-derivation
2019-02-26 13:44:40 +01:00
home-manager
htop
hwinfo
indent
iptables
jp
2019-02-26 13:44:40 +01:00
lrzip
2019-04-07 21:19:18 +02:00
lsof
2019-02-26 13:44:40 +01:00
lshw
macchanger
mkpasswd
netcat
nix-diff
2019-02-26 13:44:40 +01:00
nix-index
nix-plugins
nix-prefetch-git
nix-serve
nix-update-source
nix-zsh-completions
nixbang
2019-04-07 21:19:18 +02:00
nixops
2019-02-26 13:44:40 +01:00
nmap
nox
ntfs3g
oh-my-zsh
openssl
parted
2019-02-26 13:44:40 +01:00
p7zip
pciutils
psmisc
rfkill
2019-04-07 21:19:18 +02:00
ripgrep
2019-02-26 13:44:40 +01:00
rsync
sl
sysvtools
telnet
traceroute
tree
unrar
unzipNLS
usbutils
vim
vulnix
2019-02-26 13:44:40 +01:00
wget
whois
wirelesstools
wpa_supplicant
zip
zlib
zsh
];
dict = with pkgs; [
translate-shell
( hunspellWithDicts (with pkgs.hunspellDicts; [ de-de en-us ] ))
( aspellWithDicts (d: with d; [ de en en-computers en-science ] ))
];
2019-02-26 13:44:40 +01:00
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
2019-02-26 13:44:40 +01:00
transmission
org-plus-contrib orgit ox-gfm ox-rst
2019-04-07 21:19:18 +02:00
easy-jekyll markdown-mode impatient-mode simple-httpd htmlize
2019-02-26 13:44:40 +01:00
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
2019-02-26 13:44:40 +01:00
/* 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
/* Java */
# projectile yasnippet lsp-mode hydra company-lsp lsp-ui lsp-java dap-mode
cl-lib meghanada autodisass-java-bytecode google-c-style realgud
weechat
2019-02-26 13:44:40 +01:00
]);
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; [
hindent
2019-02-26 13:44:40 +01:00
mtl
random
]);
haskell-tools = with pkgs; [ cabal-install hlint]; # ghcid
2019-02-26 13:44:40 +01:00
java = with pkgs; [
openjdk11
maven
(with gitpkgs.eclipses; eclipseWithPlugins {
2019-02-26 13:44:40 +01:00
eclipse = eclipse-platform;
jvmArgs = [ "-Xmx2048m" ];
plugins = with plugins; [
color-theme
# emacsplus
checkstyle
eclemma
2019-02-26 13:44:40 +01:00
];
})
];
python3 = gitpkgs.python3Full.withPackages(ps: with ps; [
2019-02-26 13:44:40 +01:00
GitPython
bpython
cairosvg cairocffi
2019-02-26 13:44:40 +01:00
configparser
django
elpy
emoji
epc
flake8
genanki
mypy
2019-02-26 13:44:40 +01:00
numpy
opencv3
paho-mqtt
pep8
pillow
pip
plotly
pyflakes
pygame pygame_sdl2
2019-02-26 13:44:40 +01:00
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 ]);
2019-02-26 13:44:40 +01:00
rustpkgs = with pkgs; [
rustup
carnix
rustracer
];
server = with pkgs; [
audit
(jekyll.override { withOptionalDependencies = true; })
2019-02-26 13:44:40 +01:00
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
gitpkgs.krita gitpkgs.gmic_krita_qt
oneko
pcmanfm lxmenu-data shared_mime_info
2019-02-26 13:44:40 +01:00
pavucontrol
xclip
xlibs.xkill
xorg.xbacklight
xdiskusage
];
in {
environment.systemPackages = base
++ (optPkgs dict "dict")
2019-02-26 13:44:40 +01:00
++ (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);
2019-02-26 13:44:40 +01:00
package = emacs;
};
}