Necesito cambiar un tema utilizando un script para el Mojave, Alfred y Sourcetree. Lo he hecho ya con éxito con Mojave y Alfred usando este script:
¿Para Sourcetree parece que deba haga clic en el menú pero como puedo hacer?
Desde el OP está etiquetada con tanto AppleScript y JavaScript, y son dos totalmente independiente idiomas, y no fue explícita y específicamente afirmó que la solución tenía que ser sólo en JavaScript, aquí algunas código que debe trabajar. Digo "debería funcionar", porque trabaja en las aplicaciones de prueba, pero no tengo Sourcetree instalado para probar de forma explícita y específicamente con él.
AppleScript código:
tell application "Sourcetree" to activate
delay 1
tell application "System Events"
click menu item ¬
"Dark" of menu 1 of menu item ¬
"Theme" of menu 1 of menu bar item ¬
"View" of menu bar 1 of application process "Sourcetree"
end tell
Nota: El valor de la delay
comando puede ser necesario ajustar para su sistema.
JavaScript de código:
menuItemClick("Sourcetree", ['View', 'Theme', 'Dark'])
function menuItemClick(strAppName, lstMenuPath) {
var oApp = Application(strAppName),
lngChain = lstMenuPath.length,
blnResult = false;
if (lngChain > 1) {
var appSE = Application("System Events"),
lstApps = appSE.processes.where({
name: strAppName
}),
procApp = lstApps.length ? lstApps[0] : null;
if (procApp) {
oApp.activate();
var strMenu = lstMenuPath[0],
fnMenu = procApp.menuBars[0].menus.byName(strMenu),
lngLast = lngChain - 1;
for (var i = 1; i < lngLast; i++) {
strMenu = lstMenuPath[i];
fnMenu = fnMenu.menuItems[strMenu].menus[strMenu];
}
fnMenu.menuItems[
lstMenuPath[lngLast]
].click();
blnResult = true;
}
}
return blnResult;
}
Nota: El JavaScript de código viene de jxaClickAppSubMenuItem.applescript por bumaociyuan y se bifurcó desde RobTrew/jxaClickAppSubMenuItem.applescript.
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.