That's normal. .xinitrc is only read if you use xinit, of which startx is a wrapper.
When you login using gdm/kdm, the script that gets executed is /etc/X11/Xsession.
For this problem, what I usually do is modify Xsession so that before starting the window manager, it does that:
Code:
[ -x "${HOME}/.Xclients" ] && . "${HOME}/.Xclients" &
Then I change .xinitrc, so that it does the same, and only xinit-specific things remain in .xinitrc. All common apps are put inside .Xclients.
Yves.