Browsersuche

Kamikaze

Warrior of Sunlight
Teammitglied
Bei Opera muss man seit 10.50 die DPI-Zahl manuell per Xft erzwingen. Das ist offiziell ein Feature und kein Bug, da es wohl auf mehreren Linux-Distros große Probleme mit der Autoerkennung von den DPI gab. Mal davon abgesehen, dass Xft selbst wirklich kaputt ist, wenn es Schriften von sich aus rendern soll. Probiere mal in der ~/.Xdefaults:
Code:
Xft*dpi: 96 
Xft*antialias: 1 
Xft*hinting: 1 
Xft*hintstyle: hintfull 
Xft*rgba: rgb 
Xft*lcdfilter: lcddefault
Natürlich auf deinen Desktop anpassen. :)
 
lynx? *duck*

nein, ernsthaft.
dein problem ist wirklich sehr speziell.

und ohne dein javascript werden wir bestimmt nicht nachvollziehen koennen was genau du moechtest. hast du das schon auf den ganzen anderen zoo losgelassen?
- chrome
- konquerer
- safari
- internet explorer
 
Ich habe auch DPI-Probleme mit allen Mozilla-Browsern, angefangen bei Netscape. Wenn Du jetzt Probleme hast, vielleicht habe ich die nicht mehr!! *Hoff!* (baut gerade)
 
und ohne dein javascript werden wir bestimmt nicht nachvollziehen koennen was genau du moechtest. hast du das schon auf den ganzen anderen zoo losgelassen?
- chrome
- konquerer
- safari
- internet explorer
Nein ist es nicht. Bei 120 DPI sollten 100pt 167 Pixel ergeben. Bei 96 DPI 133.

Das ist einfach so. So sind DPI und Pica PT definiert. Und alle Browser auf meinem Rechner ignorieren das.

Ein Workaround um Bugs anderer Leute ist kein Feature sondern gefrickel, dass man abschaltbar zu gestalten hat.

- Chrome ist nicht in den FreeBSD Ports
- Konqueror ist QT (und auch Webkit basiert, das habe ich ja mit Epiphany ausgeschlossen)
- Safari nicht in den Ports
- Internet Explorer auch nicht in den Ports
 
Es gibt noch midori, welcher mir früher mal gefallen hat. Der hat aber kein Passwort-Management gehabt und das nervt! Ich glaube, dass https:// jetzt inzwischen vernünftig funktioniert.

Ich hatte da eine Reihe von Bugs gemeldet und RFEs, aber ich glaube, dass die Leute da unterbesetzt sind und nicht so richtig verstanden haben wie Webkit eigentlich funktioniert.

Update: scheint, dass es sich überhaupt nicht vom Verhalten in Firefox3 unterscheidet, von den Fonts her. Ist also immer noch komisch, wie früher.
 
@nakal
Midori ist auch Webkit. Das habe ich ja schon getestet.

Bei Opera muss man seit 10.50 die DPI-Zahl manuell per Xft erzwingen. Das ist offiziell ein Feature und kein Bug, da es wohl auf mehreren Linux-Distros große Probleme mit der Autoerkennung von den DPI gab. Mal davon abgesehen, dass Xft selbst wirklich kaputt ist, wenn es Schriften von sich aus rendern soll. Probiere mal in der ~/.Xdefaults:
Code:
Xft*dpi: 96 
...
Natürlich auf deinen Desktop anpassen. :)
Xft*dpi: 120 in meiner .Xdefaults hat einen sehr großen Einfluss darauf wie e17 Text rendert, auf Opera und Firefox hat es keinerlei Einfluss, sogar nach einem X Neustart.
 
- Chrome ist nicht in den FreeBSD Ports
Chromium ist wohl drinne, nur ziemlich veraltet. Die neuen Ports bauen nur unter CURRENT, aber es gibt aus der 7er Reihe Binärpakete hier: http://chromium.hybridsource.org/
- Konqueror ist QT (und auch Webkit basiert, das habe ich ja mit Epiphany ausgeschlossen)
Konqueror benutzt per Default kein Webkit, sondern KHTML was schon was ziemlich anderes ist heutzutage. Außerdem sind gtk-webkit, qt-webkit und die anderen webkits nicht wirklich identisch, also ich habe auf jeden Fall Unterschiede zwischen rekonq (kde-webkit, auch wieder nicht 100% == qt-webkit) und chromium.

Schau dir Konqueror ruhig nochmal an, ich hatte mit dem immer sehr gute Erfahrungen was das anpassen der Schrift angeht.
 
Chromium ist wohl drinne, nur ziemlich veraltet. Die neuen Ports bauen nur unter CURRENT, aber es gibt aus der 7er Reihe Binärpakete hier: http://chromium.hybridsource.org/
Nicht nur veraltet sonder FORBIDDEN. An Binärpaketen bin ich nicht wirklich interessiert.

Konqueror benutzt per Default kein Webkit, sondern KHTML was schon was ziemlich anderes ist heutzutage. Außerdem sind gtk-webkit, qt-webkit und die anderen webkits nicht wirklich identisch, also ich habe auf jeden Fall Unterschiede zwischen rekonq (kde-webkit, auch wieder nicht 100% == qt-webkit) und chromium.
OK, wusste ich nicht.

Schau dir Konqueror ruhig nochmal an, ich hatte mit dem immer sehr gute Erfahrungen was das anpassen der Schrift angeht.
Es geht halt nicht nur um die Schrift.

Code:
<html>
	<body>
		<div id="box"style="background: #000000; width: 100pt; height: 100pt;"></div>
		<script type="text/javascript">alert(eval(document.getElementById('box').offsetWidth * 72 / 100) + ' DPI');</script>
	</body>
</html>
Damit könnt ihr es selbst ausprobieren.

Firefox4: 95.76 DPI
Opera: 95.76 DPI

Erwartungswert: 120 DPI
 
Nicht nur veraltet sonder FORBIDDEN. An Binärpaketen bin ich nicht wirklich interessiert.

OK, wusste ich nicht.

Es geht halt nicht nur um die Schrift.

Code:
<html>
	<body>
		<div id="box"style="background: #000000; width: 100pt; height: 100pt;"></div>
		<script type="text/javascript">alert(eval(document.getElementById('box').offsetWidth * 72 / 100) + ' DPI');</script>
	</body>
</html>
Damit könnt ihr es selbst ausprobieren.

Firefox4: 95.76 DPI
Opera: 95.76 DPI

Erwartungswert: 120 DPI

Hab den Test mit Konqueror gemacht, ich komme auf 119.XX DPI (Rundungsfehler?), mit allen anderen auf 95.76 DPI.
 
Der Wert sollte dicht an

> xdpyinfo |grep reso
resolution: 120x120 dots per inch

kommen. Wenn das bei dir auch 120 DPI sind, dann passt das (bei Konqueror), die anderen Browser bauen Mist.

Der Rundungsfehler kommt daher, dass 100pt bei 120dpi 166.666... px sind, die dann auf 166 px abgerundet werden, weil der Bildschirm halt nun mal nur ganze Pixel kann. Beim Zurückrechnen von 166 kommen dann 119.52 DPI raus.
 
Jo, also ich hab kein xpdyinfo (in welchem Paket ist das?). Hab aber in den KDE Systemsettings eingestellt, dass er das global 120dpi setzen soll.
 
Zuletzt bearbeitet:
Tröstet euch: Unter Windows XP geht das auch nicht. Sowohl bei Firefox 4 als auch Internet Explorer 8. Es lassen sich zwar 120 DPI im System einstellen aber dieses kleine Script meldet immer nur 95.76 DPI.
 
Bei mir auf FreeBSD 8.2-STABLE amd64:
Code:
xdpyinfo | grep -i dots
  resolution:    88x89 dots per inch

Die Html Javascript Testseite von Kamikaze zeigt bei mir mit
- firefox-4.0,1 (Gecko Engine)
- rekonq-0.6.80 (Webkit Engine)
- konqueror 4.6.1 (Khtml Engine)
jeweils immer ganz stur 95.76 DPI an.
Hatte mich aber nie gestört. War mir auch nie aufgefallen.
Die Fonts hatte ich mir immer angepasst.
 
Seht es doch pragmatisch. Wenn der Browser das nicht will, wird in seinen Einstellungen halt eine größere Mindestschriftgröße erzwungen.
 
Das hat dann aber keinen Einfluss darauf wie groß Layoutelemente gezeichnet werden. Dann passt der Text plötzlich nicht mehr ins Layout usw.

Keine Lösung.

Um ehrlich zu sein pisst es mich einfach an, das hat früher mit jedem Browser funktioniert, sogar IE und jetzt geht es mit keinem mehr.

Früher hat auch der Grafiktreiber in Xorg die DPI automatisch erkannt, inzwischen sagt zumindest der Intel Treiber auch stur 96 und ich muss die korrekte Auflösung manuell einstellen. Zumindest der ATI Treiber macht es noch richtig.
 
Aus mozilla-2.0/modules/libpref/src/init/all.js:
Code:
// Override DPI. A value of -1 means use the maximum of 96 and the system DPI.
// A value of 0 means use the system DPI. A positive value is used as the DPI.
// This sets the physical size of a device pixel and thus controls the
// interpretation of physical units such as "pt".
pref("layout.css.dpi", -1);
Die Standardeinstellung heißt also 96 oder korrekte DPI je nachdem was größer ist. 0 heißt immer System DPI, alles über 0 ist eine Feste Einstellung. Egal wohin ich den Wert setze, es kommen immer 96 raus. Damit ist das für mich ein Bug und kein Feature.
 
So, ich habe mal den Firefox Code so lange nach 96 abgesucht und die mit 120 ersetzt, bis ich eine Stelle gefunden habe bei der das einen Effekt hat:
layout/style/nsCSSValue.cpp

Da ist 96 fest reinkodiert. Mal schauen ob ich irgendwo die korrekte DPI her bekomme und das dynamisch machen kann.
 
Was wuerde man nur ohne find/xargs und grep machen? :)

Ich kann die Probleme aber auch bestaetigen und das es nicht immer so war. In letzter Zeit benutze ich aber einfach die Standardwerte, weil isi fuer mich zumindest okay sind.
 
Ich habe mal ein paar printf eingebaut, die Verarbeitung von layout.css.dpi in gfx/src/thebes/nsThebesDeviceContext.cpp liefert noch die korrekten 120DPI (naja 120.315788 mit Automatik als Einstellung -1 oder 0).
 
Firefox4 DPI Patch

Zu guter Letzt war ich erfolgreich. Ich habe Firefox4 die DPI beigebracht. Die Erklärung schreibe ich ins Bugzilla.

Ich freue mich aber wenn hier jemand den angehängten Patch testet. Einfach in /usr/ports/www/firefox/files/ ablegen.
 

Anhänge

Der Patch wurde 34 mal herungergeladen, hat den jemand ausprobiert oder waren das bloß Webcrawler?
 
Zurück
Oben