46 lines
1.5 KiB
Nix
46 lines
1.5 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
inputs,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (lib) mkEnableOption mkIf;
|
|
cfg = config.my.profiles.jujutsu;
|
|
in {
|
|
options.my.profiles.jujutsu.enable = mkEnableOption "jujutsu profile";
|
|
|
|
config = mkIf cfg.enable {
|
|
home-manager.users.moritz.programs.jujutsu = {
|
|
enable = true;
|
|
package = inputs.jj.packages.${pkgs.system}.default;
|
|
settings = {
|
|
user = {
|
|
email = "mail@moritzboeh.me";
|
|
name = "Moritz Böhme";
|
|
};
|
|
ui.pager.command = ["less" "-FRX"];
|
|
ui.pager.env.LESSCHARSET = "utf-8";
|
|
ui.default-command = "log";
|
|
signing = {
|
|
behavior = "drop";
|
|
backend = "gpg";
|
|
key = "0x970C6E89EB0547A9";
|
|
};
|
|
git.sign-on-push = true;
|
|
aliases = {
|
|
tug = ["bookmark" "move" "--from" "closest_bookmark(@)" "--to" "closest_pushable(@)"];
|
|
mm-update = ["rebase" "--source" "closest_merge(@)" "--destination" "all:closest_merge(@)-"];
|
|
mm-rebase = ["rebase" "--source" "all:roots(trunk()..closest_merge(@))"];
|
|
};
|
|
revset-aliases = {
|
|
"closest_bookmark(to)" = "heads(::to & bookmarks())";
|
|
"closest_pushable(to)" = "heads(::to & mutable() & ~description(exact:'') & (~empty() | merges()) & ~private())";
|
|
"closest_merge(to)" = "heads(::to & merges())";
|
|
"private()" = "description(glob:'wip:*') | description(glob:'private:*')";
|
|
};
|
|
git.private-commits = "private()";
|
|
};
|
|
};
|
|
};
|
|
}
|