mirror of
https://github.com/nmasur/dotfiles
synced 2026-07-29 03:38:34 +00:00
70 lines
2.0 KiB
Nix
70 lines
2.0 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.nmasur.presets.programs.jujutsu;
|
|
tomlFormat = pkgs.formats.toml { };
|
|
in
|
|
|
|
{
|
|
|
|
options.nmasur.presets.programs.jujutsu.enable = lib.mkEnableOption "Jujutsu version control";
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
programs.jujutsu = {
|
|
enable = true;
|
|
|
|
# https://github.com/martinvonz/jj/blob/main/docs/config.md
|
|
settings = {
|
|
user = {
|
|
name = config.programs.git.settings.user.name;
|
|
email = config.programs.git.settings.user.email;
|
|
};
|
|
ui.paginate = "never";
|
|
|
|
# Automatically snapshot when files change
|
|
fsmonitor.backend = "watchman";
|
|
fsmonitor.watchman.register-snapshot-trigger = true;
|
|
};
|
|
};
|
|
|
|
xdg.configFile."jjui/config.toml".source = tomlFormat.generate "jjui-config" {
|
|
actions = [
|
|
{
|
|
name = "set-github-bypass";
|
|
lua = ''
|
|
exec_shell([[gh api --method PATCH -H "Accept: application/vnd.github+json" /repos/$(gh repo view --json nameWithOwner -q .nameWithOwner)/properties/values -f 'properties[][property_name]=Allow-Ruleset-Bypass' -f 'properties[][value]=true']])
|
|
flash("Set GitHub rule bypass")
|
|
'';
|
|
key = "ctrl+b";
|
|
scope = "revisions";
|
|
desc = "Set GitHub rule bypass";
|
|
}
|
|
{
|
|
name = "remove-github-bypass";
|
|
lua = ''
|
|
exec_shell([[gh api --method PATCH -H "Accept: application/vnd.github+json" /repos/$(gh repo view --json nameWithOwner -q .nameWithOwner)/properties/values -f 'properties[][property_name]=Allow-Ruleset-Bypass' -f 'properties[][value]=']])
|
|
flash("Removed GitHub rule bypass")
|
|
'';
|
|
key = "ctrl+shift+b";
|
|
scope = "revisions";
|
|
desc = "Remove GitHub rule bypass";
|
|
}
|
|
];
|
|
};
|
|
|
|
home.packages = [
|
|
# Required for the fsmonitor to auto-snapshot
|
|
pkgs.stable.watchman
|
|
|
|
# Required to be on path to work in Zellij
|
|
pkgs.jjui
|
|
];
|
|
|
|
};
|
|
}
|