{ config, pkgs, lib, ... }: let
  inherit (pkgs.nur.repos.rycee.firefox-addons) vimium;
in {
  programs.firefox = {
    profiles.xieby1 = {
      extensions.packages = [
        vimium
      ];
    };
  };

  home.file.vimium_sql = let
    # retrieve json:
    # sqlite3 storage-sync-v2.sqlite "SELECT data FROM storage_sync_data WHERE ext_id='{d7742d87-e61d-4b78-b8a1-b469842139fa}';"
    json = /*json*/ ''{
      "exclusionRules": [{
        "passKeys": "",
        "pattern": "*:77[0-9][0-9]*"
      }],
      "settingsVersion": "${lib.removePrefix "vimium-" vimium.name}"
    }'';
    relDir = "${config.programs.firefox.profilesPath}/xieby1";
    absDir = "${config.home.homeDirectory}/${relDir}";
    relTarget = "${relDir}/browser-extension-data/${vimium.addonId}/sql";
    absTarget = "${config.home.homeDirectory}/${relTarget}";
  in {
    text = /*sql*/ "UPDATE storage_sync_data SET data = '${json}' WHERE ext_id = '${vimium.addonId}';";
    target = relTarget;
    onChange = /*bash*/ ''
      if [[ -e ${absDir}/storage-sync-v2.sqlite ]]; then
        echo ⛁ updating vimium settings in ${absDir}/storage-sync-v2.sqlite
        ${pkgs.sqlite}/bin/sqlite3 ${absDir}/storage-sync-v2.sqlite < ${absTarget}
      else
        echo ⛃ next time update vimium settings in ${absDir}/storage-sync-v2.sqlite
        rm ${absTarget}
      fi
    '';
  };
}