当从OS X终端启动GUI进程时,窗口将显示在后台,并且必须使用命令行界面,标签给它焦点。Mac OS X:从命令行启动时将非应用程序GUI应用程序置于前台
有没有办法让终端在启动后自动给这些GUI关注? 例如(假设gitk安装):
% gitk
应启动GUI,然后切换到它。
注意:由于以下几个原因,使用open
作为this answer暗示不是一个通用的解决方案。
更新:为了更好地解释为什么open
方法不令人满意,这里是一个示例bash会话(与机智的评论)。
% cd /my_repo
% gitk
等待GUI出现......现在任何一天......哦,等等 - 它已经打开了。我只是没有注意到,因为它打开了一个窗口在我的终端后面。我不知道我坐了多久等待......
% open gitk
The file /my_repo/gitk does not exist.
啊,当然。
% which gitk
/usr/bin/gitk
% open /usr/bin/gitk
什么......它打开一个新的终端窗口中运行gitk,它在我的主目录这样做,不是/ my_repo,所以gitk抱怨说,当前目录是不实际的存储库.. 。
如果您更详细地解释,为什么需要它可以帮助从命令行同步调用一个窗口化的应用程序(而不是用'open'异步打开它)。 –
并非所有的应用程序都可以通过'open'打开(例如gitk)。另外,那些可以打开的方式将通过一个单独的终端打开,这可能很不方便。 –
'并非所有的应用程序都可以通过打开'为什么不可以?我想不出为什么它会是真实的原因 - 根据定义,普通/窗口应用程序应该可以从Finder或Dock打开。 '将通过一个单独的终端打开'我不明白'独立终端'的含义。你的意思是,即使你打开了一个终端,你也不能使用该终端的“open ...”。如果是这样,为什么不呢? –