Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [Решено] Скрипт вместо скринсейвера.  (Прочитано 2900 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн XeHK

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Возможно ли как-то задействовать вместо гномовского скринсейвера или под его видом скринсейвер, запускаемый под вайном? Попробовал пока грубо, заменив в директории /usr/lib/xscreensaver один из скринсейверов маленьким скриптом вида:
#!/bin/bash
wine "C:\windows\system32\The Lost Watch 3D Screensaver.exe"
В превью он запускается, но когда проходит время до запуска, экран как обычно начинает потихоньку тускнеть, а потом остается черным, при этом звуки скринсейвера слышны и сам он запущен, в чем можно убедиться, пошевелив мышой - за секунду до выхода черный экран рассеивается и полсекунды виден сам скринсейвер, пока полностью не появляется рабочий стол.
« Последнее редактирование: 20 Февраля 2009, 15:23:05 от XeHK »

Оффлайн XeHK

  • Автор темы
  • Новичок
  • *
  • Сообщений: 37
    • Просмотр профиля
Re: Скрипт вместо скринсейвера.
« Ответ #1 : 20 Февраля 2009, 15:19:48 »
Нашел решение для запуска программы (сиречь скрипта) вместо скринсейвера после периода простоя компа.
Создаем перловый скрипт:
sudo gedit /usr/local/sbin/SCRIPTNAME.pl

Наполняем его содержимым, заменив COMMAND на путь к вашему заменителю скрисейвера:
#!/usr/bin/perl
my $cmd = "dbus-monitor --session \"type='signal',interface='org.gnome.ScreenSaver', member='SessionIdleChanged'\"";

open (IN, "$cmd |");

while (<IN>) {
if (m/^\s+boolean true/) {
#когда Ubuntu простаивает следующие команды будут запущены
system("COMMAND");
system("COMMAND"); #вы можете добавить больше команд system("COMMAND"); если нужно
} elsif (m/^\s+boolean false/) {
#когда Ubuntu выходит из режима простоя эти команды будут запущены, удалите эти строки, если это не нужно
system("COMMAND");
system("COMMAND");
}
}

Сохраняем и даем права на запуск:
sudo chmod +x /usr/local/sbin/SCRIPTNAME.pl

Для автозагрузки прописываем его в SessionManager как:
perl /usr/local/sbin/SCRIPTNAME.pl

В System>Preferences>Screensaver снимаем галку Activate screensaver when computer is idle и выставляем нужное время простоя до запуска нашего скринсейвера. Перезагружаемся или запускаем наш перловый скрипт, к примеру, через alt+F2. Вуаля!

Скрипт открывает невероятные возможности. По идее можно перетащить в линукс любой виндовый скринсейвер, лишь бы он работал под вайном.
Источник.
« Последнее редактирование: 20 Февраля 2009, 15:21:46 от XeHK »

 

Страница сгенерирована за 0.045 секунд. Запросов: 23.