{ 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; [ git-crypt gh tea riffdiff ]; programs = { 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"; }; }; }; 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-worktree-switcher.enable = true; }; }; }