DuoKeyboard

DuoKeyboard

Adds automatic keyboard switching on duolingo.com based on the user preferences.

Merlin
Additional files are visible only to premium users

manifest.json


{
  "update_url": "https://clients2.google.com/service/update2/crx",
  "name": "__MSG_extension_name__",
  "short_name": "__extension_short_name__",
  "version": "1.5.1",
  "manifest_version": 3,
  "description": "__MSG_extension_description__",
  "default_locale": "en",
  "options_ui": {
    "open_in_tab": true,
    "page": "./data/options/index.html"
  },
  "permissions": [
    "storage",
    "tabs"
  ],
  "web_accessible_resources": [
    {
      "resources": [
        "data/img/icon-16.png",
        "data/duokeyboard/duokeyboardSetup.json",
        "data/duokeyboard/keyboard-layouts/*.json"
      ],
      "matches": [
        "https://*.duolingo.com/*"
      ]
    }
  ],
  "action": {
    "default_icon": {
      "19": "data/img/icon-19.png",
      "38": "data/img/icon-38.png"
    },
    "default_title": "__MSG_extension_action_title__",
    "default_popup": "./data/options/dummy.html"
  },
  "icons": {
    "16": "data/img/icon-16.png",
    "48": "data/img/icon-48.png",
    "128": "data/img/icon-128.png"
  },
  "content_scripts": [
    {
      "css": [
        "./data/duokeyboard/DuoKeyboardOnscreen.css"
      ],
      "js": [
        "./data/common/interact.js",
        "./data/common/SettingsElements.js",
        "./data/common/Common.js",
        "./data/common/DynamicHTML.js",
        "./data/common/Data.js",
        "./data/duokeyboard/DuoKeyboardInputMethodExtension.js",
        "./data/duokeyboard/DuoKeyboardDeadKeys.js",
        "./data/duokeyboard/DuoKeyboardVietnamese.js",
        "./data/duokeyboard/DuoKeyboardHangul.js",
        "./data/duokeyboard/DuoKeyboard.js",
        "./data/duokeyboard/DuoKeyboardOnscreen.js",
        "./data/duokeyboard/DuoKeyboardController.js"
      ],
      "matches": [
        "https://*.duolingo.com/*"
      ]
    }
  ]
}