{ config, ... }:
 
{
  programs.jujutsu = {
    enable = true;
    settings = {
      user.name = config.programs.git.settings.user.name;
      user.email = config.programs.git.settings.user.email;
    };
  };
}
home-manager

By default executing jj just prints the log, which is nice. It also prints this warning, which is not nice:

$ jj
Hint: Use `jj -h` for a list of available commands.
Run `jj config set --user ui.default-command log` to disable this message.

Let’s fix that:

{
  programs.jujutsu.settings.ui.default-command = "log";
}
home-manager

I don’t like when it automatically adds new files to commits:

{
  programs.jujutsu.settings.snapshot.auto-track = "none()";
}
home-manager

Editing diffs

{ pkgs, ... }:
 
{
  programs.jujutsu.settings.ui.diff-editor = "diffedit3";
 
  home.packages = [ pkgs.diffedit3 ];
}
home-manager

Emacs integration

Current (0.3) version fails to compile. I am using the latest source from git to circumvent the issue

vc-jj = { url = "git+https://codeberg.org/emacs-jj-vc/vc-jj.el"; flake = false; };
flake.nix:inputs
(mkPackage {
  pname = "vc-jj";
  src = inputs.vc-jj;
})
(setup (:package vc-jj))
{
  programs.jujutsu.settings = {
    ui.diff-formatter = ":git";
    conflict-marker-style = "git";
  };
}
home-manager