{ pkgs, ... }: let homedir = builtins.getEnv "HOME"; gitCommitTemplate = ./lib/git-commit-template; gpgid = "D09299626FA78AF8"; haskellOverlay = self: super: { haskellPackages = super.haskellPackages.override (old: { overrides = self: super: { hledger = self.callPackage ./pkgs/hledger-1.19.1.nix {}; hledger-lib = self.callPackage ./pkgs/hledger-lib-1.19.1.nix {}; }; }); }; in { nixpkgs.overlays = [ haskellOverlay ]; imports = [ ./lib/common.nix ./lib/email.nix ]; home = { sessionVariables.PATH = "/usr/local/opt/mysql@5.7/bin:${homedir}/bin:${homedir}/.cabal/bin:${homedir}/.local/bin:$PATH"; packages = with pkgs; [ muchsync (haskellPackages.ghcWithPackages (ps: with ps; [hledger])) coreutils ]; }; programs = { git = { enable = true; userName = "Ben Sima"; userEmail = "ben@bsima.me"; ignores = [ "*~" "*.swp" ]; package = pkgs.gitAndTools.gitFull; signing = { key = gpgid; signByDefault = false; }; aliases = { authors = "shortlog -s -n"; }; extraConfig = '' [push] default = simple [commit] template = ${gitCommitTemplate} [sendemail] smtpuser = ben@bsima.me smptserverport = 587 smptserver = mail.bsima.me chainreplyto = false composeencoding = UTF-8 ''; }; # Doesnt' work bc clang can't compile it?? #qutebrowser = { # enable = true; # settings = { # "colors.webpage.darkmode.enabled" = true; # }; #}; emacs = { enable = true; extraPackages = epkgs: import ./lib/emacs-packages.nix { inherit epkgs; }; }; }; }