需要菜单栏应用程序每隔60秒显示终端命令的输出


7

我需要一个菜单​​栏应用程序*,它会显示终端命令的输出,并且每60秒左右运行一次终端命令。

或者我需要一个菜单​​栏应用程序,它将读取文件的内容,并在该文件更新时更新。

(输出不超过3或4位)

有没有这样的应用程序?

* Dock和桌面都不是可行的替代方案。需要成为菜单栏。

更新2014-06-16: 从12月9日12:15回答 毕竟没有最终为我工作,所以我仍在寻找解决方案。



GeekTool =桌面,而不是菜单栏。
TJ Luoma

1
您可以在任何地方定位输出,包括菜单栏。 3或4位数,小字体,两行,可以适合苹果左侧或聚光灯图标右侧。

我希望通过浏览菜单栏可以看到这些信息,而不是我必须进入菜单栏查看它。像时钟或磁盘警报,
TJ Luoma

1
对。 GeekTool输出浮在一切之上。我认为ruby驱动的解决方案更好,但如果您的输出不是很大,这将有效。如果你需要更多的空间,你可以添加一个你不想看的菜单项(音量控制?),并让GeekTool输出覆盖不透明的背景。

Answers:


10
#!/usr/bin/env ruby

require "osx/cocoa"
include OSX

app = NSApplication.sharedApplication 
statusitem = NSStatusBar.systemStatusBar().statusItemWithLength(NSVariableStatusItemLength)
while true
    statusitem.setTitle(rand(999))
    sleep 1
end
app.run

(如果真正了解Cocoa的人想要改进这一点,请随时编辑。)我或多或少只是复制了脚本 taw的博客:个人经验值和OSX menulet ,这是在提到的 显示 - 有没有办法在菜单栏中显示AppleScript输出? - 苹果


哇,这太棒了。出于某种原因,它很适合 rand 但是没有更新我的命令(我得到它第一次运行的输出,但在此之后它永远不会改变),但它是一个很好的起点。让我希望我认识Ruby!
TJ Luoma

@TJLuoma原始脚本使用NSTimer更新状态项,但我无法弄明白。 (如果有人可以,仍然欢迎编辑。)
Lri

5

这是python中的解决方案。
安装 rumps 框架(链接存储库具有OS X 10.9.3的补丁)
sudo pip install git+https://github.com/tito/rumps

您可能需要调整 $PYTHONPATH 包括pyobjc(基金会)
export PYTHONPATH=/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python

根据您的需要调整以下代码:

#!/usr/bin/env python
import rumps
import os
import threading


class AwesomeStatusBarApp(rumps.App):
    def __init__(self):
        super(AwesomeStatusBarApp, self).__init__("Awesome App", "Title")
        tail(self)


def tail(self):
    threading.Timer(5, tail, [self, ]).start()
    self.title = os.popen("tail -1 /var/log/system.log").read()[0:-1][0:50]

AwesomeStatusBarApp().run()

不要忘记限制字符串的长度( [0:50] )(或者如果它们都不合适,OS X将删除它而支持菜单),并最终摆脱换行符( [0:-1]

enter image description here


谢谢!这显示了Dock中的应用程序以及菜单栏。知道如何只在菜单栏中显示它吗?
TJ Luoma

你可以使用类似的东西 鸭嘴兽 从您的脚本创建一个应用程序,并将其.plist调整为不在Dock中显示。
Sergei

谢谢!我希望能找到更多的东西......用户友好吗?即插即用?一些东西。但这比我的好100%,我很感激时间和精力来回答它。
TJ Luoma


2

我终于找到了我一直在寻找的东西。事实上,它比我希望的要好得多:

TextBar

  • 配置TextBar以运行多个脚本/命令/ etc并在您的菜单栏中显示结果。
  • 单击TextBar项以将文本添加到剪贴板。
  • 单独启用/禁用每个项目。
  • 配置您希望每个项目更新的频率。
  • 为每个菜单栏项添加一个图标(或没有)

过去一周左右我一直在使用它,这很棒。

$ 3,可在的演示 http://www.richsomerfield.com/apps/


1

还有另一个最近的开源替代方案叫做 BitBar (麻省理工学院许可证),它与“TextBar”和“ShellWrangler”非常相似,并且其简洁性令人惊叹。

您可以在脚本文件名中编码的任何时间间隔执行脚本(例如my_script.60s.py),它可以执行您也可以在终端中执行的任何脚本。


1
我也喜欢它的简单性,因为你只需将任何脚本放入一个文件夹中,它的输出显示在菜单栏中,而它的时间非常巧妙,因为你只需在它的名字中添加“3s”或“2h”或“1d”喜欢: myScript.3s.sh 相应地更新/执行。 。 。 。 。 。我用它来让脚本调用输出的AppleScript [ 3 ] 如果我改为桌面3。 。 。 。 。太容易了!
clemsam lang
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.