{ config, lib, pkgs, ... }: let cfg = config.my.home.gdb; in { options.my.home.gdb = with lib; { enable = my.mkDisableOption "gdb configuration"; rr = { enable = my.mkDisableOption "rr configuration"; package = mkOption { type = types.package; default = pkgs.rr; defaultText = literalExample "pkgs.rr"; description = '' Package providing rr ''; }; }; }; config = lib.mkMerge [ (lib.mkIf cfg.enable { home.packages = with pkgs; [ gdb ]; # FIXME: waiting for commit 64aaad6349d2b2c45063a5383f877ce9a3a0c354 xdg.configFile."gdb/gdbinit".source = ./gdbinit; # FIXME: remove once `gdb` is updated from version 10.2 home.file.".gdbinit".source = ./gdbinit; }) (lib.mkIf cfg.rr.enable { home.packages = [ cfg.rr.package ]; }) ]; }