zsh.nix/modules/gitTools.nix

87 lines
2.6 KiB
Nix

{
pkgs,
config,
lib,
...
}: let
cfg = config.jiriks74.zsh;
in {
meta.maintainers = with lib.maintainers; [jiriks74];
options.jiriks74.zsh.gitTools = lib.mkEnableOption "Install usefull git tools";
config = lib.mkIf cfg.gitTools {
# assertions = [
# {
# # Condition that must be true
# assertion = cfg.enable;
# # Error message if the assertion fails
# message = ''
# Home-Manager module jiriks74.zsh.gitTools is enabled but jiriks74.zsh is not!
# '';
# }
# ];
home.packages = with pkgs; [
gh
tea
riffdiff
];
programs = {
git-cliff.enable = true;
gitui = {
enable = true;
keyConfig = lib.mkDefault ''
(
open_help: Some(( code: F(1), modifiers: "")),
move_left: Some(( code: Char('h'), modifiers: "")),
move_right: Some(( code: Char('l'), modifiers: "")),
move_up: Some(( code: Char('k'), modifiers: "")),
move_down: Some(( code: Char('j'), modifiers: "")),
popup_up: Some(( code: Char('p'), modifiers: "CONTROL")),
popup_down: Some(( code: Char('n'), modifiers: "CONTROL")),
page_up: Some(( code: Char('b'), modifiers: "CONTROL")),
page_down: Some(( code: Char('f'), modifiers: "CONTROL")),
home: Some(( code: Char('g'), modifiers: "")),
end: Some(( code: Char('G'), modifiers: "SHIFT")),
shift_up: Some(( code: Char('K'), modifiers: "SHIFT")),
shift_down: Some(( code: Char('J'), modifiers: "SHIFT")),
edit_file: Some(( code: Char('I'), modifiers: "SHIFT")),
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
diff_reset_lines: Some(( code: Char('u'), modifiers: "")),
diff_stage_lines: Some(( code: Char('s'), modifiers: "")),
stashing_save: Some(( code: Char('w'), modifiers: "")),
stashing_toggle_index: Some(( code: Char('m'), modifiers: "")),
stash_open: Some(( code: Char('l'), modifiers: "")),
abort_merge: Some(( code: Char('M'), modifiers: "SHIFT")),
)
'';
};
git = {
enable = true;
extraConfig = {
init = {
defaultBranch = lib.mkDefault "main";
};
pager = {
diff = lib.mkDefault "riff";
show = lib.mkDefault "riff";
log = lib.mkDefault "riff";
};
interactive = {
diffFilter = lib.mkDefault "riff --color=on";
};
};
};
};
};
}