thank you all for the help! the problem is finally solved. thanks James! I realized that the bash is not a login shell when invoked that way, and my locale variable in .bash_profile did not take effect. the command line now becomes: *su -l myname -c '-l' 'startx' * and worked! thanks Sebastian Günther, this is really a important comment in the man page that I missed totally, I changed to "-l" instead to avoid the trick and many nice login manager recommended here, I'll try them out later, compiling QT or GNOME components is a heavy work for my poor celeron processor. thanks again.. fei