{ lib, pkgs, ... }:
{
  options.device.programs = {
    terminal = lib.mkOption {
      type = lib.types.str;
      default = "ghostty";
      description = "Terminal";
    };

    nixcord.enable = lib.mkEnableOption "nixcord";
    tmux.enable = lib.mkEnableOption "tmux";
    starship.enable = lib.mkEnableOption "starship";
    fastfetch.enable = lib.mkEnableOption "fastfetch";
    steam.enable = lib.mkEnableOption "steam";

    obs-studio.enable = lib.mkEnableOption "Obs Studio";
    cider-2.enable = lib.mkEnableOption "Cider 2";
  };

  options.programs = {
    wget = {
      enable = lib.mkEnableOption "wget";
      package = lib.mkPackageOption pkgs "wget" { };
    };
    tree = {
      enable = lib.mkEnableOption "tree";
      package = lib.mkPackageOption pkgs "tree" { };
    };
    ffmpeg = {
      enable = lib.mkEnableOption "ffmpeg";
      package = lib.mkPackageOption pkgs "ffmpeg-full" { };
    };
    nodejs = {
      enable = lib.mkEnableOption "nodejs";
      package = lib.mkPackageOption pkgs "nodejs" { };
    };
    bun = {
      enable = lib.mkEnableOption "bun";
      package = lib.mkPackageOption pkgs "bun" { };
    };
    brightnessctl = {
      enable = lib.mkEnableOption "brightnessctl";
      package = lib.mkPackageOption pkgs "brightnessctl" { };
    };
    php = {
      enable = lib.mkEnableOption "php";
      package = lib.mkPackageOption pkgs "php" { };
    };
    ntfs3g = {
      enable = lib.mkEnableOption "ntfs3g";
      package = lib.mkPackageOption pkgs "ntfs3g" { };
    };
    zip = {
      enable = lib.mkEnableOption "zip";
      package = lib.mkPackageOption pkgs "zip" { };
    };
    unzip = {
      enable = lib.mkEnableOption "unzip";
      package = lib.mkPackageOption pkgs "unzip" { };
    };
    python = {
      enable = lib.mkEnableOption "python";
      package = lib.mkPackageOption pkgs "python3" { };
    };
    jdk = {
      enable = lib.mkEnableOption "jdk-25";
      package = lib.mkPackageOption pkgs "jdk25" { };
    };
    nixfmt = {
      enable = lib.mkEnableOption "nixfmt";
      package = lib.mkPackageOption pkgs "nixfmt" { };
    };
    winepackages = {
      enable = lib.mkEnableOption "Wine and Proton utilities";
      packages = lib.mkOption {
        type = lib.types.listOf lib.types.package;
        default = with pkgs; [
          wine
          wine64
          winetricks
          protontricks
        ];
      };
    };
    quickshell = {
      enable = lib.mkEnableOption "quickshell";
      package = lib.mkPackageOption pkgs "quickshell" { };
    };
    papirus-icons = {
      enable = lib.mkEnableOption "papirus-icon-theme";
      package = lib.mkPackageOption pkgs "papirus-icon-theme" { };
    };
    kde-packages = {
      enable = lib.mkEnableOption "KDE utility packages";
      packages = lib.mkOption {
        type = lib.types.listOf lib.types.package;
        default = with pkgs.kdePackages; [
          kservice
          dolphin
          kate
          qt5compat
          qtdeclarative
          qtimageformats
          qtsvg
          qtmultimedia
          kde-gtk-config
          kirigami
          ksvg
          qtbase
          plasma5support
          qttools
          plasma-sdk
        ];
      };
    };
    r-tensorflow = {
      enable = lib.mkEnableOption "R tensorflow";
      package = lib.mkOption {
        type = lib.types.package;
        default = pkgs.rPackages.tensorflow;
      };
    };
    hyprland-portals = {
      enable = lib.mkEnableOption "XDGP for hyprland";
      packages = lib.mkOption {
        type = lib.types.listOf lib.types.package;
        default = with pkgs; [
          xdg-desktop-portal
          xdg-desktop-portal-wlr
          xdg-desktop-portal-hyprland
        ];
      };
    };
  };
}
