Wie kann hässliches Dithering vermieden werden, wenn KDE über VNC ausgeführt wird?

5080
Chris Jester-Young

Ich bin gerade dabei, eine neue Xen-Paravirt-Domäne einzurichten, auf der KDE (4.2.2, von Kubuntu 9.04) ausgeführt wird. Da ich den virtuellen Framebuffer nicht zum vnc4serverLaufen bringen konnte, habe ich mich entschieden, VNC (aus dem Paket) einzurichten und KDE neu zu starten Xvnc.

Das ist alles in Ordnung und gut, und KDE startet in Ordnung. Alle Farben wirken jedoch unregelmäßig, insbesondere in der Taskleiste und der Titelleiste, sodass sie nicht sichtbar sind. Bei meiner Websuche scheint es, weil diese Elemente mit Porter-Duff gezeichnet werden . Dies ist insbesondere der Fall, wenn der Oxygen-Stil und die Titelleisten des Oxygen- und Ozon-Fensters verwendet werden (durch Auswählen dieser Stile werden Meldungen darüber angezeigt, dass Porter-Duff nicht verfügbar ist). Wenn diese Stile nicht verwendet werden, können die meisten UI-Widgets und Fenstertitel wieder verwendet werden.

Dies löst jedoch weder das Problem für die Taskleiste noch für den Desktop, bei dem das einzige für mich verfügbare Thema Sauerstoff ist (dies befindet sich im Fenster "Desktop-Einstellungen - Plasma-Arbeitsbereich", nur als Referenz). Wenn ich also keine Möglichkeit habe, ein Nicht-Porter-Duff-Design für diese zu verwenden, scheint KDE unter VNC immer noch unbrauchbar zu sein.

Wenn also jemand, der Erfahrung mit KDE hat, Ratschläge zur Behebung oder sogar Behebung dieser Probleme geben kann, wäre ich sehr dankbar. :-)

5

5 Antworten auf die Frage

1
Kimvais

Warum verwenden Sie kein Remote-xdmcp?

Nun, das kann auch Probleme beim Rendern haben, etwa wenn Schriftarten fehlen. Natürlich kann man den Font-Server auch so einrichten, dass die Fonts auch über das Kabel übertragen werden (Google `xfs` und` xset + fp tcp / your-kde-machine: 7100`). Bei der Steuerung über eine andere Tastatur (z. B. von einem Mac) müssen möglicherweise auch Tastaturprobleme gelöst werden, insbesondere bei der Verwendung von `Xnest` oder` Xephyr` (Google `xmodmap` oder zum Debuggen` xev`). Ich bin mir nicht sicher, was Geschwindigkeit angeht: Es kann * sehr schnell sein, aber andere sagen, es braucht viel Bandbreite. Arjan vor 14 Jahren 1
Ja, das ist eine gute Frage. Ich könnte es versuchen und sehen, ob es der Situation hilft, obwohl VNC andere Vorteile hat, z. B. dass Sie Ihre Sitzung nicht verlieren müssen, wenn Ihr Thin-Client-Computer neu gestartet wird, ähnlich wie bei der Verwendung von `screen '. Chris Jester-Young vor 14 Jahren 0
XDMCP ist nur ein Steuerprotokoll, es muss jedoch immer ein X-Server auf beiden Seiten ausgeführt werden. Dies beantwortet die Frage nicht wirklich. VNC-Verbindungen starten beim Verbindungsaufbau X-Sitzungen und setzen sie danach aus. Dies ist in einer Server-Situation, in der Ressourcen wertvoll sind, ideal. Justin Buser vor 11 Jahren 0
1
Jason R. Surratt

Ich hatte erfolgreich den Wechsel meines VNC-Servers von dem Standard-VNC-Server zu http://xf4vnc.sourceforge.net/ . Dies scheint stabiler zu sein und verhindert den unschönen Dithering-Effekt der Fensterdekorationen. Ich bin auf Ubuntu 10.04

0
Joe Holloway

Dithering tritt im Allgemeinen auf, wenn eine Farbpalette mit höherer Tiefe mit einer Farbpalette mit geringerer Tiefe angezeigt werden muss. Beispiel: Rendern einer 24-Bit-Farbpalette (2 ^ 24 = 16M-Farben) in einer 16-Bit-Anzeige (2 ^ 16 = 64K-Farben) oder einer 16-Bit-Farbpalette in einer 8-Bit-Anzeige (2 ^ 8 = 256 Farben)

Nur eine Aufnahme im Dunkeln, aber vncserver hat ein -depth-Flag, das Sie angeben können, um die Farbtiefe des Servers an die gewünschten Anzeigeeinstellungen des Clients anzupassen. Ich gehe davon aus, dass vnc4server ein ähnliches Flag hat. Der Standardwert ist 16 Bit. Ich frage mich, ob Sie Ihren VNC-Server mit einer Tiefe von 24 Bit betreiben, wenn dies das Dithering verhindern würde.

Ich bin mir nicht sicher, was die Auswirkungen auf die Leistung angeht oder ob Ihnen das überhaupt wichtig ist.

Es gibt möglicherweise andere Wege, um Ihr Problem zu lösen, aber dies ist das erste, was Ihnen in den Sinn kommt.

you can check the vnc server's logfile to see what depth it was running at. the location depends on how it was run; check in /var/log or in ~/.vnc first. quack quixote vor 14 Jahren 0
Ich verwende Xvnc immer mit 24 Bit, daher ist dies nicht das Problem. Es gibt zwar keine Alpha-Blending-Funktion mit Xvnc (das ist mir bekannt), also kommt das Dithering ins Spiel (wenn ich die Funktion von Porter-Duff richtig verstehe). Chris Jester-Young vor 14 Jahren 0
0
Jonathan

Ich habe heute damit gespielt (auf Kubuntu 10.04), aber schließlich habe ich aufgegeben und bin mit XFCE4 für VNC-Anschlüsse und KDE für ein lokales Display gegangen.

Installieren Sie das Paket xfce4und bearbeiten Sie ~/.vnc/xstartup/es wie folgt:

#!/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 & 
Tatsächlich wird dies im Wesentlichen versuchen, zwei separate X-Sitzungen zu erstellen. Schauen Sie sich das Skript xinitrc an, und Sie werden sehen, was ich meine. Justin Buser vor 11 Jahren 0
0
Justin Buser

Ich habe auch bemerkt, was Sie beschreiben, und fand heraus, dass der beste Weg, um es loszuwerden, Fensterdekorationen usw. ist, die keine Farbverläufe verwenden. Letztendlich habe ich jedoch eine Netzwerkanzeige als Begrüßer zu / etc / kde4 / kdm / kdmrc hinzugefügt und dann XMing lokal ausgeführt. Sobald das vernetzte Display von KDM erkannt wird, sendet es den Begrüßungsbefehl an, und Sie müssen sich nur anmelden und es ist wie ein externer Monitor, der sogar OpenGL unterstützt. Ich kann den Unterschied kaum erkennen, aber ich habe kein intensives Rendering oder ähnliches versucht.

Aktualisieren

Ich hatte nur ein paar Momente, um einen VNC-Server erneut auszuführen, um zu versuchen, mein Gedächtnis ein bisschen zu bewegen, und es scheint, als sei das Problem tatsächlich viel schlimmer als früher. So ziemlich jede Variation der Einstellung / Bittiefe / etc ..., die ich mir vorstellen konnte, führte zu fast 100% CPU-Auslastung für Plasma-Desktop.

Tun Sie sich selbst einen Gefallen und geben Sie wenigstens einen Schuß, Sie werden nicht enttäuscht sein (so sieht meine typische Last aus: https://plus.google.com/u/0/114408677443179637705/posts/Q7BGvYF2fx6 )

Installieren Sie XMing: http://www.straightrunning.com/XmingNotes/

Starten Sie es von einer Eingabeaufforderung aus:

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

Das @ 2 bezeichnet meine zweite Anzeige. Wenn Sie nur eine haben oder die 1. Anzeige verwenden möchten, ändern Sie sie einfach in @ 1.

Deaktivieren Sie Kdm vorübergehend, indem Sie die folgende Zeile vor der Zeile, die mit start am beginnt, irgendwo oben hinzufügen:

DISABLED=1 

Starten Sie Ihre Linux-Maschine neu und wenn sie wieder mit ssh verbunden ist (X11-Weiterleitung muss nicht aktiviert werden), und führen Sie die folgenden beiden Befehle aus (ersetzen Sie 10.0.0.2 durch die IP-Adresse der Maschine, von der aus Sie eine Verbindung herstellen):

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

Nach einigen Sekunden sollte der kde-Desktop angezeigt werden. Sie können nach Belieben zwischen den beiden wechseln, Einfügen zwischen ihnen einfügen, usw., und er läuft exponentiell schneller als die VNCServer-Version.

Übrigens, vergessen Sie nicht zu erwähnen, TUN SIE NICHT AUF EIN ÖFFENTLICHEN NETZ! Die Option -ac in der Xming-Befehlszeile deaktiviert im Wesentlichen die Zugriffskontrolle zu Ihrem XServer. Dies ist keine große Sache, wenn Sie sich in einem privaten Netzwerk befinden, ansonsten aber offensichtlich nicht ideal. Justin Buser vor 11 Jahren 0