{ pkgs, ... }:
let
  # This would normally not be a file in the store for security reasons.
  testKeyFile = pkgs.writeText "test-key-file" "a-sync-key";
in
{
  programs.anki = {
    enable = true;
    addons = [ pkgs.ankiAddons.passfail2 ];
    answerKeys = [
      {
        ease = 1;
        key = "left";
      }
      {
        ease = 2;
        key = "up";
      }
    ];
    hideBottomBar = true;
    hideBottomBarMode = "fullscreen";
    hideTopBar = false;
    hideTopBarMode = "always";
    language = "en_US";
    legacyImportExport = false;
    minimalistMode = true;
    reduceMotion = true;
    spacebarRatesCard = true;
    style = "native";
    theme = "dark";
    uiScale = 1.0;
    videoDriver = "opengl";
    sync = {
      autoSync = true;
      syncMedia = true;
      autoSyncMediaMinutes = 15;
      networkTimeout = 60;
      url = "http://example.com/anki-sync/";
      username = "lovelearning@email.com";
      keyFile = testKeyFile;
    };
  };

  nmt.script =
    let
      ankiBaseDir =
        if pkgs.stdenv.hostPlatform.isDarwin then
          "home-files/Library/Application Support/Anki2"
        else
          "home-files/.local/share/Anki2";
    in
    ''
      assertFileExists "${ankiBaseDir}/prefs21.db"

      assertFileExists "${ankiBaseDir}/gldriver6"
    '';
}
