【问题标题】:Bash and Mac OS X, open application in Space NBash 和 Mac OS X,在 Space N 中打开应用程序
【发布时间】:2011-12-05 21:39:46
【问题描述】:

我想知道 OSX 是否可以在 bash 中创建一个脚本,我们将应用程序名称和数字 N 作为输入作为输入,所以这个应用程序在 Space 的空间号 N 中打开。

我想用它来创建一个元脚本,所以当计算机启动并登录后,在每个空间上我都会得到不同的应用程序,重要的是,我可以在脚本文件中更改它,而不是通过 mac os x空间偏好

谢谢

【问题讨论】:

  • 我认为使用 bash 是不可能的,但是您可以使用 osascript 命令启动一个 applescript,这可能能够实现您想要的。
  • 你能指点一些教程吗?谢谢
  • 搜索 AppleScript 教程。然而,为冲击做好准备 - AppleScript 实际上是一种糟糕的语言,讽刺的是它试图过于“像人类”。

标签: bash macos


【解决方案1】:

defaults write com.apple.dock workspaces-app-bindings -dict-add com.apple.safari 4

从命令行执行的操作与更改空间首选项以将 safari 放置在空间编号 4 中的效果相同。65544 会将其放置在所有空间中。

如您所见,是 Dock 进行空间绑定。

【讨论】:

  • 嗨,你确定吗?我在终端上输入,我打开了 6 个空格,并且 safari 没有显示
  • 您可能需要killall Dock 让您的扩展坞重新加载其默认值。
【解决方案2】:
#!/bin/sh
APPNAME=$1
SPACE=$2
APPID=$(osascript - <<EOF1 | tr '[:upper:]' '[:lower:]'
tell application "Finder"
    get id of application file "$APPNAME" of folder "Applications" of startup disk
end tell
EOF1
)
osascript - <<EOF2
tell application "System Events"
    set x to application bindings of spaces preferences of expose preferences
    set x to {|$APPID|:$SPACE} & x
    set application bindings of spaces preferences of expose preferences to x
end tell
EOF2

【讨论】:

  • P.S.最好编辑和扩展您的原始问题,而不是打开第二个几乎相同的问题。而且您会更早收到答复。
  • 此外,所提供的脚本仅适用于 /Applications 中的应用程序。将其扩展为适用于其他文件夹中的应用程序留给读者作为练习。
  • 嗨,是的,你是对的,很抱歉没有很好的解释。下次我会这样做。
  • 但我意识到这不是我要找的。对不起,我没有很好地解释它。用你的脚本,一个应用程序被分配到一些空间。然后每次我打开它,它都会去到那个空间,所以我不能在不同的空间中有两个应用程序实例。
  • 我只需要知道如何(在 bash/applescript 或其他方式中)告诉应用程序的一个实例,以“移动”到空间编号 N。我将打开一个新问题。谢谢
【解决方案3】:

这是一个在 Objective-C 中运行 AppleScript 的简单 Hello World 示例: http://www.sundh.com/blog/2011/12/applescript-in-objective-c/

【讨论】:

    【解决方案4】:

    此功能已在 OSX 最新版本中直接在 System Preferences -> Exposé & Spaces -> Spaces -> Application Assignments 中实现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      相关资源
      最近更新 更多