{ lib, pkgs, config, ... }: let inherit (lib) types; cfg = config.programs.lazygit; settingsFormat = pkgs.formats.yaml { }; in { options.programs.lazygit = { enable = lib.mkEnableOption "lazygit"; defaultShell = lib.mkOption { type = types.bool; default = true; }; settings = lib.mkOption { default = { }; type = settingsFormat.type; }; }; config = lib.mkIf cfg.enable { packages = [ pkgs.lazygit ]; file.xdg_config."lazygit/config.yml".source = settingsFormat.generate "lazygit-config.yaml" cfg.settings; }; }