I have a strange situation - after some upgrades a couple of days ago fonts in KDE Konsole broke. To make it more specific - standard fonts look more or less OK, but when I use my national characters (like ąćęłńśóźż) they all look broken - like from another font, or badly scaled.

The same problem doesn't exist in GNOME Terminal.

I usually use the Terminus font, so I used this for demonstration, but it shows in other fonts as well - if that will be necessary I will provide list.

Konsole shot:

Konsole screenshot

GNOME Terminal shot:

Gnome terminal screenshot

As for my settings:

=$ cat /etc/X11/xorg.conf
Section "Device"
    Identifier  "Builtin Default intel Device 0"
    Driver  "intel"
EndSection
Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Monitor Vendor"
    ModelName      "Monitor Model"
EndSection
Section "Screen"
    Identifier  "Builtin Default intel Screen 0"
    Device  "Builtin Default intel Device 0"
    Monitor "Monitor0"
EndSection
Section "InputDevice"
    Identifier  "touchpad"
    Driver  "synaptics"
    Option "CorePointer"
EndSection
Section "ServerLayout"
    Identifier  "Builtin Default Layout"
    Screen  "Builtin Default intel Screen 0"
    InputDevice "touchpad"
EndSection

=$ xdpyinfo | grep -E resolution\|dimensions
  dimensions:    1680x1050 pixels (444x277 millimeters)
  resolution:    96x96 dots per inch

I tried forcing DPI in system settings (to 120), or adding monitor size to xorg.conf - so far nothing helped.

Any idea on what should I do to make it work sanely again?

link|improve this question

72% accept rate
feedback

4 Answers

What happens when you type:

  % locale

?

Depending on your distro, you'll need an UTF-8 locale.

link|improve this answer
=$ locale LANG=en_US.utf8 LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" – depesz Dec 8 '09 at 20:28
Are you using a TTF font or the ones from here: is-vn.bg/hamster? – g33kz0r Dec 10 '09 at 20:26
feedback

Some ideas, just guesswork in increasing order of destructiveness. I don't have Arch, so can't test it. Please make backups beforehand.

  1. Refresh font caches. Restart konsole.

    sudo fc-cache -srv
    fc-cache -rv
    
  2. Run qtconfig and mess with the font substitution. Restart konsole.

  3. Add the following to your xorg.conf, and accordingly any other paths with font files that your system has, and restart your X session.

    Section "Files"
      FontPath     "/usr/share/fonts/local"
      FontPath     "/usr/share/fonts/Type1"
      FontPath     "/usr/share/fonts/URW"
      FontPath     "/usr/share/fonts/truetype"
      FontPath     "/usr/share/fonts/xtest"
      FontPath     "/opt/kde3/share/fonts"
    EndSection
    
  4. Log out of your desktop session and move ~/.qt, ~/.kderc, ~/.fonts, ~/.fonts.conf, /etc/fonts/local.conf away. (If you had user-installed font files in ~/.fonts, you can keep those - usual extensions are .ttf and .pcf.) Refresh font caches as above and log in. You have to reapply or redo some font or font-related settings.

link|improve this answer
fc-cache - didn't help. as for removal of files - i created new user, and it is also broken on this new account. as for doing font substitutions - i don't want to substitute - i want to use terminus, as it's nice, readable font. – depesz Dec 10 '09 at 13:12
feedback

Is UTF8 locale set in your /etc files?

Should be something like the following

/etc/rc.conf:

LOCALE="en_US.utf8" 
KEYMAP="en" 

/etc/profile: e

xport LANG="en_US.utf8" 
export LANGUAGE="en_US.utf8" 

/etc/locale.gen:

en_US.UTF-8     UTF-8 
link|improve this answer
feedback

Probably a Qt bug.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.