Xsnow 无法使用

Xsnow 无法使用

我已经安装了旧程序xsnow与 Apt。这个程序应该制造雪(降水类型) 出现在桌面上。但是,运行该程序除了返回以下代码外什么也不做:

Xsnow-1.42resizeable, December 14th 2001 by Rick Jansen ([email protected])
WWW: http://www.euronet.nl/~rja/Xsnow/

这是因为该程序被设计用来在根 X 窗口,正如网站所述:

常见问题:我启动了 Xsnow,但没有看到任何雪? 答案:Xsnow 使 X-window“根”窗口下雪。该根窗口经常被桌面管理器遮挡,以显示图标和工具。因此,Xsnow 工作正常,您只是看不到雪花!请参阅 README 了解详细信息和可能的解决方案。

我在 Ubuntu 13.10 VM、Kubuntu 13.10 和 14.04 以及 Lubuntu Trusty Live USB 中尝试了它。它在 Xubuntu 中可以正常工作,因为在 Xfce 中我们默认看到根 X 窗口。在聊天中,有人报告它在 Ubuntu 12.04 中可以正常工作,但在我的 Ubuntu 13.10 VM 中我看不到雪花。

问题在于,正如我提到的那样,xsnow它只在根 X 窗口上绘制。根 X 窗口是所有其他 X 窗口的“父窗口”,因此也是不可见的,因为现代桌面环境(如 KDE 和 Unity)通常使用桌面效果合成器隐藏根 X 窗口。因此xsnow仍然会绘制雪花(由于图形碎片,您在登录和退出时可能会看到雪花的片段),只是不可见。在 Openbox 和 XFCE 等更简单的桌面上,X 窗口(以及雪花)是完全可见的。

有什么方法可以查看根 X 窗口活动并从而看到雪花?

答案1

使用 KDE 您可以使用昆雪效应包裹。

如何安装:

sudo apt-add-repository ppa:ivan-safonov/ppa
sudo apt-get update
sudo apt-get install kwin-effect-snow

System Settings然后在 KDE 中您可以从--> Desktop Effects-->设置效果All Effects并激活雪花。

您还可以使用Compiz 插件 Snow,检查一下它是如何工作的Youtube 视频

我发现了 xwinwrap,它可以让你将任何应用程序粘贴为桌面背景。点击这里来下载它, 或者点击这里阅读 coder 的发布说明

它不允许您访问根窗口(这在大多数桌面环境中似乎很难)。而且这个不适用于 xsnow,但它可以与许多其他应用程序一起使用...

答案2

刚刚在 12.04 上做了一些测试(这可能不是 13.10 的答案,但对于那些想要在 12.04 上得到这个的人来说)

如果在 gnome-tweak-tool 中,则在桌面我检查让文件管理器处理桌面。然后 Unity 和 Unity-2D 都可以xsnow运行。虽然在 unity-2d 中看不到空中的雪花,但只能看到落下的雪花,但这是因为我的显卡及其驱动程序。在 Unity 中运行完美。

如果在 gnome-tweak-tool 中我取消选中让文件管理器处理桌面,则xsnow无法启动,并在 Unity 和 Unity-2D 中抛出错误

答案3

我是精确的统一环境,并且遇到同样的问题,直到执行此命令:

gsettings set org.gnome.desktop.background show-desktop-icons true

雪片


以下是手册页的注释:

SGI Irix 5.x

只要桌面图标可见,Silicon Graphics 和 Irix 5.x 用户可能根本看不到雪花或圣诞老人。要避免此问题,请发出以下命令:

/usr/lib/desktop/telldesktop quit

图标将消失,Xsnow 将正常运行。要重新启动桌面,只需启动

/usr/lib/desktop/startdesktop

或选择 桌面 -> 主页来自工具箱的目录。

甚至可以同时拥有桌面图标和 xsnow(甚至多个桌面)。您需要修改窗口管理器的资源文件4天宽, 文件~/.desktop- hostname/4DWm。 例子:

  • Global.backgroundDescription: -execute /etc/killall -TERM xsnow ; /usr/local/bin/xsnow
  • Desk 1.backgroundDescription: -execute /etc/killall -TERM xsnow ; /usr/local/bin/xsnow
  • Desk 2.backgroundDescription: -execute /etc/killall -TERM xsnow ; /usr/local/bin/xsnow

从工具箱中重新启动窗口管理器 (4Dwm),Xsnow 应该会出现。这样做的目的是,当您切换到另一个桌面时,停止当前正在运行的 Xsnow,并启动一个新的 Xsnow。

答案4

在标准的 12.04.3 64 位安装中,登录后,在屏幕底部附近只有一个终端窗口,然后启动 xsnow,这样就可以了。似乎是在启动 xsnow 时对窗口位置的残留了解,在窗口移动或图标化后,雪花仍然会停止。当窗口靠近屏幕顶部时会出现问题。注销/登录会清除旧的窗口位置,因此请尝试重新登录(或者重新启动 X)。默认延迟 20 对我来说非常接近最低限度,增加这个时间可能会让雪花也出现。


xsnow 选项在手册页中或 -h 开关中进行了描述。-delay 30 将在更新之间产生 30 毫秒的延迟,而不是默认的 20。我发现在 18 时事情变得不稳定,在 15 时没有雪,所以在一个正常工作的系统上,太短的延迟会破坏一切。对于 13.10,“根”窗口的堆叠方式肯定有所不同。12.04 unity 系统有根、子、孙、桌面、曾曾孙,它们会随着雪而更新并正常工作。(参见

 `xwininfo -root -tree`

13.10 Unity 系统实际上会更新根窗口,而桌面甚至没有全屏子窗口。使用调试器,将要更新的窗口更改为桌面确实会导致出现图像,但它们会擦除背景,因此不是一个好的解决方案。没有其他获得更新的窗口显示任何内容,所以我猜这与 Unity 机制存在冲突,看起来确实需要进行一些更改才能使其工作(因为理想的情况是除了 xsnow 程序之外不必更改任何东西)。


运行 Unity 的 14.04 更新 要查看圣诞老人,请放弃 Unity 桌面,只需创建另一个没有它的 X 显示器即可。根据需要来回切换,甚至可以使用 -display :1 运行程序以显示在新显示器上。

首先允许任何人运行 X 服务器

dpkg-reconfigure x11-common

并将 X 访问权限设置为每个人 是的,您可以使用 sudo 运行,但随后您将在桌面上留下一些 root 拥有的文件,并且将无法再使用 GUI 登录(如果这样做,请使用虚拟终端删除 root 拥有的文件)。

您是否安装了另一个窗口管理器,以便您可以在新显示器上移动窗口(仅当您想在那里运行其他程序时,如果您想要做的只是看圣诞老人,就不要担心。即使像 twm 这样简单的窗口管理器也可以,选择您最喜欢的一个,让根窗口暴露出来。

在 vt 上运行以下命令以获得全屏 xsnow。

xinit /usr/games/xsnow -- :1 vt8

使用 Crtl-Alt-F7 切换回 vt7 上的原始显示,然后使用 Ctrl-Alt-F8 切换回 xsnow

从 vt7 创建 xterms (原始 X 服务器在 :0)

xterm -display :1 &

从新的 xterm 在新的显示器上启动窗口管理器,例如

twm&

16.04 更新:自 14.04 以来,许多东西都出现了问题(参见错误 #1562219),但您仍然可以运行 xsnow:

  1. 如果使用 Nvidia 视频驱动程序,请使用 nouveau 驱动程序。软件更新程序/设置按钮/附加驱动程序选项卡,选择 nouveau。重新启动以确保万无一失。
  2. 例如,登录虚拟终端 (Ctrl-Alt-F2)
  3. xinit /usr/games/xsnow -- :1 vt2 或者启动一个 xterm,并从它启动其他东西,如窗口管理器、xsnow 等。只是不要启动 unity,它会接管后台。

祝大家圣诞节快乐

相关内容