{ config, lib, pkgs, ... }: with lib; let cfg = config.programs.wl-kbptr; iniFormat = pkgs.formats.ini {listsAsDuplicateKeys = true;}; in { options = { programs.wl-kbptr = { enable = mkEnableOption "enable niri desktop"; settings = mkOption { inherit (iniFormat) type; default = {}; }; }; }; config = mkIf cfg.enable { home.packages = with pkgs; [ wl-kbptr ]; xdg.configFile."wl-kbptr/config" = mkIf (cfg.settings != {}) { source = iniFormat.generate "wl-kbptr-config" cfg.settings; }; }; }