我想在办公室部署“您知道吗...”或“每日提示”应用程序。它应该:
- 在登录时显示一个带有随机提示的对话框。
- 显然,提供一些方法来存储我自己的提示。
- 用户可以轻松自行禁用和重新启用。
我使用 puppet,因此我已了解部署情况。提示甚至不需要从服务器收集,因为我可以免费部署最新的提示文件/数据库。
当然,我可以使用 zenity 和 bash 来快速解决问题,但我想知道是否有专门针对此问题的应用程序。
我不太喜欢 zenity 的方法,因为它显示的内容非常有限。例如,屏幕截图旁边没有文字。Zenity 旨在显示简单的对话框。
答案1
这听起来很像fortune
带有自定义财富数据库的图形界面。
创建自定义 Fortunes 数据库
- 创建一个包含所有要显示的提示的文本文件。每个提示应占一行,并且
%
每个提示后都应有一行仅包含字符。 - 运行
strfile -c % tips tips.dat
以生成适合使用的文件fortune
安装fortune
和提示
- 运行
sudo apt-get install fortune-mod
即可获取fortune
程序。 - 现在将
tips
和tips.dat
放入 /usr/share/games/fortunes。如果那里已经有其他文件,这些文件将与您的提示混合显示;您可能希望删除它们。
图形界面
不幸的是,没有太多选项可以以图形方式显示运势。您可以安装(xcowsay
位于常规存储库中),也可以从其 PPA 安装 Wanda the Fish 指示器小程序:https://launchpad.net/~dylanmccall/+archive/indicator-fish。这两个都可以配置为在用户登录时启动。xcowsay
不过我认为只能显示图像。
这两个程序看起来都不是特别专业,因为xcowsay
每个运气旁边都有一头会说话的奶牛和一条卡通鱼。如果您担心这一点,您最好为编写自己的图形包装器fortune
。
答案2
我最终使用 Python-webkit 用 Python 找到了一个快速解决方案。此解决方案显示 HTML 文件
#!/usr/bin/env python
import gtk,webkit,os
from random import choice
win = gtk.Window()
win.connect("destroy", lambda w: gtk.main_quit())
scroller = gtk.ScrolledWindow()
win.add(scroller)
web = webkit.WebView()
scroller.add(web)
banners = ["banner1","banner2","banner3"]
banner = choice(banners)
web.load_uri("file:///usr/local/lib/tips/"+banner+".html")
win.resize(640,400)
win.show_all()
gtk.main()
将相应的横幅放置在 上/usr/local/lib/tips/
,例如banner1.html
是一张简单的图片:
<html><head><style>*,html,body{margin:0;padding:0;}</style></head><body></body><img src='banner1.png' /></html>
如果您引用资源(图像、css、js……),也请将它们放在 中/usr/local/lib/tips/
。
然后,通过在 上创建桌面文件,在会话启动时运行这个 python 脚本/etc/xdg/autostart
。