{ pkgs ? (import {}) , haskellPackages ? (import ./thermoprint.git/default.nix {}).haskellPackages }: let thermoprintPackages = builtins.attrValues (import ./thermoprint.git/default.nix {}); ghc = haskellPackages.ghcWithPackages (ps: thermoprintPackages ++ utilities ps ++ testDeps ps); utilities = (ps: with ps; [ ]); testDeps = (ps: with ps; [ ]); shell = pkgs.stdenv.mkDerivation { name = "shell"; src = builtins.toFile "shell.sh" '' #!/usr/bin/env zsh typeset -a args args=($@) [[ $#@ -eq 0 ]] && args=("-e" "tmux") exec urxvtc -bg white -fg black -fn "xft:DejaVu Sans Mono:pixelsize=20" $args ''; phases = ["installPhase"]; installPhase = '' mkdir -p $out/bin install -m 555 $src $out/bin/shell ''; }; present = pkgs.stdenv.mkDerivation { name = "present"; src = builtins.toFile "present.sh" '' #!/usr/bin/env zsh typeset -a args args=($@) [[ $#@ -eq 0 ]] && args=("presentation.pdf") exec pdfpc -g -n right -d 20 $args ''; phases = ["installPhase"]; installPhase = '' mkdir -p $out/bin install -m 555 $src $out/bin/present ''; }; in pkgs.stdenv.mkDerivation rec { name = "presentation-env"; buildInputs = [ shell present ghc ] ++ (with pkgs; [ screen-message pdfpc ]); shellHook = '' eval $(egrep ^export ${ghc}/bin/ghc) export PROMPT_INFO="${name}" ''; }