如何在Dock中放置自定义启动器(小牛)


14

我是Mac OS的新用户(我目前正在使用Mavericks),我已经执行过Google搜索以及在StackExchange上搜索有关我的问题的信息,但是我遇到的讨论并不能完全回答我的问题。

我来自linux世界,在gnome面板中设置自定义命令,然后放入我喜欢的任何参数对我来说都是微不足道的。这些命令中有许多调用xterm。

因此,举例来说,假设我想创建一个启动器,以使用很多参数连接到远程服务器,如下所示。

xterm -fg orange -bg black -e ssh me@myserver

我浏览了一条建议使用自动程序的帖子。但是,我无法成功完成此操作。

到目前为止,在自动化器中

open -a "/opt/X11/bin/xterm" --args "-fg orange -bg black -e ssh me@myserver"

但是,此命令无法正确执行,我不确定如何解决此问题。

谢谢Les ps注意,如果启动终端并输入xterm,它将按预期启动


为什么不使用内置终端?它实际上是高度可定制的,您可以使其模仿x-term。终端带来了很多优势,例如全屏模式,使用+ c+ 复制/粘贴v。它还使您可以构建自己的自定义配置文件,以允许自定义字体,透明度,甚至在启动时运行默认命令(例如启动SSH会话)。
亚历山大-恢复莫妮卡

Answers:


16

您可以在Automator的“运行Shell脚本”操作中将其编写为Shell脚本:

自动化器

将其保存为“应用程序”类型(而不是“工作流”),并将其放置在“应用程序”文件夹中。现在可以将其放置在Dock中。


2
知道如何更改该可执行文件的图标吗?
Lee Sande

1
您可以通过按+ 更改几乎任何卷/文件夹/文件的图标i,然后将任意图像文件粘贴到左上角的图像中
亚历山大-莫妮卡·莫妮卡

感谢您的答复。我做了苹果+我,然后我拖放图像(一个png文件);但是,该图标更改为通用的“ PNG”文件mime类型图标,而不是实际图像。我是否需要图标的特定文件格式?我还按照此处的步骤操作(365icon.com/icon-styles/dock-icons/how-to-change-mac-dock-icons),但是即使粘贴了新图像(在选择了左上方的图标之后),新图像不显示(在程序重新启动后)。
Lee Sande 2013年

2
糟糕,我应该进一步澄清:您需要粘贴图像本身,而不是图像文件。我能想到的最快方法是双击图像文件(在Preview.app中打开),按+ a,复制选择并将其粘贴到图像中
Alexander-Reinstate Monica

1
我无法评价,因为我没有足够的声誉。抱歉。
李·桑德

2

AutomatorAppleScript是创建执行如上所述的命令的自定义脚本/应用程序的最佳方法。每个人都有其优点和缺点。对于大多数任务,我更喜欢编写AppleScripts,可能是因为我本人是程序员,并且易于访问和编辑。

要编写AppleScript,可以使用OS X提供的名为“ AppleScript编辑器”的程序。AppleScript编辑器允许您编写AppleScript并将其保存为文件扩展名为.scpt的实际AppleScript或可在任何地方运行的应用程序(.app)。

如果将AppleScript保存为AppleScript格式(.scpt),并借助名为FastScripts的应用程序(在Mac App Store中也提供),则可以在菜单栏中轻松访问所有个人脚本和系统脚本。快速脚本提供了额外的好处,允许您为其分配键盘快捷键。您可以对Automator工作流执行相同的操作,但我发现使用AppleScripts和FastScripts更加容易。

这是我之前在板上共享的一个创建的AppleScript示例,用于切换OS X中隐藏文件的可见性。这是我比较基本的脚本之一,这就是为什么我将其演示为一个简单示例的原因编写一个AppleScript。在FastScripts的帮助下,我将键盘快捷键设置为^+ + + .以激活此脚本。

tell application "System Events"

    set hiddenFilesDisplayStatus to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    set hiddenFilesNewDisplayStatus to "NO"

    if hiddenFilesDisplayStatus is "NO" then
        set hiddenFilesNewDisplayStatus to "YES"
    end if

    do shell script "defaults write com.apple.finder AppleShowAllFiles " & hiddenFilesNewDisplayStatus
    do shell script "killall Finder"

end tell

我还有许多其他AppleScripts可以执行各种任务,因此,如果您是我,请先看看AppleScripts,然后再看看使用Automator。有许多资源可以帮助您创建AppleScript,并且您会发现还有许多其他人已经编写了AppleScript,它们可能已经满足您的要求。

回答您的特定用例

尝试使用以下命令创建AppleScript,注意xterm的完全限定路径。在我的机器上,它与您的机器不同。重要的是要注意,因为Mavericks不再随X11一起提供,所以我已经在计算机上安装了XQuartz。

do shell script "/usr/X11/bin/xterm -fg orange -bg black -e ssh me@myserver"

我尝试了上面的命令,指向我的服务器,它工作正常。如果您可以与此AppleScript一起使用,那真的很酷,那就是您甚至可以设置AppleScript来要求输入您要连接的用户名和服务器,并在shell script命令中为您设置如果未提供任何内容,则可以将其默认为特定的用户名/服务器。:)

仅供参考,我使用以下SO文章找出了xterm的路径问题:https : //stackoverflow.com/questions/11206872/open-xterm-telnet-connection-mac-os-x


感谢您的回答以及xterm中路径问题的链接。
Lee Sande 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.