Как избежать уродливого дизеринга при запуске KDE через VNC?

4660
Chris Jester-Young

В настоящее время я настраиваю новый домен Xen Paravirt под управлением KDE (4.2.2, из Kubuntu 9.04). Поскольку я не смог заставить работать виртуальный кадровый буфер, я решил установить VNC (из vnc4serverпакета) и запустить KDE поверх Xvnc.

Это все хорошо, и KDE запускается нормально. Однако все цвета выглядят размытыми, особенно на панели задач и в строке заголовка, что делает их невозможными для просмотра. Судя по моим поискам в Интернете, это происходит потому, что эти элементы нарисованы с использованием Porter-Duff . Это особенно актуально при использовании стиля Oxygen и заголовков окна Oxygen и Ozone (выбор этих стилей генерирует сообщения о недоступности Porter-Duff); если не использовать эти стили, то по крайней мере большинство виджетов интерфейса и заголовков окон можно будет снова использовать.

Но это не решает проблему ни для панели задач, ни для рабочего стола, где единственной доступной для меня темой является Oxygen (это находится в окне «Desktop Settings - Plasma Workspace», просто для справки). Так что, если у меня не будет способа использовать тему, не относящуюся к Портеру-Даффу, кажется, что KDE все еще будет непригоден для использования в VNC.

Поэтому, если кто-то, имеющий опыт работы с KDE, может посоветовать, как обойти или даже исправить эти проблемы, я был бы очень признателен. :-)

5

5 ответов на вопрос

1
Kimvais

Почему вы не используете удаленный xdmcp?

Ну, это также может иметь проблемы с рендерингом, например, если шрифты отсутствуют? Конечно, можно настроить сервер шрифтов так, чтобы шрифты передавались по проводам (Google `xfs` и` xset + fp tcp / your-kde-machine: 7100`). А при управлении с использованием другой клавиатуры (например, с Mac) может потребоваться решить и проблемы с клавиатурой, особенно при использовании `Xnest` или` Xephyr` (Google `xmodmap` или использование` xev` для отладки). Я не уверен насчет скорости: она * может * быть очень быстрой, но другие говорят, что ей нужна большая пропускная способность. Arjan 14 лет назад 1
Да, это хороший вопрос. Я мог бы попробовать это и посмотреть, поможет ли это ситуации, хотя у VNC есть и другие преимущества, такие как отсутствие необходимости терять сеанс во время перезагрузки компьютера с тонким клиентом, во многом аналогично использованию `screen` для консольных операций. Chris Jester-Young 14 лет назад 0
XDMCP - это просто протокол управления, он все еще требует, чтобы X-сервер работал на обоих концах. Это на самом деле не отвечает на вопрос: соединения VNC запускают X-сеансы при подключении и впоследствии приостанавливают их, что идеально в ситуации типа сервера, где ресурсы ценны. Justin Buser 11 лет назад 0
1
Jason R. Surratt

Я успешно переключил свой VNC-сервер с vncserver по умолчанию на http://xf4vnc.sourceforge.net/ . Это выглядит более стабильным и предотвращает эффект уродливого смешения на оформлении окон. Я на Ubuntu 10.04

0
Joe Holloway

Смешение обычно происходит, когда цветовая палитра с большей глубиной должна отображаться с использованием палитры с меньшей глубиной. Например, рендеринг 24-битной цветовой палитры (2 ^ 24 = 16M цветов) на 16-битном дисплее (2 ^ 16 = 64K цветов) или 16-битной цветовой палитры на 8-битном дисплее (2 ^ 8 = 256 цветов)

Просто выстрел в темноте, но у vncserver есть флаг -depth, который вы можете указать, чтобы изменить глубину цвета сервера в соответствии с желаемыми настройками отображения клиента. Я полагаю, vnc4server имеет аналогичный флаг? По умолчанию это 16-битная версия, так что мне интересно, если вы запускаете свой VNC-сервер с глубиной 24-битной, если это предотвратит дизеринг.

Я не уверен в последствиях производительности или имеет ли это значение для вас.

Могут быть и другие способы решения вашей проблемы, но это первое, что приходит на ум.

Вы можете проверить файл журнала сервера vnc, чтобы увидеть, на какой глубине он работал. местоположение зависит от того, как оно было запущено; сначала проверьте / var / log или ~ / .vnc. quack quixote 14 лет назад 0
Я всегда запускаю Xvnc на 24 битах, так что это не проблема. Хотя у Xvnc нет возможности альфа-смешивания (о чем я знаю), так что вот где начинается сглаживание (если я правильно понимаю функцию Портера-Даффа). Chris Jester-Young 14 лет назад 0
0
Jonathan

Я играл с этим сегодня (на Kubuntu 10.04), но в конце концов сдался и пошел с XFCE4 для соединений VNC и KDE для локального дисплея.

Установите пакет xfce4и отредактируйте ~/.vnc/xstartup/его так:

#!/bin/sh  unset SESSION_MANAGER . /etc/X11/xinit/xinitrc  [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic &  startxfce4 & 
На самом деле это будет попытка создать две отдельные X-сессии, взгляните на скрипт xinitrc, и вы поймете, что я имею в виду. Justin Buser 11 лет назад 0
0
Justin Buser

Я также заметил, что вы описываете, и обнаружил, что лучший способ избавиться от него - это выбрать декорации окон и т. Д., Которые не используют градиенты. Однако в конечном итоге я добавил сетевой экран в качестве приветствия в / etc / kde4 / kdm / kdmrc и затем запустил XMing локально. По сути, как только он обнаруживает сетевой дисплей, KDM отправляет ему приветствие, тогда вы просто входите в систему, и это похоже на внешний монитор, он даже поддерживает OpenGL. Я едва могу сказать разницу, но я не пробовал ни одного интенсивного рендеринга или чего-либо еще.

Обновить

У меня было всего несколько минут, чтобы снова запустить VNC-сервер, чтобы попытаться немного потрясти мою память, и кажется, что проблема на самом деле намного хуже, чем раньше. Практически каждая вариация настроек / битовой глубины / и т. Д., О которых я мог подумать, по-прежнему приводила к почти 100% использованию процессора для плазменного рабочего стола.

Сделайте себе одолжение и, по крайней мере, сделайте это, вы не будете разочарованы (вот как выглядит мой типичный груз: https://plus.google.com/u/0/114408677443179637705/posts/Q7BGvYF2fx6 )

Установите XMing: http://www.straightrunning.com/XmingNotes/

Запустите его из командной строки:

Xming.exe :10 -rootless -nomultimonitors -clipboard -wgl -nolisten inet6 -ac -screen 0 @2 

@ 2 обозначает мой второй дисплей, если у вас есть только один или вы хотите использовать первый, просто измените его на @ 1.

временно отключите kdm, добавив следующую строку где-то рядом с верхом перед строкой, начинающейся с start on:

DISABLED=1 

перезагрузите компьютер с Linux и, когда он вернется, вставьте в него ssh (вам не нужно включать пересылку X11 или что-то еще) и выполните следующие две команды (замените 10.0.0.2 на ip компьютера, с которого вы подключаетесь):

export DISPLAY="10.0.0.2:10" dbus-launch kdeinit4 kwin +plasma-desktop 

Через несколько секунд вы увидите, что ваш рабочий стол kde появился, вы можете переключаться между ними по желанию, копировать и вставлять между ними и т. Д., И он работает экспоненциально быстрее, чем версия VNCServer.

Кстати, забыл упомянуть, НЕ ДЕЛАЙТЕ ЭТОГО НА ОБЩЕСТВЕННОЙ СЕТИ! Опция -ac в командной строке Xming по существу отключает контроль доступа к вашему XServer, что не имеет большого значения, если вы находитесь в частной сети, но, очевидно, не было бы идеальным в противном случае. Justin Buser 11 лет назад 0

Похожие вопросы