[devel] Q: xscreensaver и GNOME

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_immo=2Eru?=
Вт Мар 1 13:38:59 MSK 2005


Собираю xscreensaver 4.20.  jwz без об'яснений причин выкинул
xscreensaver.kss (KDE, но это отдельная тема), я полез это дело
раскапывать и понял, что поддержка GNOME у меня какая-то
кривобокая...

Сначала напишу что у нас есть, потом что хочу с этим сделать.

Выдержка из Makefile:

GNOME_DATADIR   = /usr/share
GNOME_CCDIR_1   = $(GNOME_DATADIR)/control-center/Desktop
GNOME_CCDIR_2   = $(GNOME_DATADIR)/control-center/capplets
GNOME_CCDIR_3   = $(GNOME_DATADIR)/control-center-2.0/capplets
GNOME_PANELDIR1 = $(GNOME_DATADIR)/gnome/apps/Settings/Desktop
GNOME_PANELDIR2 = $(GNOME_DATADIR)/applications
GNOME_PANELDIR  = $(GNOME_PANELDIR2)
HACK_CONF_DIR   = /usr/X11R6/lib/xscreensaver/config

После make install получаются такие .desktop файлы (разноязыковые
каменты поскипаны):

/usr/share/applications/screensaver-properties.desktop, он же
лежит в GNOME_CCDIR_{1,2,3}:
[Desktop Entry]
Encoding=UTF-8
Exec=xscreensaver-demo
Icon=xscreensaver.xpm
Terminal=false
Name=Screensaver
Comment=Change screensaver properties
Type=Application
Categories=Application;Settings;Appearance;AdvancedSettings;

Для нашего GNOME (2.4+) используется GNOME_CCDIR_3, насколько я
понимаю.

Идём дальше, в /usr/bin находится скрипт
screensaver-properties-capplet следующего содержания:

#!/bin/sh
#[...]
# The existence of this script in /usr/bin/ forces Gnome to use the
# xscreensaver-demo program (instead of the lame Gnome code) to launch,
# initialize, and configure xscreensaver.  When running in crapplet mode,
# xscreensaver-demo accepts the same arguments that Gnome's capplet does,
# except that "--capplet" must be the first argument.

exec xscreensaver-demo --crapplet "$@"

Насколько я понял по коду, опция --crapplet использовалась для
сторого gnomecc, версии наверно 1.4.  config.h.in:

/*  Define this if you have Gnome and want to build support for the 
    xscreensaver control panel in the Gnome Control Center (gnomecc).
    (This is needed only with Gtk 1.x.)
 */
#undef HAVE_CRAPPLET


Меню генерится следующим образом:

%__cat <<EOF > %buildroot%_menudir/%name-frontend
?package(%name-frontend): needs=X11 \
section="Configuration/Other" \ 
title="XScreenSaver" \
longtitle="Configure the setting of the XScreenSaver" \
command="%name-demo"
EOF

%__cat <<EOF > %buildroot%_menudir/%name-gnome
?package(%name-gnome): needs=gnome \
section="Configuration/Gnome" \
title="Screensaver" \
longtitle="Configure the setting of the screensaver" \
icon="xscreensaver.xpm" \
command="%_bindir/screensaver-properties-capplet"
EOF


Ну и наконец состав xscreensaver-gnome:

%files gnome
%_bindir/screensaver-properties-capplet
%_datadir/control-center-2.0/*/*
%_datadir/pixmaps/%name.xpm
%_menudir/%name-gnome


Предложения:

1. Выкинуть screensaver-properties-capplet, помойму им никто не
пользуется.
2. Выкинуть %_menudir/%name-gnome, бо как не нужен
3. %_menudir/%name-frontend генерить при помощи
freedesktop2menu.pl

Что скажут ведущие гномоводы?

-- 
Regards, Sir Raorn.
-------------------
В Сизиф грядёт новый automake-1.8.2, и, как это принято у autolools'овцев,
несёт с собой новые проблемы: к 181 непересобирающемуся пакету добавляется
ещё 51.
		-- ldv in devel@
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050301/ded898ff/attachment-0001.bin>


Подробная информация о списке рассылки Devel