Soumission d'une réponse distincte, car elle est entièrement différente de ma première en ce sens qu'elle résout le problème en cours. Crédit va à @user3439894 qui a dirigé l'OP et moi vers un lien (Activer le verrouillage des majuscules de manière programmatique) qui présente un code source écrit en C pouvant activer/désactiver de manière programmatique l'état des majuscules. Ainsi, crédit également à l'auteur original de ce code, pour lequel j'offre une traduction en JavaScript pour l'automatisation (JXA), qui est la variante JavaScript d'AppleScript.
Ce script inverse l'état du verrouillage des majuscules à chaque exécution :
ObjC.import("IOKit");
ObjC.import("CoreServices");
(() => {
var ioConnect = Ref();
var state = Ref();
$.IOServiceOpen(
$.IOServiceGetMatchingService(
$.kIOMasterPortDefault,
$.IOServiceMatching(
$.kIOHIDSystemClass
)
),
$.mach_task_self_,
$.kIOHIDParamConnectType,
ioConnect
);
$.IOHIDGetModifierLockState(ioConnect, $.kIOHIDCapsLockState, state);
$.IOHIDSetModifierLockState(ioConnect, $.kIOHIDCapsLockState, !state[0]);
$.IOServiceClose(ioConnect);
})();
Celui-ci, comme tout AppleScript, peut être exécuté depuis Éditeur de scripts (choisissez l'option de langue dans la barre de navigation en haut de la fenêtre). Malheureusement, Script Debugger ne prend pas en charge le JXA. Mais, en pratique, le script sera le plus utilement exécuté par le biais d'un autre logiciel d'automatisation, tel que Automator, Keyboard Maestro, Alfred, etc., tous pouvant exécuter des scripts JXA directement ; et tout logiciel ne proposant pas cette option peut l'exécuter par le biais de la commande shell osascript
:
osascript -l JavaScript /chemin/vers/le/script.jxa.applescript
Vous pouvez utiliser une extension de fichier .applescript
ou .scpt
pour enregistrer le script.