{ config, lib, pkgs, ... }: let toml = pkgs.formats.toml { }; in { meta.maintainers = with lib.maintainers; [ HeitorAugustoLN ]; options.programs.vinegar = { enable = lib.mkEnableOption "Vinegar"; package = lib.mkPackageOption pkgs "vinegar" { }; settings = lib.mkOption { type = lib.types.attrsOf toml.type; default = { }; example = { env.WINEFSYNC = "1"; studio = { dxvk = false; renderer = "Vulkan"; fflags.DFIntTaskSchedulerTargetFps = 144; env = { DXVK_HUD = "0"; MANGOHUD = "1"; }; }; }; description = '' Configuration written to {file}`$XDG_CONFIG_HOME/vinegar/config.toml`. See for more information. ''; }; }; config = let cfg = config.programs.vinegar; in lib.mkIf cfg.enable { assertions = [ (lib.hm.assertions.assertPlatform "programs.vinegar" pkgs lib.platforms.linux) ]; home.packages = [ cfg.package ]; xdg.configFile."vinegar/config.toml" = lib.mkIf (cfg.settings != { }) { source = toml.generate "vinegar-config.toml" cfg.settings; }; }; }