Compare commits

...

2 commits

Author SHA1 Message Date
41fa2250ce
update flake inputs 2025-03-08 01:19:38 +08:00
ce4e444b77
add jujutsu in home manager module 2025-03-08 01:19:20 +08:00
7 changed files with 220 additions and 48 deletions

145
flake.lock generated
View file

@ -70,11 +70,11 @@
"bt-tracker": {
"flake": false,
"locked": {
"lastModified": 1741248524,
"narHash": "sha256-Xjtm8Kgb2uI9bxRKjX//rA6eTObZlHWO28tWYQRJ8GA=",
"lastModified": 1741363740,
"narHash": "sha256-1svF+0Asjzi+nTcrBjIeTvkjD1bGOjEVtjjuoENbgkY=",
"owner": "XIU2",
"repo": "TrackersListCollection",
"rev": "0f4adc547a23d130ab724fd35db9bbb16cd6cc05",
"rev": "af5bb9455f2d85bde23a59587178ca4d825802ce",
"type": "github"
},
"original": {
@ -234,11 +234,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1740872218,
"narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=",
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3876f6b87db82f33775b1ef5ea343986105db764",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"type": "github"
},
"original": {
@ -332,11 +332,11 @@
"zig2nix": "zig2nix"
},
"locked": {
"lastModified": 1741213203,
"narHash": "sha256-3/z39Y2AuLIm2OKWDAR1iPi1uo+LZju1XwW2NAxKUcY=",
"lastModified": 1741365365,
"narHash": "sha256-IyH6UI9UTRyJuD5LYKs5LcyEgk9tJMCOC/YZfojOJxE=",
"owner": "ghostty-org",
"repo": "ghostty",
"rev": "e07b6fdf6ba342eb1fc4321c26fe5a6475be5133",
"rev": "6c00c36d62cce816f3da969e7ffdfa651d9ffb84",
"type": "github"
},
"original": {
@ -421,11 +421,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1741117937,
"narHash": "sha256-3tVOFN2Da0aP+4KTqITEkxUGB9JR2YL8cbAtZf3rS+I=",
"lastModified": 1741358508,
"narHash": "sha256-seDMgvnTLhomNhS3JjRyppXwK2c8ulz4+1mqyRddbRY=",
"owner": "helix-editor",
"repo": "helix",
"rev": "a3fa65880e44e6bb50acb3a407354db174702441",
"rev": "fab08c098110e796514718f0bea6775baef86244",
"type": "github"
},
"original": {
@ -442,11 +442,11 @@
]
},
"locked": {
"lastModified": 1741217763,
"narHash": "sha256-g/TrltIjFHIjtzKY5CJpoPANfHQWDD43G5U1a/v5oVg=",
"lastModified": 1741345870,
"narHash": "sha256-KTpoO4oaucdFr3oJJBYpGK+aWVVrLvtiT17EQE7Cf4Y=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "486b066025dccd8af7fbe5dd2cc79e46b88c80da",
"rev": "04c915bcf1a1eac3519372ff3185beef053fba7c",
"type": "github"
},
"original": {
@ -455,6 +455,30 @@
"type": "github"
}
},
"jj": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1741345208,
"narHash": "sha256-AKbEIE6D7oOPP6idG14xGI81FCzDWGEdOjtDMiIrfHo=",
"owner": "jj-vcs",
"repo": "jj",
"rev": "ad39c97d046b1d73d4e8c55ce80e2fcc7fbbf3a9",
"type": "github"
},
"original": {
"owner": "jj-vcs",
"repo": "jj",
"type": "github"
}
},
"lix": {
"flake": false,
"locked": {
@ -506,11 +530,11 @@
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1741266295,
"narHash": "sha256-qECYk7NciED3rBjkGrLhAdA9+7nkqRbzcBb5baytvrk=",
"lastModified": 1741323380,
"narHash": "sha256-KvsswWfKpLtR27wJ9tf2XiP+lmGIBDyQy3VGGSVP7e0=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "5d72516628f943a5a86bbccd7c650d1c6a468552",
"rev": "ac53cc75694a48df66ddd520ff229129e6372c53",
"type": "github"
},
"original": {
@ -559,11 +583,11 @@
"nixpkgs-stable": "nixpkgs-stable_3"
},
"locked": {
"lastModified": 1741259319,
"narHash": "sha256-XQrxZmJbsDRFJ78mVtjEzII/UzknDqDq0zVT1WemkLM=",
"lastModified": 1741360124,
"narHash": "sha256-x9eHurxh8AhCmVplugQiYTyfz+NNU4DGRRLq1UqQ8g0=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "b60b139bf22f5d941b626594981d698502dfc500",
"rev": "5be89641d8b9190460af05d59f6dbe4cb8695399",
"type": "github"
},
"original": {
@ -574,11 +598,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1740646007,
"narHash": "sha256-dMReDQobS3kqoiUCQIYI9c0imPXRZnBubX20yX/G5LE=",
"lastModified": 1741325094,
"narHash": "sha256-RUAdT8dZ6k/486vnu3tiNRrNW6+Q8uSD2Mq7gTX4jlo=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "009b764ac98a3602d41fc68072eeec5d24fc0e49",
"rev": "b48cc4dab0f9711af296fc367b6108cf7b8ccb16",
"type": "github"
},
"original": {
@ -590,11 +614,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1741173522,
"narHash": "sha256-k7VSqvv0r1r53nUI/IfPHCppkUAddeXn843YlAC5DR0=",
"lastModified": 1741246872,
"narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d69ab0d71b22fa1ce3dbeff666e6deb4917db049",
"rev": "10069ef4cf863633f57238f179a0297de84bd8d3",
"type": "github"
},
"original": {
@ -606,14 +630,17 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1740872140,
"narHash": "sha256-3wHafybyRfpUCLoE8M+uPVZinImg3xX+Nm6gEfN3G8I=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/6d3702243441165a03f699f64416f635220f4f15.tar.gz"
"lastModified": 1740877520,
"narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "147dee35aab2193b174e4c0868bd80ead5ce755c",
"type": "github"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/6d3702243441165a03f699f64416f635220f4f15.tar.gz"
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-stable": {
@ -634,11 +661,11 @@
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1741048562,
"narHash": "sha256-W4YZ3fvWZiFYYyd900kh8P8wU6DHSiwaH0j4+fai1Sk=",
"lastModified": 1741196730,
"narHash": "sha256-0Sj6ZKjCpQMfWnN0NURqRCQn2ob7YtXTAOTwCuz7fkA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6af28b834daca767a7ef99f8a7defa957d0ade6f",
"rev": "48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3",
"type": "github"
},
"original": {
@ -650,11 +677,11 @@
},
"nixpkgs-stable_3": {
"locked": {
"lastModified": 1741048562,
"narHash": "sha256-W4YZ3fvWZiFYYyd900kh8P8wU6DHSiwaH0j4+fai1Sk=",
"lastModified": 1741196730,
"narHash": "sha256-0Sj6ZKjCpQMfWnN0NURqRCQn2ob7YtXTAOTwCuz7fkA=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6af28b834daca767a7ef99f8a7defa957d0ade6f",
"rev": "48913d8f9127ea6530a2a2f1bd4daa1b8685d8a3",
"type": "github"
},
"original": {
@ -690,11 +717,11 @@
"nur-rycee": {
"flake": false,
"locked": {
"lastModified": 1741233805,
"narHash": "sha256-aNmlbxeKPUfuOynHvIMBPrNgEs1ldHDIz1wbkitKDSs=",
"lastModified": 1741346793,
"narHash": "sha256-1v+2qupA6nVclgi5JMudAnlHy0li9puJPTRMoDducYw=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "a1cc22e90f45f6075a991348e896f1595c4efce9",
"rev": "30f586fd26fc52324cbe806e8c6f73924004c1aa",
"type": "gitlab"
},
"original": {
@ -707,11 +734,11 @@
"nur-xddxdd": {
"flake": false,
"locked": {
"lastModified": 1741169085,
"narHash": "sha256-V1H/DSBzOt+jDxckk19ngxwf1JUWOLOG4nZ2Tq3AgMU=",
"lastModified": 1741342029,
"narHash": "sha256-Y8v0J0flzsO1GWVKsE2wBjVU1WuWEUx1wQ3A6t9crcw=",
"owner": "xddxdd",
"repo": "nur-packages",
"rev": "75eb8b2b04dc8ee631ef036e8d2ff9c31e2c2ec4",
"rev": "ac5410ac586761cae72e4d7d28588eb6a2c1e656",
"type": "github"
},
"original": {
@ -749,6 +776,7 @@
"ghostty": "ghostty",
"helix": "helix",
"home-manager": "home-manager",
"jj": "jj",
"lix-module": "lix-module",
"niri-flake": "niri-flake",
"nixos-cosmic": "nixos-cosmic",
@ -785,6 +813,27 @@
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": [
"jj",
"nixpkgs"
]
},
"locked": {
"lastModified": 1737685583,
"narHash": "sha256-p+NVABRpGi+pT+xxf9HcLcFVxG6L+vEEy+NwzB9T0f8=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "eb64cbcc8eee0fa87ebded92805280d2ec97415a",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
@ -833,11 +882,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1741112087,
"narHash": "sha256-dBGwN4aHmX2QUXolZDhV+p06+WM5ZykL4wd9BD6bT7k=",
"lastModified": 1741335745,
"narHash": "sha256-jsYqEZ/gll40Jgl8BhzEAYz4E86uwUm99RkaVY38chk=",
"owner": "danth",
"repo": "stylix",
"rev": "11780517948f214b9f93d1bf5a2d29bc181d3a33",
"rev": "6fada03cd5e223aa9c111e7073118692065a7ee1",
"type": "github"
},
"original": {

View file

@ -156,6 +156,16 @@
utils.follows = "flake-utils";
};
};
jj = {
type = "github";
owner = "jj-vcs";
repo = "jj";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
};
outputs =
{

View file

@ -21,6 +21,12 @@
fuzzel.enable = true;
helix.enable = true;
gpg.enable = true;
jujutsu = {
enable = true;
email = "ulic.youthlic@gmail.com";
name = "ulic-youthlic";
signKey = "C6FCBD7F49E1CBBABD6661F7FC02063F04331A95";
};
git = {
email = "ulic.youthlic@gmail.com";
name = "ulic-youthlic";

View file

@ -24,5 +24,6 @@
./swaync.nix
./helix
./waybar.nix
./jujutsu.nix
];
}

View file

@ -0,0 +1,104 @@
{
pkgs,
config,
lib,
...
}:
let
cfg = config.youthlic.programs.jujutsu;
in
{
options = {
youthlic.programs.jujutsu = {
enable = lib.mkEnableOption "jujutsu";
email = lib.mkOption {
type = lib.types.str;
description = ''
jujutsu email
'';
};
signKey = lib.mkOption {
type = lib.types.addCheck (lib.types.nullOr lib.types.str) (
x: (x == null || config.youthlic.programs.gpg.enable)
);
default = null;
description = ''
key fingerprint for sign commit
'';
};
name = lib.mkOption {
type = lib.types.str;
example = ''youthlic'';
description = ''
jujutsu name
'';
};
};
};
config = lib.mkMerge [
(lib.mkIf cfg.enable {
home.packages = with pkgs; [
delta
watchman
];
programs.jujutsu = {
enable = true;
settings = {
"$schema" = "https://jj-vcs.github.io/jj/latest/config-schema.json";
snapshot = {
auto-track = "true";
max-new-file-size = 0;
};
core = {
fsmonitor = "watchman";
watchman.register-snapshot-trigger = true;
};
user = {
name = cfg.name;
email = cfg.email;
};
ui = {
color = "auto";
movement.edit = true;
graph.style = "square";
show-cryptographic-signatures = true;
pager = "delta";
diff = {
tool = "delta";
format = "git";
};
default-command = "log";
};
templates = {
log = ''
builtin_log_compact_full_description
'';
};
template-aliases = {
"format_short_signature(signature)" = "signature";
};
revset-aliases = {
"immutable_heads()" = ''
builtin_immutable_heads() | (trunk().. & ~mine())
'';
};
git = {
abandon-unreachable-commits = false;
};
};
};
})
(lib.mkIf (cfg.enable && (cfg.signKey != null)) {
programs.jujutsu.settings = {
git = {
sign-on-push = true;
};
signing = {
behavior = "drop";
backend = "gpg";
key = cfg.signKey;
};
};
})
];
}

View file

@ -8,6 +8,7 @@ let
./ghostty.nix
./juicity.nix
./dae.nix
./jujutsu.nix
];
overlay-list = map (file: import file args) overlay-files;
in

View file

@ -0,0 +1 @@
{ inputs, ... }: inputs.jj.overlays.default