{ config, lib, ... }: with lib; let cfg = config.settings.applications.git; in { options = { settings.applications.git.enable = lib.mkOption { type = lib.types.bool; description = '' Enable git version control ''; }; settings.applications.git.lazygit.enable = lib.mkOption { type = lib.types.bool; description = '' Enable lazygit ''; default = true; }; }; config = mkIf cfg.enable { programs.lazygit = { enable = true; settings = { services = { "gitea.xeovalyte.dev" = "gitea:gitea.xeovalyte.dev"; }; }; }; programs.git = mkIf cfg.lazygit.enable { enable = true; userEmail = "me+gitea@xeovalyte.dev"; userName = "xeovalyte"; extraConfig = { commit.gpgsign = true; gpg.format = "ssh"; user.signingkey = "~/.ssh/gitea.pub"; }; }; }; }