Jump to content

Compiz-Fuson перед KDE


vadim krasovsky
 Share

Recommended Posts

Вопрос на целую тему созрел спустя много времени... Доооолго я мучился с этим COMPIZом Smile и решил всё-таки добить его!!!

Проблема с автостартом. Embarassed Думаю многие с этим встречались в KDE (не знаю как в Гноме)!!! Проблема в том, что при загрузке KDE восстанавливается и предыдущая сессия - это создаёт некоторые проблемы. Если конкретней, то, настраивая compiz по тому как написано тут: http://en.opensuse.org/Compiz_Fusion

Compiz будет стартовать во время загрузки KDE - одновременно с амароками, суперкарамбами, кторрентами и кхдокерами. И постоянно получается так, что некоторые программки не сворачиваются в трэй, а появляются на десктопе в окошках размером с иконку (некоторые даже и в таком виде не появляются, но работают в фоне).

В общем расписывать все глюки такого подхода "к делу" нет смысла. Появилась задача: как запускать Compiz в ТРУЪ-way!

Погуглив немного наткнулся на интересное решение.

http://suseforums.net/index.php?showtopic=26192

Суть его заключается в том, что создаётся текстовый файл в /usr/share/xsessions такого содержания:

Цитата:

[Desktop Entry]

Encoding=UTF-8

Type=XSession

Name=Beryl

Exec=/usr/bin/beryl.sh

Icon=

Type=Application

в свою очередь в /usr/bin создаётся скрипт beryl.sh:

Цитата:

#!/bin/sh

#

# KDE with XGL startup script

#

beryl-manager &

sleep 10

startkde

Вопрос на данный момент в том, как это дело адаптировать под compiz? Т.к. просто заменив beryl-manager на compiz --replace ccp & или compiz-manager & не помогает делу. Embarassed

Link to comment
Share on other sites

Вобщем поковырявшись еще малёха - напрашивается вопрос...

Как создать (открыть, запустить) дисплей??? Embarassed

т.е. запуск compiz из голой не возможен... (Beryl видимо мог)

Нашел так же скрипт, где перед берилом была строчка: nvidia-settings --load-config-only

Что это даёт, прочитать настройки из "~/.nvidia-settings-rc"???

т.к. именно это и делает эта команда.

Цитата:

4. Loading Settings Automatically

The NVIDIA X driver does not preserve values set with nvidia-settings

between runs of the X server (or even between logging in and logging

out of X, with xdm, gdm, or kdm). This is intentional, because

different users may have different preferences, thus these settings

are stored on a per user basis in a configuration file stored in

the user's home directory.

The configuration file is named "~/.nvidia-settings-rc". You can

specify a different configuration file name with the "--config"

commandline option.

After you have run nvidia-settings once and have generated a

configuration file, you can then run:

nvidia-settings --load-config-only

at any time in the future to upload these settings to the X

server again. For example, you might place the above command in

your ~/.xinitrc file so that your settings are applied automatically

when you log in to X.

Your .xinitrc file, which controls what X applications should

be started when you log into X (or startx), might look something

like this:

nvidia-settings --load-config-only &

xterm &

evilwm

or:

nvidia-settings --load-config-only &

gnome-session

If you do not already have an ~/.xinitrc file, then chances are that

xinit is using a system-wide xinitrc file. This system wide file

is typically here:

/etc/X11/xinit/xinitrc

To use it, but also have nvidia-settings upload your settings,

you could create an ~/.xinitrc with the contents:

nvidia-settings --load-config-only &

. /etc/X11/xinit/xinitrc

System administrators may choose to place the nvidia-settings load

command directly in the system xinitrc script...

Самое интересное то, что эта команда также не хочет запускаться из консоли (по крайней мере у меня)!!!

Хакеры, помогите пожалуйста! Я чувствую что близок к разгадке, но до конца не понимаю...

Link to comment
Share on other sites

crossblade писал(а) Thu, 21 February 2008 10:53

Как создать (открыть, запустить) дисплей??? Embarassed

Когда вы запускаете Х-сервер, он создает дисплей, т.е. такую штуку, куда программы, работающие с Х, выводят информацию.

Т.е. создать дисплей, как я понимаю, можно только запустив Х.

И еще. Как я понимаю, nvidia-settings --load-config-only подгрузит опции, записанные в вашем конфиге, НО это те же самые опции, которые вы можете прописать в xorg.conf, т.е. особого смысла в использовании этой штуки я не понимаю.

Link to comment
Share on other sites

Ну, возможен и такой способ. Наверное где-то там надо найти место, где запускается kwin и попробовать вместо него стартануть compiz.

Можно в порядке эксперимента попробовать сделать так: переименовать бинарник kwin и сделать симлинк под именем kwin на compiz Smile

Конечно, вряд ли это просто так заработает, но попробовать по приколу можно Smile

Link to comment
Share on other sites

Возможно, вам поможет это:

Цитата:

ВАРИАНТ ДЛЯ KDE:

Создаем файл ~/.kde/Autostart/compiz.desktop следующего содержания:

[Desktop Entry]

Encoding=UTF-8

Exec=compiz --replace gconf & gnome-window-decorator &

GenericName[en_US]=

StartupNotify=false

Terminal=false

TerminalOptions=

Type=Application

X-KDE-autostart-after=kdesktop

Перезагружаемся.

© http://mczim-debian.blogspot.com/2007/05/3d-desktop-on-compi z.html

Это всё верно для debian, но, думаю в данном вопросе особой разницы нет.

P.S. Лично я проверял описанное в этой статье для xfce. Работает.

Link to comment
Share on other sites

cppmm, Вы видимо на строчку "X-KDE-autostart-after=kdesktop" намекаете. Мне это как раз и не нравится, что сначала стартует kwin а потом с опцией --replace надо запускать compiz. Это как-то противоестественно Smile

А вот насчет kwin и симлинков надо попробовать! Пусть даже для прикола!!! Evil or Very Mad

Link to comment
Share on other sites

2 cppmm

Да нет, понятно, что этот вариант заработает Smile Речь идет о другом. Вопрошающий хочет запускать compiz _вместо_ kwin, а не _сначала_ kwin, а _потом_ compiz, который "на лету" заменяет kwin. Я играл с compiz-fusion под КДЕ, и могу сказать, что описываемый эффект замены одного другим действительно не очень лицеприятен Smile Т.е. выглядит это примерно так: грузится КДЕ, появляется трей, десктоп, еще чего-то, а потом все это подвисает ненадолго, после чего подгружается compiz. В Гноме, например, compiz грузится сразу _вместо_ metacity, поэтому такого неприятного эффекта не возникает.

Link to comment
Share on other sites

Это еще слабо сказано! Smile Kpager вообще умирает после старта compiz-а. Становится бесполезным... Приходится убивать kicker и запускать заново, но это помогает только pager-у - иконки в трэй не восстанавливаются! На скриншоте можно узреть этот ужос!

обратите внимание на то что ktorrent пашет но его нигде нет!

Link to comment
Share on other sites

Ах, да! Забыл рассказать об экспериментах... Переименовывал kwin и делал скрипт с компизом под именем kwin! Самое интересное, что запускался в любом случае kwin. Laughing Это убило!

Пришлось нагружать товарища скриптом startkde (т.к. я в программировании нифига не шарю).

На свежую голову были найдены такие строки:

# if the KDEWM environment variable has been set, then it will be used as KDE's

# window manager instead of kwin.

# if KDEWM is not set, ksmserver will ensure kwin is started.

Значит ли это, что надо всего лишь определить этот самый оконный менеджер??? Т.к. далее следуют такие строчки:

test -n "$KDEWM" && KDEWM="--windowmanager $KDEWM"

kwrapper ksmserver $KDEWM

if test $? -eq 255; then

# Startup error

echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2

xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."

fi

Link to comment
Share on other sites

Без проблем!

http://interfacelift.com/wallpaper/details.php?id=1495

Тут этих картинок... Evil or Very Mad

ПС: На декорации окон не обращайте внимания, еще не запустил kde-window-decorator --replace Embarassed

ППС: А куда делся Aceler? В отпуске? Razz Он бы, я думаю, смог бы наверняка сказать что прописать в скрипте!

Link to comment
Share on other sites

crossblade писал(а) Mon, 25 February 2008 12:43

Он бы, я думаю, смог бы наверняка сказать что прописать в скрипте!

Все, как это ни странно, просто -

man test

И этот скрипт программированием назвать сложно Smile

Link to comment
Share on other sites

За ссылку спасибо Smile

На самом деле, прописывать надо не в скрипте. Необходимо просто присвоить значение переменной KDEWM и запустить в этом окружении startkde.

То есть, можно по-простому попробовать export KDEWM=compiz && startkde. Если получается, то можно запустить соотвествующую переменную куда-нибудь в /etc/profile.d/ Попробуйте.

Link to comment
Share on other sites

А. Теперь понятно. Я просто сейчас compiz с xfce использую. Там нормально отрабатывает схема с убиванием дефолтного wm и запуска compiz...

А по по воду скрипта, можно попробовать просто в самом начале добавить строку

KDEWM=compiz

и всё.

Link to comment
Share on other sites

2Byte Я и не спорю! Wink

Просто посчитал, что мало уметь программировать - надо знать КДЕ.

Хм. Почитал я ман (большую часть мне объясняли Embarassed ) Видимо Unix-way мной до конца не осознан!

2Legalizer

А что если в самом скрипте присвоить переменную?

Или это уже "поздно" будет?

Link to comment
Share on other sites

crossblade писал(а) Mon, 25 February 2008 15:52

2Legalizer

А что если в самом скрипте присвоить переменную?

Или это уже "поздно" будет?

Да нет, в самый раз Smile

Можно прямо перед куском скрипта, который вы показали выше, вставить

export KDEWM=compiz

Link to comment
Share on other sites

Как и следовало ожидать - не пашет! Блин!

В общем, сделал я в /usr/share/xsessions дополнительный вариант, который указывает на startkdecompiz

Соответственно startkdecompiz - это модифицированный startkde. (Чтоб было удобней ковырятся)

Всё безрезультатно! Crying or Very Sad

После очередного эксперимента (когда переменной было дано значение compiz-manager)

глянул на скриншот1, подумал... Не помогло!

Потом глянул на скриншот2 и тоже подумал... А как всё таки научить КДЕ видить compiz??? (пусть даже не стартовать)

Link to comment
Share on other sites

Проблема решена! Тему можно закрывать...

Как я и считал - надо знать КДЕ!

Цитата:

Edit ~/.kde/share/config/ksmserverrc.

Make sure you have the following lines in the '[General]' section :

defaultWM=beryl-xgl

excludeApps=beryl-xgl

loginMode=default

If your previous login mode was restorePreviousLogout, then make a cleanup in the last section :

[session: saved at previous logout]

count=0

В данном случае beryl-xgl надо заменить на compiz-manager

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...