{ config, pkgs, ... }:

{
  imports = [
    ./fix-firefox.nix
  ];

  environment.systemPackages = with pkgs.haskellPackages; with pkgs; [
    gmpc
    mpdevil
    m4
    (pkgs.openjdk or pkgs.openjdk14 or pkgs.openjdk12 or pkgs.openjdk11 or pkgs.openjdk10 or openjdk8)
    sbt scala
    ungoogled-chromium
    # chromium
    firefox
    qalculate-gtk
    libqalculate
    viewnior
    gnupg
    (pass.withExtensions (ext: [ ext.pass-otp ]))
    xclip pwgen
    remmina
    ledger
    # hledger
    # hledger-diff
    cmake ninja
    bear
    mpv
    neomutt notmuch
    patchelf
    loc
    tokei
    ripgrep
    imagemagick
    mercurial
    (pkgs.man-pages or manpages)

    dfeet

    geoipWithDatabase

    nix-index

    alacritty

    neovim-qt

    clinfo

    lm_sensors
    hdparm
    smartmontools
    lsof

    pdfpc
    poppler_utils

    # emacs
    emacs
    ghostscript # for auctex
    aspell

    (pkgs.nodejs_latest or pkgs.nodejs-12_x or pkgs.nodejs-11_x or pkgs.nodejs-10_x or nodejs-9_x)

    mediainfo

    isync
    msmtp
    vdirsyncer khard khal

    rclone
    duplicity
    magic-wormhole

    linuxPackages.perf

    qrencode zbar

    veriT
    minisat
    picosat
    glucose
    prover9
    eprover
    vampire
    metis-prover
    spass
    z3
    cvc4
    graphviz
    open-wbo
    # toysolver
  ] ++ (with aspellDicts; [ en de fr nl ])
    ++ (with gst_all_1; [ gstreamer gstreamer.dev
      gst-plugins-bad gst-plugins-good gst-plugins-base gst-plugins-ugly ]);

  nixpkgs.config.allowTexliveBuilds = true;
  nixpkgs.config.allowUnfree = true;
  nixpkgs.config.android_sdk.accept_license = true;

  programs.adb.enable = true;
  users.extraUsers.gebner.extraGroups = [ "adbusers" ];

  # nixpkgs.config.packageOverrides = pkgs: with pkgs; {
  # };

}