{
  pkgs,
  lib,
  config,
  ...
}: let
  cfg = config.dots.programs;
in {
  imports = [
    ./_media-tools
    ./_browsers
    ./_gaming
    ./_flatpak

    ./anki
    ./thunderbird
    ./libreoffice
    ./gnucash
    ./qalculate
    ./bitwarden
    ./zathura
    ./discord
    ./yt-dlp

  ];

  options.dots.programs = {
    enable = lib.mkEnableOption "enables all programs by default";
  };

  config = lib.mkIf cfg.enable {
    dots = {
      media-tools.enable = lib.mkDefault true;
      browsers.enable = lib.mkDefault true;
      gaming.enable = lib.mkDefault true;
      flatpak.enable = lib.mkDefault true;

      anki.enable = lib.mkDefault true;
      thunderbird.enable = lib.mkDefault true;
      libreoffice.enable = lib.mkDefault true;
      gnucash.enable = lib.mkDefault true;
      qalculate.enable = lib.mkDefault true;
      bitwarden.enable = lib.mkDefault true;
      discord.enable = lib.mkDefault true;
      zathura.enable = lib.mkDefault true;
      yt-dlp.enable = lib.mkDefault true;
    };
  };
}
