NixOS and Home Manager config
1{ config, wrappers, ...}: let
2 name = "nelind";
3 email = "nel.n.lindberg@gmail.com";
4 keyFile = "${config.home.homeDirectory}/.ssh/id_ed25519_git.pub";
5 allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers";
6in {
7 programs.git = {
8 enable = true;
9 settings = {
10 user = {
11 name = name;
12 email = email;
13 };
14 init.defaultBranch = "main";
15 core.autocrlf = "input";
16 gpg.format = "ssh";
17 gpg.ssh.allowedSignersFile = allowedSignersFile;
18 user.signingKey = keyFile;
19 };
20 lfs.enable = true;
21 };
22
23 home.packages = [ (wrappers.jujutsu {
24 settings = {
25 ui = {
26 default-command = [ "log" ];
27 pager = ":builtin";
28 show-cryptographic-signatures = true;
29 };
30 user = {
31 name = name;
32 email = email;
33 };
34 signing = {
35 behavior = "own";
36 backend = "ssh";
37 backends.ssh.allowed-signers = allowedSignersFile;
38 key = keyFile;
39 };
40 git = {
41 write-change-id-header = true;
42 fetch = [ "origin" "upstream" ];
43 };
44 };
45 }) ];
46}