{
  lib,
  config,
  pkgs,
  ...
}: let
  cfg = config.myConfig.programs;
in {
  imports = [./foot.nix ./thunderbird.nix ./nextcloud.nix ./udiskie.nix ./wezterm.nix];

  options.myConfig.programs = {
    enable = lib.mkEnableOption "programs for desktop use";
  };

  config = lib.mkIf cfg.enable {
    myConfig.programs = {
      foot.enable = lib.mkDefault true;
      wezterm.enable = lib.mkDefault true;
      thunderbird.enable = lib.mkDefault true;
      nextcloud.enable = lib.mkDefault true;
      udiskie.enable = lib.mkDefault true;
    };

    home.packages = with pkgs; [
      unzip
      firefox
      xournalpp
      prismlauncher
      steam
      blender
      betaflight-configurator
      loudgain
      yt-dlp
      dconf
      distrobox
      libqalculate
      sops
      pwvucontrol
      qpwgraph
      discord
      libreoffice-fresh
      mate.caja
      mate.atril
      mpv
      gimp
      freecad
      wine
      prusa-slicer
      kicad
      element-desktop
      chromium
      wl-clipboard
      gimp
      godot_4
      ripgrep-all
      stm32cubemx
    ];
  };
}
