Bug 27517 - Принудительно выставлять (например в /etc/bashrc) для всех переменную QT_PLUGIN_PATH, чтобы не было глюков с оконными стилями KDE у пользователей запущенных через su - и подобное ему.
Summary: Принудительно выставлять (например в /etc/bashrc) для всех переменную QT_PLUG...
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: kde4libs (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords: usability
Depends on:
Blocks:
 
Reported: 2012-07-04 19:00 MSK by unihorn
Modified: 2012-07-12 19:44 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description unihorn 2012-07-04 19:00:33 MSK
Как насчет отключения зависимостей Кед от оконного стиля Oxygen (как минимум конкретно от либы которая этот стиль и инициализирует: oxygen.so (что в папке либ кедовых оконнных стилей))?

Просто стиль Oxygen имеет ряд проблем...

Скажем я выставил каждому пользователю (включая Рута) иной стиль (например QtCurve).

После чего, находясь в своем домашнем аке запустил гуишную прогу от другого юзера (рутовую прогу например).

Запустил и вижу что данная прога игнорирует настройки оконного стиля данного юзера (запуская вместо него иной, так сказать "дефолтный", стиль (как правило oxygen (ибо если в системе стоит, например, brspin, то запускается оный): вне зависимости от того какой, в реальности оконный стиль на самом деле в настройках данного юзера)).

Ну или выставил, я, к примеру, стиль QtCurve для KDM и получаю различные глюки с выставлением KDM-у цветовых схем...

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

Имхо. Если сделать вышеназванную либу поместить в отдельный пакет и сделать, например, мягкой зависимостью (не удаляющей кеды вместе с собой); или там повязать не на Кеды, а на конкретный метапакет KDE (удаление которого не вызовет удаление всех Кед), ничего плохого не случится, а вот удобство будет, имхо, очевидно...

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

Повесил на сизиф. но и в бранчах это будет не плохо...
Comment 1 unihorn 2012-07-04 19:03:00 MSK
Просто дефолтный это (по мнению разрабов KDE) стиль, не дефолтный, это просто оконный стиль (как минимум указанная выше либа)...
Comment 2 unihorn 2012-07-04 19:07:27 MSK
Тот же минимальный пакет KDE4, вообще, имхо, вполне может обойтись без всякого оконного стиля вообще (ибо суть у него поставить минимально необходимый набор пакетов, чтобы юзер, в дальнейшем, доставил нужные)... Оконный же стиль (как минимум выше названная либа) к таковым (минимально необходимым для работы пакетам) не относится каким бы "дефолтным он не был"...

Да. Минимальный паеет будет "очень красивым" но суть минимального пакета не в "красоте"...
Comment 3 Sergey V Turchin 2012-07-05 16:31:55 MSK
ln -s custom /etc/kde4/current
и меняйте там любые настройки
Comment 4 unihorn 2012-07-08 21:19:23 MSK
Простите за задержку с ответом (ответил сразу как смог).

(В ответ на комментарий №3)
> ln -s custom /etc/kde4/current
> и меняйте там любые настройки

Угу симлинк в /etc/kde4/current хороший способ сделать нестандартные настройки Кед. Хороший, старый, и давно известный (по крайней мере мне (именно так я их, себе, и настраиваю)).

Одна лишь беда. С oxygen.so ОН (этот способ) НЕ РАБОТАЕТ (как минимум корректно). :)

Для проверки можете сделать следующее:

1). Выставить руту стиль QtCurve.
2). Сделать в /etc/kde4/current (на что он ссылается (на custom или нет) не суть важно) папку lib(lib64)/kde4/plugins/style и делаем в нее симлинк на qtcurve.so под именем oxygen.so (дабы перекрывал "оригинал").
3). Заходим в терминал и делаем там su -
4)Запускаем от "su-"шного рута krusader например (или любую другую кедовую прогу).
5). Любуемся у рута стилем oxygen (который, к тому-же, будет некорректно брать данные из рутового ~/.kde4/share/config/kdeglobalsrc). :)

Теперь делаем все тоже самое, но только удаляем (либо переименовываем) в /usr/lib(lib64)/kde4/plugins/style либу oxygen.so; и симлинк на qtcurve.so делаем вместо этой oxygen.so.

Дальше (пункты 2-5) все также, за исключением финального результата: теперь мы видим у рута полностью корректный qtcurve, корректно берущий настройки из рутового kdeglobalsrc.

Вот и вся разница.

С currentom же нормально запустятся разве проги запускаемые от другого юзера средствами управления авторизацией KDE (типа ярлыка Krusader Root Mode).

В рамках же системы (файлов запускаемых вне рамок KDE) способ с current-ом работать не будет...

Нормально (с корректно применяемыми цветовыми схемами (иначе, они, в лучшем случае будут глючить: скажем примутся частично, а, потом, вообще не сменятся на другую) применить иной стиль для того-же KDM можно только если пошаманить с oxygen.so d /usr/lib(lib64)/kde4/plugins/style

Избавление же от этой либы в качестве железной, прибитой гвоздями, зависимости избавит от большей части геммороя.

Нет. Конечно можно было бы исправить само это глючное поведение... Но это проблеммма не Альта, а Кед в целом (сиречь апстримовая). Готов ли кто у нас связаться с апстримом по этому поводу...
Comment 5 Andrey Cherepanov 2012-07-09 10:38:42 MSK
На реальный пакет.
Comment 6 Sergey V Turchin 2012-07-10 11:39:04 MSK
(В ответ на комментарий №4)
> Одна лишь беда. С oxygen.so ОН (этот способ) НЕ РАБОТАЕТ (как минимум
> корректно). :)
/etc/xdg/Trolltech.conf

[...]

> В рамках же системы (файлов запускаемых вне рамок KDE) способ с current-ом
> работать не будет...
Будет. Я зашил это в KDE.

[...]
Comment 7 unihorn 2012-07-11 14:20:32 MSK
(В ответ на комментарий №6)
> /etc/xdg/Trolltech.conf 

Одноименные файлы есть в /.config и ~/.config файл в /etc/xdg/ такой файл надо создать ибо его там нет, но создать можно.

Что, и как (какова структура конфига и подобное), туда (после создания конфига) прописывать? Это, походу, список используемых либ...

Ибо на данный момент данный (с current-ом) "вшитый способ" работает с чем угодно кроме сабжа (эксперимент по воспроизведению проблемы описан выше, могу и скринов с скринкастами кинуть).
Comment 8 Sergey V Turchin 2012-07-11 15:06:02 MSK
(В ответ на комментарий №7)
> Одноименные файлы есть в /.config и ~/.config
qtconfig-qt4 и смотрите, что там пишут
Comment 9 unihorn 2012-07-12 01:31:19 MSK
(В ответ на комментарий №8)
> (В ответ на комментарий №7)
> > Одноименные файлы есть в /.config и ~/.config
> qtconfig-qt4 и смотрите, что там пишут

И где там посмотреть про Trolltech.conf .

Или вы про то, какой стиль отображается в запущенных (в нашем случае от su -) конфигураторах (как в qtconfig-qt4 так и в systemsettings)?

Если про это, то запущенный от su - systemsettings пишет что у рута установлен qtcurve (но в реале отображается (не смотря на эти многообещающие заявления) выше названный oxygen).

Запущенный же от su - qtconfig-qt4 вообще не видит стиля qtcurve (его нету в списке стилей) а сам qtconfig-qt4 отображается дефолтными квдратичными виджетами не облагороженными каким бы то ни было оконным стилем).
Comment 10 Sergey V Turchin 2012-07-12 14:28:40 MSK
(В ответ на комментарий №9)
> И где там посмотреть про Trolltech.conf .
В нем.
Comment 11 Sergey V Turchin 2012-07-12 14:30:08 MSK
(В ответ на комментарий №9)
> Запущенный же от su - qtconfig-qt4 вообще не видит стиля qtcurve
переменная окружения QT_PLUGIN_PATH
Comment 12 unihorn 2012-07-12 19:27:02 MSK
(В ответ на комментарий №10)
> > И где там посмотреть про Trolltech.conf .
> В нем.

Где, конкретнее можно (подробно и раззжевывая (всегда желательный пуь действия: тому кто знает будет пофиг, а тот кто не знает, или знает не все, будет рад)). А то ведь получается "поди туда", не знаю куда... Я не новичок в Линуксе, но и отнюдь не гуру: всего знать не могу.

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

(В ответ на комментарий №11)
> > Запущенный же от su - qtconfig-qt4 вообще не видит стиля qtcurve
> переменная окружения QT_PLUGIN_PATH

ОK.

Сделал export QT_PLUGIN_PATH=/root/.kde4/lib64/kde4/plugins/:/etc/kde4/current/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/ (ибо, по первоначалу, переменная была пустой)

Стили заработали. Спасибо.

Куда теперь, корректно, запендюрить эту строчку (на ум только /etc/bashrc c ~/.bashrc приходят)...

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

Если засовывать в /etc/bahrc, то, соответственно, подправить пакет которые его и ставит...

добавить в конец bashrc что-нибудь типа:

if [ -a /usr/bin/startkde ]
export QT_PLUGIN_PATH=/$USERNAME/.kde4/lib64/kde4/plugins/:/etc/kde4/current/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/
fi

Дабы явно и для всех это выставлять...

Почему именно if [ -a /usr/bin/startkde ] (или типа него), потому что, как помню, в Гноме все работает (хотя надо глянуть, может с последними версиями QT что-то поменялось)...

Поэтому вопрос остается но, разве, меняется формулировка с убрать oxygen.so из зависимостей на принудительно выставлять для всех переменную QT_PLUGIN_PATH.
Comment 13 unihorn 2012-07-12 19:31:52 MSK
Какой пакет выставлять, не знаю. Оставляю как есть.
Comment 14 Sergey V Turchin 2012-07-12 19:32:58 MSK
(В ответ на комментарий №12)
> (В ответ на комментарий №10)
> > > И где там посмотреть про Trolltech.conf .
> > В нем.
> Где, конкретнее
В Trolltech.conf

> (подробно и раззжевывая
Документацию и подобные вещи ищите в других местах.
Comment 15 unihorn 2012-07-12 19:44:20 MSK
(В ответ на комментарий №14)
> Документацию и подобные вещи ищите в других местах.
Просто когда просят посмотреь чегото, то говорят, что имено (ибо далеко не всегда, собеседник может знать, что от него требуетя.

Так делают вежливые люди...

С Уваженем.