about summary refs log blame commit diff stats
path: root/nix-conf/home/otm.nix
blob: 71c31ab708407451ff68ae9c11247dce52e7dc71 (plain) (tree)
1
2
3
4
5
6
7
8
                           



                                                                            

              
                         








                                                             
 

                                              
                                     
                

                                                                                                          














                                             













                                         










                                                                
{ config, lib, pkgs, ... }:
let
  email = builtins.readFile "${config.home.homeDirectory}/email.txt";
  otmEmail = builtins.readFile "${config.home.homeDirectory}/otm_email.txt";
in
{
  imports = [ 
    ./includes/darwin.nix
  ];

  # Let Home Manager install and manage itself.
  programs.home-manager.enable = true;

  # Home Manager needs a bit of information about you and the
  # paths it should manage.
  home.username = "djm";
  home.homeDirectory = "/Users/djm";

  programs.git = {
    signing.signByDefault = lib.mkForce false;
    userEmail = lib.mkForce otmEmail;
    includes = [
      { contents = { commit.gpgSign = true; user.email = email; }; condition = "gitdir:~/src/personal/"; }
      { contents = { commit.gpgSign = true; user.email = email; }; condition = "gitdir:~/dotfiles/"; }
    ];
    extraConfig = {
      github.user = "david-morgan-otm";
    };
    ignores = [
      ".envrc"
      ".clj-kondo"
      "shell.nix"
      ".direnv"
      ".dir-locals.el"
      "browser-tests/package-lock.json"
      "resources/react-app/package-lock.json"
      "resources/next/package-lock.json"
    ];
  };
  programs.ssh.matchBlocks = {
    "github.com" = lib.mkForce {
      hostname = "github.com";
      user = "git";
      identityFile = "~/.ssh/id_rsa";
      identitiesOnly = true;
    };
    "github.com-personal" = {
      hostname = "github.com";
      user = "git";
      identityFile = "~/.ssh/id_ed25519";
      identitiesOnly = true;
    };
  };
  
  # This value determines the Home Manager release that your
  # configuration is compatible with. This helps avoid breakage
  # when a new Home Manager release introduces backwards
  # incompatible changes.
  #
  # You can update Home Manager without changing this value. See
  # the Home Manager release notes for a list of state version
  # changes in each release.
  home.stateVersion = "21.11";
}