Macos 使用slate窗口管理器启动或聚焦应用程序?
我最近开始使用Mac OS的。我以前曾在中使用触发器来启动或关注特定的应用程序 也就是说,如果没有运行,cmd+f2将启动“谷歌浏览器”,如果已经运行,则只将焦点放在“谷歌浏览器” 有没有一种简单/惯用的方法可以实现与Slate相同的效果 MyMacos 使用slate窗口管理器启动或聚焦应用程序?,macos,Macos,我最近开始使用Mac OS的。我以前曾在中使用触发器来启动或关注特定的应用程序 也就是说,如果没有运行,cmd+f2将启动“谷歌浏览器”,如果已经运行,则只将焦点放在“谷歌浏览器” 有没有一种简单/惯用的方法可以实现与Slate相同的效果 My.slate.js包含 "f2:cmd": S.op("focus", {"app": "Google Chrome"}), "f4:cmd": S.op("focus", {"app": "Jump Desktop"}), 我可以把它改成这样: var
.slate.js
包含
"f2:cmd": S.op("focus", {"app": "Google Chrome"}),
"f4:cmd": S.op("focus", {"app": "Jump Desktop"}),
我可以把它改成这样:
var runIfMap = {
"Jump Desktop": "/Applications/Jump Desktop.app",
"Google Chrome": "/Applications/Google Chrome.app"
};
function runIf(name) {
var running = false;
slate.eachApp(function (app) {
if (app.name() == name) {
running = true;
}
});
if (running) {
slate.log(name + " is running");
} else {
slate.log(name + " is not running");
if (runIfMap[name]) {
var str = "/usr/bin/open \"" + runIfMap[name] + "\"";
slate.log("running [" + str + "]");
slate.shell(str);
}
}
}
⋮
但这似乎有很多麻烦
我是要求slate做的太多了,还是我只是缺少了一种更明显的方法来实现我想要的东西?我不完全确定,您的示例的问题是什么,但有了这一点,slate会在应用程序未运行时启动应用程序。也许您必须声明slate.shell方法的所有参数
slate.config(“orderScreensLeftToRight”,true);
//创建操作
var pushRight2_3=slate.operation(“推”{
“方向”:“正确”,
“样式”:“条大小:3*screenSizeX/5”
});
var pushLeft1_3=slate.operation(“推”{
“方向”:“左”,
“样式”:“条大小:2*screenSizeX/5”
});
var devLayout=slate.layout(“devLayout”{
“iTerm”:{
“操作”:[pushLeft1_3],
“重复”:正确
},
“崇高的文本”:{
“操作”:[pushRight2_3],
“重复”:正确
}
});
bind(“1:cmd;ctrl”,function(){setDev();});
slate.default([“1440*900”],devLayout);
var runIfMap={
“iTerm”:“/opt/homebrew-cask/Caskroom/iterm2/2.0/iTerm.app”,
“升华文本”:“/应用程序/升华文本.app”
};
函数runIf(名称){
var running=false;
slate.eachApp(函数(应用程序){
如果(app.name()==名称){
运行=真;
}
});
如果(!正在运行){
shell(“/usr/bin/open”+”+runIfMap[name]+”,true,~/”;
}
}
函数setDev(){
runIf(“iTerm”);
runIf(“崇高文本”);
var op=slate.operation(“布局”,{“名称”:devLayout});
op.run();
}
"f2:cmd": function() {
runIf("Google Chrome");
S.op("focus", {"app": "Google Chrome"}).run();
},
"f4:cmd": function() {
runIf("Jump Desktop");
S.op("focus", {"app": "Jump Desktop"}).run();
},