Ядро Linux как хранитель экрана
Мне как рядовому юзеру от исходных текстов ядра Linux пользы мало, но сегодня я нашел им одно нетривиальное применение, а именно, в качестве хранителя экрана. Это выглядит довольно эффектно и необычно. Для этого потребуется: исходные тексты ядра, менеджер xscreensaver с дополнительным набором хранителей экрана (нужен только Phosphor) и утилита Argument Shuffle (для чего она нужна, описано ниже).
Итак обо всем по порядку. Пример на основе Ubuntu 7.10.
Для начала скачаем и распакуем исходники ядра:
cd /usr/src
sudo apt-get install linux-source
sudo tar -xpjf linux-source-2.6.22.tar.bz2
sudo ln -sf linux-source-2.6.22 linux-source
Поскольку все это я делаю на Ubuntu 7.10, а gnome-screensaver не позволяет настраивать отдельные хранители экрана, то придется заменить его на xscreensaver. Для этого произведем следующие действия.
Отключим gnome-screensaver - Система -> Параметры -> Хранитель экрана, снимаем все установленные галочки и убиваем процесс.
sudo killall gnome-screensaver
Отключим автоматический старт.
gconftool-2 --type boolean -s /apps/gnome_settings_daemon/screensaver/start_screensaver false
И на всякий случай сделаем gnome-screensaver неисполняемым.
sudo chmod -x /usr/bin/gnome-screensaver
Теперь устанавливаем xscreensaver.
sudo aptitude install xscreensaver xscreensaver-data-extra xscreensaver-gl-extra
Пропишем автоматический запуск демона - Система -> Параметры -> Сеансы -> Добавить -> xscreensaver -no-splash
Подправим пункт меню для запуска xscreensaver вместо gnome-screensaver.
sudo gedit /usr/share/applications/gnome-screensaver-preferences.desktop
Находим следующую строку:
Exec=gnome-screensaver-preferences
И заменяем ее на эту:
Exec=xscreensaver-demo
Также нужно закомментировать следующие строки:
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-screensaver
X-GNOME-Bugzilla-Component=general
X-Ubuntu-Gettext-Domain=gnome-screensaver
Чтобы не было конфликтов с Gnome Power Manager, нужно отключить в свойствах xscreensaver функцию управления питанием - Система -> Параметры -> Хранитель экрана -> Расширенные -> убрать галочку "Управление питанием разрешено"
Для того чтобы можно было блокировать экран через Система -> Выход -> Блокировать экран, создадим симлинк
sudo ln -f /usr/bin/xscreensaver-command /usr/bin/gnome-screensaver-command
В комплекте с xscreensaver (пакет xscreensaver-data-extra) идет хранитель экрана Phosphor. С помощью его и команды cat, мы и будем выводить исходные тексты на экран. Исходные тексты находятся в файлах *.c. В простом случае, чтобы вывести всех их на экран можно воспользоваться такой командой cat `find /usr/src/linux-source/ -name *.c`, но так как вывод команды cat неизменен, а получать одно и тоже - не интересно, мы будем использовать программу argshuf (Argument Shuffle). Эта программа работает следующим образом - принимает от другой программы список аргументов и выводит их в случайном порядке. Сборка argshuf довольно тривиальна:
Скачиваем архив. Для сборки необходим только build-essentials, далее все стандартно:
tar -vxzf argshuf-0.1.tar.gz
cd argshuf
make
sudo make install
Теперь можно выводить на экран по одному случайному файлу - cat `find /usr/src/linux-source/ -name *.c | argshuf`. Осталось только настроить Phosphor. Запускаем менеджер хранителей экрана, выбираем Phosphor, нажимаем "Настройка" и в поле "Текстовая программа" вводим
cat `find /usr/src/linux-source/ -name *.c | argshuf`
---
Пройдя долгий эволюционный путь, конструктор Лего стал уникальным явлением в мире игрушек.
В очередной раз обожглись на выборе хостера и теперь не знаете, куда податься? Обратите внимание на качественный хостинг от одесского провайдера.
В Москве гостиница Космос - это один из самых вместительных отелей с современным дизайном, различной планировкой и площадью номеров, широким выбором развлечений для взрослых и детей.