Xsnow не работает

23

Я установил старую программу xsnowс Apt. Предполагается, что эта программа заставит снег ( тип осадков ) появляться на рабочем столе. Однако запуск программы ничего не дает, кроме как вернуть следующий код:

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

Это потому, что программа предназначена для рисования снега в корневом окне X , как указано на сайте:

Часто задаваемый вопрос: я запускаю Xsnow, но снега не вижу? Ответ: Xsnow делает снег в окне «root» окна X-окна. Это корневое окно часто скрыто менеджерами рабочего стола для отображения значков и инструментов. Итак, Xsnow работает отлично, вы просто не можете видеть снег! Смотрите README для деталей и возможных решений.

Я попробовал это на виртуальной машине Ubuntu 13.10, Kubuntu 13.10 и 14.04 и Lubuntu Trusty Live USB. Это работает в Xubuntu, потому что в Xfce мы видим корневое окно X по умолчанию. В чате кто-то сообщил, что он работает в Ubuntu 12.04, но на моей виртуальной машине Ubuntu 13.10 я не вижу снега.

Проблема в том, что, как я уже упоминал, xsnowрисует исключительно в корневом X Window. Корневое X-окно является «родителем» всех других X-окон и поэтому также невидимо, потому что современные среды рабочего стола, такие как KDE и Unity, обычно скрывают корневое X-окно с помощью компоновщика эффектов рабочего стола. Так что по- xsnowпрежнему рисует снег, (вы можете получить его обрывки при входе и выходе из-за фрагментации графики), он просто не виден. На более простых настольных компьютерах, таких как Openbox и XFCE, окно X (и, следовательно, снег) полностью видно.

Есть ли способ просмотреть активность корневого окна X и таким образом увидеть снег?

Ричард
источник
Это работает на XFCE, который я и использую. Просто даю тебе знать. Я на 13.10+.
RobotHumans
где там ошибки в терминале?
Матео
@hbdgaf Хорошо знать, я собирался отправить отчет об ошибке на Launchpad, чтобы люди знали, что его нужно будет удалить из-за неработоспособности. Буду тестировать с Lubuntu.
Ричард
3
Был / есть плагин compiz, чтобы сделать то же самое. Этот тоже немного старый и, может быть, он даже сейчас не работает, но вот источник, если кто-то хочет попробовать его. (Я не буду.)
сокольничий
Просто попробовал это в сеансе Openbox ... Восьмеричные снежинки ...
Ричард

Ответы:

8

Используя KDE, вы можете использовать пакет kwin-snow-effect .

Как установить:

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

Затем в KDE вы можете настроить эффект от System Settings-> Desktop Effects-> All Effectsи активировать снег.

Вы также можете использовать плагин Compiz Snow , проверьте, как он работает на этом видео Youtube

Я нашел xwinwrap, который позволит вам прикрепить любое приложение в качестве фона рабочего стола. Нажмите здесь, чтобы загрузить его , или здесь, чтобы прочитать примечание к выпуску кодера

Он не дает вам доступа к корневому окну (что кажется трудным в большинстве сред рабочего стола). И этот не работает с xsnow, но он будет работать со многими другими приложениями ...

yilmi
источник
О нет, это разбило мой рабочий стол! Попробую еще раз.
Ричард
Только что попробовал эффект KWIN Я использую KDE. Пожалуйста, проверьте этот ответ: askubuntu.com/a/65522/226084 о том, как заставить плагин compiz snow работать
yilmi
4

Просто сделал еще несколько тестов на 12.04 (скорее всего, это не ответ на 13.10, но для тех, кто хочет это на 12.04)

Если в gnome-tweak-tool, в разделе Рабочий стол я проверяю, должен ли файловый менеджер обрабатывать рабочий стол. Тогда и в Unity и в Unity-2D xsnowработает. Хотя в единице-2d снег в воздухе невидим, видны только упавшие, но это из-за моей видеокарты и драйвера. В Unity это работает отлично.

Если в gnome-tweak-tool я сниму флажок, чтобы файловый менеджер обрабатывал рабочий стол , он xsnowдаже не запустился и выдает ошибку как в Unity, так и в Unity-2D.

сокольничий
источник
4

Я являюсь пользователем Precise со средой Unity , и у меня была такая же проблема до выполнения этой команды:

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

xsnowSnap


Вот выдержка из заметок справочной страницы xsnow :

SGI Irix 5.x

Пользователи Silicon Graphics и Irix 5.x могут вообще не видеть снега или Санты, пока видны значки на рабочем столе. Чтобы обойти эту проблему, выполните следующую команду:

/usr/lib/desktop/telldesktop quit

Иконки исчезнут, и Xsnow будет работать отлично. Для перезагрузки рабочего стола просто начните

/usr/lib/desktop/startdesktop

или выберите Рабочий стол -> Домашний каталог из панели инструментов.

Возможно даже иметь оба - значки на рабочем столе и xsnow (и даже несколько рабочих столов). Вам нужно изменить файл ресурсов оконного менеджера 4DWm , файл ~ / .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 и запускает новый, когда вы переключаетесь на другой рабочий стол.

точный
источник
Спасибо, но к сожалению все еще нет снега в Ubuntu 13.10!
Ричард
Я не пользователь Silicon Graphics или Irix, я чувак из Radeon, использующий KDE. Также команда привела в bash: /usr/lib/desktop/telldesktop: No such file or directory. Спасибо за упоминание этой части README.
Ричард
Теперь первая команда работает, но вторая, которую вы таинственным образом предоставили, не ...
Ричард
1
У меня не было особых проблем с его работой ... не знаю почему, но переключение видимости иконки на рабочем столе просто сработало ... это не рекомендуется, но я хотел быстро отредактировать некоторые файлы, поэтому я запустил nautilus с правами root gksu nautilus(затем Я не знал о переключателе --no-desktop, который позже тоже не помог), эта команда также root root! Но что-то пошло не так .. ужасно .. (Теперь не могу заставить работать compiz .. Я попытался сбросить, переустановить и все .. Поэтому я не могу посоветовать попробовать это ..)
точное
2

Для гнома вы можете просто сказать ему не обрабатывать рабочий стол

gconftool-2 --set "/apps/nautilus/preferences/show_desktop" --type bool false

Я также сталкивался с некоторыми упоминаниями об использовании shantz-xwinwrap для For Unity Compiz, однако, кажется невозможным использовать версию единства 13.10 без более тонко настроенного управления xsnow.

Тем не менее, если вы хотите попробовать в терминале выполнить:

wget http://anibg.googlecode.com/files/shantz-xwinwrap_v0.3.deb && sudo dpkg -i shantz-xwinwrap_v0.3.deb

После установки возможное выполнение xwinwrap без anibg может выглядеть так:

nice -n 15 xwinwrap -ni -o 0.90 -fs -s -sp -st -b -nf -- '/usr/games/xsnow'
virtualxtc
источник
У меня проблемы с удаленным отображением моего домашнего компьютера, иначе я бы полностью это протестировал. Я думал, что нашел здесь команду, но она действительно не имеет смысла, так как она называется xscrensaver / plasma: fsckin.com/2008/04/14/fun-with-xwinwrap-in-compiz-fusion, было бы здорово, если бы Vdesk работал, но когда я установил его в kubuntu и попытался запустить, ничего не произошло.
virtualxtc
Я получаю/usr/lib/xscreensaver/plasma: No such file or directory /usr/lib/xscreensaver/plasma died, exit status 2
Ричард
так близко, что я могу попробовать это; возникли проблемы с xsnow при чтении аргументов, предназначенных для xscreenwrap, но xscreenwrap определенно работает с xscreensaver 13.10.
virtualxtc
Да, я подозреваю, что это только синтаксис ...
Ричард
--rootИ --windows-idне поддерживаются аргументы Xsnow. Эти аргументы взяты из примера использования xwinwrap с glmatrix, который принимает --rootи в --window-idкачестве аргументов: xwinwrap -ov -fs -- /usr/lib/xscreensaver/glmatrix -root -window-id WIDнапример, будет нормально работать
yilmi
1

На стандартной 12.04.3 64-битной установке, войдите в систему, просто откройте окно терминала в нижней части экрана и запустите xsnow, который работает. Похоже, осталось знание того, где были окна, когда xsnow был запущен, и отсечение снега все еще происходит после того, как окно перемещено или отображено в виде значка. Проблемы возникают, когда окно находится в верхней части экрана. Выход / вход очищает старые позиции окон, поэтому поэкспериментируйте с новым входом в систему (или, возможно, перезагрузкой X). Задержка по умолчанию для 20 довольно близка к минимальной для меня, увеличиваясь, что может привести к появлению снега.


Параметры xsnow описаны на страницах руководства или с ключом -h. - задержка 30 будет делать 30-миллисекундную задержку между обновлениями, вместо значения по умолчанию, равного 20. Я считаю, что в 18 лет вещи становятся ненадежными, а в 15 - нет снега, так что в другой работающей системе слишком короткая задержка нарушает работу. Для 13.10, безусловно, есть разница в том, как «корневые» окна складываются. Система 12.04 unity имеет рута, ребенка, внука, рабочий стол, правнука, который обновляется со снегом и работает. (см. вывод

 `xwininfo -root -tree`

Система единства 13.10 фактически обновляет корневое окно, и на рабочем столе даже нет полноэкранного дочернего элемента. С помощью отладчика изменение окна, обновляемого на рабочий стол, приводит к появлению изображений, но они стирают фон, поэтому не является хорошим решением. Никакое другое окно получения обновлений ничего не показывает, поэтому я предполагаю, что это конфликт с механизмом единства, который, похоже, нуждается в некоторых изменениях, чтобы это работало (поскольку в идеале не нужно ничего менять, кроме программы xsnow).


Обновление для 14.04 под управлением Unity Чтобы увидеть Санту, откажитесь от рабочего стола Unity и просто создайте еще один дисплей X без него. При необходимости переключайтесь назад и вперед или даже запускайте программы с параметром -display: 1, чтобы отобразиться на новом дисплее.

Сначала разрешите кому-либо запускать X-сервер

dpkg-reconfigure x11-common

и установить X-доступ для всех. Да, вы можете запускать с помощью sudo, но тогда вы оставите некоторые файлы с правами root на своем рабочем столе и больше не сможете входить через GUI (используйте виртуальный терминал, чтобы удалить root принадлежит файл, если вы делаете это).

У вас установлен другой оконный менеджер, чтобы вы могли перемещать окна на новом дисплее (только если вы хотите запускать там другие программы, не беспокойтесь, если все, что вам нужно, это увидеть Санту. Даже такой простой, как twm подойдет выберите свой любимый, который оставляет открытое корневое окно.

Запустите ниже на vt, чтобы получить полный экран xsnow.

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

Вернитесь к исходному отображению на vt7 с помощью Crtl-Alt-F7 и вернитесь к xsnow с помощью Ctrl-Alt-F8

Создайте xterms из vt7 (исходный 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, это занимает фон.

Счастливого Рождества всем

ubfan1
источник
Спасибо, но перемещение окна терминала в нижнюю часть экрана не работает для меня.
Ричард
Ключ - это не окна в верхней части, даже значки. Попробуйте задержку 30, чтобы увидеть, помогает ли это. Эти два предмета были единственными проблемами, которые я нашел.
ubfan1
Как бы я сделал "задержка 30"? Не уверен, что это значит.
Ричард
1

Существует новая версия xsnow , работающая на gnome, kde, fvwm, lcde и даже raspbian: https://www.ratrabbit.nl/ratrabbit/content/xsnow/introduction

Это намерение внедрить эту версию в репозиторий Debian.

Новая версия также доступна на sourceforge .

С веб-сайта:

Наконец, рабочий xsnow для Gnome, KDE и т. Д. На основе оригинального xsnow-1.42, созданного Риком Янсеном, после конференции xsnow-2019 в Антасе (Испания) у нас теперь есть xsnow, который работает во многих средах рабочего стола, даже в Raspian. , По запросу многих бета-тестеров был создан графический интерфейс.

Виллем Вермин
источник
0

Если вы посмотрите на инструкции по компиляции, вы получите:

Для совместимости с виртуальными оконными менеджерами Xsnow использует vroot.h, включаемый файл, который делает X-программы совместимыми с оконными менеджерами, такими как swm и tvtwm. Полный дистрибутив vroot доступен по адресу ftp.x.org в каталоге contrib как vroot.shar.Z. Vroot был написан Andreas Stolcke, 9/9/90, и авторское право 1991 года принадлежит Andreas Stolcke, авторское право 1990 принадлежит Solbourne Computer Inc.

Похоже, что они взяли vroot.h из компиляции, потому что он был включен для KDE. Тем не менее, заголовок все еще поставляется с последней версией:

wget http://dropmix.xs4all.nl/rick/Xsnow/xsnow-1.42.tar.gz

и распакуйте его. Откройте xsnow.cи добавьте новую строку после 250 (возникли проблемы, когда я прокомментировал ее там, где она была).

#include "vroot.h"

Затем построить (требует xutils-dev, xorg-devи libxpm-dev) с:

xmkmf
make depend
make

затем (при условии отсутствия ошибок)

./xsnow

Это работает? Скомпилированная версия работает здесь, но я нахожусь в Gnome, 12.04, а не на виртуальной машине.

Джулиан Стерлинг
источник
Похоже, что скомпилировано нормально ... но снега по-прежнему нет: \ i.imgur.com/Pmd9vOx.jpg
Ричард
Я посмотрел на код xsnow, и проблема в том, как он обрабатывает окна, на которых он отображает.
Yilmi