{
  config,
  lib,
  ...
}:
with lib; let
  cfg = config.custom.programs.onedrive;
in {
  options.custom.programs.onedrive.enable = mkOption {default = false;};

  config.home-manager.users.${config.custom.username} = mkIf cfg.enable {
    # https://github.com/abraunegg/onedrive
    #!! Login is imperative
    #?? onedrive
    #?? systemctl --user enable --now onedrive@onedrive.service

    #!! Option not available, files written directly
    home.file = {
      # https://github.com/abraunegg/onedrive/blob/master/docs/USAGE.md#configuration
      ".config/onedrive/config".text = ''
        sync_dir = "~/SYNC/edu/hawkeye"
      '';

      # https://github.com/abraunegg/onedrive/blob/master/docs/USAGE.md#performing-a-selective-sync-via-sync_list-file
      ".config/onedrive/sync_list".text = ''
        !/Apps/
        !/Attachments/
        /*
      '';
    };
  };
}