Automatizálások

Használj kész vagy saját szabályokat a billentyűzet gépelés közbeni módosításához a mentett beállítások lecserélése nélkül.

Az állapotszabályok ideiglenes beállításokat alkalmaznak, amíg teljesülnek a feltételeik. Kombinálhatod a tájolást, az ablakszélességet, a megjelenést, a nyelvet, a kiosztást, a beviteli mező tulajdonságait, az időt vagy a bővítmény által deklarált állapotot. Válaszd ki, hogy minden feltételnek vagy bármelyiknek teljesülnie kell-e. Az ismeretlen környezet sosem teljesít negatív feltételt.

Az eseményszabályok a billentyűzet megnyitásakor, a nyelv vagy a mező tulajdonságának változásakor, bővítményeseményre vagy egy parancsikon megérintésére futnak le. A parancsok eseményenként egyszer futnak. Az ideiglenes beállítások a billentyűzet bezárásáig, a szabály módosításáig vagy a munkamenet felülírásainak törléséig maradnak érvényben.

A mentett beállításaid maradnak az alapok

A szabályok az aktuális mentett beállításokra rétegződnek. Húzással módosíthatod a sorrendet; a későbbi szabályok élveznek elsőbbséget. Egy szabály kikapcsolása eltávolítja a módosításait. A mentett változtatások megmaradnak az ideiglenes felülírás végén. A profilművelet ideiglenes, nem választja ki és nem írja át a mentett profilt.

A kompakt beállítás 28 pontos billentyűsorokat és a mentett szélesség 80%-át használja a meglévő mérethatárokon belül. Bekapcsolt osztásnál a kisebb billentyűk nagyobb helyet hagynak a két fél között, és a szélek közelében tartják őket. Az egykezes mód megtartja a saját igazítását. A százalékok mindig a mentett értékből indulnak ki, nem halmozódnak.

Az előnézet az általad megadott mintakörnyezetet használja. Parancsok futtatása nélkül mutatja a teljesülő feltételeket, az érvénytelen hivatkozásokat és a várható beállításokat. Az alkalmazás előnézete különálló az élő billentyűzettől. Add az Automatizálásokat a felső sávhoz, hogy ott lásd az aktív felülírásokat és elindíthasd a parancsikonos szabályokat.

Esemény bekövetkezésekor

Esemény bekövetkezésekor

  • keyboard.open
  • keyboard.close
  • keyboard.languageChanged
  • keyboard.layoutChanged
  • keyboard.profileChanged
  • keyboard.planeChanged
  • input.changed
  • time.minute
  • user.run

Műveletek

  • panel.close
  • plane.letters
  • plane.numbers
  • plane.symbols
  • overrides.clear
  • panel.emoji
  • panel.calculator
  • panel.conversion
  • panel.layouts
  • panel.profiles

A kiértékelés aktív billentyűzetnél történik. Az időalapú szabályok nem futnak a háttérben, és a bezárási esemény nem garantált. A Clink nem azonosíthatja a befogadó alkalmazást, és nem módosíthatja az iOS beállításait. A szabályok megtartják a használt funkciók Tagságra, Teljes hozzáférésre és felhasználói érintésre vonatkozó követelményeit. Az importálás nem ad engedélyeket.

A bővítmény szerződése

A .clinkplugin fájl opcionális automation objektuma eseményeket, állapotot, beállításokat, parancsokat, kész szabályokat és parancsikonhelyeket deklarál. Minden elemnek stabil azonosítója, pontos sémaverziója és lokalizált címe van. A gazda hozza létre a plugin/<plugin-id>/<kind>/<id> neveket. Egy bővítmény nem használhat rendszerbeli vagy másik bővítményhez tartozó névteret.

A közzétett állapot, az eseményadatok és a parancsargumentumok logikai értékeket, korlátozott számokat és deklarált választásokat fogadnak el. A beállítások korlátozott hosszúságú szöveget is használhatnak. Az állapot és a beállítások a bővítmény meglévő állapotszótárának kulcsait használják. Az ideiglenes értékek mentés előtt visszaállnak. A kész szabályok közönséges, kikapcsolt szabályok, amelyeket kifejezetten ki kell választani.

Bővítmények ›

Horogpontok

HorogpontMikor fut
on_automation(command, args, state)Az on_automation(command, args, state) egy jóváhagyott helyi parancsot futtat a meglévő elkülönített környezetben. Frissítheti a szóköz feliratát, közzétehet deklarált állapotot vagy kibocsáthat deklarált eseményt. Ez a hook nem szúrhat be szöveget, nem férhet hozzá a vágólaphoz, nem módosíthat tartós beállítást, és nem indíthat külső kérést.
automation_emit(name, payload)Bocsáss ki deklarált eseményt a típusos adataival. A gazda hozzáadja a bővítmény névterét és a sémaverziókat; a szkript nem adhat meg felhasználói gesztust vagy végrehajtási előzményláncot.
automation_publish(name, value)Tegyél közzé egy deklarált állapotértéket a feltételekhez. Az értékek eltűnnek a billentyűzet munkamenetének végén vagy a bővítmény elérhetetlenné válásakor.
automation_run(slot)A bővítmény natív vezérlőjének műveletkezelőjéből hívd. A felhasználó az Automatizálásokban kapcsolja a deklarált parancsikonhelyet egy szabályhoz. A bővítmény nem választhatja ki titokban a szabályt, és időzítővel sem indíthat érintést igénylő parancsot.

Műveletek

  • space_text
  • automation_emit
  • automation_publish

Deklarált esemény és biztonságos parancs

Ez a manifesztrészlet egy szokásos bővítményfájl automation mezőjébe kerül. A szkript közzéteszi, hogy készen áll-e a billentyűzet, eseményt bocsát ki és frissít egy feliratot. A szerkesztőben válaszd ki az eseményt, követeld meg a ready állapotot, és válaszd a caption parancsot. A példa elolvasása nem telepít és nem kapcsol be bővítményt.

{
  "schemaVersion": 1,
  "events": [
    {
      "id": "ready",
      "title": {
        "en": "Keyboard ready"
      },
      "version": 1,
      "payload": [
        {
          "id": "ready",
          "key": "ready",
          "title": {
            "en": "Ready"
          },
          "version": 1,
          "type": "bool",
          "choices": [],
          "minimum": 0,
          "maximum": 100,
          "defaultValue": null
        }
      ]
    }
  ],
  "state": [
    {
      "id": "ready",
      "key": "ready",
      "title": {
        "en": "Ready"
      },
      "version": 1,
      "type": "bool",
      "choices": [],
      "minimum": 0,
      "maximum": 100,
      "defaultValue": null
    }
  ],
  "settings": [
    {
      "id": "show_caption",
      "key": "show_caption",
      "title": {
        "en": "Show caption"
      },
      "version": 1,
      "type": "bool",
      "choices": [],
      "minimum": 0,
      "maximum": 100,
      "defaultValue": true
    }
  ],
  "commands": [
    {
      "id": "caption",
      "title": {
        "en": "Refresh caption"
      },
      "version": 1,
      "arguments": [],
      "behavior": "localUI",
      "requiresUserGesture": false,
      "requiresFullAccess": false
    }
  ],
  "presets": [],
  "shortcuts": [
    "run"
  ]
}
def initial():
    return {"ready": False, "show_caption": True}

def on_open(state):
    state["ready"] = True
    automation_publish("ready", True)
    automation_emit("ready", {"ready": True})
    return state

def on_automation(command, args, state):
    if command == "caption":
        space_text("Clink" if state["show_caption"] else None)
    return state

def bar_items(state):
    return [bar_button("run", "Run automation", icon="bolt.circle")]

def on_action(action, value, state):
    if action == "run":
        automation_run("run")
    return state

Oszd meg tudatosan a szabályokat

Az Automatizálásokban JSON-t importálhatsz és exportálhatsz. Az importált szabályok kikapcsolva érkeznek, új azonosítót kapnak, és megtartják a témákra, kiosztásokra és bővítményekre mutató hivatkozásaikat. A hiányzó hivatkozásokat helyre kell állítani a futtatás előtt. A szabályok globálisak, igény szerint profilra korlátozhatók; különállók a profilexporttól és az iCloud-szinkronizálástól.

{
  "schemaVersion": 1,
  "shortcutBindings": {},
  "rules": [
    {
      "id": "landscape-split",
      "name": "Landscape split",
      "enabled": false,
      "schemaVersion": 1,
      "kind": "state",
      "trigger": "keyboard.open",
      "triggerVersion": 1,
      "cooldownSeconds": 1,
      "conditions": {
        "mode": "all",
        "items": [
          {
            "id": "landscape",
            "field": "interface.orientation",
            "comparison": "equals",
            "value": "landscape",
            "upper": null,
            "hysteresis": 0,
            "version": 1
          }
        ]
      },
      "actions": [
        {
          "id": "split",
          "kind": "set",
          "target": "layout.split",
          "value": true,
          "version": 1
        }
      ]
    }
  ]
}

Séma és korlátok

Az 1. verzió 128 szabályt, szabályonként 24 feltételt és 32 műveletet támogat, legfeljebb 1 048 576 bájtos importtal. A beállításjegyzék 268 célt kínál és 39 kizárást dokumentál. Az érvénytelen beállításcsoportot egészben elutasítja; a parancsok az első hibánál megállnak, a korábbi hatások visszavonását nem ígéri.

Az eltávolított, kikapcsolt vagy inkompatibilis bővítményelemek elérhetetlenné teszik a rájuk épülő szabályokat. Az összeomlás és az időtúllépés a munkamenetre letiltja a hibás elemet. A parancsok 20 000 lépést és rövid időkeretet kapnak. Korlátozott sorok, futtatási szünetek, lánckorlátok és állapotstabilizálás akadályozzák meg a végtelen ismétlődést.

Widgetek

A Clink három kezdőképernyős widgetet és egy Live Activityt hoz magával: profilváltót, a gépelési statisztikádat, gyors diktálást, és magát a diktálási munkamenetet.

A widgetek közvetlenül olvassák a megosztott beállításfájlt, így zárt app mellett is működnek.

App Intents

Ma két intent érkezik, és egyik sem nyitja meg az appot. A(z) Switch Keyboard Profile a widgetből írja újra a megosztott beállításokat, és a képernyőn már nyitva lévő billentyűzet azonnal átveszi a változást. A(z) End Dictation a Live Activityből éri el a mikrofonos munkamenetet, és ha kell, a háttérben indítja el az appot.

A saját készítésű profilra váltáshoz Tagság kell, és ez az ellenőrzés a widgeten belül is lefut. A Clinkkel érkező profilok ingyenesek.

A Clink nem határoz meg saját Parancsok-kifejezéseket, így nincs mit hangosan kimondani.

Fájlok megnyitása

A Clink bejegyzi a fájltípusait az iOS-nél, így a Fájlok, az AirDrop, az Üzenetek és bármelyik megosztási lap felajánlja a megnyitásukat a Clinkben.

Letöltés az App Store-ból