创建自定义 Fortunes 数据库

创建自定义 Fortunes 数据库

我想在办公室部署“您知道吗...”或“每日提示”应用程序。它应该:

  • 在登录时显示一个带有随机提示的对话框。
  • 显然,提供一些方法来存储我自己的提示。
  • 用户可以轻松自行禁用和重新启用。

我使用 puppet,因此我已了解部署情况。提示甚至不需要从服务器收集,因为我可以免费部署最新的提示文件/数据库。

当然,我可以使用 zenity 和 bash 来快速解决问题,但我想知道是否有专门针对此问题的应用程序。

我不太喜欢 zenity 的方法,因为它显示的内容非常有限。例如,屏幕截图旁边没有文字。Zenity 旨在显示简单的对话框。

答案1

这听起来很像fortune带有自定义财富数据库的图形界面。

创建自定义 Fortunes 数据库

  1. 创建一个包含所有要显示的提示的文本文件。每个提示应占一行,并且%每个提示后都应有一行仅包含字符。
  2. 运行strfile -c % tips tips.dat以生成适合使用的文件fortune

安装fortune和提示

  1. 运行sudo apt-get install fortune-mod即可获取fortune程序。
  2. 现在将tipstips.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

相关内容