Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top


  • I have some unicode characters in my prompt (git status markers essentially)
  • I'm running urxvt under xfce on arch linux.
  • I'm using DejaVu Sans Mono for Powerline font, specified via .Xresources line:

    URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14

When I start urxvt the unicode characters do not render correctly.

For example

● renders as â

However, if I then start a new urxvt from inside the first terminal everything renders correctly.

There doesn't appear to be any difference in the environment between the two terminals.

What could be the difference between the first invocation and the nested invocation? I suspect the font is not correct in the 'outer' instance, but I'm unsure how to check the font of a running X window

UPDATE: It seems that the locale is not correctly set up in the app launcher for xfce4, but presumably the shell inside the first terminal inits it's own locale, meaning that both shells have the same locale.


export LANG=en_GB.UTF-8

to .xinitrc before xfce4 is started seems to fix it. I suspect this isn't the correct way, but it works well enough for me.

screenshot demonstrates the problem:

enter image description here

Note: I moved this question from - i hope this site is more appropriate

share|improve this question
How do you start X? How do you start "the first" terminal? It seems that the environment is different for these two. – Ярослав Рахматуллин Nov 24 '12 at 17:24
up vote 10 down vote accepted

I am not entirely certain what the cause of the problem is, but the steps below might help:

  1. Confirm that the locale is set up properly

    $ locale
  2. Enable the desired locales in /etc/locale.gen and run locale-gen

    $ cat /etc/locale.gen |grep UTF
    en_US.UTF-8 UTF-8
    nb_NO.UTF-8 UTF-8
    ru_RU.UTF-8 UTF-8
  3. Make sure that the desired font can be loaded

    $ xset +fp /usr/share/fonts/cyrillic
    $ fc-cache
    $ fc-list # to check

  4. Apply the settings from .Xdefaults (or similar) before starting the "first terminal"
    xrdb ~/.Xdefaults

share|improve this answer
This is definitely to do with locale (see my update to the question), so accepting this answer as it pointed me in the correct direction. Thnks. – sw1nn Nov 29 '12 at 19:31
Its usually not a terrible idea to put locale settings in ~/.bash_profile (~/.zprofile), but ~/.xinitrc would work too. – Ярослав Рахматуллин Nov 29 '12 at 19:35
if i login on a virtual terminal (ie. without X) it all works. The shell bit is working fine, it's specific to X – sw1nn Nov 29 '12 at 19:39
Probably because X (or startxfce) is started from a non-login shell that does not read LANG & co from a profile. For bash, ~/.bashrc can be used to set stuff for non-login shells. But like I said, there is nothing wrong with leaving your locale settings and other variables in ~/.xinitrc. – Ярослав Рахматуллин Nov 29 '12 at 19:50

For me it was a problem with powerline glyphs in urxvt. Just found out that setting the locale with localectl set-locale LANG=en_AU.UTF-8 fixes the problem for me, with the terminess powerline font at least (haven't tried other fonts)

urxvt powerline symbols

It wasn't working with en_US.UTF-8, I'm pretty sure because I can reproduce it... now that's strange... but it works now.


share|improve this answer
Please be aware you have answered a question that is 3-years old and already has an accepted answer. Although there is nothing wrong with doing so, it is likely you may not get a response. – CharlieRB Dec 31 '15 at 15:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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